FAST角点简介



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]
中还对fast用机器学习的方法筛选最优特征点。简单来说就是使用ID3算法训练一个决策树,将特征点圆周上的16个像素输入决策树中,以此来筛选出最优的FAST特征点。
上面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]
。此外也可以借助与BRIEF描述子等来描述。

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.