光流算法:Horn–Schunck光流講解


光流理論

光流(optical flow)是空間運動物體在觀察成像平面上的像素運動的瞬時速度。

光流法是利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關系,從而計算出相鄰幀之間物體的運動信息的一種方法。

光流場是一個二維矢量場,它反映了圖像上每一點灰度的變化趨勢,可看成是帶有灰度的像素點在圖像平面上運動而產生的瞬時速度場。它包含的信息即是各像點的瞬時運動速度矢量信息。光流的集合。

基本假設

  1. 亮度恆定不變。同一目標幀間變化亮度不發生改變。
  2. 時間連續或運動為“小運動”。短時間內或者相鄰幀間目標位置的變化不會劇烈。

基本假設對應的約束方程

像素點亮度在\(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) + \frac{\partial I}{\partial x}dx + \frac{\partial I}{\partial y}dy + \frac{\partial I}{\partial t}dt + \epsilon \]

其中\(\epsilon\)是極小值,綜合上式,可得

\[\frac{\partial I}{\partial x}dx + \frac{\partial I}{\partial y}dy + \frac{\partial I}{\partial t}dt = 0 \]

同除以\(dt\),有

\[\frac{\partial I}{\partial x} \frac{dx}{dt} + \frac{\partial I}{\partial y} \frac{dy}{dt} + \frac{\partial I}{\partial t} = 0 \]

其中\(u=\frac{dx}{dt},v=\frac{dy}{dt}\)為像素速度,也就是光流。令\(I_x = \frac{\partial I}{\partial x},I_y=\frac{\partial I}{\partial y},I_t=\frac{\partial I}{\partial t}\),則

\[I_xu+I_yv+I_t = 0 \]

\((u,v)\)為所求光流。
但是求解\((u,v)\)只有一個約束方程,是無法確定光流的,需要增加新的約束。不同的光流方法引入不同的約束條件,包括基於梯度的方法,基於匹配的方法,基於能量(頻率)的方法,基於相位的方法和基於神經動力學的方法。

Horn–Schunck光流

Horn-Schunck光流算法通過引入全局平滑約束來做圖像中的運動估計。Horn和Schunck設定圖像中像素的運動速度和其臨近像素的速度相似或相同,且光流場中的每處的速度變化是平滑的,不會突變。平滑約束表示為:

\[\nabla^2u = \frac{\partial^2u}{\partial^2x} + \frac{\partial^2u}{\partial^2y}, \nabla^2v = \frac{\partial^2v}{\partial^2x} + \frac{\partial^2v}{\partial^2y} \]

對於\(\nabla^2u和\nabla^2v\)的處理,進行近似表示有

\[\nabla^2u \simeq \kappa (\bar u_{i,j,k}-u_{i,j,k}), \nabla^2v \simeq \kappa (\bar v_{i,j,k}-v_{i,j,k}) \]

其中領域均值表示為

\[\bar u_{i,j,k} = \frac{1}{6} \{ u_{i-1,j,k}+u_{i,j+1,k}+u_{i+1,j,k}+u_{i,j-1,k} \}+\frac{1}{12} \{ u_{i-1,j-1,k}+u_{i-1,j+1,k}+u_{i+1,j+1,k}+u_{i+1,j-1,k} \} \]

\[\bar v_{i,j,k} = \frac{1}{6} \{ v_{i-1,j,k}+v_{i,j+1,k}+v_{i+1,j,k}+v_{i,j-1,k} \}+\frac{1}{12} \{ v_{i-1,j-1,k}+v_{i-1,j+1,k}+v_{i+1,j+1,k}+v_{i+1,j-1,k} \} \]

約束寫成:

\[\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{\partial \xi^2}{\partial u} = -2\alpha(\bar u-u)+2(I_xu+I_yv+I_t)I_x \]

\[\frac{\partial \xi^2}{\partial v} = -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] \]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM