NPR of Videos

Artistic Rendering of Videos

Now comes the part where we apply these techniques to videos. In the beginning I applied these techniques directly frame by frame on videos. But this led to considerable amount of flickering. So I decided to use another approach to reduce the flickering by moving the strokes based on optical flow information. To do this we split a frame into boxes and using the difference from the frame ahead we assign velocity to each of the boxes. Once we have this information we can move the strokes in the frame to create a new frame. Alternatively while drawing the new frame we could predict the location of a stroke in previous frame and then place the strokes.We could apply the motion vector approach on just the parts which actually move. The results which were obtained using these techniques are shown in the side. The final result which I showed in the beginning applied all these techniques. I used the watercolor simulation while painting each frame and used motion detection to reduce flickering.

One of the reasons why the video flickers is that the still parts are redrawn again. So I decided to omit repeated application of these techniques on parts of video that don't change. For this I had to perform foreground segmentation on Video. As it turns out this problem has been addressed quiet well. In fact libraries like opencv come with built in functionality to do this. But I decided to use a more novel approach which uses eigenbackground subtraction and recursive error compensation. Click on the image above to view the results. Once the motion segmentation is done NPR can be applied selectively over the portions which change with time. Interesting effects can be achieved by alpha blending original frames and artistically rendered frames using the segmetation result as a filter. For smooth blending a second component can be added to this filter which decays with distance. Video on right shows some of the results that we could achieve.