Optical flow implementation in CUDA (LGLP source aviable) example of computer vision algorithm imple

Hi,
we devellop a (very) fast optical flow estimation aviable here :
onera site

the compilation need QT, OpenCV and Cuda (toolkit and sdk).
to compile, you need to modify in the src/FolkiGPU.pro
the CUDA_SDK to your cuda sdk installation path (ex : ~/NVIDIA_CUDA_SDK/C , not forget the ‘/C’ for cuda 2.3 sdk)
if you use the 2.3 toolkit and have a 64bit operating system. remplace line 69 :
QMAKE_LIBDIR += $$CUDA_DIR/lib
by :
QMAKE_LIBDIR += $$CUDA_DIR/lib64

This is a demonstration code (there are some bug, in visualisation for example)

Have fun!

all GPU for Image team

Is this in some way related to motion estimation that is done in video coding?
What are the fundamental differences?

Is this method fast enough to possibly replace the traditional motion estimation?
You mention it performs on full HD content at up to 30 fps.

Christian

the fundamental differences between video coding motion estimation is the density, in our optical flow, we compute one motion vector by pixels, and in video coding (in Mpeg 2 for example) we have only one motion vector by blocks (for example 16x16 pixels).

other difference with MPEG 2, is how we compute the motion, in FOLKI we compute with a gradient descent scheme, in MPEG it was a hierachical search (or exaustive).

Awesome. The person looking for an image stabilization algorithm in this forum might use your code to track both translational AND rotational shaking of the camera.

CUVI Lib v0.3 also offers Optical Flow (Lucas and Kanade) and Optical Flow (Horn and Schunk) implementation in CUDA. It’s a complete framework so you can use these functions to accelerate your motion estimation, destabilization detection etc. Both algorithms have shown impressive speedups of around 60-70X compared with the OpenCV implementation (on Core 2 Duo with GeForce GTX 470 (Fermi) installed). The library can be freely downloaded. Please leave your comments/suggestions on here or on CUVI Lib forums

The current version supports 8bit single channel images as input. Take a look at the images attached (input frames and Optical Flow Horn and Schunk with 10 iterations)

Source frames for Optical Flow HS computation

External Image

Yum yum, finally I have an idea how to use one of these optical flow libraries.

I want to hook up my new HD web cam to a telescope in order to take some shots of the moon. Usually the air is quite turbulent, and such an optical flow analyzer could enable me to remove a lot of this turbulence by warping the image in the opposite direction. External Image

To get an impression of this turbulence, watch this: Moon Video - Lifecam Cinema HD - YouTube

Christian