NodeSLAM
Sucar 2020 · 论文
一句话总结 — 一种物体级 SLAM 方法,将每个检测到的物体表示为一个由类别条件 VAE 解码的紧凑学习式占据编码,并使用一种新颖的概率可微渲染器联合优化物体形状、物体位姿和相机轨迹。
问题
场景表示方式的选择决定了 SLAM 系统所需要的推断算法,也决定了它能支持哪些应用。点云地图或面元(surfel)地图不携带任何物体身份、位姿或完整形状的概念——而机器人抓取一个杯子或打包一个箱子恰恰需要这些信息。经典重建方法只能恢复直接观测到的表面;前馈式形状预测则无法以一种原理性的方式融合多次观测。NodeSLAM 追求的是在类似 SLAM 的联合估计框架内,从一张或多张 RGB-D 图像出发进行原理性的完整物体形状推断,,从而填补逐物体 TSDF 系统(Fusion++)与基于 CAD 模型的实例系统之间的空白。
方法与架构
形状模型。 一个单一的类别条件三维 CNN VAE(5 个卷积层,卷积核大小 4,步长 2;解码器与编码器镜像对称)在 ShapeNet 的 占据网格上针对四个桌面物体类别(杯子、碗、瓶子、罐头)进行训练,采用 KL 潜在损失和二元交叉熵重建损失。地图中的每个物体由一个大小为 16 的潜在编码 加一个 9 自由度位姿(旋转、平移、缩放)表示。
概率渲染(测量函数)。对于每个像素,沿反投影光线采样 个深度值 ,并从解码后的网格中三线性插值得到占据值 。光线终止概率与逃逸概率为
据此得到渲染深度和逐像素不确定性,即分布的均值和方差:
多物体渲染结果通过取最小深度合并(处理遮挡),一个 4 级高斯金字塔扩大感受野以支持由粗到细的优化。
推断。 在编码上加一个高斯先验,MAP 问题就变成一个用 Levenberg-Marquardt 求解的最小二乘目标:
平移/缩放由被遮罩的点云初始化,朝向由检测到的支撑平面初始化(对杯子的偏航角还额外使用一个 CNN),而 (即类别平均形状)。
SLAM 循环。 Mask R-CNN 的掩码通过两阶段与地图中的物体进行关联(首先是与前一帧掩码的 IoU > 0.2,然后是与渲染掩码的 IoU);未匹配的掩码会生成新物体。相机跟踪在地图固定的情况下最小化同一个渲染损失。关键帧(在物体初始化或视角变化超过 13° 时创建)进入一个滑动窗口的联合优化,对 3 个关键帧内的相机位姿、物体位姿和形状编码进行优化:。耗时:每个物体渲染耗时 7 毫秒,完整物体重建约 1.5 秒,跟踪速度为 7 fps,联合优化耗时 2 秒。
实验结果
- 在 ShapeNet 杯子数据集上的多视角形状优化(表 1):使用 3 个视角时,精度为 3.48 毫米,chamfer- 为 3.65 毫米,完整度为 96.1%,相比之下使用局部感受野渲染器的 DVR 分别为 8.28 毫米/10.91 毫米/44.8%;去掉不确定性或高斯金字塔都会持续降低所有指标,且收敛速度远快于 DVR。
- 在 5 个合成场景(每个场景包含 10 个未见过的 ModelNet40 物体)上与 Fusion++ 风格的 TSDF 基线相比:形状完整度从最初几个视角开始就接近完全(而 TSDF 需要随着每帧融合逐渐完成),表面精度相当,接近 5 毫米。
- 跟踪消融实验(表 2):完整系统在 5 个场景上的平均绝对位姿误差为 0.81-1.73 厘米;去掉联合优化后误差增至 10.17 厘米,去掉不确定性渲染后增至 6.99 厘米。
- 真实世界演示:在嘈杂深度相机下进行的杂乱桌面 SLAM、一个 AR 演示,以及一个使用重建完成的网格对杯子/碗/瓶子进行打包和分类的实时机器人。
对SLAM的意义
NodeSLAM 确立了现代物体级 SLAM 的范式:将学习到的形状先验作为经典联合估计中可优化的地图变量,并以可微渲染作为测量模型——这正是后来驱动神经场 SLAM 的”反转渲染器”思想。带位姿的完整物体模型正是机器人操作所需要的,而不是原始的几何碎片。它是从基于编码的稠密 SLAM(CodeSLAM)到以物体为中心的神经场建图(vMAP)以及诸如 DSP-SLAM 这类基于 DeepSDF 系统之间的概念桥梁。
相关条目
- CodeSLAM — NodeSLAM 将其提升到物体层面的帧级潜在编码思想
- DSP-SLAM — 在 ORB-SLAM2 骨架上运行的 DeepSDF 物体先验
- vMAP — 物体级神经场后续工作
- Fusion++ — 不使用学习形状先验的物体级 TSDF 建图
- MoreFusion — 同一实验室同一时期面向操作任务的物体级融合方法