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
QMAKE_LIBDIR += $$CUDA_DIR/lib64
This is a demonstration code (there are some bug, in visualisation for example)
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).
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)
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.