KLT角點跟蹤演算法(LK)學習(一)——演算法原理
KLT角點跟蹤演算法全稱Kanade-Lucas-Tomasi Tracking,又稱LK跟蹤演算法。是經典的角點跟蹤演算法。演算法假設目標在視訊流中,只產生一致性的小位移,並且目標的灰度變化不大。那麼演算法必須是在以下3個假設成立的前提下發揮良好的效果:
(1)亮度恆定。
(2)時間連續或者運動位移小。
(3)空間一致性,鄰近點有相似運動,保持相鄰。
滿足假設1保證目標不受亮度的影響;滿足假設2保證在目標領域內能夠對應的特徵點;滿足假設3保證在同一視窗內,所有點的位移相同。
定義同一目標出現在兩幀影象中,如果影象中兩點匹配,那麼以這兩點為中心,
為視窗存在極小的灰度平方差
,定義為:
(1)
其中座標,偏移量
,一般地設定權重函式
,將公式(1)中的
替換成對稱的形式
,改寫為:
為了得到最佳匹配,使得 最小,令上式導數為0,求取極小值。將上式子在點
進行泰勒級數展開,截斷高階保留線性項,
其中。
利用上式,分別令和
帶入上式;
和
帶入上式,得到
(2)
因此有,
根據(2),其中近似有:
所以,帶入(3)式有:
(4)
其中有
為了找到偏移量,設定(4)式為0,求極小值。
將上式展開到等式兩邊:
相當於求解方程:
(5)
是2x2的矩陣,
是2x1的向量,是計算的殘差,
求解方程(5),不一定能得到精確解,可以利用牛頓迭代法求解,當殘差小於一定閾值時,就認為得到了近似解。
KLT對於影象中的目標,並不是目標框和跟蹤框內的所有的點都求取偏移量,而是選擇一些特徵不變的角點(corners),可以不同的特徵不變的角點作為跟蹤點,比如SIFT、SURF、FAST、SUSAN、HARRIS等。
在這裡shi-tomasi提出了一種Good Features的角點。他們認為,(5)式中的對稱矩陣Z包含了噪聲和良好條件,當矩陣Z的兩個特徵值較小時,意味著以該點為中心W為視窗內是平坦的;一大一小的兩個特徵值,對應無方向的紋理特徵;兩個較大的特徵值代表了當前點是角點或者椒鹽紋理。所以,當兩個特徵值大於一定閾值時,選擇這個點作為角點。
其中是設定的閾值。
綜上所述,當我們採用角點進行跟蹤時,如果通過方程(5)解得的殘差e足夠小(設定的閾值),認為是跟蹤到的一個角點,並求出了角點的偏移。