天天看点

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

ORB是一种特征提取和描述的快速算法,论文原文《ORB: an efficient alternative to SIFT or SURF》。

ORB算法分为特征提取和特征描述两个部分,其中特征提取是对FAST特征的改进,特征描述是对BRIEF算法的改进。

一、oFAST

1.1 FAST特征提取

FAST特征提取请参考链接:【目标检测】FAST特征学习记录。

针对特征点数量大且不确定,不具有方向信息和尺度信息等问题,ORB做了如下改进:

(1)对原始的FAST角点分别计算Harris响应值,然后选取前N个具有较大响应值的角点作为最终的角点集合。

(2)增加尺度和旋转的描述。

其中,尺度不变性是通过构建图像金字塔,并且在每一层生成FAST特征。

旋转不变性在下节详细说明。

1.2 通过灰度质心进行方向定位

定义一个图像块的矩定义为,

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

通过矩来计算特征点以r为半径范围内的质心,特征点坐标到质心形成一个向量作为该特征点的方向。

质心为,

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

那么该特征的方向为,

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

二、rBRIEF

2.1 BRIEF

BRIEF是在特征点的一个邻域内选择n对像素点,比较它们的灰度值,

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

p(x) < p(y)则为1,反之为0。n对都比较完之后就生成了长度为n的二进制串。

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

作者说在进行计算之前先对图像进行高斯平滑处理,窗口大小为5x5,n=256,图像块取31x31。

2.2 Steered BRIEF

定义一个2xn的矩阵,

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

经过旋转角度θ旋转,得到新的点对,

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

则steered BRIEF变为,

【目标检测】ORB特征学习记录一、oFAST二、rBRIEF

2.3 rBRIEF

使用steered BRIEF方法得到的特征描述子具有旋转不变性,但是相关性却不如BRIEF,这会影响特征的匹配效果。

作者没有使用BRIEF的取点对的方法,而是采用了学习的方法重新选取点对集合。

建立300k个特征点训练集,是从PASCAL 2006数据集中选取的。对于训练集的每个点,计算其31x31的邻域,邻域中的某个点的5x5邻域灰度平均值来代替某个点对的值。在31x31的邻域内共有(31-5+1)x(31-5+1)=729个子窗口,因此取点对的方法共有M=265356种。算法流程是

(1)300k个特征点选点对。

(2)对每个点对求平均值,按照平均值到0.5的距离大小重新点对进行排序,形成向量T。

(3)将T的第一列向量放到结果向量R中,并且将此列从T中移除。

(4)取T的下一列向量和R中的所有列向量计算相关性,如果相关系数小于设定的阈值,则将该列向量添加至R中,否则丢弃它。

(5)重复上述步骤,直到R中向量列数为256。如果遍历完所有向量之后R中的向量列数少于256,则提高阈值,重试。

继续阅读