1. 程式人生 > >影象處理之---光流法

影象處理之---光流法

LK光流演算法公式詳解:

由於工程需要用到 Lucas-Kanade 光流,在此進行一下簡單整理(後續還會陸續整理關於KCF,PCA,SVM,最小二乘、嶺迴歸、核函式、dpm等等):

光流,簡單說也就是畫面移動過程中,影象上每個畫素的x,y位移量,比如第t幀的時候A點的位置是(x1, y1),那麼我們在第t+1幀的時候再找到A點,假如它的位置是(x2,y2),那麼我們就可以確定A點的運動了:(u, v) = (x2, y2) - (x1,y1)

 

1、假設原圖是I(x,y,z)  (這裡是擴充套件到三維空間的,所以還有個z值),移動後的影象是I(x+δx,y+δy,z+δz,t+δt),兩者滿足:

 

2、其中影象移動可以認為I (x ,y ,z ,t ) = I (x + δx ,y + δy ,z + δz ,t + δt )#相鄰幀之間的亮度差足夠小

也就是說:( H.O.T. 指更高階,在移動足夠小的情況下可以忽略)

 

3、從這個方程中我們可以得到:

 

其中Vx = u, Vy=v,也就是光流的值(二維影象沒有z),   則是影象在(x ,y,z ,t )這一點的梯度  (就是兩幀影象塊之間差值) 。

 

 

4、假設流(Vx,Vy,Vz)在一個大小為m*m*m(m>1)的小窗中是一個常數,那麼從畫素1...n , n = m*m*m 中可以得到下列一組方程:

 

三個未知數但是有多於三個的方程,這個方程組自然是個超定方程,也就是說方程組內有冗餘,方程組可以表示為:

也就是:

採用最小二乘法:

 

5、另外,由於LK演算法假設是小位移,為了解決大位移問題,需要在多層影象縮放金字塔上求解,每一層的求解結果乘以2後加到下一層:

 
---------------------  
作者:longlovefilm  
來源:CSDN  
原文:https://blog.csdn.net/longlovefilm/article/details/79824723?utm_source=copy  

參考:https://www.cnblogs.com/lxy2017/p/4034974.html
版權宣告:本文為博主原創文章,轉載請附上博文連結!

注:求出目標的速度,就可以求出目標的移動軌跡了