ORB详解 of 《2D视觉》

目录

一、引言

一.FAST

1.1 FAST概述    

1.2 特征点提取 of FAST

1.3 对FAST的评价

二、BRIEF

2.1 BRIEF概述

2.2 特征点描述 of BRIEF

2.3 关于BRIEF的实践经验

2.4 对BRIEF的评价

三. ORB

3.1 ORB概述       

3.2 旋转不变性 of ORB

3.3 关于尺度不变性改进 of ORB

3.4 对ORB的评价


一、引言

        在局部特征点检测快速发展的时候,人们对于特征的认识也越来越深入,近几年来许多学者提出了许许多多的特征检测算法及其改进算法,在众多的特征提取算法中,不乏涌现出佼佼者。从最早期的Moravec,到Harris,再到SIFT、SUSAN、GLOH、SURF算法,可以说特征提取算法层出不穷。各种改进算法PCA-SIFT、ICA-SIFT、P-ASURF、R-ASURF、Radon-SIFT等也是搞得如火如荼,不亦乐乎。


一.FAST

1.1 FAST概述    

        在FAST( Features from Accelerated Segments Test )出来之前的一些算法如SIFT、SURF提取到的特征也是非常优秀(有较强的不变性),但是时间消耗依然很大,而在一个系统中,特征提取仅仅是一部分,还要进行诸如配准、提纯、融合等后续算法,因此提高特征检测的实时性是非常必要的。 

        Edward Rosten和Tom Drummond两位大神经过研究,于2006年在《Machine learning for high-speed corner detection》中提出了一种FAST特征点,并在2010年稍作修改后发表了《Features From Accelerated Segment Test》。

        FAST是一种特征点(角点)提取算法,并不涉及特征点的特征描述。Rosten等将FAST角点定义为:若某像素与其周围邻域内足够多的像素点相差较大,则该像素可能是角点。

1.2 特征点提取 of FAST

1、建模如上图所示,以一个像素p为中心,半径为3的圆上有16个像素点(a1、a2、...、a16),16个点呈现对称关系:<a1,a9>、<a2,a10>...,<a8,a16>。

2、一级候选点定义一个阈值T,计算a1、a9与p的像素差绝对值|p-a1|、|pa9|。若{ |p-a1|,|p-a9| }2个值中至少存在1个(1/2)大于阈值T,则将p点定为一级候选点并继续考察,否则将p定为非FAST特征点。

3、二级候选点在p是一级候选点的条件下,若{ |p-a1|,|p-a9| ,|p-a5| ,|p-a13| }4个值中至少存在3个(3/4)大于阈值T,则将p点定为二级候选点并继续考察,否则将p定为非FAST特征点。

4、三级候选点在p是二级候选点的条件下,若{ |p-a1|,|p-a2|,...,|p-a16| }16个值中至少存在9个大于(9/16)阈值T,则将p点定为三级候选点(记为f点)并继续考察,否则将p定为非FAST特征点。

5、非极大值抑制。在三级候选点的邻域内可能存在其他的三级候选点,为解决特征点在邻域内的冗余,需要进行非极大值抑制。  首先为每个f点计算FAST分值s:

然后进行判断,选出FAST特征点:(1)若f邻域内有多个三级候选点,并且f是所三级候选点中s取值最大的,则将f选为FAST特征点,否则将f抑制掉。 (2)若f邻域内只有一  个特征点,则将f选为FAST特征点。

1.3 对FAST的评价

优点FAST算法比其他已知的角点检测算法要快很多倍

缺点

1.当图片中的噪点较多时,易受噪点影响。

2.算法的效果还依赖于一个阈值T。

3.FAST不产生多尺度特征,不具备尺度不变性

4.FAST特征点没有方向信息,不具备旋转不变性不具备旋转不变性。

 

 

 

 


二、BRIEF

2.1 BRIEF概述

          Lowe在2004提出的SIFT(Scale-invariant feature transform),是一种128维的浮点描述子,其不仅仅提取代价高,而且匹配代价十分高(虽然有KDTree),还造成了大量空间浪费。   BBRIEF(Binary Robust Indenpendent Elementary Features)是一种生成二值化描述子的算法,通过BRIEF可将一个特征点用一个二进制串进行描述,而并不需要去计算一个类似于SIFT的特征描述子。

        BRIEF是由Michael Calonder, Vincent Lepetit, Christoph Strecha, and Pascal Fua等人完成发表在ECCV2010上,BRIEF用二进制串描述局部特征,有两个优点:

  1.  很少的bit就能描述独特的性质;
  2.   可以用汉明距离计算两个二进制串之间的特征,计算速度快。在实际应用中的好处是:算的准;算的快;省内存

2.2 特征点描述 of BRIEF

1.建模。以特征点p为中心,取其大小为SxS的邻域P(论文中并未提及S的取值,也未讨论S的大小对结果的影响,但是通过原作者之后做的实验中发现,原作者使用的S大小为31)

2.去噪。原始图像可能存在大量噪声,在构造上述描述子时,只考虑了单个像素处的像素值,因此对噪声非常敏感,会对结果产生影响。因此,通过对区域P进行预平滑,可以降低这种敏感性,从而提高描述子的稳定性可重复性。(原作者用的是高斯平滑,当1<σ<3时,识别率相对较好,实际中原作者用的σ=2,卷积核大小为9x9。)

3.随机选取点对在特征点的邻域块P内选择n个点对{ <X,Y>|<x1,y1>,<x2,y2>,...<xn,yn> },Calonder的实验中测试了5种采样方法:

            (a).  X,Y均呈同一均匀分布X~U(-S/2,S/2),Y~U(-S/2,S/2)。

(a). X,Y均呈同一均匀分布的点对选取结果

 

           (b).  X,Y均呈同一高斯分布X~N(0 , 1/(25*S^2)),Y~N(0 , 1/(25*S^2))。准则采样服从各项同性的同一高斯分布。

(b). X,Y均呈同一高斯分布的点对选取结果

            (c).  X,Y呈不同高斯分布,先采样X,再采样YX~N(0 , 1/(25*S^2)),Y~N(0 , 1/(100*S^2)),采样分两步进行,首先在原点处为X进行高斯采样,然后以X为中心,对Y进行采样。

(c). X,Y呈不同高斯分布并分两步的点对选取结果

            (d).   X,Y在空间量化极坐标下的离散位置进行随机采样

(d). X,Y在离散极坐标系下进行随机采样的点对选取结果

          (e).   把X固定为(0,0),Y在空间量化极坐标下的离散位置进行随机采样

(e). X固定,Y在离散极坐标系下进行随机采样的点对选取结果

说明:(e)较其他4种随机方法性能相差较多,故舍弃;(b)相对其他3种方法有略微的优势,所以原作者在paper中用的是(b)方法。原作者从五对图片中提取了大约4000个点对,特征字符串位数为256位,也就是说最大汉明距离为256,通过实验得知非匹配点的分布大致是以128为中心的高斯分布,而匹配点的汉明距离围绕在一个较小值附近,如下图所示。但是作为分离匹配点和非匹配点的具体策略和阈值,paper中并未给出。

在这里插入图片描述

 

4.生成BRIEF特征描述子。

        P表示特征点p对应的邻域;I(x)为x点的像素值大小;brief(p),为针对特征点p,在其邻域P内生成的BRIEF二进制特征描述子;n为特征描述子的二进制维度,n=128,256或512。

        也就是比较x,y点的像素值,如果y点像素值大则为1,否则为0。将n个结果从最低位到最高位依次组成二进制串,形成n维二进制描述子brief(p)。

        选取点对的顺序很重要,因为在对比结果的时候也要用相同的顺序来计算二进制描述子brief(p),并且计算其他特征点的描述子的时候也要以相同的顺序选取点对。

2.3 关于BRIEF的实践经验

  •  不匹配特征点的描述子的Hamming距离在128左右。对特征点进行匹配,这时计算两特征点描述子的Hamming距离。判断是否匹配的依据:经过大量实验数据测试,不匹配特征点的描述子的Hamming距离在128左右,匹配点对描述子的Hamming距离则远小于128。(Hamming距离:表示两个(相同长度)字对应位不同的数量。具体来说,就是对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。)
  • 准确性上,BRIEF_512>BRIEF_256>SURF、U-SURF>BRIEF_128512位的BRIEF表现最好。256位的BRIEF表现略差512位的BRIEF,但是优于SURF and U-SURF。128位的BRIEF太短了,表现比较局限。
  • 角度敏感性当旋转角度在10到15度时,几乎没什么影响,但是随后会急剧下降,也就是说不具备旋转不变性。BRIEF没有专门考虑旋转的问题,那么就从0°~360°进行旋转测试吧,发现:
  1.    小范围(0-15°)内,BRIEF识别率最高,其次是U-SURF,然后是SURF和o-BRIEF;
  2.    角度再大一点(15°~30°),BRIEF和U-SURF准确率迅速下降到0;
  3.    角度再大,则这两个算法的识别率保持为0.
  4.   而SURF和o-BRIEF这两个考虑旋转方向的算法,始终能保持大于60%的准确率,而且在90°的倍数角度处,识别率有极大值。
  • 速度上,BRIEF>>SURF匹配两张图片的特征点通常有一下三步:1)选择特征点;2)特征点描述;3)特征点匹配。速度测试结果(BRIEF -k,k=n/8,n是描述子维数,环境:2.66 GHz/Linux x86-64)如下图:

在这里插入图片描述

         可以看出,BRIEF的速度远远高于SURF的速度。

2.4 对BRIEF的评价

优点

1.BRIEF抛弃了传统的用梯度直方图描述区域的方法,改用检测随机响应,描述子生成速度快

2.计算汉明距离只需通过异或操作加上统计二进制编码中“1”的个数的操作,这些通过底层的运算即可实现,生成的二进制描述子匹配速度快,也便于在硬件上实现

缺点

1.不具备旋转不变性

2.不具备尺度不变性

3.容易受噪声影响

 

 

 

 

 

 


三. ORB

3.1 ORB概述       

        ORB(Oriented FAST and Rotated BRIEF)是一种快速特征点提取和描述的算法,是由Ethan Rublee, Vincent Rabaud, Kurt Konolige 以及Gary R.Bradski在2011年一篇名为“ORB:An Efficient Alternative to SIFTor SURF”的文章中提出。ORB算法分为两部分,分别是特征点提取特征点描述

       特征点提取是由FAST(见第二章)算法发展来的,特征点描述是根据BRIEF(见第三章)特征描述算法改进的。ORB特征是将FAST特征点的检测方法与BRIEF特征描述子结合起来,并在它们原来的基础上做了改进与优化,主要解决了BRIEF描述子不具备旋转不变性的问题。据说,ORB算法的速度是sift的100倍,是surf的10倍。

3.2 旋转不变性 of ORB

        回顾一下BRIEF描述子的计算过程:在当前关键点P周围以一定模式选取n个点对,组合这n个点对的T操作的结果就为最终的描述子。

        BRIEF选取点对的时候,是以当前关键点为原点,以水平方向为x轴,以垂直方向为y轴建立坐标系。当图片发生旋转时,坐标系不变,同样的取点模式取出来的点却不一样,计算得到的描述子也不一样,这是不符合我们要求的,如下图所示:

BRIEF建系导致图像旋转后,点对不对应

        因此,我们需要重新建立坐标系,使新的坐标系可以跟随图片的旋转而旋转,这样我们以相同的取点模式取出来的点将具有一致性。

       ORB在计算BRIEF描述子时建立的坐标系是以关键点为原点,以关键点P和取点区域的质心M的连线PM为x轴正方向,垂直x轴方向为y轴建立坐标系。

        我们知道P是固定的,质心M是随物体旋转而旋转,那么PM与物体的旋转保持一致,当我们以PM作为坐标轴时,在不同的旋转角度下,我们以同一取点模式取出来的点是一致的,这就解决了旋转一致性的问题。

ORB利用质心建系,图像旋转后,点对仍对应

质心M的计算公式如下:

3.3 关于尺度不变性改进 of ORB

        ORB算法本身并未解决尺度不变性问题,后人对ORB进行改进,以增加尺度不变性。(待续...2020.8.16)

 

3.4 对ORB的评价

优点

ORB是一种快速的特征提取和匹配的算法。它的速度非常快

ORB对BRIEF在建系方面进行了改进,其具有了较稳定的旋转不变性

缺点

ORB使用二进制串作为特征描述,相应的算法的质量较差,这就造成了高误匹配率

ORB算法在增加算法的尺度变换的情况下仍然没有取得较好的结果,在尺度方面效果较差

 

 

 



 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值