定义
寻找图像边缘突出点的算法。
角点,是图像中特征突出的一些点,例如突出的边缘,亮度的突变等。1977年,Moravec提出了兴趣点(Points of Interests)的概念,后来在1981年提出了Moravec角点检测算法。作为第一个广泛应用的点特征算法,它开创了角点检测的新纪元,后续的很多角点检测算子都是在其基础上通过扩展得到的。
常用的角点检测算法主要有三类,边缘特征、亮度特征和模板匹配。Moravec包含有亮度和模板两种思路,采用窗口模板,使用若干个方向的变化最小值作为角点响应值。计算水平、垂直、对角线、反对角线四个方向的相邻像素灰度差的平方和作为像素的兴趣值,将兴趣值大于某个阈值的像素作为候选角点。
Moravec算法由于只考虑了灰度值,对噪声敏感,且不具备旋转不变性,Harris角点检测是一种改进方法。该方法受信号处理中自相关函数的启发,可以给出图像中某一像素点的自相关矩阵时,其特征值是自相关函数的一阶曲率,如果X,Y两个方向上的曲率值都高,那么就认为该点是角点。Harris使用高斯函数代替Moravec的二值窗口函数,对离中心点越近的像素赋于越大的权重,以减少噪声影响。另外,Moravec只考虑了每隔45度方向,Harris用Taylor展开去近似任意方向。
最后介绍另一个经典的角点检测算法FAST,这个方法正如其名,计算速度快,可以应用与实时场景中。在FAST提出之后,实时计算机视觉应用中特征提取性能才有显著改善。
FAST算法包含3个主要步骤:
(1)固定半径圆上的像素进行分割测试。FAST的方法主要是考虑像素点附近的圆形窗口上的N个像素,一般N取12或16,如下图所示。p为中心像素点,而白框标示的点像素则是需要考虑的点。检测在这样的圆环上的16个像素点中,如果N个连续的点都比中心像素p的强度都大或都小,这样的中心点就是角点。如果要提高检测速度,只需要检测更少的点。
(2)ID3决策树算法来训练角点检测。FAST是一种需要学习的方法,对待检测的场景的多张图像进行角点提取,在提取的过程中,使用的N和一个合适的阈值进行检测,得到大量角点,选择具有最大信息增益的像素来判断一个像素是否为角点,对上述像素依次进行如上处理,选择像素增益最大的像素作为判断角点的依据,生成决策树,从而实现角点的正确分类。
(3)非最大值抑制。量化每个角点的值,比较相邻的角点的量化值,然后删除量化值较小的角点。
参考文献
[1] Moravec H P. Obstacle avoidance and navigation in the real world by a seeing robot rover[R]. Stanford Univ Ca Dept of Computer Science, 1980.
[2] Harris C G, Stephens M. A combined corner and edge detector[C]//Alvey vision conference. 1988, 15(50): 10-5244.
[3] Rosten E, Drummond T. Machine learning for high-speed corner detection[C]//European conference on computer vision. Springer, Berlin, Heidelberg, 2006: 430-443.
参阅:Moravec角点检测、Harris角点检测、FAST角点检测