网上有不少讲FAST(Features from Accelerated Segment Test )的博文,还有OpenCV源码注释的,但感觉都不够详细,所以这里我再详细地介绍一下。分为两部分,先是FAST原理介绍,之后是OpenCV源码介绍。
1. 原理介绍
1.1 分段测试(Segment Test)
候选测试点 p 是否为一个角点,取决于以其为圆心的圆周上是否有存在连续的
原作者选择 n=12 是由于这样可以通过快速测试排除大量的非角点。一开始首先测试1,5,9,13这四个点,如果 p 是角点,则至少3个点同时满足灰度都大于
- 快速测试在 n<12 的时候不能很好地推广应用。
- 检测的效率依赖于测试的顺序以及角点附近灰度的发布情况,所选择的像素并不一定是该位置角点的最优选择。
- 丢弃了4个快速测试点的测试结果,在后续判断中没有使用。
- 会检测出多个紧挨着的特征点。
另外讲一点,通常所讲的FAST-N,这里的 N 就是上述的测试中所需要满足的点数