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足够小(设定的阈值),认为是跟踪到的一个角点,并求出了角点的偏移。
KLT角点跟踪算法,也称为LK跟踪,是用于角点跟踪的经典方法。它基于亮度恒定、时间连续和空间一致性的假设,通过最小化灰度平方差寻找最佳匹配。算法涉及泰勒级数展开、牛顿迭代法求解偏移量,并利用特征值判断角点。Shi-Tomasi提出的Good Features角点检测方法,选取特征值大于阈值的点作为角点进行跟踪。
837

被折叠的 条评论
为什么被折叠?



