ORB采取FAST算法检测特征点,采取BRIEF算法计算特征点描述子。
1、检测特征点
检测候选特征点周围一圈的像素值,若有足够多的像素值与候选特征点的差异都较大,则认为该候选特征点是特征点。
对于上图点p,以半径3画圆,则其周围共16个像素值待检测。
为了加快检测速度,一般采取FAST-N算法,即只检测候选特征点周围N个像素值。
2、BRIEF算法计算特征描述子
在候选特征点的周围以一定模式选取N个点对,比较这N个点对,把比较结果组合成描述子。
如下图,p点周围选取4个点对,设为(A1,B1),(A2,B2),(A3,B3),(A4,B4)
比较方法:
假设:T(A1,B1)=0,T(A2,B2)=1,T(A3,B3)=0,T(A4,B4)=1
则p的描述子是0101
理想的特征描述子应具有旋转、尺度一致性。
ORB并没有解决尺度一致性问题,只是解决了旋转一致性问题。
上述BRIEF算法中,我们以特征点为原点,以特定长度为半径画圆,以水平方向为X轴,竖直方向为Y轴。当图片发生旋转时,坐标系不变,则根据特定模式选取的点对就会发生改变导致描述子发生变化。因此需要建立新的坐标系,使得坐标系随着图片的旋转而旋转。
解决方法:以关键点和其取点区域的形心的连线为X轴建立坐标系。因为形心随物体的旋转而旋转,因此实现了坐标轴的旋转。