DenseFusion论文笔记

DenseFusion论文笔记

  • 贡献
  • 介绍和背景
  • 模型
  • 架构
    • 体整架构
    • 语义分割
    • 密集特征提取
    • 像素级密度融合
    • 6D Object Pose Estimation
    • Iterative Refinement

主页地址(代码视频):https://sites.google.com/view/densefusion/
GIthub代码地址:https://github.com/j96w/DenseFusion

贡献

  • 提出了一种从RGB-D图像中估计一组已知对象的6-D位姿的通用框架DenseFusion.

  • 整合了一个端到端迭代的位姿细化过程,进一步改进了位姿估计,同时实现了近乎实时的处理速度

介绍和背景

   传统方法: 首先从 RGB-D 数据中提取特征,完成对应的分组和假设验证。但是,对手动特征的依赖和固定的匹配程序限制了它们在重度遮挡、灯光变化环境下的表现。
   PoseCNN 和 MCN 等基于深度学习的方法: 网络对 RGB-D 输入做姿态估计,这些方法需要一个特制的基于迭代的(迭代比较耗时)后处理步骤进一步微调优化姿态,并且这个步骤不能与网络共同训练优化,对于实时应用程序来说速度非常慢。
   在自动驾驶的背景下,有一种第三方解决方案被提出,它能够通过 PointNet 和 PointFusion 这样的端到端深度模型很好地利用 RGB-D 数据中颜色和深度信息的进行补充。这些模型取得了非常好的表现,也有很好的实时推理能力。但是,这些方法在重度遮挡环境下效果不好,而重度遮挡又在实际情况中非常常见。
   在本文中,基于PointNet 的基础上,研究者提出一种端到端的深度学习方法,对 RGB-D 输入的已知物体进行 6D 姿态估计。该方法的核心是在像素级别嵌入和融合 RGB 和点云 的特征,而以前的方式是通过图像裁剪来计算全局特或2D的bboxs。这种像素级融合方法使得本文的模型能够明确地推理局部外观和几何信息,这对处理重度遮挡情况至关重要。 此外,研究者还提出了一种迭代方法,能够在端到端学习框架中完成姿态微调。这极大地提高了模型性能,同时保证了实时推理速度。

模型

   研究者的目标是在混乱场景的 RGB-D 图像中估计出一组已知目标的 6D 姿态。通常情况下,将 6D 姿势视为齐次变化矩阵,p ∈ SE(3)。既然是从拍摄图像中对目标进行 6D 姿态的估计,那么目标姿态就要相对于相机的坐标框架来定义。
   要想在不利的条件下(例如,重度遮挡,光线不足等)估计已知目标的姿态,只有结合颜色和深度图像通道中的信息才有可能。但是,这两个数据源是不同空间的。因此,从异质数据源中提取特征并把它们恰当地融合在一起是这个领域中的主要技术挑战。
   研究者通过以下方式来应对这一挑战:(1)一个能够分别处理颜色和深度图像信息并且可以保留每个数据源原始结构的异质框架;(2)一个通过利用数据源间的内在映射融合颜色-深度图像信息的密集像素级融合网络。最后,姿态估计可以通过可微分的迭代微调模块进一步微调。相较于昂贵的后处理步骤,本文中的微调模块能够和主架构一起训练,并且耗时很少。

架构

DenseFusion论文笔记_第1张图片

体整架构

模型的架构主要包含两个阶段:
第一个阶段,将彩色图像作为输入,为每个已知的目标类别执行语义分割。接下来,对于每个分割后的目标,研究者将masked深度像素(根据相机内参,将其转换为 3D 点云)及被裁剪的图像块导入到第二阶段。

第二个阶段处理分割的结果并估计目标的 6D 姿态,它包含四个部分:

  • 一个处理颜色信息的全卷积网络,该网络将图像块中的每个像素映射到一个颜色特征嵌入;
  • 一个基于 PointNet 的网络,将被mask的深度像素结合相机内参转化为3D 点云,该网络将3D 点云中的每个点映射到一个几何特征嵌入;
  • 一个像素级的 fusion 网络,该网络将两个特征embedding结合起来,输出目标的 6D 姿态估计和一个基于无监督的置信度得分
  • 一个迭代的自微调方法,该方法以课程(残差?)学习的方式对网络进行训练,并迭代地微调姿势估计

语义分割

这部分采用PoseCNN中用于语义分割的部分,网络为一个编码解码结构,输入一张图片然后产生N+1个通道的语义分割图,每个通道都是对应一个类别的二值掩码

密集特征提取

该领域的关键挑战是从颜色和深度通道中正确提取信息,以及将两通道的信息进行协同融合。

  • Dense 3D point cloud feature embedding
      之前的处理方法大多是将深度图像当做普通的图像作为一个额外的通道,但是,深度图像虽然和RGB图像的格式相同,其表达的意义却不同。这样做就会忽略深度图像的固有3D结构,斌没有充分发挥深度图像所包含的信息。
    该文采取的方式是:先根据相机内参,将被分割的深度像素转化为3D点云,再使用一个PointNet的变体(将PointNet上实现置换不变性的最大池化改为了平均池化)提取逐像素的几何特征信息。
  • Dense color image feature embedding
    就是采用一个全卷积网络,将 H × W × 3 的图像映射到 H × W × d 的 embedding 空间,embedding 层的每个像素都是一个d维向量,表示输入图像在相应位置的外观信息。

像素级密度融合

到此为止,已经分别从RGB和深度图像中获得了密集的特征,一个朴素的方法是,根据这两种密集特征分别提取全局特征再连接起来。这种方法在出现遮挡和物体分割时存在错误的情况下,从而很容易降低性能。文中
文中提出了一种新颖的局部逐像素密集融合网络,该网络有效地结合了提取的特征,尤其是在重度遮挡和不完美分割下的姿态估计。

  • Pixel-wise dense fusion
      密集融合网络的关键思想是执行局部的逐像素融合,然后就可以对每个融合特征做预测,通过这种方式,可以潜在地根据对象的可见部分选择预测,并最大程度地减小遮挡和分割噪声的影响。 密集融合过程首先使用已知的相机固有参数,计算3D点云在图像平面上的投影,然后将每个点的几何特征与其对应的图像特征像素相关联作为per-pixel feature。
      然后将per-pixel feature通过一个多层感知机+平均池化后输出一个global feature,全局特征的作用:虽然本文提到避免使用单一的全局特性进行估计,但是在这里,使用全局的密集融合特性来增强密集像素特性,从而提供一个全局上下文。
  • Per-pixel self-supervised confidence
      将生成的像素级特征喂入一个最终网络,该网络针对每一个像素级的特征预测对象的6D姿势和置信度分数(因为每个对象的像素都预测了一个6D姿势,加入置信度分数帮助来选取最好的6D姿势,最后根据置信分数最高决定6D姿势)。

6D Object Pose Estimation

非对称对象的损失函数
DenseFusion论文笔记_第2张图片
对称对象的损失函数在这里插入图片描述
在这个损失函数的基础上加一个置信分数的正则项
DenseFusion论文笔记_第3张图片

Iterative Refinement

DenseFusion论文笔记_第4张图片
以上为一个迭代Refinement过程,利用了上一帧计算出来的位姿,对当前帧输入的点云进行位移和旋转变换,并输入到下一帧去,进入PointNet提取embeddings。文章将这个迭代器称为位姿残差估计器,认为它可以与主网络联合训练。然而,训练开始时的姿态估计噪声太多,以至于它无法学到任何有意义的东西。因此,在实践中,要在主网络收敛之后再对位姿残差估计器进行学习。从作者的实验结果看,这一个步骤非常重要,对准确率的提高很明显。
这个迭代过程的损失函数是什么?

你可能感兴趣的:(笔记)