DenseFusion笔记

https://blog.csdn.net/u010403272/article/details/93168245
https://blog.csdn.net/weixin_43013761/article/details/103108492
https://blog.csdn.net/qq_36775458/article/details/103615903
https://zhuanlan.zhihu.com/p/60690747

论文下载地址:https://arxiv.org/abs/1901.04780
主页地址(代码视频):https://sites.google.com/view/densefusion/
GIthub代码地址:https://github.com/j96w/DenseFusion
Youtube视频地址:https://youtu.be/SsE5-FuK5jo

摘要

利用RGB-D数据进行6D位姿估计的挑战:如何充分利用图像和深度两个互补的信息。
以前:1、分开处理图像或深度信息;2、使用后处理步骤
结果:不能处理复杂场景,实时性不好

工作:提出一种通用的框架,利用RGBD数据对已知对象进行6D位置估计。
特点:一种混合结构,分别处理图片和点云两种数据源,用dense fusion network 稠密融合网络提取像素级的dense feature embedding 稠密特征,来实现位姿估计。端到端的过程,实时推理。

1、引言

6D位姿估计要求:处理各种形状文理的物体,对遮挡、噪声、光线变化有强鲁棒性,实时性。
RGB-D对弱纹理、弱光线的物体位姿估计精度高于RGB。已有方法难以同时满足精度和速度。

传统方法:提取特征->分组->假设验证
缺点:手动特征和固定匹配过程在严重遮挡和光线变化时表现不好

目前有PoseCNN和MCN数据驱动的深度网络实现RGBD的位姿估计,但是都要有一个后处理过程进行重新微调,来充分利用3D点云数据,比如PoseCNN的高度定制的ICP,MCN的多视角假设验证。
问题:1、微调过程不能与目标函数同时优化,2、速度慢,无法实时

自动驾驶背景下,通过PointNet和PointFusion端到端模型将RGB和D信息进行补充,在自动驾驶场景下得到了好的表现和实时性,但是在遮挡环境下效果不好

本文提出端到端的网络实现对已知模型物体在RGBD输入下的位姿估计。核心是将RGB数据和点云进行像素级的嵌入和融合。不同于以前图像的全局特征提取和2D边界框的方法。这种方法可以明确的推理局部外观和几何信息,这对于遮挡很重要。还提出了一种迭代模型在端到端的学习中进行调整。提高模型性能和推理速度。

研究者在两个流行的 6D 姿态估计基准——YCB-Video 和 LineMOD 上评估了他们的方法。结果表明,在经过 ICP 改进后,该方法的性能超越了当前最佳的 PoseCNN,其姿态估计准确率提高了 3.5%,推断速度提高了 200 倍。值得一提的是,新方法在高度杂乱的场景中表现出了鲁棒性。最后,研究者还在一个真实的机器人任务中展示了它的用途,在这项任务中,机器人估计目标的姿态并抓取它们以清理桌面。

本文两个贡献:
1、提出颜色和深度信息融合的基础方法。用嵌入空间的2D信息来增加3D信息,用这个颜色深度空间实现6D估计。
2、在神经网络架构中融入迭代微调过程,取消了对ICP后处理过程的依赖。

相关工作

**Pose from RGB images(通过RCB图像进行姿态估算)**传统的方法,主要依赖已知模型的检测和关键点匹配。后面出现了对2D关键点进行预测的方法,但是纹理比较低,分辨率低的图像,其效果十分的差。至于其他的一些方法,都是把注意力集中在方向的预测上,如通过多视角,去预测一个视觉的姿态。我们的方法是结合的3维数据和图片信息,一起进行端到端的学习。

Pose from depth / point cloud(通过点云数据或深度信息进行姿态估算) 最近的研究,利用体素,配合3D卷积。虽然这种方法能够很好的提取到3D几何信息,但是太慢了,没帧图片的处理要20秒。再近一点的方法,直接对3D点云数据进行学习。比如PointNets和VoxelNet,其VoxelNet用了一个类似于PointNets的架构,在KITTI达到了目前最相近的效果。
与单点云就能提供足够信息的城市驾驶技术不同,对于YCBVideo 数据集,我们还需要对他的外观进行推理。我们通过2D-3D传感器融合的方式,解决上面问题。

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

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

模型

任务是:在混乱场景下,利用RGB-D数据对已知模型的物体进行6D位姿估计。6D位姿可看为一个齐次变换矩阵,包括旋转矩阵R和平移矩阵T,这是相对于相机坐标系的矩阵。
在复杂场景下估计已知模型的位姿,只有依靠颜色和深度信息结合才可能实现,两种图片来自不同控件,在混合数据源提取特征并且适当的融合是当前领域的一个挑战。
解决方法:
1、不同的架构处理颜色和深度信息,保持每个数据源的自然特征。
2、像素级的融合网络,利用两种数据的原始属性
3、使用可微迭代方式对初始位姿进行提炼。
在这里插入图片描述

3.1框架包括两个阶段:

1、语义分割,得到彩图的mask,然后利用mask确定深度图目标点云,最终得到目标的彩色图片mask和点云mask
2、位姿估计,分4步:
a)通过全卷积网络处理颜色信息,把图像分割的每个像素点映射到color embeddings。
b)通过pointnet处理mask后的点云数据,得到几何信息的geometry embeddings
c)将color embeddings和geometry embeddings进行像素级融合,然后基于无监督置信度进行姿态估计
d)采用迭代自微调的方法去训练网络,迭代优化估计结果

3.2语义分割

第一步是对图像进行语义分割,采用的posecnn中语义分割部分,网络为一个编解码结构,输入一张图片生成N+1个通道的语义分割图,每一个通道是一个二值化掩码,表示一个类的像素位置。

3.3密集特征提取

该领域的关健挑战是从color和depth通道正确提取特征,并且协同融合。在RGB-D image中color和depth有相似的表现形式,但是他们包含的信息属于不同的空间。所以分别处理他们,从嵌入空间来生成颜色和几何特征,来保持数据源的内在结构。

稠密3d 点云特征嵌入

之前的处理方式是将深度图看成另外的图像通道,用CNN网络去处理它。这种方法忽略了深度通道内在的3D结构。作者先利用相机内参将深度像素转换成3D point cloud ,然后用PointNet的近似框架去提取集合特征。
PointNet首先使用symmetry function在处理无序点云时实现了置换不变。原本框架是输入原始点云,学习每个点附近点云信息和整体信息进行编码。在处理形状分类,分割和位置估计时这些特征被证明是有效的。我们提出一个geometric embedding网络来生成一个稠密点特征,把每个点云P映射到dgeo维空间。将PointNet结构中的max-pooling替换为average-pooling作为对称下降函数。

稠密彩图特征嵌入

color embedding的目的是将3D点特征与图片特征向结合,提取像素级的特征。是基于CNN编解码形式,输入为H×W×3,输出是H×W×drgb的嵌入空间,每个嵌入像素是一个drgb维的向量去表示输入图片在对应位置的外观信息。

3.4 pixel-wise Dense Fusion

上面已经从图面和3D点云中获得了稠密的特征,现在需要进行融合。一个简单的方法是在分割区域中利用全部的稠密的颜色和深度特征来生成全局特征,但是由于严重遮挡或分割分割失败,上步得到的特征中可能包含其他物体或背景中的点或像素的特征,因此盲目融合全部的特征会降低估计性能。提出一个全新的像素级融合网络有效提取特征,特别是有严重遮挡和不完美分割情况下。
Pixel-wise Dense Fusion
稠密融合网络的关健想法是用局部每个像素的融合代替全局融合,这样能基于每个融合特征进行预测。这样可以潜在的选择物体可见部分进行预测,并最小化遮挡和分割噪声产生的影响。具体来说,
1、首先利用相机固有的内参将每个像素点与几何特征关联起来。
2、将获得的特征对连接起来,并给到另一个网络去生成固定大小的全局特征矩阵。虽然我们避免使用单一的全局特征去估计,在这里我们使用全局稠密融合特征提供上下文信息,来丰富每个稠密像素的特征
3、将得到的每个像素点的特征喂给最终网络去预测6D姿态。也就是训练一个网络,对每个稠密融合特征都预测一个位姿。结果就是得到P个预测位姿,每个特征对应一个。下面介绍利用自监督学习方法得到最佳预测的方法
Per-pixel self-supervised confidence
我们希望训练一个网络,可以根据特定的上下文环境,确定一个最好的位置。我们修改网络对每个预测生成一个预测分数,并将他当做第二个学习目标。

3.5 6D位姿估计

定义了整个网络结构后,仔细研究一下学习目标。我们定义位姿估计loss为物体模型在真实位置上每个点的坐标与对应点在同一模型上通过预测位姿进行坐标转换后的坐标。
在这里插入图片描述
从3D模型中随机挑选M个点, x j x_j xj对应M个点中的第j个点在模型中的位置。p=[R|t]表示真实位置, p i ^ \hat{p_i} pi^= [ R i ^ ∣ ( ^ t i ) ] [\hat{R_i}|\hat(t_i)] [Ri^(^ti)]为第i个稠密像素点预测的位置(没懂)(暂且感觉,用第 i 像素点的特征矩阵估计位姿时,loss函数是选用M个点在这个 i 点估计的位姿变换下与真实位姿变换下的平均loss)

上面的loss函数值适合非对称的模型,它们的纹理和形状都唯一确定。对称物体有多个可能的点对应,导致了模糊的学习目标。对于对称物体,最小化目标不是根据特征寻找对应点,而是被估计点与真实模型上最近的点进行匹配。
在这里插入图片描述
优化所有预测的每个稠密点位置,需要最小化每个稠密点的losse的平均值,(上面是对每个i像素点计算的loss)
在这里插入图片描述
为了得到一个均衡的置信度,添加了一个正则项。
在这里插入图片描述
N为随机挑选的点个数,w为超参,c为置信度(0-1)
在这里插入图片描述
如图所示,子loss函数可表示为 l i p c i l_i^pc_i lipci + − w l o g ( c i ) -wlog(c_i) wlog(ci)两部分,左图表示 l 越大,斜率越大,loss函数可以用右图中红线与蓝线距离表示,从图中可以看出,当l较小时,在c较大的地方红线到蓝线的距离较小,随着l变大,使得红线到蓝线距离最小的c在左移。从图中可以看出,当loss越大置信度越小。

3.6 iterative refinement

icp对很多6d位姿估计的细化来说是一个有用的方法,但是这种方法不能达到实时性。其他的细化方法是假设可以接收一个高实时性的渲染引擎,和高质量的模型纹理。这里我们提出一个基于稠密融合嵌入特征的神经网络迭代细化模型。它可以快速和鲁棒的提供最终的位置,不需要额外的渲染技术。
目标是让网络可以通过迭代方法自动纠正位置估计偏差。挑战是训练一个网络去改善预测结果而不是生成新的预测结果。为此,我们需要将上次迭代得到的预测结果作为下次迭代输入的一部分。
关健思想:
1、将前面的预测位置作为一个关键帧的估计。
2、将估计结果用在输入点云上,进行位姿估计逆变换,得到标准点云。
3、将这个点云再次喂到反馈网络。
我们专门训练一个残差网络对主网络得到的初始位姿进行细化。每次迭代过程中,重复使用图片提取的信息和新变化后得到的点云几何特征进行融合。位姿残差估计器使用融合像素特征集作为全局特征的输入。通过k次迭代后得到最后的姿态。
在这里插入图片描述
(个人感觉整个过程:首先利用主网络利用相机得到的点云cloud_1 预测一个位姿Pose_1,然后利用Pose_1和相机得到的点云cloud_1 进行反坐标变换得到cloud_2,如果Pose_1是绝对准确的,那么反坐标变换后的点云cloud_2应该就是标准的模板点云Cloud。但是Pose_1不准确,所以反坐标变换与标准的模板点云有偏差。将反坐标变换后的点云cloud_2作为输入再喂如残差网络,这个时候预测得到的是cloud_2与Cloud之间的小位姿偏差Pose_2 。此时得到的Pose是Pose_2*Pose_1。依次类推,利用cloud_2和Pose_2进行反变换得到cloud_3,然后预测Pose_3 。。。 知道达到迭代终止条件)

4.Experiments

实验回答四个问题:
1、稠密融合网络和全融合网络比较
2、在严重遮挡和分割错误情况下的鲁棒性
3、迭代细化模块对最终的位姿估计结果提升相关
4、能不能实现机器人实时抓取任务

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值