60项基于深度学习的SLAM顶会开源方案汇总(上篇)
0. 笔者个人体会
深度学习结合SLAM是近年来很热门的研究方向,也因此诞生了很多开源方案。笔者最近在阅读SLAM综述论文“A Survey on Deep Learning for Localization and Mapping: Towards the Age of Spatial Machine Intelligence”,该综述参考了255篇SLAM领域的顶会顶刊论文,并且涵盖了VO、建图、特征提取、定位、描述子提取、BA优化、回环、数据集等多个方向,非常全面。也因此,笔者一直想整理下文章中出现的开源项目,用于在后续工作中进行对比。本文将对该综述中出现的开源方案进行整理(2018年以后),并附上摘要和论文信息。虽然可能文章并不是最新的,但每项开源工作都是顶会顶刊,设计思路很巧妙,参考价值很高。由于方案较多,因此将分上下两节进行介绍。本节将介绍里程计、建图、特征提取、SLAM、回环方案以及论文中提到的两个数据集。
来源:微信公众号「3D视觉工坊」
1. 里程计
里程计(VO/VIO/IO/LO/LIO)估计传感器的自我运动,并将传感器之间的相对运动整合到全局姿态中。深度学习方法能够从传感器数据中提取高级特征表示,从而提供解决里程计问题的替代方法,而不需要手工设计的特征提取器。现有的基于深度学习的里程计模型可以分为端到端里程计和混合里程计,前者完全基于神经网络,后者是经典里程计算法和深度神经网络的组合。根据训练阶段真实标签的可用性,端到端系统可以进一步分为有监督和无监督。
1)GeoNet
标题:GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose作者:Zhichao Yin, Jianping Shi
单位:商汤研究院来源:2018 CVPR
原文链接:https://arxiv.org/abs/1803.02276
代码链接:https://github.com/yzcjtr/GeoNet
摘要:我们提出了一个联合无监督学习框架GeoNet,用于从视频中估计单目深度、光流和自运动。三个组件通过3D场景几何的性质耦合在一起,通过我们的框架以端到端的方式共同学习。具体来说,通过对单个模块的预测提取几何关系,然后将其组合为图像重建损失,分别对静态和动态场景部分进行推理。此外,我们提出了一种自适应几何一致性损失,以增加对异常值和非朗伯区域的鲁棒性,有效地解决了遮挡和纹理模糊问题。在KITTI驾驶数据集上的实验表明,我们的方案在三个任务中都取得了最好的结果,性能优于之前的无监督方法,与有监督方法相当。

2)Depth-VO-Feat
标题:Unsupervised Learning of Monocular Depth Estimation and Visual Odometry with Deep Feature Reconstruction
作者:Huangying Zhan, Ravi Garg, Chamara Saroj Weerasekera, Kejie Li, Harsh Agarwal, Ian Reid
单位:阿德莱德大学、澳大利亚机器人视觉中心、印度理工学院
来源:2018 CVPR
原文链接:https://arxiv.org/abs/1803.03893
代码链接:https://github.com/Huangying-Zhan/Depth-VO-Feat
摘要:尽管基于学习的方法在单视图深度估计和视觉里程计中显示出有希望的结果,但是大多数现有的方法以监督的方式处理任务。最近的单视图深度估计方法通过最小化光度误差探索了在没有完全监督的情况下学习的可能性。在本文中,我们探索了使用双目序列学习深度和视觉里程计。双目序列的使用使得能够使用空间(在左右对之间)和时间(向前向后)光度扭曲误差,并且将场景深度和相机运动约束在共同的真实世界比例中。在测试时,我们的框架能够从单目序列中估计单视图深度和双视图里程计。我们还展示了如何通过考虑深度特征的扭曲来改善标准光度扭曲损失。我们通过大量实验表明:(I)针对单视图深度和视觉里程计的联合训练改进了深度预测,因为对深度施加了额外的约束,并且实现了视觉里程计的有竞争力的结果;(ii)对于单视图深度估计和视觉里程计,基于深度特征的扭曲损失改进了简单的光度扭曲损失。在KITTI驾驶数据集上,我们的方法在两个任务上都优于现有的基于学习的方法。

3)CNN-SVO
标题:CNN-SVO: Improving the Mapping in Semi-Direct Visual Odometry Using Single-Image Depth Prediction
作者:Shing Yan Loo, Ali Jahani Amiri, Syamsiah Mashohor, Sai Hong Tang, Hong Zhang
单位:阿尔伯塔大学、马来西亚普特拉大学
来源:2019 ICRA
原文链接:https://arxiv.org/abs/1810.01011
代码链接:https://github.com/yan99033/CNN-SVO
摘要:帧间可靠的特征对应是视觉里程计(VO)和视觉同步定位与地图创建(V-SLAM)算法的关键步骤。与现有的VO和V-SLAM算法相比,半直接视觉里程计(SVO)具有两个主要优点,这两个优点导致了最先进的帧速率相机运动估计:直接像素对应和概率映射方法的有效实现。根据单幅图像深度预测网络的深度预测,初始化特征位置深度的均值和方差,从而改进SVO映射。通过显著降低初始化图点的深度不确定性(即,以深度预测为中心的小方差),好处是双重的:视图之间的可靠特征对应和快速收敛到真实深度以便创建新的图点。我们用两个室外数据集来评估我们的方法:KITTI数据集和Oxford Robotcar数据集。实验结果表明,改进的SVO映射提高了鲁棒性和摄像机跟踪精度。

4)RNN-Depth-Pose
标题:Recurrent Neural Network for (Un-)supervised Learning of Monocular VideoVisual Odometry and Depth
作者:Rui Wang, Stephen M. Pizer, Jan-Michael Frahm
单位:北卡罗来纳大学教堂山分校
来源:2019 CVPR
原文链接:https://arxiv.org/abs/1904.07087
代码链接:https://github.com/wrlife/RNN_depth_pose
摘要:基于深度学习的单视角深度估计方法最近表现出非常有前景的结果。然而,这类方法忽略了人类视觉系统中确定深度最重要的特征之一,即运动。我们提出了一种基于学习的多视角稠密深度图和里程计估计方法,该方法使用循环神经网络( Recurrent Neural Networks,RNN ),并利用多视角图像重投影和前后向流一致性损失进行训练。我们的模型可以在有监督甚至无监督的模式下进行训练。它设计用于从输入帧具有时间相关性的视频中估计深度和视觉里程计。然而,它也推广到单视角深度估计。在KITTI驾驶数据集上,我们的方法在基于单视角和多视角学习的深度估计上取得了优于现有方法的结果。

5)DF-VO
标题:Visual Odometry Revisited: What Should Be Learnt?
作者:Huangying Zhan, Chamara Saroj Weerasekera, Jiawang Bian, Ian Reid
单位:阿德莱德大学
来源:2020 ICRA
原文链接:https://arxiv.org/abs/1909.09803
代码链接:https://github.com/Huangying-Zhan/DF-VO
摘要:在这项工作中,我们提出了一种单目视觉里程计(VO)算法,该算法利用了基于几何的方法和深度学习。大多数现有的具有优越性能的VO/SLAM系统是基于几何的,并且必须针对不同的应用场景进行精心设计。此外,大多数单目系统都存在尺度漂移问题。最近的一些深度学习作品以端到端的方式学习VO,但这些深度系统的性能仍然无法与基于几何的方法相提并论。在这项工作中,我们重温了VO的基础知识,并探索了将深度学习与核几何和透视n点(PnP)方法相结合的正确方法。具体来说,我们训练两个卷积神经网络(CNN)来估计单视图深度和两视图光流作为中间输出。通过深度预测,我们设计了一种简单但鲁棒的帧间VO算法(DF-VO ),该算法优于纯粹的基于深度学习和基于几何的方法。更重要的是,我们的系统没有受到尺度一致的单视图深度CNN辅助的尺度漂移问题。在KITTI数据集上的大量实验显示了我们系统的鲁棒性,并且详细的消融研究显示了我们系统中不同因素的影响。

6)DPFs
标题:Differentiable Particle Filters: End-to-End Learning with Algorithmic Priors
作者:Rico Jonschkowski, Divyam Rastogi, Oliver Brock
单位:柏林技术大学来源:2018 RSS
原文链接:https://arxiv.org/abs/1805.11122
代码链接:https://github.com/tu-rbo/differentiable-particle-filters
摘要:我们提出了可微分粒子滤波器(DPFs):一种具有可学习运动和测量模型的粒子滤波器算法的可微分实现。由于DPF是端到端可区分的,我们可以通过优化端到端状态估计性能来有效地训练它们的模型,而不是像模型准确性这样的代理目标。DPFs对递归状态估计的结构进行编码,其中预测和测量更新对状态的概率分布进行操作。这种结构代表了一种算法先验,该算法先验提高了状态估计问题中的学习性能,同时实现了所学习模型的可解释性。我们在模拟和真实数据上的实验显示了具有算法先验的端到端学习的实质性好处,例如将错误率降低了约80%。我们的实验还表明,与长短期记忆网络不同,DPF以一种与策略无关的方式学习定位,从而大大提高了泛化能力。
7)RIDI
8)OriNet
9)Pyshoe
2. 建图
10)RayNet
11)AtlasNet
12)Pixel2Mesh。
……
详情内容可将文章标题复制到微信公众号「3D视觉工坊」查看原文
7. 结论
本节介绍了SLAM综述论文“A Survey on Deep Learning for Localization and Mapping: Towards the Age of Spatial Machine Intelligence”中里程计、建图、特征提取、SLAM、闭环检测、数据集相关的开源项目,下一节我们将继续介绍定位、描述子提取、BA优化相关的开源项目。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉工坊精品课程官网:3dcver.com
1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
3.国内首个面向工业级实战的点云处理课程
4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
8.从零搭建一套结构光3D重建系统[理论+源码+实践]
9.单目深度估计方法:算法梳理与代码实现
10.自动驾驶中的深度学习模型部署实战
11.相机模型与标定(单目+双目+鱼眼)
12.重磅!四旋翼飞行器:算法与实战
13.ROS2从入门到精通:理论与实战
14.国内首个3D缺陷检测教程:理论、源码与实战
15.基于Open3D的点云处理入门与实战教程
16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进
17.不断更新中......
点击进入—>粉丝交流群
重磅!粉丝学习交流群已成立
交流群主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、ORB-SLAM系列源码交流、深度估计、TOF、求职交流等方向。
添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速通过且邀请进群。原创投稿也请联系。