传统的6d位姿估计fangfa1_6D位姿估计-李飞飞等提出DenseFusion(论文笔记)

DenseFusion是为了解决6D对象位姿估计问题,通过融合RGB-D数据的颜色和深度信息。它采用像素级别的融合策略,结合迭代姿态微调,实现端到端优化。方法适用于处理重度遮挡情况,适用于实时应用。
摘要由CSDN通过智能技术生成

摘要

通过RGB-D 数据进行6D位姿估计。

根据 RGB-D 图像进行 6D 位姿估计的一个主要技术挑战是如何充分利用两个(RGB和深度图)互补数据源。Densefusion,单独处理2个数据源,然后再进行融合(每个像素级别嵌入、融合 RGB 值和点云);同时将iterative pose refinement整合到网络,实现end-to-end优化。同时速度可以达到16FPS。

介绍

6D位姿的应用是十分广泛的,如机器人抓取,自动驾驶等。理论上来说,这些应用,对6D位姿的预测需要很强的鲁棒性,无论在大范围遮挡,低光等环境下,都要提供准确并且实时的姿态估算。直到RGB-D传感器的出现,促使我们有能力去解决这些问题。使用RGB-D传感器,去做位姿估计,一般来说,效果都是要好于基于RGB图像进行估算的方法。但是现在基于RGB-D图像进行估算的方法,都很难做到保证高准确率并且实时。

传统方法首先从 RGB-D 数据中提取特征,完成对应的分组和假设验证。但是,对手动特征的依赖和固定的匹配程序限制了它们在重度遮挡、灯光变化环境下的表现。

近来在视觉识别领域取得的成果激发了一系列数据驱动方法,即使用 PoseCNN 和 MCN 这样的深度网络对 RGB-D 输入做姿态估计,但是这些方法需要经过精心的自定义后细化步骤,如PoseCNN中的高度自定义迭代最近邻(ICP)过程和MCN中的多视图假设验证方案。这些细化步骤不能与最终目标一起优化,而且对于实时应用程序来说速度非常慢

为了更好地利用RGB-D数据的颜色和深度信息的互补性,在自主驾驶的背景下,提出了第三类end-to-end的解决方案,例如Frustrum PointNet和PointFusion 。实时性较好,但在重度遮挡时性能下降快。

本文:根据RGB-D data,提出一种end-to-end的深度学习方法。该方法的核心是在像素级别上嵌入和融合 RGB 值和点云,这种像素级融合方法能够明确地推理局部外观和几何信息,这对处理重度遮挡情况至关重要。此外,还提出了一种迭代方法,能够在端到端学习框架中完成pose refinement

Contribution:2点。首先,提出了一种将RGB-D输入的color和depth信息融合起来的方法。利用嵌入空间中的2D信息来增加每个3D点的信息,并使用这个新的color-depth空间来估计6D位姿。第二,在神经网络架构中集成了一个迭代的微调过程,消除了之前后处理ICP步骤的依赖性。

相关工作

Pose from RGB images:传统方法主要依赖已知模型的检测和关键点匹配。新的方法通过预测2D关键点坐标,再用PnP求解。但是纹理比较低,分辨率低的图像,其效果十分的差。至于其他的一些方法,都是把注意力集中在方向的预测上,如通过多视角,去预测一个视觉的位姿。我们的方法是结合的3维数据和图片信息,一起进行端到端的学习。

Pose from depth/point cloud:(Frustrum PointNets和VoxelNet)最近的研究,利用体素,配合3D卷积。虽然这种方法能够很好的提取到3D几何信息,但是慢,每帧图片的处理要20秒。后面有直接对3D点云数据进行学习的方法。比如PointNets和VoxelNet,其VoxelNet用了一个类似于PointNets的架构,在KITTI达到了目前最相近的效果。

Pose from RGB-D data:(poseCNN)最近的一些方法,如 PoseCNN直接通过图像进行姿态预测,更进一步的,为CNN添加了一个通道用于深度信息的输入,这些方法为了重复利用输入信息,不得不使用昂贵的后期处理方式。我们融合了3D数据和2D外观特性,充分的保留了几何信息,在YCB-Video 数据集上,不做后期处理,也取得了比较好的效果。

我们的方法与PointFusion最相关,其几何信息和外观信息被融合在一个复杂的特征向量之中,然后再使用迭代提炼的方式,对初始预测的姿态进行优化。

模型

难点:Color信息和depth信息不同源,融合比较困难。

做法:

(1)一个能够分别处理颜色和深度图像信息,并且可以保留每个数据源原始结构的框架;

(2)一个通过利用数据源间的内在映射融合颜色-深度图像信息的密集像素级融合网络

(3)使用迭代优化的方式,对初始估算的姿态进行提炼。

网络结构:

baa54f720ab1aa9c6937770da60d0df1.png

DenseFusion网络

主要包含两个阶段

第一个阶段将color image作为输入,为每个已知的目标类别执行语义分割(生成mask 和Bbox)。

第二个阶段处理分割的结果并估计目标的 6D 姿态。它包含四个部分:a)一个处理颜色信息的全卷积网络,该网络将裁减图像块中的每个像素映射到一个颜色特征嵌入中;b)一个基于 PointNet 的网络,该网络将masked 3D 点云中的每个点处理为一个几何特征嵌入;c)一个像素级的 fusion 网络,该网络将两个嵌入结合起来,并基于无监督置信度得分输出目标的 6D 姿态估计;d)一个迭代的自微调方法self-refinement,该方法以课程学习的方式curriculum learning manner对网络进行训练,并迭代地微调估计结果。

语义分割:(encoder-decoder结构,用的poseCNN中的分割网络。)分割出需要进行位姿估算的目标,只用语义分割的mask确定目标在深度图的位置,然后对把深度图的目标所在区域的深度信息,转化为点云信息。此时获得的image crop和masled point cloud都当做网络第二阶段的输入;

Dense feature extraction

如何正确的提取出color和depth图像的特征信息,虽然在RGB-D图像中,他们的形式比较相近,但是数据信息分别是来自不同空间的,所以把它分开处理,分别映射成color features和geometric features,这样更好的保留了属于原本空间的信息。

  1. Dense color image feature embedding:提取每个像素的特征,从而建立3D point特征和image特征的对应关系。encoder-decoder结构将size为H*W*3的image,映射到H*W*d嵌入空间,每个像素都映射为d维的向量,表示image在对应位置的外观信息。
2d200b729d31f2e18677dac23e1040dc.png
  1. Dense 3D point cloud feature embedding:用已知的camera intrinsics将分割的深度图像转换为3D点云,然后使用PointNet-like architecture来提取几何特征(用处理点云的方式来提取几何特征)。提出几何嵌入网络,将每一个分割点P映射到d维特征空间,即每个像素抽象为d维向量,表示空间信息。
c75c105da68ea9a08490944489275935.png

Pixel-wise dense fusion

通过上面2步,已经获得每个像素点的color和geometry特征,然后就是融合这些特征。Dense fusion net的核心思想是:核心思想是局部per-pixel融合,而不是全局融合,这样就可以根据每个融合的特征进行预测(和segmentation-driven 6D object pose estimation相似),这样可以选择基于object可见部分的预测,并最小化遮挡和分割噪声的影响。利用已知的相机参数,把3D点云和对应的在image中的位置对应起来,连接起来的成为per-pixel feature,通过MLP、average pooling后得到一个fix-size global feature,最后将global feature与每个像素的color和 geometry feature再进行一次concatenate,得到最终像素的特征。

2733547d63cf734c85bad3ba97f80c42.png
464d4e694d32caf52caff751e7291668.png

Per-pixel self-supervised confidence: 我们希望网路根据环境,自己去决定哪个预测的结果最好。所以在对姿态进行预测的时候,对于每个像素/点云的姿态预测,还添加了一个置信度评分。

6D Object Pose Estimation

损失:

对称物体

197b875a08ace387f778f93771cf5b43.png

非对称物体

44fcccd9ff450ed1087332acd85b3f94.png

在网络学习的过程中,就是将loss(上面的公式,都是针对一个像素的,这里是一个求和的过程)进行优化,让他达到最小。

对于置信度:

e3154939b959abfe256d477cbde2fb46.png

w是超参数。当置信度越大的时候,loss似乎很大,但是注意后面的惩罚项,置信度越大,该值也会越大,然后结合参数w,可以让整体保持一个单调递减的状态,也就是说,ci越大,loss越小。

自迭代refinement

afa3130c0ce019bc6cda8b19c4ee1b5e.png

目标是创建一个网络,能通过迭代去纠正一些预测的错误。既然是一个迭代优化的过程,那么我们就需要把上一次的输出,当做这一次的输入,这一次的输出,当做下一次的输入。

(说实话,这段有点难以理解,以后在更新下,也欢迎懂的朋友留言讨论下,共同进步)。

实现细节

rgb特征的抽取(抽取颜色信息)是一个18层的编码解码网络,4个上采样作为解码过程。PointNe架构在全连接层之后跟随着average-pooling作为reduction function。color和geometric特征融合之后的特征向量是128维的,其中的超参数w=0.01。经过试验证明,对于refinement module 使用4个全连接层,连接起来对姿态进行评估效果比较好。所有的实验中,我们都使用了两次迭代进行优化提炼。

实验部分:略。

论文连接:https://arxiv.org/pdf/1901.04780.pdf

代码连接:https://github.com/j96w/DenseFusion

注:最近在学习一些3D检测和6D位姿估计算法相关的东西,会持续更新,大家一起进步。

翻译、原创不易,跪求大佬关注、点赞、转发、收藏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值