本篇文章把两个 SLAM(同步定位与地图构建)子任务作为机器学习问题,研发出了两个简单的数据生成器,用几百行代码就可以实现,设计了两个可以实时运行的简单的卷积神经网络,并且在人工合成数据和真实数据上都对它们进行了评估。
论文链接:https://arxiv.org/abs/1707.07410
摘要:我们提出了一种由两个卷积神经网络驱动的点追踪系统(point tracking system)。第一个网络,MagicPoint,对单一图像进行操作,并且提取最重要的二维点。被提取的点是 “SLAM-ready” 的 ,因为它们是被分离设计,而且在图像中是均匀分布的。我们把此种神经网络与经典的点探测器(point detectors)进行了比较,并且通过图像噪点发现了它们之间显著的性能表现差距。由于当被检测点具有几何稳定性时,转化估计(transformation estimation )是很简单的,因此我们设计了第二个网络,MagicWarp,它作用在几幅点态图像(MagicPoint的输出)上,而且会对与输入相关的单应矩阵(homography)进行估计。这一转换引擎与传统方法不同,因为它并没有使用局部点描述器(local point descriptors),只使用了点定位(point locations)。两个网络都是用简单的人工数据进行训练的,减少了对昂贵的外置摄像实况和高级图形渲染渠道的需求。这一系统是快速且精益的,可以很轻松地在单一 CPU 上以 30+ FPS 的状态运行。
深度点基础追踪(Deep Point-Based Tracking)概况:
深度点基础追踪系统如图1 所示。在此追踪系统中,两个卷积神经网络是计算过程中的主力军:MagicPoint 和 MagicWarp 。
图 1:深度点基础追踪概况。几幅图像会被 MagicPoint 卷积神经网络进行处理,此网络会在图像中检测最重要的转角(corner)。随后生成的点态图像会被 MagicWarp (另一个卷积神经网络)一起进行处理,以计算出一个与点态输入图像中的点相关的单应矩阵(homography)H 。
MagicPoint 概况:
图 2 :MagicPoint 架构。MagicPoint 网络作用于灰度图像,并且对每一个像素输出一个“点”(“point-ness”)概率。我们使用了一个 VGG 样式的编码器和一个显式解码器。每一个在最后得到的 15x20x65 张量上的空间位置都代表了一个本地 8x8 区域的概率分布,和一个单一的“垃圾”通道(表示没有检测到点)。此网络是使用一个标准交叉熵损失(cross entropy loss)来进行训练的,也使用了二维图形渲染器的点态监督(见图 3)。
图 3:人工图形数据集。人工图形数据集包括渲染后的三角形,四边形,线,立方体,棋盘格,还有星星,每一个都带有实况转角定位(ground truth corner locations)。它也包括一些没有真实转角的负像(negative images),比如椭圆和随机噪声图像。
MagicWarp 概况:
图 4:MagicWarp 架构。几幅二进制点图像连接在一起,然后输入进一个标准化 VGG 类型的编码器。3x3 单应矩阵 H 通过一个全连层进行输出。随后,H 被标准化(normalized),以保证其右下角元素是 1。已知从一张图像到另一张图像的对应关系,用弯曲点(warping points)对损失进行计算,并且测量它们和相应真实值之间的距离。
图 5:MagicWarp 数据生成。为了生成二维点集对(2D point set pairs),我们为三维几何体创建了三维点云图,并且在简易三维轨迹的限制下把它们渲染进了虚拟摄像机。
MagicPoint 网络的部分评测结果:
表 1:人工图形的相关结果。人工图形数据集中10 种类别图像的平均准确率(mAP,越高越好)和平均定位误差(MLE,越低越好)。注意 MagicPointL 和 MagicPointS 在一定程度上不会受到图像噪点的影响。
图 6:噪点类型对合成图形的影响。探测器性能会被噪点破坏。对传统探测器来说,斑点噪声(Speckle noise)尤其难以处理。