MoreFusion

Wada 2020 · 论文

一句话总结 — 将RGB-D视频融合为逐物体的占用体积,并通过可微碰撞检测联合优化多个已知物体的6D位姿,从而实现对接触中或被遮挡物体的精确位姿估计。

问题

从单张RGB-D图像进行6D物体位姿估计,从根本上受限于遮挡和歧义:一个被部分遮挡的物体无法仅凭一个视角完全定位,而对称物体则允许多个有效的位姿解。因此,单视角方法恰恰在实践中最重要的场景中失效——物体相互接触、相互遮挡的杂乱场景,这正是机器人操作中的常态。多视角信息是自然的解决方案,但简单地累加逐帧的位姿提议会产生物体相互穿插这种物理上不可能的状态;因此需要一种联合的、具备物理意识的优化方法。

方法与架构

该系统在一段实时RGB-D流上运行四个阶段(相机位姿来自机器人正向动力学,或在手持情况下来自ORB-SLAM2):

  1. 物体级体积融合 —— Mask R-CNN每帧生成实例掩码;被掩码限定的深度被融合进一个逐物体的八叉树占用地图(OctoMap),每个被检测到的物体以及每个未识别的背景结构都对应一个体积;实例通过检测掩码与渲染掩码之间的IoU在帧间被跟踪。这样就从多个视角累积了每个物体的几何信息,以及自由/未知空间信息。
  2. 体积化位姿预测 —— 每个目标物体获得一个 32×32×3232\times32\times32 的占用网格,其体素被标记为自身/其他物体/自由/未知(gself,gother,gfree,gunknowng^{\mathtt{self}}, g^{\mathtt{other}}, g^{\mathtt{free}}, g^{\mathtt{unknown}})。一个网络结合了来自被掩码RGB的ResNet-18特征、被掩码点云的逐点编码、这些特征的体素化,以及在拼接后的特征+占用网格上的3D CNN,然后预测带有置信度的逐点位姿。训练使用了DenseFusion风格的位姿损失,在模型点 pqXp_q \in X 上计算, Li=1Xq(Rpq+t)(R^ipq+t^i),L=1Ni(Liciλlogci)L_{i}=\frac{1}{|X|}\sum_{q}\lVert(\mathtt{R}p_{q}+\mathbf{t})-(\hat{\mathtt{R}}_{i}p_{q}+\hat{\mathbf{t}}_{i})\rVert, \qquad L=\frac{1}{N}\sum_{i}\big(L_{i}c_{i}-\lambda\log c_{i}\big) 其中 λ=0.015\lambda=0.015;对于对称物体,对应关系变为对 pqp_{q'} 的最近邻最小值,并用标准损失训练一个热身轮次,以避免对称损失在非凸形状上陷入局部极小值。
  3. 基于碰撞的位姿精化(ICC) —— 所有物体的位姿通过梯度下降、经由一个可微的占用体素化过程被联合精化:一个CAD模型点 pqp_q 经位姿假设变换后映射到体素坐标 uq=(pql)/su_{q}=(p_{q}-l)/s,体素 kk 得到占用值 ok=1δk/δto_{k}=1-\delta_{k}/\delta^{t},其中 δk=min(δt,minquqvk)\delta_{k}=\min(\delta^{t},\min_{q}\lVert u_{q}-v_{k}\rVert)。周围物体的假设通过逐元素最大化操作聚合,并与融合得到的不可穿透空间 gmimpen=gmothergmfreeg^{\mathtt{impen}}_{m}=g^{\mathtt{other}}_{m}\cup g^{\mathtt{free}}_{m} 取并集;该损失惩罚与不可穿透空间的交集,同时奖励与物体自身已融合表面的重叠: L=1Nm(Lmc+Lmc),Lmc+=kgmtargetgmtargetkgmtarget,Lmc=kgmtargetgmselfkgmselfL=\frac{1}{N}\sum_{m}\big(L_{m}^{\mathtt{c+}}-L_{m}^{\mathtt{c-}}\big), \quad L_{m}^{\mathtt{c+}}=\frac{\sum_{k} g^{\mathtt{target}}_{m}\odot g^{\mathtt{target-}}_{m}}{\sum_{k}g^{\mathtt{target}}_{m}}, \quad L_{m}^{\mathtt{c-}}=\frac{\sum_{k} g_{m}^{\mathtt{target}}\odot g_{m}^{\mathtt{self}}}{\sum_{k}g_{m}^{\mathtt{self}}} 该计算以批处理方式在GPU上进行——相互接触的物体会相互约束。
  4. CAD对齐 —— 一旦最近 NN 个逐视角假设之间的两两位姿损失在某个阈值下相互一致,CAD模型就会以这个一致的位姿被生成到地图中,取代此前的中间体积化表示。

实验结果

在YCB-Video以及作者自制的更具挑战性的物理仿真Cluttered YCB数据集(1200个场景 × 每场景15帧)上,使用ADD(-S)/ADD-S AUC(最大阈值10厘米)进行评估。重新实现的基线DenseFusion*(加入热身损失和点云中心化处理)已经把官方DenseFusion在YCB-Video上从83.9/90.9提升到了89.1/93.3。在合并数据集上训练后,MoreFusion在YCB-Video上达到91.0/95.7,相比DenseFusion*的88.4/94.9;在Cluttered YCB上为83.4/92.3,相比81.7/91.7;在严重遮挡(可见度<30%)情况下差距进一步拉大:63.5/85.1相比59.7/83.8。在测试时提供更丰富的占用上下文信息(完整的非目标物体及背景重建)能进一步提升到85.5/93.8——恰好是增量式建图系统所累积的信息。在精化方面,迭代碰撞检查(Iterative Collision Check)在严重遮挡下的表现优于ICP,而ICC+ICP的组合始终表现最佳(ICC在离散化网格中解决碰撞问题,随后ICP再精确地对齐表面)。其重点演示是一个实时机械臂,仅依靠机载RGB-D视觉,就能拆解复杂的物体堆——将阻碍物体移开以取得目标物体。

对SLAM的意义

MoreFusion把语义SLAM与机器人操作联系了起来:桌面上物体相互接触、相互遮挡的杂乱场景,恰恰是单视角6D位姿估计器失效、而SLAM式多视角、以地图为中心的方法能够大放异彩的地方。它把Fusion++的逐物体体积思想,从重建扩展到了精确的6D位姿估计,而它对碰撞意识的联合优化,则是对相互遮挡问题的一种有原则的处理方式,为后续以物体为中心和面向操作任务的系统所借鉴。

相关条目