参考链接:
https://blog.csdn.net/nwu_NBL/article/details/83176353
论文标题:《PoseCNN:杂乱场景中物体6D姿态估计的卷积神经网络》

Abstract

    机器人与现实世界进行交互时,对已知目标的6D姿态估计至关重要。由于对象的多样性,以及由于对象之间的杂波和遮挡而导致场景的复杂性,使得该问题具有挑战性。
    本文介绍了一种用于6D目标姿态估计的新型卷积神经网络PoseCNN。PoseCNN通过在图像中定位物体的中心并预测其与摄像机的距离来估计物体的三维平移。通过回归到四元数(w,x,y,z)表示来估计物体的三维旋转。
    我们还引入了一个新的损失函数,使PoseCNN能够处理对称对象。此外,我们还提供了一个用于6D对象姿态估计的大型视频数据集YCB-Video dataset。我们的数据集提供了来自YCB数据集的21个对象的精确6D姿态。
    我们在YCBVideo数据集和OccludedLINEMOD数据集上进行了大量的实验,证明了PoseCNN对遮挡具有很强的鲁棒性,能够处理对称对象,并且仅使用彩色图像作为输入就能提供精确的姿态估计。
    当使用深度数据进一步细化姿态时,我们的方法在具有挑战性的OccludedLINEMOD数据集上获得了最先进的结果。

本文的代码数据集下载:https://rse-lab.cs.washington.edu/projects/posecnn

Introduction

    三维物体识别和姿态估计在机器人任务中有着广泛的应用。然而,由于现实世界中对象的多样性,使这个问题具有挑战性。它们有不同的三维形状,它们在图像上的表现受到光照条件、场景中的杂乱和物体之间的遮挡的影响。

  1. 传统6D姿态的估计:三维模型与图像之间的特征点匹配
    特点和局限性:要求检测对象具有丰富的特征,无法处理无纹理对象
  2. RGBD数据: 利用RGBD识别无纹理目标
  3. 基于模板匹配:处理遮挡能力差
  4. 将图像像素回归到三维对象坐标的方法不能处理对称对象

    本文针对以上问题提出一种端到端的6D姿态估计网络 PoseCNN,主要有三项任务:语义分割、3D平移估计、3D旋转估计。

本文的核心贡献:
(1) 提出一种端到端的6D姿态估计网络 PoseCNN,对目标间的遮挡具有很强的鲁棒性
(2)引入了一种新的用于对称目标姿态估计的训练损失函数ShapeMacth-Loss
(3)提供了一个大规模的RGBD视频数据集用于6D姿态估计

Related Work
(1)基于模板的方法
    基于模板的方法在检测无纹理对象时非常有用。但是,它们不能很好地处理对象之间的遮挡,因为如果对象被遮挡,模板的相似度得分会很低。
(2)基于特征的方法
    从感兴趣的点或图像中的每个像素中提取局部特征,并与三维模型上的特征进行匹配建立二维三维对应,得到6D姿态。需要丰富的纹理,对于无纹理的目标,有些使用机器学习。

PoseCNN


这个网络包含两大阶段:
第一阶段:特征提取
    包含13个卷积层和4个最大池化层,提取不同分辨率下的图像特征,并且共享到整个网络。
第二阶段:嵌入步骤
     将第一阶段生成的高维特征映射嵌入到低维、特定任务(三大任务)的特征中。

一、Semantic Labeling(语义分割)
    相较于依靠边界框的目标检测,基于像素点的语义分割提供了更丰富的目标信息,能很好的处理遮挡问题。
    语义分割的嵌入步骤:以特征提取阶段生成的两个通道尺寸为512的特征图作为输入。这两个特征图的分辨率分别是原图的1/8和1/16。 网络首先通过两个卷积层将这两个特征图的维数降到64,然后通过一个反卷积层将1/16特征图的分辨率加倍,再将这两个1/8分辨率的特征图叠加起来,并通过另一个反卷积层增加八倍分辨率,使最终得到的特征图尺寸与原图一致。最后通过一个卷积层生成每个语义标签分数。该层的输出有n个通道,其中包含n个语义类。
    在训练中,使用softmax交叉熵损失来训练语义标签分支。测试时,使用softmax函数计算像素的类概率。

二、3D平移估计

    3D平移矩阵T=(Tx,Ty,Tz)是目标在相机坐标系中的坐标。一种简单的估计T的方法是直接将图像特征回归到T,但是由于目标可能出现在图像上的任意位置,因此这种方式是不可推广的。并且不能处理同类的多个目标实例。本文通过定位2D图像的目标中心并估计目标到相机的距离来估计三维平移量。
    假设T在图像上的投影是c=(cx,cy),如果网络可以在图像上定位处c,并且估计出Tz,然后,假设有一个针孔相机,我们可以根据如下投影方程恢复Tx和Ty。

    fx、fy表示相机焦距,(px,py)是主点,O是目标在真实世界的质心,c是目标的二维中心。
    一种直接的方式是通过关键点检测方法直接检测中心点,但是对目标中心被遮挡的情况不起作用。受传统隐式形状模型(Implicit Shape Model ,ISM)的启发,我们设计了一个网络来回归到图像中每个像素的中心方向。准确来说,对图像中的一个像素点p=(x,y),它回归到三个变量:

    注意:不是直接位移矢量c-p的回归,我们设计的网络回归到单位矢量n=(nx,ny),也就是2D中心方向,它是尺度不变更容易训练。
    中心回归的分支与语义标签分支构造相同,除了卷积层和反卷积层的通道维度不同。将高维特征嵌入到一个128维空间中,而不是64维空间中,因为这个分支需要回归到每个对象类的三个变量。该分支的最后一个卷积层的信道维数为3xn。在训练中,采用平滑L1损失函数进行回归。
    为了找到目标的二维中心c,设计了一个霍夫投票层并将其集成到网络中。霍夫投票层以像素级语义标注结果和中心回归结果作为输入。对于每个对象类,它首先计算图像中每个位置的投票得分。投票得分表示对应的图像位置在类中的目标中心的可能性。具体来说,目标类中的每个像素按照网络预测的光线方向为图像位置添加投票(见图4),对目标类中的所有像素进行处理后,得到所有图像位置的投票得分。然后选择分数最高的作为目标中心点。对于同一目标类的多个实例可能出现在图像中的情况,我们对投票得分应用非极大抑制,然后选择得分大于某个阈值的位置。(这块没太理解具体的操作)

生成了一系列目标中心之后,将投票给目标中心的像素视为该中心的初始值。然后,中心的深度预测,Tz,被简单地计算为由初始值预测的深度的平均值。最后,通过等式1估计3D平移T。另外,这个网络生成2D矩形框用于3D旋转回归。

三、3D旋转回归
    利用Hough投票层预测的目标边界框,利用两个RoI池化层对网络第一阶段生成的视觉特征进行剪裁和池化,进行3D旋转回归。池化层合并后被送入到三个全连接层(FC)。前两个FC层维度是4096,最后一个FC层维度是4xn。对每一类,最后FC层都输出用四元组表示的3D旋转。
为了训练四元数回归,提出两个损失函数:
(1)PoseLoss(PLoss): 正确模型姿态上的点与相应使用估计方向上的点的平均平方误差。PLoss定义如下:

M表示3D模型点的集合,m是点的总数,R(~q)和R(q)表示估计的和真实的四元组。估计方向与真实方向相同时误差最小,但是PLoss处理对称目标,因为对称目标有多个3D旋转。在对称目标上使用这样的损失函数会不必要地惩罚网络回归到另一个可选的3D旋转,从而可能产生不一致的训练信号。
(2)ShapeMatch-Loss(SLoss)损失函数:不需要对称规范

跟ICP类似,估计点与真值最近点的损失测量。

实验

采用平均距离矩阵(ADD)评估:

对于对称目标,比如蛋盒和胶水,使用最近点计算平均距离(ADD-S):


分析:
1)使用RGB作为输入,PoseCNN性能明显优于其他方法(3D坐标回归和RANSAC算法)
2)采用ICP对姿态进行细化,显著提高了性能。与三维坐标回归网络相比,ICP的PoseCNN在深度图像处理方面具有更好的性能。ICP的初始位姿对收敛至关重要。PoseCNN为ICP细化提供了更好的初始6D姿态。
3)在难处理的物体上表现也很好(红色高亮区域)

论文链接:https://arxiv.org/abs/1711.00199
代码链接:https://github.com/yuxng/PoseCNN
Results Video:https://paper-1257390182.cos.ap-chengdu.myqcloud.com/PoseCNN/PoseCNN.mp4

论文笔记01——PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes相关推荐

  1. 笔记:PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes

    PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes (Robotics: ...

  2. 论文阅读笔记《PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes》

    核心思想   本文提出一种基于卷积神经网络的物体分割与位姿估计的方法(PoseCNN).如下图所示,输入图像经过卷积层特征提取之后,分成三个任务分支:语义分割.平移矩阵预测和旋转矩阵(四元数)预测.最 ...

  3. 论文笔记(三):PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes

    PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes 文章概括 摘要 1. ...

  4. PoseCNN(A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes)复现记录

    PoseCNN: A Cbjonvolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes 挖个坑,希望研究 ...

  5. PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes—2017(笔记)

    PoseCNN:用卷积神经网络估计杂乱场景中目标6D姿态-2017(笔记) 文章提出了新的PoseCNN姿态估计网络,通过CNN提取图像特征,然后分三路进行目标分割标签标注.平移估计和姿态估计得到目标 ...

  6. 【翻译论文】An Architecture Combining Convolutional Neural Network (CNN) and Support Vector Machine (SVM)

    [翻译论文]An Architecture Combining Convolutional Neural Network (CNN) and Support Vector Machine (SVM) ...

  7. 目标检测--A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection

    A Unified Multi-scale Deep Convolutional Neural Network for Fast Object Detection ECCV2016 https://g ...

  8. 论文笔记,物体六自由度位姿估计,DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion

    论文笔记,物体六自由度位姿估计,DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion 链接 摘要 1,引言 2,模型 2.1 ...

  9. 论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition

    GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition 1.四个问题 要解决什么问题? 3D shape re ...

最新文章

  1. (CV方向)精通C++,该如何学?
  2. python windows系统调用_python日记第四章:python用os和sys模块进行系统调用
  3. 单播、多播和广播详解
  4. ST:看物联网老兵的平台化战略雄心
  5. 18 Loader 总结
  6. 循环拼接String字符串去掉最后一个字符的方法
  7. .so动态链接库文件
  8. Linux下监测GPU温度指令
  9. 《中文分词算法研究》
  10. Python 电子书下载列表
  11. 单片机之矩阵键盘(花样编程)
  12. 整理学习之多任务学习
  13. ios引导商店评分问题
  14. Python中requirement 的使用
  15. 操作系统、计算机网络、数据库系统概论等相关面试问题
  16. HTML5期末大作业:商城网站设计——仿唯品会购物商城(5页) 纯手写-高质量 HTML+CSS+JavaScript
  17. Ubuntu14.04 64位网易云播放器
  18. 查表法求sin和cos
  19. 华为机考108题(c++)(52-61)
  20. 从零开始学习3D可视化之坐标系

热门文章

  1. 特征值 是 系数行列式等于0时的 解
  2. 【报错】WebSocket connection to ‘ws://xxx.xxx.x.xxxx:8080/ws‘failed:
  3. 【嵌入式学习-STM32F103-TIM-编码器接口】
  4. 操作系统——并发相关问题
  5. XDF赵海英老师C语言课程——考研考级专用(推荐)
  6. AVUE 点击编辑按钮拉起弹窗前增加自己的操作
  7. [逻辑]-- 25匹马赛跑问题
  8. 复习|typedef什么意思,用法,作用
  9. 数据结构-排序算法总结与感悟
  10. 安卓4.4pppoe拨号间隔及轮次修改