论文地址:https://arxiv.org/abs/1901.04780
代码地址:https://github.com/j96w/DenseFusion
论文框架:
研究目的: 在混乱场景的 RGB-D 图像中估计出一组已知目标的 6D 姿态。
研究思路: 充分利用两个互补数据源—— RGB 图像和深度图像。
解决方法: 提出DenseFusion —— 一种可单独处理两个数据源的异质架构。
研究贡献:
实验数据集(6D 姿态估计基准): YCB-Video 和 LineMOD
补充实验(真实场景实验): 在真实的机器人上,使其可以根据估计的姿态来抓取和操纵目标。
6D 目标姿态估计对许多重要的现实应用都很关键,例如机器人抓取与操控、自动导航、增强现实等。通常情况下,将 6D 姿势视为齐次变化矩阵 p ∈ S E ( 3 ) p ∈ SE(3) p∈SE(3)。换句话说就是,6D 姿态是由旋转 R ∈ S O ( 3 ) R ∈ SO(3) R∈SO(3) 和平移 t ∈ R 3 t ∈ \Bbb R^3 t∈R3 组成的,即 p = [ R ∣ t ] p = [R|t] p=[R∣t] 。
对于一个刚体,已有单个视角下的 RGB-D 数据,恢复相机坐标系下物体的6D位姿。
理想情况下,该问题的解决方案要能够处理具有各种形状、纹理的物体,且面对重度遮挡、传感器噪声、光照条件改变等情况都极为稳健,同时还要有实时任务需要的速度。
传统方法首先从 RGB-D 数据中提取特征,完成对应的分组和假设验证。但是,对手动特征的依赖和固定的匹配程序限制了它们在重度遮挡、灯光变化环境下的表现。近来在视觉识别领域取得的成果激发了一系列数据驱动方法,即使用 PoseCNN 和 MCN 这样的深度网络对 RGB-D 输入做姿态估计。
这些方法需要精心制作后分析微调步骤,从而完整利用 3D 信息,例如 PoseCNN 中生成的高级定制的迭代最近点(ICP)和 MCN 中多视角假设验证规划。这些微调步骤不能与最终目标函数联合优化,在现实应用中也极为缓慢。在自动驾驶中,有一种第三方解决方案被提出,它能够通过 Frustrum PointNet 和 PointFusion 这样的端到端深度模型很好地利用 RGB-D 数据中颜色和深度信息的补充性质。在驾驶场景中,这些模型取得了非常好的表现,也有很好的实时推理能力。但是,根据经验可知,这些方法在重度遮挡环境下不符合标准,这是实际操控领域中非常常见的一种情况。
总之,先前的研究要么分别从 RGB 图像和深度中提取信息,要么使用代价较高的后处理步骤,限制了它们在高度混乱的场景和实时应用中的性能。
姿态估计方法 | 已知信息 | 核心思路 | 代表方法 | 适用场景 |
---|---|---|---|---|
基于2D-3D对应的方法 | 3D模型3D点与以及投影后的带纹理图像 | 将3D模型投影得到RGB模板图像,根据特征点如Sift等的带匹配点对,再使用PnP算法(类似vSLAM重定位) | SIFT,SURF,ORB等 | 纹理丰富 |
基于3D-3D对应的方法 | 3D模型的3D点云数据 | 将Depth图像对应3D点云配准到完整3D模型;可使用RANSAC方法或基于3D描述符方法粗配准,再使用ICP细配准 | Super 4PCS, SpinImages, FPFH, SHOT等3D特征描述符, ICP | 无纹理 |
基于模板的方法 | 3D模型的3D点云数据,以及投影后的RGB图像和Depth图像 | 提取2D模板图像轮廓的梯度(可结合深度图法向),和当前图像轮廓的梯度(可结合Depth图像的法向)进行匹配,得到最相近模板,以模板位姿作为粗位姿;可结合ICP细配准 | LINEMOD, [2018-Implicit] | 纹理不丰富 |
基于投票的方法 | 3D模型的3D点云数据 | 在局部建立坐标系,每一个局部都能预测一个到3D模型的变换;大量的局部能够预测出很多变换,最后使用RANSAC寻找最优的变换 | PPF, Object Coordinate, DenseFusion, PVNnet等 | 无纹理 |
基于回归的方法 | 3D模型的3D点云数据或者投影到N个角度的图像(对应位姿) | 寻找位姿和图像之间的内在联系;将位姿用不同形式表示,使其适用于CNN网络的输出;可分为直接回归6D位姿和先估计2d投影点再使用PnP间接恢复位姿 | PoseCNN,Deep6DPose,BB8,SSD-6D,等 | 无纹理 |
表格转于:Vision-based Robotic Grasping from Object Localization, Pose Estimation, Grasp Detection to Motion Planning: A Review
在本文中,研究者提出一种端到端的深度学习方法,对 RGB-D 输入的已知物体进行 6D 姿态估计。该方法的核心是在每个像素级别嵌入、融合 RGB 值和点云,这和之前使用图像块计算全局特征( P o i n t f u s i o n Pointfusion Pointfusion)或 2 D 边 界 框 2D 边界框 2D边界框的研究相反。这种像素级融合方法使得本文的模型能够明确地推理局部外观和几何信息,这对处理重度遮挡情况至关重要。此外,研究者还提出了一种迭代方法,能够在端到端学习框架中完成姿态微调。这极大地提高了模型性能,同时保证了实时推理速度。
研究者在两个流行的 6D 姿态估计基准——YCB-Video( P o s e C N N PoseCNN PoseCNN)和 L i n e M O D LineMOD LineMOD 上评估了他们的方法。结果表明,在经过 ICP 改进后,该方法的性能超越了当前最佳的 PoseCNN,其姿态估计准确率提高了 3.5 % 3.5\% 3.5%, 推断速度提高了 200 倍。值得一提的是,这一 dense fusion 新方法在高度凌乱的场景中表现出了鲁棒性。最后,研究者还在一个真实的机器人任务中展示了它的用途,在这项任务中,机器人估计目标的姿态并抓取它们以清理桌面。
研究者的目标是在混乱场景的 RGB-D 图像中估计出一组已知目标的 6D 姿态。既然是从拍摄图像中对目标进行 6D 姿态的估计,那么目标姿态就要相对于相机的坐标框架来定义。要想在不利的条件下(例如,重度遮挡,光线不足等)估计已知目标的姿态,只有结合颜色和深度图像通道中的信息才有可能。但是,这两个数据源是不同空间的。因此,从异质数据源中提取特征并把它们恰当地融合在一起是这个领域中的主要技术挑战。
研究者通过以下方式来应对这一挑战:
(1)一个能够分别处理颜色和深度图像信息并且可以保留每个数据源原始结构的异质框架;
(2)一个通过利用数据源间的内在映射融合颜色-深度图像信息的密集像素级融合网络。
最后,姿态估计可以通过可微分的迭代微调模块进一步微调。相较于昂贵的后处理步骤,本文中的微调模块能够和主架构一起训练,并且耗时很少。
该体系结构包含两个主要阶段。
第一阶段以彩色图像为输入,对每个已知目标类别进行语义分割。然后,对于每个分割的对象,我们将由遮罩的边界框裁剪的图像块(image crop)和遮罩的深度像素(masled point cloud)作为第二阶段的输入。
第二阶段处理分割结果并估计对象的6D姿态。
它包括四个组件:
a)全卷积网络(CNN),它处理颜色信息并将图像块(image crop)中的每个像素映射到颜色特征嵌入(color embedding);
b)基于PointNet的网络,它将掩蔽的3D点云中的每个点处理为几何特征嵌入(geometry embeddings);
c)像素级融合网络(pixel-wise fusion network),它在像素级别组合两个嵌入(color embeddings和geometry embeddings),并基于无监督置信度评分输出对象的6D姿势估计;
d)迭代自优化方法,以课程学习方式训练网络并迭代优化估计结果。
语义分割(Semantic Segmentation)
第一步是分割图像中的感兴趣对象。我们的语义分割网络是一个编解码器结构,它以图像为输入,生成N+1个通道的语义分割图。每个通道是二进制掩码,其中活动像素描述N个可能的已知类别中的每一个的对象。这项工作的重点是开发一种位姿估计算法。因此,我们使用 P o s e c n n Posecnn Posecnn 中提出的分割体系结构。
这一领域的关键技术挑战是从颜色和深度通道中正确提取信息以及它们之间的协同融合。尽管颜色和深度在RGB-D帧中呈现相似的格式,但它们的信息在不同的空间中。因此,将它们分别映射成 color features 和 geometric features,以保留数据源原有信息。
以前的方法是使用CNN将深度图像作为附加图像通道来处理。然而,这种方法忽略了深度通道的固有三维结构。 本文的方法是:
PointNet 使用对称函数(最大池化)在处理无序点集时实现排列不变性,原始体系结构将原始点云作为输入,并学习对每个点的附近信息和整个点云的信息进行编码。这些特征被证明在形状分类、分割和姿势估计中是有效的。
我们提出了一种几何嵌入网络,一种 PointNet 架构的变体,使用平均池化而不是通常使用的最大池化作为对称缩减函数,通过将每个P分割点映射到一个 d g e o d_{geo} dgeo 维特征空间来生成密集的逐点特征。
将颜色嵌入网络的目的是提取每个像素的特征,以便在点云特征和图像特征之间形成紧密的对应关系。 图像嵌入网络是一种基于CNN的编解码器体系结构,它将尺寸为 H × W × 3 H×W×3 H×W×3 的图像映射到 H × W × d r g b H×W×d_{rgb} H×W×drgb 的空间。嵌入的每个像素表示相应位置处输入图像的外观信息的 d r g b d_{rgb} drgb 维向量。
到目前为止,我们已经从图像和三维点云输入中获得了密集的特征,现在我们需要对信息进行融合。一种天真的方法是从分割区域的密集颜色和深度特征中生成全局特征。然而,由于严重的遮挡和分割错误,来自上一步的特征集可能包含其他对象或背景上的点/像素的特征。因此,在全局范围内盲目融合颜色和几何特征会降低估计的性能。
我们描述了一种新的像素级密度融合网络(主要是利用了2D图像到3D点云的对应映射原理),它有效地结合了提取的特征(color features 和 geometric features),特别是在严重遮挡和不完美分割的情况下进行姿态估计。
我们的密集融合网络的关键思想是进行局部的逐像素融合,而不是全局融合,这样我们就可以根据每个融合的特征进行预测。潜在的根据对象的可见部分来选择预测,并最小化遮挡和分割噪声的影响。
主要步骤:
我们将得到的每个像素的全局特征输入到最终的网络中,该网络预测对象的6D姿势。换句话说,我们将训练这个网络从每个密集融合的特征中预测一个姿态,结果是一组预测姿态(每个特征一个姿态),接下来就是学习如何在自我监督的方式下找到哪个姿态最优,这一方法受到 P o i n t f u s i o n Pointfusion Pointfusion 的启发。我们修改了网络以输出每个预测的置信度分数 c i c_i ci,以根据特定的上下文来决定哪个姿态估计可能是最好的假设.。
损失函数的定义区分了对称对象和非对称对象,但总体思想是真实姿态下物体模型上的采样点与预测姿态变换后的同一模型上的对应点之间的距离。
由于对称对象有多个规范框架,可能有无限多个规范框架,这导致学习目标不明确。(举个例子,比如一个橙子,各视角的纹理相似,形状基本是圆的,旋转一下,提取的特征可能不变,但3D姿态却变化了。)取而代之的是估计模型上的每个点与真实模型上最近的点之间距离的最小值。
然后把上面对于每个像素的 loss 值加起来:
L = 1 N ∑ i L i p L = \frac{1}{N} {\sum}_i L^p_i L=N1∑iLip
然而,正如前面所解释的,我们希望我们的网络学会平衡每个像素预测之间的置信度。为此,我们用密集像素置信度对每个像素 loss 进行加权,并添加第二置信度正则化项:
L = 1 N ∑ i ( L i p c i − w l o g ( c i ) ) L = \frac{1}{N} \sum_{i} (L_i^p c_i - wlog(c_i)) L=N1i∑(Lipci−wlog(ci))其中, N N N是从融合后的 P P P个元素中随机采样的密集像素特征的数量,而 w w w是平衡超参数。直观地说,低置信度 ( c i c_i ci) 会导致低位姿估计损失 ( L L L),但从第二项 ( w l o g ( c i ) wlog(c_i) wlog(ci)) 开始会招致很高的惩罚,反之亦然。我们使用置信度最高的姿态估计作为最终输出。
上面是原文,通俗的讲,就是第一项中置信度 ( c i c_i ci) 变大会导致损失函数 ( L L L)变大,这是不应该的,而第二项中置信度 ( c i c_i ci) 变大,会导致损失函数 ( L L L) 减去一个较大的值,从而使整体变小。
再通俗一点,就是这个损失函数 ( L L L) 会随着置信度 ( c i c_i ci) 增大而减小,最终选择使损失函数 ( L L L) 的取最小值的姿态估计作为输出。
迭代最近点算法(ICP) 是许多6D位姿估计方法使用的一种强大的优化方法。然而,对于实时应用而言,性能最好的 ICP 实现通常效率不够高。在这里,我们提出了一种基于神经网络的迭代优化算法,可以快速而稳健地改善最终的位姿估计结果。
我们的目标是使网络能够以迭代的方式校正自身的位姿估计误差。
这里的挑战是训练网络完善之前的预测,而不是做出新的预测。要做到这一点,我们必须将前一个迭代中所做的预测作为下一个迭代的输入的一部分。
我们的方法核心思想是:
具体来说,我们训练了一个专用的位姿残差估计网络来对给定初始位姿估计的主网络进行优化。在迭代过程中,我们使用主网络中嵌入的图像特征,并为新变换的点云计算的几何特征进行密集融合,姿态残差估计器使用来自融合像素特征集合的全局特征作为输入。
在 K K K 次迭代之后,我们获得作为每次迭代估计的串联的最终姿态估计:
p ^ = [ R K ∣ t K ] ⋅ [ R K − 1 ∣ t K − 1 ] ⋅ ⋅ ⋅ ⋅ ⋅ [ R 0 ∣ t 0 ] \hat p = [R_K|t_K] · [R_{K-1}|t_{K-1}] ····· [R_0|t_0] p^=[RK∣tK]⋅[RK−1∣tK−1]⋅⋅⋅⋅⋅[R0∣t0]姿态残差估计器可以与主网络联合训练。但训练开始时的姿态估计噪声太大,以至于它无法学习任何有意义的东西。所以,在实践中,联合训练是在主网收敛之后开始的。
在实验部分,我们想要回答以下问题:
(1) 密集融合网络与朴素的全局级联融合相比如何?
(2) 密集融合和预测方案对严重的遮挡和分割误差是否具有鲁棒性?
(3) 迭代优化算法是否改善了最终的位姿估计?
(4) 对于机器人抓取等下游任务,我们的方法是否足够健壮和高效?
为了回答前三个问题,我们在 YCB-Video DataSet ( P o s e C N N PoseCNN PoseCNN) 和 LineMOD 这两个6D目标姿态估计数据集上对我们的方法进行了评估。
为了回答最后一个问题,我们将我们的模型部署到一个真实的机器人平台上,并使用我们的模型预测来评估机器人抓取任务的性能。
我们使用两个度量来报告YCB-Video数据集。
对于 LineMOD 数据集,非对称对象使用模型点平均距离 (Add),对两个对称对象(蛋盒和胶水)使用Add-S。
图像嵌入网络由一个 Resnet-18 编码器和4个上采样层作为解码器组成。PointNet 架构是一个多层感知机(MLP),后面跟着一个平均池化缩减功能。颜色(color)和几何(geometric)密集特征嵌入都是128维的向量。我们选择平衡超参数 w = 0.01 w=0.01 w=0.01 。迭代姿态优化由 4 4 4 个完全连通的层组成,这些层直接输出全局密集特征的姿态残差。我们对所有实验都使用 2 2 2 次优化迭代。
我们比较了四种模型变体,它们展示了我们设计选择的有效性。
下表显示了YCB-Video 数据集中所有21个对象的评估结果:
可以看到,迭代优化改进提高了整体位姿估计性能,特别是对于无纹理对称物体(加粗的),如碗(29%)、香蕉(6%)、特大型夹具(6%)等方向模糊的物体,其性能得到了显著的改善。
如下图所示,PointFusion 和 PoseCNN+ICP 的性能随着闭塞程度的增加而显著下降。相比之下,我们的方法都没有显著的性能下降。特别是, O u r s ( p e r − p i x e l ) Ours (per-pixel) Ours(per−pixel) 和 O u r s ( i t e r a t i v e ) Ours (iterative) Ours(iterative) 的性能总体上只降低了2%。
下表中将我们的模型与 PoseCNN+ICP 的时间效率进行了比较:
可以看出我们的方法比 PoseCNN+ICP 快两个数量级。特别是 PoseCNN+ICP 花了大部分时间在 ICP 的后处理上。相比之下,我们所有的计算组件,即分割(SEG)、姿态估计(PE)和迭代优化(REFINE)都是同样有效的,并且总体运行时间对于实时应用(16FPS,每帧大约5个对象)来说足够快。
下图可视化了 PoseCNN+ICP、PointFusion和我们的迭代优化模型所做的一些样本预测。
(感觉这里再放一行原图会比较清晰)
我们可以看到,由于严重的遮挡,PoseCNN+ICP 和 PointFusion 无法估计最左边一列的碗和中间一列的饼干盒的正确姿态,而我们的方法仍然是鲁棒的。
下表将我们的方法与以前的深度细化 (ICP)RGB 方法在ADD度量上进行了比较。
可以看到,即使没有迭代优化步骤,我们的方法也比目前最先进的深度优化方法提高7%的性能。在使用迭代优化方法进行处理后,最终结果又提高了8%,证明了本文提出的基于学习的深度方法在精度和效率上都优于复杂的ICP应用。
下图是每个优化迭代之后可视化估计的6D姿态,其中我们的姿态估计在2个优化迭代之后平均提高了0.8厘米(增加)。
我们将五个物体放在桌子上四个不同的随机位置,三个随机方向,包括部分遮挡的配置。由于拾取对象的顺序未优化,因此我们不允许对象重叠的配置。机器人在每个物体上尝试12次,总共60次尝试。机器人使用估计的对象方向来计算抓取器的手指与对象较窄维度的对准。
使用我们提出的方法估计物体的姿态,机器人的抓取成功率为73%。最难抓住的物体是香蕉(12次成功尝试中有7次)。一个可能的原因是我们的香蕉模型与数据集中的不完全相同-我们的模型是纯黄色的。这一特性阻碍了估计,特别是方位的估计,并导致沿对象较长轴的一些抓取尝试失败。尽管这种不太准确的情况,我们的结果表明,我们的方法足够健壮,可以在没有显式领域适应的情况下部署在真实世界的机器人任务中,即使使用不同的RGB-D传感器,并且在与训练数据中的背景不同的情况下也是如此。
提出了一种从 RGB-D 图像中估计已知物体6D姿态的新方法。我们的方法融合了密集特征,包括基于预测置信度的颜色和深度信息。使用这种密集融合方法,我们在几个数据集上的性能都优于以前的方法,并且对遮挡的鲁棒性明显更强。此外,我们还演示了机器人可以使用我们提出的方法来抓取和操作对象。