点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者:小葡萄

https://zhuanlan.zhihu.com/p/57235987

本文仅做学术分享,如有侵权,请联系删除。

在ORB-SLAM(2)的论文中,作者提到了一种使图像中提取的ORB特征分布更加均匀的方法。这种策略是否有助于提高SLAM的性能?为什么作者不使用OpenCV中的ORB特征提取的实现?本文将通过实验,比较这两种ORB特征提取方法对ORB-SLAM2性能的影响。

两种ORB特征器效果对比

随便从TUM数据集中取出一张照片,分别使用OpenCV的实现和ORB-SLAM2的实现提取1000个ORB特征,效果如下图。很明显,OpenCV提取的特征点比较集中,出现了扎推现象。而ORB-SLAM2提取的特征点,分布比较均匀。

直观上想象,特征点分布比较集中,极端情况就是所有特征都集中到了一点,那么相机的位姿就无法解算。特征点分布太过集中,SLAM系统的精度可能会有所下降。下面,通过实验验证这一想象。

实验条件

数据集: TUM RGB-D数据集中的6个序列 (严谨的说,以下结论目前只适用于RGB-D相机,没有测试单目和双目的效果)
系统:Ubuntu 16.04
CPU: Intel® Core™ i7-8700 CPU @ 3.20GHz × 12
OpenCV: 3.3.1
ORB-SLAM2参数配置:使用ORB-SLAM2原版配置

轨迹精度对比

采用的评测标准是absolute trajectory error(ATE) RMSE, 结果见下图。大部分序列下,ORB-SLAM2版本的精度更高。fr1_xyz序列,OpenCV版本的精度稍高,但是和ORB-SLAM2的精度也差不太多。而OpenCV的版本在fr2_3h序列中出现了跟丢现象,直到最后也没有找回,所以测试轨迹精度的数据只占了整个序列开始很小一部分,在轨迹精度上稍显高一些。实际上,fr2_3h的序列中,相机运动的较快,场景中也距离相机较远,光线也不好。ORB-SLAM版本在所有序列上都没有跟丢,因此鲁棒性更高。总之,ORB-SLAM2的均匀化特征提取的策略提高了系统的精度和鲁棒性。

轨迹误差对比, ATE, RMSE (m). 备注:freiburg1_xyz(fr1_xyz),  freiburg1_desk(fr1_desk), freiburg2_360_hemisphere(fr2_3h), freiburg2_desk(fr2_desk), freiburg3_long_office_household (fr3_loh), freiburg3_sitting_halfsphere(fr3_sh)

轨迹误差

地图对比

就ORB-SLAM2的版本而言,地图点比较均匀和稀疏,关键帧之间的边相对较少。这似乎表明ORB-SLAM2的均匀提取策略降低了特征的重复性,不利于保证同一个特征在多帧之间都提取到

而OpenCV版本的地图点比较集中,这是由于OpenCV选择响应最高的点所导致的。关键帧之间的边也更加密集,这似乎说明响应高的那些ORB特征点具有更好的复现性,可以在连续的更多帧重复提取、跟踪。但是,需要注意的是,这些特征点都集中在一起,即便形成了更强大的网络,获得的估计精度还是没有ORB-SLAM2版本的高。也就是说,特征点均匀分布是可以提高系统精度的。

序列fr2_desk的地图

下面再看一下,在fr2_desk序列中,每个frame追踪到的地图点的个数。ORB-SLAM2版本相对于OpenCV版本追踪的地图点数量要少,这也与上图中OpenCV版本的关键帧网络更加稠密相互印证。但是,这并不能表明ORB-SLAM2追踪的质量差,因为有可能是ORB-SLAM2的地图点的数量本来就少呢?所以我又统计了以下地图中关键帧的数量和地图点的数量。ORB-SLAM2版本的关键帧数量比OpenCV版本的还多,但是地图点的数量没有OpenCV版本的多。ORB-SLAM2版本中,地图点少,关键帧多,原因可能是1. ORB特征的复现性不好,不能在较多帧之间追踪,构造更多的地图点。2. 均匀化的提取策略提取的特征点数量没有OpenCV原版实现中提取特点数多。(这两点目前没有验证。)

值得注意的是,虽然ORB-SLAM2版本每一帧跟踪的特征点数少,但是最终的轨迹精度却很高。这就体现出ORB-SLAM2特征提取方法的优越性了,可能是特征点分布比较均匀的功劳。OpenCV版本跟踪的点数虽多,但是这些点比较集中。

序列fr2_desk中每帧追踪到的地图点个数——直方图

每个序列的地图中关键帧的数量

每个序列的地图中地图点的数量

地图点存活率对比

提取ORB特征,一是为了构造地图点,二是为了实现数据关联。一个ORB特征点对应的地图点被越多的帧观测到,那么就能形成越强大的Graph,从而也能保证系统的精度。也就是说,多帧之间的ORB特征应具有很好的重复性,这样才能保证形成强大的网络。一个地图点能够被越多的帧观测到越好。于是,我统计了每个特征点相连的关键帧数量。从这幅图似乎感觉两种特征提取方法差别不大,可能对数据影响最大的是实验环境和运动轨迹吧?

单个地图点观测到的关键帧数量

特征提取时间

ORB-SLAM2的特征提取时间为10.24±2.64 ms,OpenCV的特征提取时间为9.11±2.82 ms。两者差别不大。

总结

ORB-SLAM2中的ORB特征提取方法相对于OpenCV中的方法,提高了ORB-SLAM2的轨迹精度和鲁棒性。增加特征提取的均匀性可以提高系统精度,但是似乎会降低特征提取的重复性。

我只用了TUM RGB-D数据集的6个序列来测试,因此相关结论仅供参考。

推荐阅读:

  • 专辑|相机标定

  • 专辑|3D点云

  • 专辑|SLAM

  • 专辑|深度学习与自动驾驶

  • 专辑|结构光

  • 专辑|事件相机

  • 专辑|OpenCV学习

  • 专辑|学习资源汇总

  • 专辑|招聘与项目对接

  • 专辑|读书笔记

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

ORB特征提取策略对ORB-SLAM2性能的影响相关推荐

  1. ORB-SLAM中的ORB特征(提取)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:小葡萄 https://zhuanlan.zhihu.com/p/61738607 本文仅做学术 ...

  2. ORB特征点提取与均匀化——ORBSLAM2源码讲解(一)

    文章目录 前言 一.基础知识 二.ORB特征均匀化策略对性能的影响 三.ORB特征金字塔 四.ORB提取扩展图像 五.ORB特征均匀化 总结 前言 本博客结合哔哩大学视频ORBSLAM2[ORBSLA ...

  3. SLAM: Orb_SLAM中的ORB特征

    原文链接:什么是ORB 关于Orb特征的获取:参考 最新版的OpenCV中新增加的ORB特征的使用 ORB是是ORiented Brief 的简称,对Brief的特定性质进行了改进. ORB的描述在下 ...

  4. opencv检测相交点_OpenCV特征点检测------ORB特征

    ORB是是ORiented Brief的简称.ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Brad ...

  5. ORB特征均匀提取策略对性能的提升有多大?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 在ORB-SLAM(2)的论文中,作 ...

  6. ORB特征原理(浅显易懂)

    特征点的检测 图像的特征点可以简单的理解为图像中比较显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等. 原图 轮廓线(可能的特征点) ORB采用FAST(features from accel ...

  7. orb特征 稠密特征_一种基于ORB-SLAM2的双目三维稠密建图方法技术

    本发明专利技术公开了一种基于ORB‑SLAM2的双目稠密建图方法,涉及机器人同步定位与地图创建领域,该方法主要由跟踪线程.局部地图线程.闭环检测线程和稠密建图线程组成.其中稠密建图线程包含以下步骤:1 ...

  8. 【OpenCV-Python】——哈里斯/Shi-Tomas角检测FAST/SIFT/ORB特征点检测暴力/FLANN匹配器对象查找

    目录 前言: 1.角检测 1.1 哈里斯角检测 1.2 优化哈里斯角 1.3 Shi-Tomasi角检测 2.特征点检测 2.1 FAST特征点检测 2.2 SIFT特征检测 2.3 ORB特征检测 ...

  9. 图像特征点—ORB特征点

    图像特征点-ORB特征点 参考文章:https://mp.weixin.qq.com/s/u5gSCwQ3XahF0fe19biAyQ ORB特征包括特征点和描述子.特征点用于筛选比较"特殊 ...

最新文章

  1. 从今天开始收集一些经典的算法。
  2. 丰田汽车受战斗操作模式启发影响推人机合作子驾车
  3. 深度学习入门之PyTorch学习笔记:多层全连接网络
  4. python独立log示例_带有Python示例的math.log()方法
  5. Vue-cli3配置教程入门
  6. 脉冲神经网络基础知识,SpikeProp
  7. GoF的23种设计模式之创建型模式的特点和分类
  8. 阿里“拆台”,中台真的不香了?
  9. 苹果手机配对手表总是显示服务器,苹果手表连接手机为什么显示要更新
  10. 负载均衡添加ssl证书
  11. 信号完整性(SI)电源完整性(PI)学习笔记(二十八)S参数在信号完整性中的应用(三)
  12. matlab和Excel的交互 非xlsread和xlswrite(1-Excel基础)
  13. 西部之旅之------相机的选择
  14. See-SQL审计平台介绍及部署
  15. linux 中read命令后面-p是什么意思呢
  16. HTTP常见状态码404、400、500等对应的错误原因
  17. pid刘金琨matlab仿真
  18. Linux(SLES)挂载NTFS移动硬盘实践
  19. Python根据地理位置,得到省市区(高德地图api)
  20. 概率密度估计--参数估计与非参数估计

热门文章

  1. 记录 android 开发的一个 面试 问题
  2. SilverLight 一日两次碰壁
  3. 电网机巡智能管控平台渗透测试经历
  4. 淘宝服务端并发分布式架构演进之路
  5. 一口气说出四种幂等性解决方案,面试官露出了姨母笑~
  6. 还不懂Docker?一个故事安排的明明白白!
  7. 微服务业务系统(Biz-UI)的中台构建之路
  8. 面试官:你知道双机存储有哪几种吗?分别有哪些优缺点(主备、主从、主主)...
  9. 浓缩精华的架构演进过程,我连看了六遍!
  10. 推荐10个腾讯系大佬!第一个从华为离职,写了2本畅销书!