1. 程式人生 > >KLT角點跟蹤演算法(LK)學習(一)——演算法原理

KLT角點跟蹤演算法(LK)學習(一)——演算法原理

         KLT角點跟蹤演算法全稱Kanade-Lucas-Tomasi Tracking,又稱LK跟蹤演算法。是經典的角點跟蹤演算法。演算法假設目標在視訊流中,只產生一致性的小位移,並且目標的灰度變化不大。那麼演算法必須是在以下3個假設成立的前提下發揮良好的效果:

        (1)亮度恆定。

        (2)時間連續或者運動位移小。

        (3)空間一致性,鄰近點有相似運動,保持相鄰。

         滿足假設1保證目標不受亮度的影響;滿足假設2保證在目標領域內能夠對應的特徵點;滿足假設3保證在同一視窗內,所有點的位移相同。

          定義同一目標出現在兩幀影象

中,如果影象中兩點匹配,那麼以這兩點為中心,為視窗存在極小的灰度平方差,定義為:

                                                                                          (1)

          其中座標,偏移量,一般地設定權重函式,將公式(1)中的替換成對稱的形式,改寫為:

                                                                    

        為了得到最佳匹配,使得 最小,令上式導數為0,求取極小值。將上式子在點進行泰勒級數展開,截斷高階保留線性項,

                                                              

其中

        利用上式,分別令帶入上式;帶入上式,得到

                                                                 

                                                                                                   (2)

因此有,

                                              

    (3)

        根據(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足夠小(設定的閾值),認為是跟蹤到的一個角點,並求出了角點的偏移