0
$\begingroup$

I'm trying to implement an optical flow calculation program for two successive images based on this article by Brox et al.

The Euler-Lagrange combined with a fixed point iteration loop yields two equations in the form of:

$\\0=(\Psi')_{Data}^{k,l}\cdot (I_x^k(I_z^k+I_x^kdu^{k,l+1}+I_y^kdv^{k,l+1}))-\alpha div((\Psi')_{Smooth}^{k,l}\nabla_3(u^k+du^{k,l+1}))) \\0=(\Psi')_{Data}^{k,l}\cdot (I_y^k(I_z^k+I_x^kdu^{k,l+1}+I_y^kdv^{k,l+1}))-\alpha div((\Psi')_{Smooth}^{k,l}\nabla_3(v^k+dv^{k,l+1})))$

No gamma term here becaues it's a simplified version, and the nabla3 is the gradient in x, y and "time" (difference between two successive images). Iz is the image difference in time (I2-I1)

As I understand, at this point we can treat u and v as "constant images", and treat du and dv as our variables, and we can find them using SOR. Then we update u and v by u=u+du, v=v+dv in the external loop.

In order to solve with SOR I need to construct a linear equation set in the form of Ax=b, where x is a vector containing the du and dv values. I'm not sure however how to extract du and dv from the divergence term. Can it be extracted, or maybe I should use the du term from the previous iteration and treat it as a constant only in this term?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.