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足够小(设定的阈值),认为是跟踪到的一个角点,并求出了角点的偏移

          

              

          



你可能感兴趣的:(机器视觉)