PoseCNN DOPE Yolo-6D对比总结

news/2024/11/17 5:41:13/

一、介绍

首先看一下时间线:

PoseCNN(2018.05)→DOPE(2018.07)→Yolo-6D(2018.12)

        PoseCNN是三者里最早发布的文章,对后续的文章会起到一定的借鉴作用。比如,DOPE在处理遮罩问题,回归2D中心点时就借鉴了PoseCNN中向量领域的概念,这个方法待会会在PoseCNN的部分提到。另外,在精度方面,DOPE也拿PoseCNN进行对标。

        值得一提的是,这三种算法均是以2D图像为输入。

(1)PoseCNN:将2D图像中的像素直接回归到6D位姿(R,t);

(2)DOPE:先预测图像中的9个关键点,然后用PnP算法回归到6D位姿(生成3Dbbox);

(3)Yolo-6D:利用yolo的算法对每个网格生成9个关键点的bbox,然后利用PnP算法回归到6D。

        这三种算法的关键都是找到2D图像中物体的中心,然后回归到相机坐标系下物体的质心。

        下面将具体介绍这三种算法的实现过程。

二、PoseCNN

1. 主要贡献

(1)提出了用Hough voting的方法(参考ISM这篇论文,见文末链接)来预测出2D中心点,再加上预测物体到相机的距离来计算出物体的3D位置T。这种方法对于处理遮罩问题具有很好的效果。

(2)提出了ShapeMatch-Loss,损失函数,即计算预测出来的3D点到真实3D模型的最近点之间的loss,而不是去算预测点到它对应点之间的loss,这样可以处理对称的物体,防止它因为出现多个groundtruth的情况下,局部loss太大,影响模型精度。

(3)提出了新的数据集,YCB-Video dataset,视频数据集。

2. 实现细节

(1)模型框架

骨架是VGG16

         这个网络主要包含了三个阶段。

        第一个阶段是特征提取,通过卷积层和池化层对对不同分辨率的图片进行特征提取,最终得到一个通道数为512的feature map。

        第二阶段是嵌入网络,通过转置卷积核来放大图片分辨率。

        第三阶段是来对每一个像素进行分类(即作语义分割),并对每一个像素计算一个到中心点的向量来进行投票,得到2D中心点(Hough voting)。另外,通过ROI pooling层来筛选bbox,根据非极大值抑制原则。最后,通过三个全连接层来回归物体的旋转姿态R。

        输出分为三部分:语义分割、3D位移、3D旋转

                         

(2)3D位移估计

 根据公式:

 cx,cy是物体中心的2D坐标;fx,fy是相机的焦距;px,py是像素点坐标;Tx,Ty,Tz即3D位置

        根据上式,我们只要确定物体2D中心坐标以及Tz(物体与相机之间的距离),即可确定3D坐标。

物体2D中心坐标的确定

                                  

         本文采用基于Hough voting的方法,灵感来源于Implicit Shape Model(ISM),对于每一个像素点p=(x,y)T,可以得到:

                                    

 注意:这边进行了归一化处理,nx,ny都是单位向量,这样能够确保尺度不变。

关于LOSS:

                                 

u是类别label,v是ground-truth bbox。

loss包含了像素点的分类误差和像素点的定位误差。

对于背景的ROIs而言,没有所谓的bbox的ground truth,所以它的定位误差Lloc可以被忽略。因此bbox回归的误差可以表示为:

                                

 (3)3D旋转估计

关于对应点的均方误差计算:PoseLoss

                   

 关于最近点的均方误差计算(处理对称物体):SLoss

                   

 (4)评估标准(ADD指标)

非对称物体:

                           

对称物体:

                 

 3. 关于尺度、实例化、遮罩和对称性的问题

(1)尺度:用了多尺度训练,在不同的层使用分别率不一样的图片进行特征的提取。

(2)实例化:使用了语义分割加像素点投票,即标记像素加聚类。

(3)遮罩:ISM(隐式形状模型)

(4)对称:ShapeMatch-Loss

4. 缺点

(1)缺少足够的数据集

(2)把相机参数放到了网络权重里,换一台相机可能会影响精度。

(3)需要ICP(Iterative Closest Point)算法进行优化

(4)未提及验证速度,是否能实时。

三、DOPE

1. 主要贡献

(1)与PoseCNN不同,它没有对每一个像素进行预测,它预测是9个关键点。

(2)使用了合成数据,确保了数据量充足。

(3)结合了随机领域和写实照片,去让合成数据跟贴近现实。

(4)在机器人操作系统中进行了验证。

2.实现细节:

网络骨干:VGG-19,全卷积层网络。

输入:640x480x3的2D图片

输出:belief maps 和 vector field

belief maps:8个角点和1个中心点作为通道。它是置信图,是一个图像中所有像素所满足的分布,在本文中,从中提取单独的目标,通过寻找超过一定阈值的belief maps上的局部峰值位置,来定位物体。每一个物体的belief map有9个像素点。

vector field:8个向量(从角点指向中心点)

Ground Truth:belief maps的groudtruth是角点位置的2D高斯分布,σ = 2像素;vector field的groundtruth是指向对象质心的向量的归一化x和y分量。

Training:L2 均方误差损失

关于随机领域和写实照片: 

3. 关于数据集、速度和抓取

数据集:结合了随机领域和增强现实的合成数据集

速度:全卷积层以及简化的single-shot belief map结构,速度快于PoseCNN,可实现实时。

抓取:进行了真实世界的抓取演示

4. 缺点

(1)无法解决对称问题。

(2)缺少闭环的refine过程。

(3)没有做验证速度对比实验。

四、Yolo-6D

1. 主要贡献:

(1)将目标检测yolo算法框架应用到了位姿估计。

(2)同时在所有网格中进行预测,提高了预测效率。

(3)实时检测,速度为50fps 在TitanX GPU上,并做了详细的速度对比分析。

(4)不需要3D模型数据去进行优化。

2. 实现细节

(1)数据集为LINEMOD

(2)网络骨架是darknet-19

(3)输入:416x416x3的2D图片

(4)输出:13x13x(9x2+1+C)

(5)Ground Truth:真实3D框到2D的投影点

在已知一组点云数据后,这样取点:

 (6)Loss:IOU+坐标定位误差+分类误差

其中值得一提的是它的IOU函数:

                                            

                                     

这样做的目的是简化计算,不用算3D重合部分的凸包。

 关于检测效果:

      

3. 关于速度和遮罩

(1)速度:做了速度对比,与SSD-6D和BB8

(2)遮罩:每个网格最多产生5组关键点,即允许一个网格内有5个物体相互遮罩。

4. 缺点

(1)缺少足够多的数据集。

(2)缺少在真实世界中机器人抓取的算法验证。

以上观点仅代表个人看法,如有错误请指正。

参考文献:

PoseCNN:

https://arxiv.org/abs/1711.00199

YOLO-6D:

https://arxiv.org/abs/1711.08848

DOPE:

https://arxiv.org/abs/1809.10790?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%253A+arxiv%252FQSXk+%2528ExcitingAds%2521+cs+updates+on+arXiv.org%2529


http://www.ppmy.cn/news/253083.html

相关文章

FFB6D A Full Flow Bidirectional Fusion Network for 6D Pose EstimationFFB6D 6D 姿势估计的全流双向融合网络

文章目录 摘要解决问题贡献方法LOSS 3D-3D对应 摘要 在这项工作中,我们提出了 FFB6D,这是一种全流双向融合网络,专为从单个 RGBD 图像进行 6D 姿态估计而设计。我们的主要见解是 RGB 图像中的外观信息和深度图像中的几何信息是两个互补的数…

英伟达最新!对未知物体的6D姿态追踪和三维重建(CVPR 2023)

编辑 | 计算机视觉life 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心【全栈算法】技术交流群 普通手机“随手”拍的雕像,一下就变成了精细的三维重建图。 水杯来回动的动态场景下,细节…

刚体6D位姿估计方法综述

本文同步于微信公众号:3D视觉前沿,欢迎大家关注。 1 引言 刚体的6D位姿估计,是指估计相机坐标系下物体的6D位姿,即3D位置和3D姿态,此时原始物体本身的坐标系可以看作是世界坐标系,也即得到原始物体所在世…

6D姿态检测

3D相机—结构光相机 结构光,英文叫做 Structured light,其原理是基本原理是,通过近红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集。这种具备一定结构的光线,会因被…

机械臂6D姿态检测(RGB、RGBD、雷达)综述

1、单目: (1)GDR-Net: Geometry-Guided Direct Regression Network for Monocular 6D Object Pose Estimation (GDR-Net:用于单目6D物体姿态估计的几何引导直接回归网络) (2)Self-…

ECCV 2022 | 从单目RGB图像中进行类别级6D物体姿态估计

作者 | CVer 编辑 | 汽车人 原文链接:https://mp.weixin.qq.com/s/RYE8R7W-5j1E2bpHSbw8yQ 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复【数据集下载】获取计算机视觉近30种…

物体6D位姿的含义

本文同步于微信公众号:3D视觉前沿,欢迎大家关注。 在一些有关物体6D位姿估计或者机器人抓取的论文中,我们常会听到一个词:物体6D位姿估计 (6D object pose estimation),那什么是物体的6D位姿呢?它和SLAM中…

【C/C++】输出格式%d、%6d、%06d、%-6d、%.6f的区分

【C/C】输出格式%d、%6d、%06d、%-6d、%.6f的区分 文章目录 【C/C】输出格式%d、%6d、%06d、%-6d、%.6f的区分1、%d 普通的整数输出2、%6d 整数输出,宽度是6位,不足左边补空格3、%06d 整数输出,宽度是6位,不足左边补数字04、%-6d …