CV 光流場計算2( L-K方法 )

計算機視覺中,盧卡斯-卡納德方法是一種普遍使用的光流估計的差分方法,這個方法是由Bruce D. LucasTakeo Kanade發明的。它假設光流在像素點的鄰域是一個常數,而後使用最小二乘法對鄰域中的全部像素點求解基本的光流方程。php

經過結合幾個鄰近像素點的信息,盧卡斯-卡納德方法(簡稱爲L-K方法)一般可以消除光流方程裏的多義性。並且,與逐點計算的方法相比,L-K方法對圖像噪聲不敏感。不過,因爲這是一種局部方法,因此在圖像的均勻區域內部,L-K方法沒法提供光流信息。ip

I_x(q_1) V_x + I_y (q_1) V_y = -I_t(q_1)

I_x(q_2) V_x + I_y (q_2) V_y = -I_t(q_2)

 \vdots

 I_x(q_n) V_x + I_y (q_n) V_y = -I_t(q_n)

其中,q_1,q_2,\dots,q_n 是窗口中的像素,I_x(q_i),I_y(q_i),I_t(q_i)是圖像在點q_i和當前時間對位置xy和時間t的偏導。ci

這些等式能夠寫成矩陣的形式A v = b,此處get

 A = \begin{bmatrix} I_x(q_1) & I_y(q_1) \\[10pt] I_x(q_2) & I_y(q_2) \\[10pt] \vdots  & \vdots  \\[10pt] I_x(q_n) & I_y(q_n)  \end{bmatrix}, \quad\quad v =  \begin{bmatrix} V_x\\[10pt] V_y \end{bmatrix}, \quad \mbox{and}\quad b =  \begin{bmatrix} -I_t(q_1) \\[10pt] -I_t(q_2) \\[10pt] \vdots  \\[10pt] -I_t(q_n) \end{bmatrix}

此方程組的等式個數多於未知數個數,因此它一般是超定的。L-K方法使用最小二乘法得到一個近似解,即計算一個2x2的方程組:it

A^T A v=A^T b 或
	\mathrm{v}=(A^T A)^{-1}A^T b

其中,A^T是矩陣A轉置。即計算:io

 \begin{bmatrix} V_x\\[10pt] V_y \end{bmatrix}  = \begin{bmatrix} \sum_i I_x(q_i)^2      & \sum_i I_x(q_i)I_y(q_i) \\[10pt] \sum_i I_y(q_i)I_x(q_i) & \sum_i I_y(q_i)^2  \end{bmatrix}^{-1} \begin{bmatrix} -\sum_i I_x(q_i)I_t(q_i) \\[10pt] -\sum_i I_y(q_i)I_t(q_i) \end{bmatrix}

i=1 到 n求和。class

矩陣A^T A一般被稱做圖像在點p的 結構張量方法

相關文章
相關標籤/搜索