FAST可以看做是提取角点的一种算法,当然也有人认为FAST-9等对边缘具有极强的响应(ORB_SLAM中);最早由Edward Rosten 和 Tom Drummond在2005年提出
[1]
FAST角点定义为:若某像素与其周围邻域内足够多的像素点相差较大,则该像素可能是角点
原文将p点周围的点x分为三类:比p亮很多的点,比p暗很多的点,和p亮度差别在一个阈值t内的点。
1检测
1)一个以像素p为中心,半径为3的圆上,有16个像素点(p1、p2、…、p16)。
2)定义一个阈值t。计算p1、p9与中心p的像素差,若它们绝对值都小于阈值,则p点不可能是特征点;否则,有待进一步考察;
3)若p是候选点,则计算p1、p9、p5、p13与中心p的像素差,若它们的绝对值有至少3个超过阈值,则当做候选点,再进行下一步考察
4)若p是候选点,则计算p1到p16这16个点与中心p的像素差,若其中至少9个连续的点超过阈值,则是特征点。
2.fast角点筛选
原文
[2]
上面1中介绍的是FAST-9,而FAST-10、FAST-11、FAST-12也基本一致,只是在步骤4中,超过阈值的个数不是9,而是10,11或12。FAST算法实现起来简单,尤其是以速度快著称。
3.最大值抑制
对图像进行非极大值抑制:计算特征点出的FAST得分值(即s值,16个点与中心点的差的绝对值的总和),判断以特征点p为中心的一个邻域(如3×3或5×5)内,计算若有多个特征点,则判断每个特征点的s值,若p是邻域所有特征点中响应值最大的,则保留;否则,抑制。若邻域内只有一个特征点(角点),则保留。得分计算公式如下(公式中用V表示得分,t表示阈值):
4.特征点的描述
留意到 FAST只是检测出特征点的位置,FAST没有自带好的描述子,原文直接将周围16个点的灰度作为一个向量来描述该特征点
[1]
5.评价
1.fast很快;
2.没有sift的尺度不变性,也不具有旋转不变性;
3.当图片中的噪点较多时,它的健壮性并不好,而且算法的效果还依赖于一个阈值t
reference
1.Rosten E, Drummond T. Fusing points and lines for high performance tracking[C]// Tenth IEEE International Conference on Computer Vision. IEEE, 2005:1508-1515 Vol. 2.
2.Rosten E, Porter R, Drummond T. Faster and Better: A Machine Learning Approach to Corner Detection[M]. IEEE Computer Society, 2010.