*The follow paragraph could be very wrong. Need revisiting later to understand what's under-the-hood.*

Farneback method uses Polynomial Expansion to approximate the neighbors of a pixel. The Expansion could be seen as a quadratic equation with Matrices and Vectors as variable and coefficients. This dense optical flow analysis produces a displacement field from two successive video frames. Each displacement vector in the field is estimated by minimizing the 'error' under a 'constraint'. The 'constraint' is an equation

**A**(x)

**d**(x)=

**delta-b**(x) derived from the polynomial expansion. The 'error' is the weighted sum of differences in the pixel neighborhood (x + delta-x) between the images.

Image Pyramids is used to detect large displacements. Also uses Gaussian to smooth out the neighboring displacements. I suppose that's based on the assumption that pixels in proximity move in similar directions.

**Sample (fback.cpp)**

- The larger distance movement are not detected with fewer pyramid levels. And there is no noticeable gain in performance.
- Displacement vectors are drawn at 16 pixels, possibly to avoid cluttering.'
- Overall is slower than sparse as expected. It seems to have fewer noise. And it detects new objects by nature (Dense).

**Resource**

http://www.opencv.damienstewart.net/2009/05/25/optical-flow-gunnar-farneback/

**Reading**

Two Frame Motion Estimation Based on Polynomial Expansion, Farneback

Polynomial Expansion for Orientation and Motion Estimation, Farneback

## No comments:

## Post a Comment