PointFusion / DenseFusion

Xu 2018 · 论文 / Wang 2019 · 论文

一句话总结 — 两个有影响力的RGB-D物体位姿网络,它们逐点融合图像特征与点云特征,构成了物体级SLAM系统所依赖的学习型物体前端。

问题

从RGB-D数据估计3D物体位姿,需要结合两种截然不同的模态:稠密、外观信息丰富的图像,以及稀疏但度量精确的3D点。已有方法通常使用多阶段流水线,或者内建了针对特定传感器和数据集的假设(例如将深度折叠成一个额外的图像通道,或使用对行人和室内杂乱场景失效的俯视LiDAR视图),而事后的ICP精化又使精确的方法慢到无法实时使用。当时所需要的是一种概念上简单的架构,用适合各模态的网络分别处理它,再融合结果——而且是逐点融合,这样即使物体被部分遮挡,也仍能根据其可见的碎片来估计位姿。

方法与架构

**PointFusion(Xu 2018)**是一个两阶段的3D检测器:一个现成的2D检测器(Faster R-CNN)提供裁剪框,然后对每个裁剪框,一个ResNet-50提取图像特征,同时一个PointNet变体(去掉了批归一化——因为绝对点坐标对回归很重要;输入通过一个旋转 RcR_c 规范化,使裁剪框的观察射线与相机 zz 轴对齐)处理最多400个原始3D点。一个全局融合基线将这两种特征拼接起来,直接回归8个包围盒角点,损失为 L=ismoothL1(xi,xi)+LstnL = \sum_i \mathrm{smoothL1}(\mathbf{x}_i^{*}, \mathbf{x}_i) + L_{\mathrm{stn}}。而新颖的密集架构则将每个输入点用作一个空间锚点:每个点的特征(与全局点特征和图像特征拼接成一个 n×3136n \times 3136 的张量)预测从自身到8个角点的偏移量,再加一个置信度 cic_i,用如下的无监督评分损失训练

L=1Ni(Loffseticiwlogci)+Lstn,w=0.1L = \frac{1}{N} \sum_i \big( L^{i}_{\mathrm{offset}} \cdot c_i - w \log c_i \big) + L_{\mathrm{stn}}, \qquad w = 0.1

从而使网络学会哪些点能产生好的假设;在测试时,得分最高的点所给出的包围盒获胜。预测相对偏移量而非绝对坐标,消除了(驾驶场景中从1米到100多米不等的)场景尺度差异对回归目标的影响。

**DenseFusion(Wang 2019)**将这一思路应用于已知物体的6自由度位姿估计:一个分割网络把每个物体单独分离出来;一个CNN编码器-解码器将RGB裁剪图映射为逐像素的外观嵌入,而一个类PointNet网络(平均池化)则把被掩码的深度点映射为逐点的几何嵌入(两者均为128维)。融合是逐像素进行的——每个点的几何特征与其投影像素处的图像特征拼接,再融入一个全局池化得到的特征——每个融合后的特征都会预测一个完整的位姿 p^i=[R^it^i]\hat{p}_i = [\hat{R}_i \mid \hat{t}_i] 以及置信度 cic_i。逐像素的位姿损失是模型点距离

Lip=1Mj(Rxj+t)(R^ixj+t^i)L^{p}_{i} = \frac{1}{M} \sum_j \| (R x_j + t) - (\hat{R}_i x_j + \hat{t}_i) \|

(对于对称物体,则是到最近的变换后模型点的距离),与上面完全相同的方式组合:L=1Ni(Lipciwlogci)L = \frac{1}{N}\sum_i (L^{p}_{i} c_i - w \log c_i),其中 w=0.01w = 0.01。一个可微的迭代精化模块取代了事后的ICP:点云被变换到当前估计的规范坐标系中(因此输入本身就编码了该估计),然后预测一个残差位姿,经过 K=2K = 2 次迭代之后,最终位姿是各次结果的组合 p^=[RKtK][R0t0]\hat{p} = [R_K \mid t_K] \cdots [R_0 \mid t_0]——一旦主网络收敛,该模块便可端到端训练。

实验结果

PointFusion是第一个在KITTI和SUN-RGBD上使用相同架构和超参数,取得优于或与当时最先进方法相当性能的模型。在KITTI汽车类别上(AP3DAP_{3D},易/中/难),统一模型的得分为77.92/63.00/53.27,相比MV3D的71.29/62.68/56.56,并在行人(33.36/28.04/23.38)和骑车人(49.34/29.42/26.98)上大幅超过MV3D;密集锚点设计使全局基线的表现几乎翻倍(汽车的易检测AP从43.29提升到74.71)。在SUN-RGBD上(0.25 IoU)达到45.38 mAP,每帧耗时1.3秒,相比DSS的42.1 mAP(耗时19.6秒)和COG的47.63 mAP(耗时10-30分钟)。DenseFusion在YCB-Video上(ADD-S指标),配合迭代精化达到93.1 AUC / 96.8%(误差小于2厘米的比例),超过了PoseCNN+ICP的93.0/93.2,同时快约200倍(每帧0.06秒,即16 FPS,相比10.6秒),并大幅超越了PointFusion的全局融合方案(83.9/74.1);随着遮挡程度增加,其精度只下降约2%,而PoseCNN+ICP和PointFusion的性能则急剧下降。在LineMOD上达到94.3的平均ADD(不做精化时为86.2)。部署在真实机器人上时,其位姿估计在60次尝试中实现了73%的抓取成功率。

对SLAM的意义

物体级SLAM需要一种可靠的方式,将原始RGB-D数据转化为6自由度的物体观测,而PointFusion/DenseFusion这一系列工作确立了完成这一任务的标准学习型架构:异构的CNN+PointNet特征提取、逐点融合,以及置信度加权的位姿回归——这是一种隐式的鲁棒估计器,呼应了RANSAC在经典流水线中所扮演的角色。像MoreFusion这样的系统正是把这种风格的学习型位姿预测,用作多视角、具备碰撞意识的精化过程的初始化,而任何现代的物体级SLAM流水线,其前端很可能都带有这些网络的某个后代。

相关条目