光流(optical flow)是空間運動物體在觀察成像平面上的畫素運動的瞬時速度。
光流場是乙個二維向量場,它反映了影象上每一點灰度的變化趨勢,可看成是帶有灰度的畫素點在影象平面上運動而產生的瞬時速度場。它包含的資訊即是各像點的瞬時運動速度向量資訊。光流的集合。
亮度恆定不變。同一目標幀間變化亮度不發生改變。
時間連續或運動為「小運動」。短時間內或者相鄰幀間目標位置的變化不會劇烈。
畫素點亮度在\(x,y\)位置以及\(t\)時刻表示為\(i(x,y,t)\),畫素運動表示為\(dx,dy,dt\),那麼畫素變化前後亮度相同表示為
\[i(x,y,t) = i(x+dx,y+dy,t+dt)
\]泰勒展開:
\[i(x+dx,y+dy,t+dt) = i(x,y,t) + \fracdx + \fracdy + \fracdt + \epsilon
\]其中\(\epsilon\)是極小值,綜合上式,可得
\[\fracdx + \fracdy + \fracdt = 0
\]同除以\(dt\),有
\[\frac \frac + \frac \frac + \frac = 0
\]其中\(u=\frac,v=\frac\)為畫素速度,也就是光流。令\(i_x = \frac,i_y=\frac,i_t=\frac\),則
\[i_xu+i_yv+i_t = 0
\]\((u,v)\)為所求光流。
但是求解\((u,v)\)只有乙個約束方程,是無法確定光流的,需要增加新的約束。不同的光流方法引入不同的約束條件,包括基於梯度的方法,基於匹配的方法,基於能量(頻率)的方法,基於相位的方法和基於神經動力學的方法。
horn-schunck光流演算法通過引入全域性平滑約束來做影象中的運動估計。horn和schunck設定影象中畫素的運動速度和其臨近畫素的速度相似或相同,且光流場中的每處的速度變化是平滑的,不會突變。平滑約束表示為:
\[\nabla^2u = \frac + \frac,
\nabla^2v = \frac + \frac
\]對於\(\nabla^2u和\nabla^2v\)的處理,進行近似表示有
\]其中領域均值表示為
\[\bar u_ = \frac \+u_+u_+u_ \}+\frac \+u_+u_+u_ \}
\]\[\bar v_ = \frac \+v_+v_+v_ \}+\frac \+v_+v_+v_ \}
\]約束寫成:
\[\xi_c^2 = (\bar u-u)^2+(\bar v-v)^2
\]上面得到的兩組約束為:
\[\xi_b = i_xu+i_yv+i_t
\]\[\xi_c^2 = (\bar u-u)^2+(\bar v-v)^2
\]綜合為:
\[\xi^2 = \alpha^2\xi_c^2+\xi_b^2
\]也就是最小化\(\xi^2\),其對應偏導為0即為所求
\[\frac = -2\alpha(\bar u-u)+2(i_xu+i_yv+i_t)i_x
\]\[\frac = -2\alpha(\bar v-v)+2(i_xu+i_yv+i_t)i_y
\]化簡
\[(\alpha^2+i_x^2)u+i_xi_yv = (\alpha^2 \bar u-i_xi_t) \\
i_xi_yu+(\alpha^2+i_y^2)v= (\alpha^2 \bar u-i_yi_t)\]得
\[(\alpha^2+i_x^2+i_y^2)u=+(\alpha^2i_y^2)\bar u -i_xi_y\bar v -i_xi_t \\
(\alpha^2+i_x^2+i_y^2)v=+(\alpha^2i_x^2)\bar v -i_xi_y\bar u -i_yi_t \]或
\[(\alpha^2+i_x^2+i_y^2)(u-\bar u) = -i_x[i_x \bar u + i_y \bar v + i_t] \\
(\alpha^2+i_x^2+i_y^2)(v-\bar v) = -i_y[i_x \bar u + i_y \bar v + i_t]
\]
Lucas Kanade光流演算法
光流的概念是gibson在1950年首先提出來的。它是空間運動物體在觀察成像平面上的畫素運動的瞬時速度,是利用影象序列中畫素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關係,從而計算出相鄰幀之間物體的運動資訊的一種方法。一般而言,光流是由於場景中前景目標本身的移動 相機的...
Lucas Kanade光流演算法
x v y vzi xvx iyv y izv z it。寫做 這個方程有三個未知量,尚不能被解決,這也就是所謂光流演算法的光圈問題。那麼要找到光流向量則需要另一套解決的方案。而lucas kanade演算法是乙個非迭代的演算法 假設流 vx,vy,vz 在乙個大小為m m m m 1 的小窗中是乙...
光流法詳解之一 LK光流)
lucas kanade光流演算法是一種兩幀差分的光流估計演算法。它由bruce d.lucas 和 takeo kanade提出 1 lk光流法有三個假設條件 1.亮度恆定 乙個畫素點隨著時間的變化,其亮度值 畫素灰度值 是恆定不變的。這是光流法的基本設定。所有光流法都必須滿足。2.小運動 時間的...