传统的6d位姿估计fangfa1_6D位姿估计小结

6D位姿是什么?

给定输入图片,6D位姿估计是估计从物体坐标系O到相机坐标系C的刚性转换,包括3D旋转R和3D平移T。其中,T决定物体在图片中的位置和比例,R根据物体的3D形状和表面纹理信息影响物体外观。

6D位姿求解方法分类?

根据输入数据的不同,大致分为3类:

  1. RGB图像输入;
  2. 点云(point cloud)输入;
  3. RGB + 点云输入。

基于RGB图片的6D位姿估计

对于RGB图片的输入,传统方法首先从输入图片中提取特征,再将这些特征与已有的3D模型匹配,最后通过Perspective-n-Point(PnP)算法建立2D-3D坐标的对应关系,从而估计目标物体的6D位姿。对于纹理信息丰富的物体,基于特征匹配的位姿估计方法速度快、鲁棒性好,然而,对于弱纹理物体或者物体间遮挡严重时,基于特征匹配的方法往往会失败;基于模板匹配的方法常用来处理低纹理的物体,Hausdorf和Hsiao等提出通过不同距离的策略匹配输入图片和3D模型,但是当场景混叠或者物体表面发生形变时,基于模板匹配的方法会失败。近年来,随着计算机视觉的发展,基于深度卷积网络(CNN)的6D位姿估计算法获得了巨大的成功,成为当前的主流,主要呈现2大发展趋势。一方面,基于CNN直接从RGB图片中估计物体6D位姿。Kendall等基于CNN结构提出PoseNet,直接从RGB图回归6D相机位姿;Xiang等人通过聚类模型的3D特征,估计物体6D位姿;Mousavian等人通过单一视图的几何约束,估计3D物体参数并恢复6D位姿;Wadim等人基于SSD框架提出SSD-6D如下图所示,通过InceptionV4分支将输入映射为6个不同尺度的特征图,再分别与大小为(4+C+V+R)的卷积核进行卷积,以确定类别、2D边界框、视觉点和平面旋转角度,再通过映射关系获取6D位姿;2018年,商汤科技针对背景简单、无遮挡的情况,利用二维图片合成的方法扩充训练集,再基于弱监督算法估计物体6D位姿,IoU值为0.67,效果不好然而,由于搜索空间大,直接定位物体比较困难,且实时性差。

传统的6d位姿估计fangfa1_6D位姿估计小结_第1张图片

SSD-6D网络结构

另一方面,基于关键点检测将任务解耦为两个阶段:先检测2D图片中物体的关键点坐标再通过PnP算法估计6D位姿。M.Rad等人先利用分割算法确定输入RGB图片中包含物体的区域,再从分割区域中检测关键点坐标;受2D人体姿态估计的驱动,Pavlakos等提出通过输出关键点的像素级热力图,解决物体间遮挡问题;Tekin等人通过YOLO网络同时检测物体并估计其6D位姿;浙江大学的彭思达等人提出了PVNet(2019CVPR),如图所示,先检测出物体的可见部分,其上的每个像素预测一个指向物体关键点的方向向量,再利用RANSAC对关键点投票,最后与物体的3D模型匹配,估计其6D位姿;Yinlin Hu等提出分割驱动的6D位姿估计算法(2019CVPR),物体每个可见部分都会产生局部预测位姿,利用多个局部预测代替全局预测,算法的鲁棒性较好;Kiru Park等人针对无纹理物体提出Pix2Pose(2019ICCV oral),将物体3D模型坐标点转化为图片坐标中的R、G、B值,利用生成模型补全物体被遮挡部分,再通过预测彩色图建立2D-3D对应关系。然而,当处理低纹理物体或低分辨率图片时,基于关键点检测的方法性能下降较大,且不能实现端对端的优化。

传统的6d位姿估计fangfa1_6D位姿估计小结_第2张图片

PVNet 流程图

基于点云信息的6D位姿估计

(传统)前期的研究主要通过离散化三维体素空间内解决3D目标检测问题。2015年,Song等利用3D卷积网络对体素化输入进行特征提取,生成3D边界框和位姿估计。虽然体素化表示可以有效地编码几何信息,但速度很慢,每帧耗时近20秒。

基于3D深度学习框架的兴起:2016年,CR Qi等人提出PointNet,如图所示,直接处理点云数据,耦合分类、部分分割和语义分割,利用最大池化(MaxPool)解决点云的无序性,利用T-Net保证旋转不变形,进一步用一组稀疏的关键点代表整个输入的框架,对小扰动或者缺省值的鲁棒性较好;2017年,受CNN结构的启发,他们进一步提出了PointNet++,在不同尺度逐层提取局部特征,利用采用层、组合层和特征提取层得到深层特征,利用多尺度和多分辨率组合的方式有效解决点云数据不均匀的问题;2018年,他们改进PointNet++,提出Frustum-PointNet,结合2D检测算法来定位目标,再用其对应的点云数据视锥,进行边界框回归,实现3D目标检测和位姿估计。然而,Frustum-PointNet由2D目标检测、3D分割和回归网络构成,不是端到端的模型,且在做3D分割和边界框回归时,只使用了点云特征,没有融合2D检测的图片特征。2017年,Yin Zhou提出端到端的深度学习网络VoxelNet,将三维点云划分为一定数量的Voxel,随机采样和归一化后,对每一个非空Voxel进行特征提取,再经过3D卷积层进一步抽象特征,最后使用RPN网络对物体进行3D检测与位置回归,在KITTI基准达到了领先的效果。但是,点云数据量大,冗余度高和非结构化性强,存在特征提取难、计算量大、场景遮挡和空间形变敏感等问题;另一方面,一般的位姿估计(如:YCB-Video数据集)还要求对物体的几何信息和表面信息进行估计,仅使用点云信息难以解决该问题。

传统的6d位姿估计fangfa1_6D位姿估计小结_第3张图片

pointNet

基于RGB-D图片的6D位姿估计

以RGB-D输入源的6D位姿估计算法中,大体可分为2大类:

  1. 将深度信息和RGB信息一起输入神经网络来完成预测(如:densefusion);
  2. 使用深度信息来对RGB网络的输出进行refinement,不断迭代优化结果(如:poseCNN),
  1. poseCNN:

该算法先使用RGB图像预测mask、rotation与translation三组数值确定待预测物体的6D位姿,再通过ICP算法,利用深度信息进行refinement,提高预测的效果。

传统的6d位姿估计fangfa1_6D位姿估计小结_第4张图片

poseCNN

PoseCNN网络架构图如上,分为三项任务:语义分割,3D位置,3D旋转。PoseCNN使用VGG16作为骨干网络,引入了一种新的用于对称目标姿态估计的训练损失函数ShapeMatch-Loss,通过在图像中定位其中心并预测其与相机的距离来估计对象的3D平移;通过回归到的四元数表示来估计对象的3D旋转。在网络完成预测后,会调用ICP算法使用深度图来精炼网络,提高网络对于遮挡物体识别的鲁棒性。

  1. DenseFusion:

李飞飞团队研发的DenseFusion网络也在RGB-D数据上达到了很好的效果,该网络同时使用RGB图像和深度图像,将两者的高阶语意信息融合之后,再送入神经网络进行6D位姿与置信度的预测。下图为DenseFusion的主要架构:网络使用RGB图像求出颜色嵌入图信息;使用深度图求出点云信息,随后再将color embeddings和geometry embeddings两种信息融合后,送入神经网络进行位姿预测。

传统的6d位姿估计fangfa1_6D位姿估计小结_第5张图片

DenseFusion网络

下图为DenseFusion网络中refinement模块的结构图,这是一个迭代过程,利用了上一帧计算出来的位姿,对当前帧输入的点云进行位移和旋转变换,并输入到下一帧去,进入PointNet提取embeddings。在实践中,这部分需要在主网络收敛之后再对位姿残差估计器进行学习。

传统的6d位姿估计fangfa1_6D位姿估计小结_第6张图片

refinement

  1. MaskedFusion

MaskedFusion在DenseFusion网络基础上进行修改,主要针对数据融合部分进行改进,在改进后,MaskedFusion会消耗更多的训练时间,但是准确度更高,且不会消耗更多的预测时间。下图是MaskedFusion网络结构图,相比于上述的DenseFusion,该网络会先将RGB-D信息分为Cropped RGB图像、Cropped Depth图像和Cropped Mask图像一起输入网络,相比较DenseFusion网络更多地考虑了Mask语意信息(其包含了物体的形状信息)。

传统的6d位姿估计fangfa1_6D位姿估计小结_第7张图片

MaskedFusion

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

原创不易,关注、点赞、转发、收藏一气呵成。

你可能感兴趣的:(传统的6d位姿估计fangfa1_6D位姿估计小结)