转载请注明出处:http://blog.csdn.net/c602273091/article/details/56008370
介绍
目前SIFT特征准确度高,但是计算复杂度也高。很多时候需要用到匹配、追踪什么的,使用SIFT就比较慢。本文作者提出了ORB(Oriented FAST and Rotation BRIEF)特征。ORB有个特点是这个特征没有申请专利,另外这种特征的好处是:
- 给FAST检测子方向和快速计算;
- 高效计算带有方向的BRIEF特征
关键点(keypoint 就是图片中比较重要的位置,比如角点)使用FAST检测子寻找。
描述子(descriptor 就是对关键点进行描述)这里使用的是BRIEF描述子。但是BRIEF没有方向,所以这里就给BRIEF一个方向。
FAST关键点
FAST的基本方法可以写成:
图中是计算半径为3的FAST关键点。
1、计算1和9是否会大于阈值,如果大于阈值则可以进入下一个,否则就不是关键点。
2、计算1,9,5,13是不是大于阈值的个数超过3个,不是的话,就不是关键点。是的话进入下一步。
3、计算一个像素点,取周围距离为3的一个圆,然后这个像素点与周围的【1-16】的差值大于阈值的个数count,如果会大于阈值,则计算的count+1。如果count大于等于9,那么就作为候选项。
4、使用NMS,如果在3x3或5x5的邻域内,如果没有有比当前像素更大的score的点,那么就抑制这个点。
在ORB特征里,使用的是FAST-9,圆的半径是9(在这里也有人说FAST-9是半径为3,这个具体看了代码再说)
计算完这些以后,FAST特征没有对特征的正确度进行排序,所以这里使用了Harris角点进行计算排序。首先去较低的阈值获取超过N个关键点,然后再根据Harris角点的计算进行排序。与此同时,FAST没有产生多尺度的特征,所以使用在计算图片的尺度金字塔,在不同尺度计算FAST关键点。
之后需要计算FAST的方向了&