转自https://blog.csdn.net/qq_40213457/article/details/81392438?utm_source=blogxgwz4
I. 相机重定位(Relocalization)
Deep Learning 和 SLAM 结合的开山之作 ,剑桥的论文:PoseNet 。该方法使用 GoogleNet 做了 6 自由度相机 pose 的 regression。训练数据是带有 ground truth pose 的场景帧。
图 1. PoseNet,第一行是原图,第二行是根据所估计的相机姿态做 3D 重建后的场景图,第三 行是原图和重建后的场景的重叠。
论文:Alex Kendall, Matthew Grimes, Roberto Cipolla, "PoseNet: A Convolutional Network for Real-Time 6-DOF Camera Relocalization", in ICCV 2015, https://arxiv.org/abs/1505.07427
代码: https://github.com/alexgkendall/caffe-posenet
II. 特征点提取与匹配:
(1) 帧帧之间的匹配是传统特征法 SLAM 的重要环节。
这里首先推荐一下 EPFL 的文章 LIFT (Learned Invariant Feature Transform ),通过深度神经网络学习图像中的特征点。pipeline 如图 2,LIFT 分别计算了 Detector, Orientation Estimator 以及 Deor 。
图 2. LIFT pipeline
和 SIFT 特征相比,LIFT 能够提取出更稠密的特征点,如图 3 所示。
图 3. SIFT(左)和 LIFT(右)提取出来的特征点对比
论文:Kwang Moo Yi, Eduard Trulls, Vincent Lepetit, Pascal Fua, "LIFT: Learned Invariant Feature Transform", in ECCV 2016, https://arxiv.org/abs/1603.09114
代码:http://t.cn/RiepX4E
(2)Toward Geometric Deep SLAM
Magic leap 的文章:Toward Geometric Deep SLAM ,介绍了一种非常出色的特征点(角点)提取和匹配的方法,如图 4 所示:
图 4. Deep Point-Based Tracking
来看看这牛逼闪闪的效果,提出来的点不多不少,准确的定位到了物体的每个角点,简直是强迫症的福音!
图 5. 特征点的提取效果
论文中还和 FAST,Harris 等经典特征提取法做了比较,本文的方法对于噪声比较 robust,提取的特征点看着也比 FAST,Harris 舒服,有兴趣的可以细读文章。我相信本文的方法在今后的特征法 SLAM 系统中定能大放光彩。
论文:Daniel DeTone, Tomasz Malisiewicz, Andrew Rabinovich, “Toward Geometric Deep SLAM”, https://arxiv.org/abs/1707.07410
代码:还没有
III. 端对端视觉里程计:
(1)今年 CVPR 的 SfM-Learner。
文章的核心思想是利用 photometric consistency 原理来估计每一帧的 depth 和 pose。photometric consistency 就是对于同一个物体的点,在不同两帧图像上投影点,图像灰度应该是一样的。论文方法的大体过程请看图 6。
图 6. SfM-Learner 的训练和测试大体过程
各位回忆一下直接法 SLAM 的经典:LSD-SLAM (LSD-SLAM: Large-Scale Direct Monocular SLAM,http://t.cn/RWrwBuu),有没有感觉这篇文章的核心思路和 LSD-SLAM 如出一辙?本质都是优化 photometric error。 来看看 SfM-Learner 的 Loss(最终的 Loss 在此基础上做了优化),
再看看 LSD-SLAM 里面,需要优化的 photometric error 函数:
有没有很像?
论文:Tinghui Zhou, Matthew Brown, Noah Snavely, David G. Lowe, "Unsupervised Learning of Depth and Ego-Motion from Video", in CVPR 2017, https://arxiv.org/abs/1704.07813
代码:https://github.com/tinghuiz/SfMLearner
(2)今年的新文章:SfM-Net。
听名字就和 SfM-Learner 很像,这篇文章和 SfM-Learner 都是出自 Google。论文的核心思想也是利用 photometric constancy 来计算 pose,depth。除此之外,作者还计算了光流,scene flow,3D point cloud 等。可以说是 SfM-Learner 的升级版。
图 7. SfM-Net 网络结构
论文:Sudheendra Vijayanarasimhan, Susanna Ricco, Cordelia Schmid, Rahul Sukthankar, Katerina Fragkiadaki, “SfM-Net: Learning of Structure and Motion from Video”, Learning of Structure and Motion from Video(https://arxiv.org/abs/1704.07804)
代码:还没有
(3)DeMoN
另外一篇和 SfM-Net,SfM-Learner 比较相似的文章:DeMoN,使用 pose, depth 作为监督信息,来估计 pose 和 depth。最后的效果非常不错。网络的核心部分如图所示
图 8. DeMoN 网络核心结构
论文:Benjamin Ummenhofer, Huizhong Zhou, Jonas Uhrig, Nikolaus Mayer, Eddy Ilg, Alexey Dosovitskiy, Thomas Brox, "DeMoN: Depth and Motion Network for Learning Monocular Stereo", in CVPR 2017,https://arxiv.org/abs/1612.02401
代码:https://github.com/lmb-freiburg/demon
IV. 语义 SLAM
CNN-SLAM。
该文章使用直接法估计相机姿态,使用 CNN 来估计 Depth,以及做图像语义分割。然后将 Geometry 和 semantic 融合起来,生成具有语义信息的 map。
图 9. CNN-SLAM pipeline
论文:Keisuke Tateno, Federico Tombari, Iro Laina, Nassir Navab, "CNN-SLAM: Real-time dense monocular SLAM with learned depth prediction", in CVPR 2017, https://arxiv.org/abs/1704.03489
代码:还没有
总结一下
从目前的研究情况来看,深度学习在 SLAM 这个问题上还没有完全取代传统方法的能力。希望各位同僚继续努力!
跳出 SLAM,说点题外话,利用深度强化学习来进行端对端的机器人导航,已经有了不错的结果。人类在环境中导航,不也是直接输入 image,输出 action 吗?有兴趣的可以看看这两篇文章:
(1) [1702.03920] Cognitive Mapping and Planning for Visual Navigation
https://arxiv.org/abs/1702.03920
(2) [1609.05143] Target-driven Visual Navigation in Indoor Scenes using Deep Reinforcement Learning
https://arxiv.org/abs/1609.05143