0


ORB特征

介绍

ORB(Oriented FAST and Rotated BRIEF)特征是一种常用的图像特征,其最大的优点是提取速度快,按业界的说法,ORB特征提取速度臂SURF快10倍,比SIFT快100倍。ORB特征由关键点描述子两部分组成。他的关键点称为“Oriented FAST”,是一种改进的FAST角点。ORB提取速度快就得益于采用了FAST角点。它的描述子称为BRIEF(Binary Robust Independent Elementary Feature),是一种速度极快的二进制描述子。ORB特征的提取流程如图1所示。

图1 ORB特征提取流程

FAST关键点

FAST是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与领域的像素差别较大(过亮或过暗),那么它更可能是角点。相比于其他角点检测算法,FAST只需比较像素亮度的大小,十分快捷。它的检测过程如下(图2):

    1、在图像中选取像素p,假设它的亮度为![I_p](https://latex.codecogs.com/gif.latex?I_p)。

    2、设置一个阈值T(一般设为![I_p](https://latex.codecogs.com/gif.latex?I_p)的20%)。

    3、以像素p为中心,选取半径为3的圆上的16个像素点。

    4、假如选取的圆上有连续的N个点的亮度大于![I_p+T](https://latex.codecogs.com/gif.latex?I_p+T)或小于![I_p-T](https://latex.codecogs.com/gif.latex?I_p-T),那么像素p可以被认为是特征点(N通常取12, 即FAST-12,。其他常用的N取值为9和11,他们分别被称为FAST-9和FAST-11)。

    5、循环以上四步,对每一个像素执行相同的操作。

FAST特征点虽然速度快,但是FAST角点不具有方向信息,并且还有尺度问题。比如远处看像是角点的地方,接近后看可能就不是角点了。针对FAST角点的问题,ORB添加了尺度和旋转的描述。尺度不变性由构建图像金字塔,并在金字塔的每一层上检测角点来实现。而特征的旋转是由灰度质心法(Intensity Centroid)实现的。


图2 Oriented FAST特征点提取过程

图像金字塔是图像处理的常用方法,即对原始图像进行逐层的缩放,得到各种尺度下的图像。缩小后的图像可以看成是从更远的地方看到的图像。


图3 图像金字塔

在旋转方面,只需要计算像素点p邻域的灰度质心m,邻域中心P到灰度质心m的方向就是特征点的方向。从而得到Oriented FAST。邻域的灰度质心计算过程如下:

    1、在邻域B中,定义邻域的矩为

m_p_q=\sum_{x,y\in B}x^py^qI(x,y), \quad p,q=\left\{0,1\right\}

    2、通过矩可以找到图像块的质心:

C=\left(\frac{m_{10}}{m_{00}}, \frac{m_{01}}{m_{00}} \right )

    3、连接邻域的几何中心p与质心C,得到一个方向向量![\overrightarrow{OC}](https://latex.codecogs.com/gif.latex?%5Coverrightarrow%7BOC%7D),于是特征点的方向可以定义为

\theta=arctan\left( m_{01}/m_{10}\right )

BRIEF描述子

BRIEF是一种二进制描述子,其描述向量由许多个0和1组成,这里的0和1编码了关键点附近两个随机像素(比如p和q)的大小关系:如果p比q大,则取1, 反之就取0。按高斯分布依次挑选256个这样的点对(openCV默认是256),最终可以得到一个256维的向量,并且向量中的每个元素只能取0或1两个值。值得注意的是为了提高描述子的抗噪性,需要首先对图像进行高斯平滑处理。为了使特征点描述具有旋转不变性,还要将特征点的方向考虑进来。只需要将BRIEF中按高斯分布依次挑选的的256个点对按特征点方向旋转,得到新的256个点对,对新的点对计算分配特征值即可,这样就得到了Steer BRIEF描述。到这里,ORB特征就提取出来了。

特征匹配

特征匹配是确定两张图像中特征点的对应关系。考虑两个时刻的图像。如果在图像I_t中提取到特征点x_t^m,m=1,2,...,M,在图像I_{t+1}中提取到特征点x_{t+1}^n,n=1,2,...,N,如果寻找这两个集合元素的对应关系呢?最简单的特征匹配方法就是暴力匹配(Brute-Force Matcher)。即对每一个特征点x_t^m与所有x_{t+1}^n计算描述子之间的距离,取最近的一个作为匹配点。描述子距离表示了两个特征之间的相似程度。对于像BRIEF这样的二进制描述子,往往使用汉明距离(Hamming distance)。两个二进制串之间的汉明距离,指的是其不同位数的个数。

当特征点数量很大时,暴力匹配法的运算量将变得很大,此时,快速近似最近邻(FLANN)算法更加适合于匹配点数量极多的情况。

ORB特征示例


ORB特征点


ORB特征点匹配


本文转载自: https://blog.csdn.net/qq_34493401/article/details/128371741
版权归原作者 ros漫步 所有, 如有侵权,请联系我们删除。

“ORB特征”的评论:

还没有评论