使用深层网络映射环境

若昂·亨里克斯

摘要:我们教一个深度神经网络从视频中创建其环境的内部映射,并将其用于自定位。我们在玩具/游戏数据和真实机器人的图像上对其进行了测试。关于如何实现这一点,还有一些有趣的技术。

嗨,欢迎来到VGG博客的第一期!在这个空间里,我们将分享一些(希望如此)令人兴奋的发现,我们在实验室里取得的,以及我们在计算机视觉和深度学习的交叉点上发现的有趣的东西。不时收听(或使用我们的RSS(RSS)feed)进行新一轮的非正式研究讨论。

我叫乔昂,我一直在教神经网络从视频中执行同步定位和映射(SLAM)。从表面上看,这似乎是相对利基的——为什么要构建地图?这与公认的,经典SLAM系统?原因是我认为绘制地图是走向更大事物的第一步。

机器人视觉

在计算机视觉中,我们习惯于从图像或视频中进行预测——检测、分割,甚至深度。但如果我们想最终让自主代理四处移动并为我们做有用的事情,他们需要一个稳定的超越当前观点的世界模型。其中一个例子是对象持久性–知道一个物体仍然存在,即使在看不见的时候也可能在同一个地方。这个“地方”应该是相对于岩石坚实的以世界为中心的起源,而不是不断变化的以相机为中心的来源。这种知识使你能够制定比仅考虑当前观点时更大、更复杂的计划,例如记住厨房里有美味三明治的配料,并计划如何使用它们。

此外,我们希望地图是语义的(“冰箱里有一些新鲜的奶酪”),而不是公制的(“我知道在这些坐标处有一个多边形”)。这就是深度学习的用武之地。如果地图存储了深度语义嵌入,那么它应该对许多不同的任务有用。最近人们一直在关注这个问题,但它的困难意味着目前的解决方案只解决了部分问题。最近的提案通常不得不放弃支持增量制图,用于自定位在地图上,甚至把地图全部擦掉.

映射张量

那么地图应该是什么样的呢?在这项工作中,我只是使用2D网格(接地平面)离散化世界,并让网络将深度嵌入每个2D单元关联起来。这本质上是一个记忆张量(具有3个维度——X、Y和特征通道),可以随着时间的推移进行更新,因为网络观察到摄像机在某些环境中移动的视频。网络读取从这个内存中定位自己(通过将它看到的内容与内存进行比较),以及写入以执行增量映射(通过将看到的内容存储在内存中以供后代使用)。

这里有一个很好的二元性——本地化/阅读,映射/写作。在本文中,我们证明了这种对偶性的进一步扩展。事实证明,可以使用单一的卷积。原因是,定位(找到你的位置)是一种模式匹配练习(在世界空间中,在所见和已知之间),而卷积非常适合这样做。这可以很容易地扩展以处理摄影机旋转,而不仅仅是其位置。然而,也许不太直观,我们证明映射可以用一个反褶积你可以将其视为“撤销”定位操作,因此我们在定位/卷积和映射/反卷积之间获得了完美的对称性。

双重操作员

如果你想检查这是如何做到的,并且你喜欢空间几何变换的证明,检查一下报纸。在2018年CVPR演讲视频(12分钟)。

现在,我们如何知道这是可行的?我们从2D迷宫环境的一些简单实验开始,在那里我们观察到一些很好的突发行为,例如当面临模糊情况时对当前位置的多模态信念(想想具有对称或重复结构的走廊)。另一个紧急属性是地图中的嵌入与语义概念密切相关:转弯、交叉或死行。当然,我们想尝试更复杂的环境,所以我们继续用游戏中的玩家速度运行视频训练我们的模型(称为MapNet)末日:

上面的视频显示了覆盖在地平面上的轨迹和位置热图(从下到左),以及方向热图(由下到右)。即使环境非常具有挑战性,我们的MapNet似乎也能很好地应对。我还真的希望这项工作能“走出实验室”,使用真实的机器人数据。为此,我们对它进行了训练,在房屋和办公室等环境中用机器人采集了一些漂亮的图像序列,称为主动视觉数据集:

这一点(以及一般的深层网络)的好处在于,除了替换底层的CNN(生成图像嵌入)之外,整个系统和超参数与《末日》完全相同。这让我相信,我们有一些东西可以推广,并适应不同的设置,而不需要太多的修改。

就这样!这些网络还没有真正取代经典的SLAM,因为地图的粒度很粗(在我们的例子中,单元格是30x30厘米)。然而,我认为它们作为地图提供的语义和健壮性对于支持未来更复杂的机器人行为非常重要。

若昂·亨里克斯,2018年7月6日

来自VGG博客的更多信息