点击下方卡片,关注「计算机视觉工坊」公众号
选择星标,干货第一时间送达
作者:一杯红茶 | 编辑:计算机视觉工坊
添加小助理:dddvision,备注:SLAM,拉你入群。
扫描下方二维码,加入3D视觉知识星球,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料:近20门视频课程(星球成员免费学习)、最新顶会论文、计算机视觉书籍、优质3D视觉算法源码等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!
最近,我们《3D视觉从入门到精通》星球的一位小伙伴在星球内部提出了这个问题:目前室内RGB-D SLAM的sota方法有哪些呢?
![7c2c9a1c54c7ab0dfc6869ae36aac1f4.png](https://i-blog.csdnimg.cn/blog_migrate/ccde4ebc0f966cc385f360d4ed00a99c.png)
由于室内场景的稠密三维重建是一个非常火热的研究领域了,到目前为止出现了许许多多好的研究工作,恕能力和时间的限制,不能进行一一介绍,所以对目前一些比较常用的RGB-D SLAM解决方案进行介绍。
1.BundleFusion
BundleFusion是一种稠密的实时室内场景三维重建算法框架。输入为RGB-D相机采集的并且是对齐好的RGB图像和深度图的数据流。输出为重建好的稠密三维场景模型。
整个算法流程如下图所示:
![02950b087488b836776e6255732414b3.png](https://i-blog.csdnimg.cn/blog_migrate/f4c2de32fb951f315801d839403dd5f2.png)
其优点在于重建效果在所有RGB-D SLAM中靠前,支持在GPU上实时鲁棒跟踪,可以在跟踪失败时移动到重建成功的地方进行重定位,匹配上后继续跟踪。
但是缺点在于由于成像传感器存在噪音,稀疏关键点匹配可能产生小的局部误匹配。这些误匹配可能会在全局优化中传播,导致误差累积。实际重建时效果和所使用深度相机的性能、待重建场景的纹理丰富程度关系很大。
论文获取地址:http://arxiv.org/pdf/1604.01093.pdf
项目地址:https://graphics.stanford.edu/projects/bundlefusion/
源码获取地址:https://github.com/niessner/BundleFusion
2.InfiniTAM
InfiniTAM是牛津大学于2016年发表的稠密SLAM方案,目前已经发展到了v3版本,该方案基于KinectFusion和体素块哈希表发展而来。首先,InfiniTAM方案在建图部分利用TSDF模型(截断符号距离场)进行建模,只是在建模的时候,不是对整个空间都划分等大小的网格,而是只在场景表面的周围划分网格,且只为待重建的表面上的体素块分配显存,并使用哈希表这一结构来管理GPU对体素块的内存分配和数据访问。通过这样的方法,InfiniTAM 大大减小了稠密建图对 GPU 的内存消耗,提升了算法效率。
算法流程如下图所示:
![56f4873c4a0b7718fa4101f60644e7f1.png](https://i-blog.csdnimg.cn/blog_migrate/b585c26a957058e9f1ad4a83d1aa6077.png)
项目地址:https://www.robots.ox.ac.uk/~victor/infinitam/index.html
代码获取地址:https://github.com/victorprad/InfiniTAM
3.RTAB-Map
RTAB-Map(基于外观的实时映射)是一种基于RGB-D、立体和激光雷达的SLAM算法框架,它以基于外观的增量闭环检测为基础。闭环检测使用词袋法来确定新图像来自先前位置或新位置的可能性。当闭环检测假设被接受时,一个新的约束将被添加到地图的图形中,然后图形优化器将地图中的误差最小化。RTAB-Map可单独与手持Kinect、立体摄像头或3D激光雷达配合使用,用于6DoF地图绘制;也可与配备激光测距仪的机器人配合使用,用于3DoF地图绘制。
算法流程如下图所示:
![af5e4adf7f7e7812030e69b321aacf5d.png](https://i-blog.csdnimg.cn/blog_migrate/2e05b87a6af83029ffb6b442d097e449.png)
其优点在于定位精度很准,支持视觉、激光传感器,支持跨平台、ROS,在线处理
缺点在于鲁棒性不是很好,如果建图时间和重定位时间间隔得比较久,或者光线变化都很明显的话,重定位会失败。而且点云网格化用possion重建,不是主流的TSDF,速度会慢。
项目地址:https://introlab.github.io/rtabmap/
代码获取地址:https://github.com/introlab/rtabmap
4.ORB-SLAM3
在前作ORB-SLAM2的基础上,大佬于2020年7月开源了ORB-SLAM3的论文和源码。ORB-SLAM3支持的设备和功能更多,支持单目、双目、RGB-D相机,针孔、鱼眼,视觉惯性里程计,多地图等,几乎覆盖了视觉SLAM各个分支。总体来说,ORB-SLAM3基本框架、代码结构都是ORB-SLAM2的延伸,但是加入了很多新的方法,实现了更好的效果。
主要系统架构如下图所示:
![10b9f01e25c15cf591d843dacd32cfc0.png](https://i-blog.csdnimg.cn/blog_migrate/c7dfc906242ffed0349121cb08b07e21.png)
论文获取地址:https://arxiv.org/pdf/2007.11898.pdf
代码获取地址:https://github.com/UZ-SLAMLab/ORB_SLAM3?tab=readme-ov-file
除了以上介绍的四种比较经典著名的,还有一些最新的而且效果不俗的解决方案,这里就不一一介绍了。但是欢迎大家扫描下方二维码加入到我们《3D视觉从入门到精通》星球中来,星球内经常会分享讨论三维视觉领域相关的话题,一些最前沿的技术、论文分享都会在星球内部进行。我们还会定期举办一些视频交流会,同一个细分领域的小伙伴可以更加深入密切的交流,毕竟,科研和工作都是苦涩的,多一些同行人会有趣不少!