每天一篇论文 287/365 Training Deep SLAM on Single Frames

Training Deep SLAM on Single Frames

在单个图像上训练深度SLAM

原文

摘要

基于学习的视觉里程计和SLAM方法在过去几年中显示出稳步的改进。然而,收集地面真实情况来训练这些方法是困难和昂贵的。这可以通过在无监督模式下进行训练来解决,但无监督方法和有监督方法的性能仍有很大的差距。在这项工作中,我们专注于为基于深度学习的视觉里程计和以光流为输入的SLAM方法生成合成数据。我们以光流的形式产生训练数据,对应于真实帧和虚拟帧之间的任意摄像机移动。为了合成数据,我们使用深度传感器生成的深度图或从双目对估计的深度图。我们在合成数据上训练视觉里程模型,不使用真实位姿,因此该模型可以被认为是无监督的。它也可以归类为单目,因为我们不使用深度图进行推断。我们还提出了一种简单的方法将任何视觉里程模型转换为基于帧匹配和图优化的SLAM方法。我们证明,综合训练的视觉里程计模型和基于该模型的SLAM方法在KITTI数据集上的无监督方法中都产生了最新的结果,并且在具有挑战性的EuRoC数据集上显示了有希望的结果。

贡献

首先,我们介绍了一种无监督的方法来训练视觉里程计和SLAM模型,该方法基于深度图生成的合成光流和选定的真实帧和虚拟帧之间的任意相机运动。这种方法不使用帧序列进行训练,也不需要地面真实感相机的姿态。
其次,我们提出了一种简单的方法,将任何视觉里程模型转换为一个具有帧匹配和图优化的SLAM系统。

方法

本文提出了方法,只需要具有深度的单个帧,而不需要视频序列。在我们的方法中,我们根据一个代理的物理运动模型对随机摄像机运动进行采样。然后,对于每一个采样的摄像机运动,我们合成真实帧和虚拟帧之间的相应光流。由此产生的地面真实摄像机运动合成光流可用于训练基于学习的视觉里程模型。
在这里插入图片描述
图.2 基于光溜的视觉里程计
本文提出一个网络从光流中估计相机间的6Dof运动,我们的方法可以应用于任何以光流为输入并预测6自由度的模型。

合成训练数据

该方法以深度图和6自由度形式的任意运动为例,运行如下:
1.首先,我们将深度贴图像素映射到提供点云的截锥中的点。
2.为了构建虚拟点云,我们以SE3矩阵的形式表示运动,并将其应用到当前点云上,从另一个角度获取该点云。
3.接下来,我们将这个虚拟点云重新投影回图像平面,从而得到移动的像素网格。
4.为了得到光流的绝对值,我们计算了光源深度图的重投影和规则像素网格之间的差值。
为了生成随机运动而形成的光溜值,作者用KITTI的数据集中的motion分布来给随机运动一个范围:
在这里插入图片描述

重定位

重定位可以重新定义为图像检索任务图4。按照标准方法,我们根据帧之间的视觉相似性来测量帧之间的距离。
在这里,我们使用OpenCV库[4]中的经典视觉词汇包(BoVW),它应用于SIFT特性[19]。这些功能存储在数据库中。为了创建拓扑图,从数据库中为每个新帧提取其20个最近邻。这些发现的帧通过应用Lowe比率测试[18]并拒绝具有少于n个匹配关键点的候选帧来进一步过滤。

在这里插入图片描述

图优化

我们采用图优化的方法将视觉里程计方法扩展到SLAM算法。制定SLAM的一种方法是使用一个图,其中的节点对应于相机姿势,而边表示这些姿势之间的约束。如果两个相机姿态对应于连续的帧或者如果通过重定位模块认为它们相似,则它们与一条边相连。利用视觉里程模块,将边缘约束作为相对运动进行预测。一旦建立了这样一个图,就可以进一步优化它,以便找到与由边建模的相对运动最一致的节点的空间配置。通过优化得到的节点作为最终的姿态估计。因此,通过将这些估计值与地面真实姿态进行比较来计算结果进行度量。
在这里插入图片描述

结果

光流估计

在这里插入图片描述

里程计估计结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

kitti运动概率模型分布

在这里插入图片描述

发布了131 篇原创文章 · 获赞 10 · 访问量 7673
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览