官网参见https://docs.opencv.org/3.4.1/df/d0c/tutorial_py_fast.html
我们已经学习了一些特征检测器(Harris 角点检测,Shi-Tomasi角点检测,SIFT,SURF),它们大多数效果都很好。但是从实时应用角度来看,它们都不够快。一个最好的例子就是SLAM(同步定位和映射)移动机器人,它的计算资源就很有限。
为了解决这个问题,2006年Edward Rosten和Tom Drummond在《Machine learning for high-speed corner detection》一文中提出了FAST(Features from Accelerated Segment Test) 算法(2010年又修正过)。下面会对该算法做一个介绍。
使用FAST进行特征检测
1.选择图像中的一个像素点p,判断它是不是兴趣点。p点的灰度值为Ip
2.选择适当的阈值t
3.在p周围选择16个围成圆圈的像素进行测试。见下图
4.如果圆(16个像素)中存在一组n个连续像素都比Ip+t亮(灰度值高),或者都比Ip-t暗(灰度值低),那么p就被认为是一个角点。如上图中虚线所示,n=12。
5.上面的算法中,对于图像中的每一个点,都要去遍历其邻域圆上的16个点的像素,效率较低。我们可以使用以下快速测