咨询热线:15541043434 联系人:金子 地址:江西省吉安市安福商业街
(一)ORB描述子提取
来源:WSB万事博备用登录页面 发布时间:2019-11-12 点击量:26
ORBSLAM2中使用ORB描述子的方法
经典的视觉SLAM系统大体分为两种:其一是基于特征点法的,其二是基于直接法的。那么本文主要就讲特征点法的SLAM。
基于特征点法的视觉SLAM系统典型的有PTAM,ORBSLAM等。本文主要围绕ORBSLAM2的方案来阐述特征点法SLAM,因为ORBSLAM2可以说是特征点法SLAM的巅峰之作。ORBSLAM2采用三个主要线程:跟踪,局部建图和闭环以及一个额外线程:全局BA,该线程只有在闭环时才会触发。值得注意的是,ORBSLAM2中每个模块中都采用ORB描述子,而不像之前的其他系统那样跟踪和回环检测使用不同的特征点,这种做法一方面是节省提取时间,另一方面可以使得整个系统更加简洁。
在跟踪阶段,ORBSLAM2对输入图像提取ORB描述子,与参考帧图像的ORB描述子进行特征匹配,具体的特征匹配方法下一讲中我们再详细讨论。如图1蓝色线所示,Rf表示参考帧(在ORBSLAM2中即是最后一个插入的关键帧Kf),Cf表示当前帧。p1表示参考帧Rf中的像素点,而p2表示当前帧Cf中与参考帧Rf匹配的ORB特征点位置。ORBSLAM2中在地图中查找p1的三维坐标P,如图1绿色线所示,查询完毕后利用外参T=[R,t]将P投影到当前帧Cf中,如图1红色线所示。如图1中黄色线所示,p2为P在当前帧Cf中的真实位置,而p2"为实际投影位置,二者之间存在误差,通过优化外参T=[R,t]来使得所有特征点之间的冲投影误差最小,实现相机的位置跟踪:
如公式(1)所示,即为当前帧和当前帧所有匹配特征点对的重投影误差,除了单纯的计算重投影误差外,注意到公式(1)中,采用了核函数,来防止外点对非线性优化的过度影响(非线性优化中最怕的就是外点,因为他会导致其他内点都去迁就他,结果优化效果与真实值的差距自然较大)。此外,公式(1)还利用了信息矩阵来对不同的特征点添加权值信息,最简单的信息就是取信息矩阵为单位阵,即对所有特征点都一视同仁。可以看见,这都是有一些优化的小技巧在的,纵观全文,你会发现ORBSLAM2中处处都是优化的细节,简直到了丧心病狂的地步 - -|。
在局部优化和全局优化的时候,采用的也都是公式(1)的方法,只不过在闭环时为了节省计算时间,采用了pose-graph,即忽略所有点的信息,只对位姿进行优化。具体的内容后续博客我会尽量给大家讲清楚。
ORB描述子用于回环检测之前,会先利用Bag of word将ORB描述子进行转换,变成视觉词汇。在回环检测时,只需要比较词汇之间的相似性,即可判断机器人是否回到之前经过的地方。当然,这里还有一些其他的验证,后续也会给大家慢慢讲。
至此,ORBSLAM2中ORB描述子的使用算是给大家讲清楚了,接下来,就开始研究一下ORB描述子到底是怎么生成的以及为什么它会如此强大?
图 1
ORB描述子提取的方法
如上所说的,视觉SLAM系统中目前主流的是基于直接法或者基于特征点法。但是目前鲁棒性最好的描述子是SIFT描述子,但是提取过程太耗费时间,非常不适用于SLAM这种需要实时运行的系统,而基于SIFT描述子改进的SURF描述子尽管提高了一个数量级的提取效率,但仍然无法满足SLAM系统的要求。而更快速的FAST关键点对光照非常敏感,BRIEF描述子可以很好地利用像素块的信息构成一个具有特异性的描述子,但其对于旋转不具备不变形。由于现存的大部分描述子要么因为鲁棒性不足,要么因为提取时间过长等缺陷,因此迫切需要一种在鲁棒性和提取时间这种的方案出现,而ORB描述子就是答案。
ORB发掘了现有的提取效率最快的关键点FAST以及描述子BRIEF,并在其原有基础上进行改进,形成具备尺度不变形和旋转不变形的ORB描述子。
Fast关键点提取
对输入图像中每个像素提取FAST关键点,即在当前提取像素点p的局部块中,比较块中的像素(1-16)与中心像素p的灰度差,如图2所示。
图 2
在ORB描述子的文章ORB: an efficient alternative to SIFT or SURF中,使用FAST9来提取FAST关键点,即在图2中的16邻域中,只要有9个像素点同时都比中心像素p小或者大,即认为其是关键点,但实际提取过程中这个像素差是可以添加阈值的。如公式(2)所示。
其中t即为阈值,必须满足像素差大于某一个值才能定义其为关键点。
为了避免关键点扎堆的情况出现,比如桌子边缘这类地方,会出现整个边缘布满FAST关键点。尽管关键点某些时候越多越好,但是将较差的部分滤掉,保留较好那部分关键点,显然是更好的选择,因为这会使得在使用过程中,增加系统的鲁棒性。
FAST中用极大值抑制来筛选出较好的关键点,统计关键点p1的邻域中的像素差总和分数s1,对比相邻关键点之间的差异,即s1和s2,在邻域内只保留分数最大的关键点。
显然FAST关键点不具有尺度不变形,因此采用了空间金字塔为FAST构建尺度不变性,在每一个尺度下的图像中提取FAST关键点。具体在源码解析的时候会为大家详细解读。
由于BRIEF描述子不具备旋转不变性,为了克服这个缺陷,ORB描述子通过计算FAST关键点局部块的矩来生成旋转方向(即利用块中所有像素y方向上的差值之和与x方向上的差值之和的比值,可以理解成tan(theta) = delta y / delta x):
BRIEF描述子生成
BRIEF描述子主要是通过比较中心像素点p任意邻域内的256对像素之间的差值来生成二进制描述子的。如公式(6)所示,任意一对像素点p(x)和p(y),若p(x)<p(y),则描述子对应的位置为1,否则置为0。
值得注意的是,很多人看到论文的时候会觉得BRIEF描述子并没有用到上面FAST生成的灰度质心角度啊。但是参考SIFT描述子,ORB描述子也采用了同样的方法,在计算描述子的时候,ORB描述子通过旋转匹配对的位置,再进行计算,因此就使得ORB描述子具备了旋转不变性。
通过机器学习的方式随机选择多种组合的像素对,作者通过选择最好的一组256对像素点的组合作为ORB描述子的pattern。
总结
本文首先介绍了
ORB描述子在ORBSLAM2中的应用,包括跟踪阶段和回环检测时ORB如何使用的;
ORB描述子的提取方法,包括FAST关键点的提取和BRIEF描述子的生成。
下一讲将会将ORBSLAM2中的ORB描述子提取源码分离出来,单独实现并进行讲解。
PS:
如果您觉得我的博客对您有所帮助,欢迎关注我的博客。此外,欢迎转载我的文章,但请注明出处链接。
对本文有任何问题可以在留言区进行评论,也可以在泡泡机器人论坛:http://paopaorobot.org/bbs/index.php?c=cate&fid=1中的SLAM技术交流模块发帖提问。
相关产品
-
[汽车之家 新闻] 2017年4月9日,长安汽车与蔚来汽车战略合作签约仪式在北京举行。仪式上双方正式签署了战略合作的相关细则。长安汽车将成为继江淮之后,蔚来汽车在传统整车制造领域的第二个合作伙伴。不同于和江淮单纯的制造上的合作,蔚来和长安将创立合资公司,共同进行研发、营销。
-
于是,记者联系了百度,其公关部的工作人员承认其在推广内容中使用了容易引发网民误解的关键词,目前推广账户已被下线处理。
-
除国安和恒大之外,共有8支中超球队进入了亚洲前100,其中本赛季投入巨资的上海上港成为了四支亚冠球队之外,亚洲排名最高的一支中超球队,排在亚洲第74位。
-
对于此前曝出的“苹果新建总部导致湾区树木短缺”,接受《华尔街日报》采访的苹果首席设计师Jonathan Ive如此调侃着回应道。
-
援引Stuff消息,这对姐妹花名叫Amy zhang和Julie Zhang,在这次比赛中,她们给自己取名为“饺子姐妹”。她们笑言,自己是标准的“Chiwis”(Chinese Kiwis),她们自小在基督城长大,目前正在英国生活。
-
“我留心计算了一下,我这一个月除了限行每天都开车,电费也就100多元,没超过200元。”昨天,家住大兴区育龙家园的北京居民王铁铮告诉记者。3月初,王铁铮成为本市首个顺利在私家车位安装好私人充电桩的车主。记者了解到,作为目前唯一行驶私家电动汽车“满月”的车主,王先生已体验到新能源车低成本、低能耗的“魅力”。
-
宿醉是许多酒迷们无法避免的问题。每个国家都有解决宿醉的方法,小编收集了9个国家治疗宿醉的偏方!虽然有些方法很奇葩,却很奏效。
-
河北省侨办主任刘晓军称,该基金将为河北省侨务扶贫攻坚起到巨大的推动作用。李辉表示自己此次出资主要是带个头,希望以后能有更多的侨商加入这个行列,为国家扶贫事业做出自己应有的贡献,希望基金的设立能更好地帮助河北的贫困归侨侨眷尽快脱贫致富。
热点资讯
- 市值暴跌3400亿,曾经让苹果颤抖的三星,从天津溜了2019-11-06
- 中欧海事协定修正议定书的签署2019-11-07
- 童年再相遇!SRPG《数码宝贝:生存》官网正式上线2019-11-12
- 不知道什么游戏最热门?快来看看Steam平台上1000个最多人玩的游戏清单吧2019-11-08
- 宁听 | 《奇葩说》邱晨自曝患癌症:真正的生活叫做“向死而生”2019-11-08
- 晚上冥想,做你想做的事,做你想做的事。2019-07-02
- 滴滴无法再投机2019-07-02
- 京东苹果超级日:MacbookPro、iPhone秒杀,最高直降2100元2019-10-29