SSD-6D: Making RGB-Based 3D Detection and 6D Pose Estimation Great Again—2017(笔记)

SSD-6D让RGB图像的3D检测和6D姿态估计更出色—2017(笔记)

文章以单帧RGB图像为输入,基于扩展的SSD范式,采用InceptionV4深度网络,预测目标2D bounding box以及目标种类、离散视点和面内旋转在每个特征图位置的得分,通过射影几何特性构建目标的6D姿态池,最终通过姿态池优化ICP得到精确结果。

通过单位球面等距采样获得目标的离散6D姿态空间,供深度网络完成训练

摘要

  1. 我们提出了一种新颖的方法来检测3D模型实例并从单次拍摄中的RGB数据估计其6D姿态。
  2. 为此,我们扩展了流行的SSD范例以覆盖整个6D姿态空间,并仅在合成模型数据进行训练
  3. 我们的方法可以与现有的方法相媲美或超越,后者可以在多个具有挑战性的数据集上利用RGBD数据。
  4. 此外,我们的方法在10Hz左右产生这些结果,比相关方法快许多倍。为了重现性,我们将经过培训的网络和检测代码公开发布。

引言

  1. 大多数性能最好的3D检测器都遵循基于视图的范例,其中会生成一组离散的对象视图,并用于后续的特征计算[31、14]。
  2. 在测试过程中,在离散位置对场景进行采样,计算特征,然后将其与对象数据库进行匹配,以在训练视图和场景位置之间建立对应关系。
  3. 特征可以是图像属性(颜色渐变,深度值,法线方向)的编码[12、16、18],也可以是最近的学习结果[4、29、5、6、17]。
  4. 无论哪种情况,检测和姿态估计的准确性都取决于三个方面:(1)6D姿态空间在视点和尺度方面的覆盖范围,(2)区分对象和视图的特征的辨别力;(3)匹配对杂波,光照和遮挡的鲁棒性。
  5. 基于CNN的类别检测器,例如YOLO [25]或SSD [22],已在大规模2D数据集上显示了出色的结果。他们的想法是反转采样策略,以使场景采样不再是导致连续输出的一组离散输入点。取而代之的是,输入空间在整个图像上都很密集,而输出空间则离散化为许多形状和大小都不同的重叠边界框。这种反演可以在许多不同大小的特征图上进行平滑的比例搜索,并在一次通过中同时对所有盒子进行分类。为了补偿输出域的离散化,每个边界框都会对其角进行精化。
  6. 这项工作的目标是开发一个用于对象检测的深层网络,通过在测试时将RGB图像作为唯一输入,可以精确地处理3D模型和6D姿态估计。为此,我们通过以下贡献将SSD的概念带到了这一领域:(1)仅使用合成3D模型信息的训练阶段;(2)模型姿态空间的分解,允许轻松训练和处理对称性;(3)SSD的扩展产生2D检测并推断出适当的6D姿态。

相关工作

  1. 对于从RGB图像中回归姿态的作品,[24,23]的相关作品最近扩展了SSD,将类别的姿态估计包括在内。
  2. [23]推论城市交通中物体的3D边界框,并倒退3D框角和方位角,
  3. [24]引入了姿态的附加装箱,不仅表示类别,还表示局部朝向的概念,例如“从侧面骑自行车”或“从下方乘坐飞机”。
  4. 我们不同的是,它们在真实图像上训练,以预测非常受限的子空间中的姿态。相反,我们的领域要求对基于合成模型的数据进行培训,并且需要包含完整的6D姿态空间以完成诸如抓取或AR之类的任务。

方法

  1. 我们方法的输入是RGB图像,网络对其进行了处理,以输出带有边界框的本地化2D检测。此外,每个2D框都提供了该实例最可能的6D姿态池
  2. 为了表示6D姿态,我们解析了从网络推断出的视点和平面内旋转分数,并使用投影属性实例化了6D假设。
  3. 最后,我们定义每个池中的每个姿态,并在验证后选择最佳姿态。如果深度数据可用,则可以以2D或可选地以3D进行最后一步。现在,我们将更详细地介绍每个部分。

网络结构

  1. 我们的基础网络是从经过预训练的InceptionV4实例[27]派生而来的,且输入彩色图像(大小调整为299×299),可以在多个尺度上计算特征图。为了获得第一个尺寸为71×71×384的特征图,我们在茎中的最后一个合并层之前进行分支,并附加一个“ InceptionA”块。之后,我们依次在35×35×384特征图的’Inception-A’块之后,在17×17×1024特征图的’Inception-B’块之后以及’Inception-C’块之后分支。绘制9×9×1536的地图。2为了覆盖更大的对象,我们将网络扩展了另外两个部分。首先,先是’Reduction-B’,然后是两个’Inception-C’块,以输出5×5×1024的地图。其次,一个“ Reduction-B”和一个“ Inception-C”以生成3×3×1024的地图。
  2. 从这里开始,我们遵循SSD的范例。具体来说,这六个特征图中的每一个都与预测内核进行卷积,这些预测内核应该从特征图位置回归局部检测。令(ws,hs,cs)为标度s的宽度,高度和通道深度。对于每个比例,我们训练一个3×3×cs内核,该内核为每个特征图位置提供对象ID,离散视点和平面内旋转的得分。由于我们通过该网格引入了离散化误差,因此我们在每个位置使用不同的宽高比创建Bs边界框。另外,我们对它们的四个角进行了改进。如果C,V,R分别是对象类别的数量,采样的视点和平面内旋转,则针对比例尺s生成(ws,hs,Bs×(C + V + R + 4))检测图。该网络共有21222个不同形状和大小的可能的边界框。尽管这看起来可能很高,但由于采用了完全卷积的设计和良好的真实否定行为,我们的方法的实际运行时间明显偏低,这往往会产生非常确定和少量的检测结果。我们参考图1的示意图。
  3. 视点计分与姿态回归。选择视点分类而不是姿态回归是经过深思熟虑的。尽管存在进行直接旋转回归的工作[19,28],但早期实验清楚地表明,分类方法对于姿态检测任务更为可靠。特别是,似乎在对离散视点进行评分方面比在输出数值上准确的平移和旋转方面做得更好。6D姿态在视点和平面内旋转中的分解很优雅,使我们可以更自然地解决问题。当新的视点展现出新的视觉结构时,面内旋转视图是同一视图的非线性变换。此外,所有视图的同时评分使我们能够解析给定图像位置(例如,通过接受高于特定阈值的所有视点)。同样重要的是,这种方法使我们能够以直截了当的方式处理对称或相似外观的视图。

训练阶段

  1. 我们从MS COCO [20]中获取随机图像作为背景,并使用OpenGL命令以随机变换将对象渲染到场景中。对于每个渲染的实例,我们使用渲染的蒙版计算每个框的IoU(联合上的交集),并且将IoU> 0.5的每个框b用作该对象类的正样本。另外,我们为所使用的变换确定其最接近的采样离散视点和平面内旋转,并将其四个角值设置为蒙版周围最紧密的拟合作为回归目标。我们在图2中显示了一些训练图像。
  2. 类似于SSD [22],我们采用了许多不同种类的增强功能,例如更改图像的亮度和对比度。但是,与他们不同的是,我们不翻转图像,因为这会导致视图之间的混乱并在以后导致错误的姿势检测。我们还通过在反向传播过程中选择硬底片(具有高目标概率的未分配框)来确保每个训练图像包含1:2的正片-负片比率。

难例(或叫做难样本,Hard Example,Hard Negative,Hard Instance)是指利用第一次训练的分类器在负样本原图(肯定没有人体)上进行行人检测时所有检测到的矩形框,这些矩形框区域很明显都是误报,把这些误报的矩形框保存为图片,加入到初始的负样本集合中,重新进行SVM的训练,可显著减少误报。

  1. 我们的损失类似于SSD或YOLO的MultiBox损失,但是我们扩展了公式以考虑离散视图和平面内旋转。给定用于训练图像的一组正盒Pos和精打细算的负盒Neg,我们将以下能量最小化:从(1)中可以看出,我们对类别概率(Lclass)的正负框进行求和。此外,每个正框都会为视点(Lview)和平面内分类(Linplane)以及框角的拟合误差(Lfit)贡献加权项。对于分类项,即Lclass,Lview,Linplane,我们采用标准的softmax交叉熵损失,而更稳健的平滑L1-范数用于拐角回归(Lfit)。
  2. 解决对称和视觉模糊。

训练阶段

  1. 我们对输入图像进行forward-pass,以收集高于特定阈值的所有检测,然后进行非最大抑制。这样就产生了具有相关对象ID的精确且紧密的2D边界框,并为所有视图和平面内旋转评分。因此,对于每个检测到的2D盒子,我们将分析最一致的视图以及平面内旋转,以构建6D假设池,我们从中选择最佳的6D假设。汇总假设见图5,最终输出见图6。
  2. 从2D边界框到6D假设。到目前为止,所有计算都在图像平面上进行,我们需要找到一种从网络输出中假设6D姿势的方法。给定视图ID和平面内旋转ID,我们可以轻松构造3D旋转,并可以使用边界框推断3D平移。为此,我们在一个标准阶段以标准质心距离zr = 0.5m渲染离散视图和平面旋转的所有可能组合,并计算其边界框。给定包围盒在这一精细阶段的对角线长度lr和网络lr预测的对角线长度lr,我们可以从它们的投射比推断出物距zs = (lr /ls) zr,如图4所示。以类似的方式,我们可以得出投影的质心位置,并使用已知的相机内在函数反向投影到3D点。

结论

据我们所知,我们是第一个展示用于3D实例检测和完整6D姿态估计的SSDstyle检测器,该检测器在合成模型信息上进行了训练。我们已经证明,基于颜色的检测器确实能够匹配并超越当前利用RGB-D数据的最新技术,而速度又快了一个数量级。未来的工作应该包括对CAD模型和场景外观之间的颜色偏差具有更高的鲁棒性。避免适当的损失期限平衡问题也是未来研究的一个有趣方向。

SSD-6D: Making RGB-Based 3D Detection and 6D Pose Estimation Great Again—2017(笔记)相关推荐

  1. 读论文,第一天:TransPose: Real-time 3D Human Translation and Pose Estimation with Six Inertial Sensors

    TransPose: Real-time 3D Human Translation and Pose Estimation with Six Inertial Sensors 立的flag,每天看至少 ...

  2. V2V-PoseNet:Voxel-to-Voxel Prediction Network for Accurate 3D Hand and Human Pose Estimation from...

    摘要   从单个深度图中用于3D手和人体姿势估计的大多数现有的基于深度学习的方法基于采用2D深度图并且直接回归关键点,例如手或人体关节,的3D坐标的共同框架,通过2D卷积神经网络(CNN).这种方法的 ...

  3. DaNet: Decompose-and-aggregate Network for 3D Human Shape and Pose Estimation

    UVI 当中间变量 global UVI regresses camera and shape partial UVI regresses rotation predict rotation时, 切换 ...

  4. 6D Pose Estimation各方法对应的经典论文

    单目RGB.传统方法 (1) D. G. Lowe. Object recognition from local scale-invariant features. In ICCV, 1999. (2 ...

  5. 三维目标检测论文阅读:VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection

    VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection 理解了PointPillars这篇文章后,看这篇文章就清 ...

  6. 文献解读-CVPR2019-Stereo R-CNN based 3D Object Detection for Autonomous Driving

    小菜鸡最近跟着大佬们学看文献,那就适当地记录一下,当作自己的学习笔记吧.文中也有很多理解不到位的地方的,毕竟还只是个小菜鸟,不懂的地方多得是.所以哪里有问题的还请各位读者好好指点指点. 今天要介绍的论 ...

  7. 3D Detection 论文汇总

    来源丨AI 修炼之路 这篇文章主要是梳理一下近期3D Detection的进展,分类列举出一些我认为的比较重要的.有代表性的工作. 一.论文分类汇总 1. 基于激光雷达点云的3D检测方法(LiDAR ...

  8. CenterNet-TensorRT 3D Detection

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Panzerfahrer@知乎 来源丨https://zhuanlan.zhihu.com/p/ ...

  9. 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现

    之前读过这篇论文,导师说要复现,这里记录一下.废话不多说,再重读一下论文. 注:非一字一句翻译.个人理解,一定偏颇. 基于深度强化学习的车道检测和定位 官方源码下载:https://github.co ...

最新文章

  1. BootStrap table 数据填充与分页应用总结
  2. Linux学习中压缩包格式有哪些?
  3. IE6、IE7、Firefox无提示关闭窗口的代码
  4. hashCode和identityHashCode的区别你知道吗?
  5. java instanceof 继承_Java中的instanceof关键字
  6. 多域名解析及延伸知识点
  7. angular 字符串转换成数字_Python成为专业人士笔记–String字符串方法
  8. sublime不认识python_Python3小白入门 Sublime Text3
  9. WINDOWS内核对象及其理解
  10. 毕业设计之 - 题目:基于LSTM的预测算法 - 股票预测 天气预测 房价预测
  11. 中国遥感卫星地面站存档数据目录服务系统
  12. python 进化树_SCHISM 构建克隆进化树
  13. 【mysql】In aggregated query without GROUP BY, expression #1 of SELECT list contains ......
  14. 禁止苹果浏览器Safari将数字识别成电话号码的方法
  15. 主机远程登录报ssh_exchange_identification: read: Connection reset by peer
  16. vscode Couldn‘t start client Rust Language Server
  17. linux(debian 11)下安装nginx
  18. 全国高中数学联赛介绍
  19. 【ORACLE数据库体系架构】
  20. 关于手机端点击HTML input输入框页面放大的问题解决放法

热门文章

  1. Makefile中的一些小知识点,及常用的makefile举例
  2. WuThreat身份安全云-TVD每日漏洞情报-2022-12-22
  3. 一元多项式计算器C语言实现
  4. 用 Flask 来写个轻博客 (1) — 创建项目
  5. Scrum板与Kanban如何抉择?敏捷工具:czsva板与按照mgzaqbpe
  6. 10038错误,无法连接上阿里云服务器上的MySQL
  7. 2020年最后15天总结
  8. 接口测试 | 接口测试入门
  9. Java并发技术学习总结
  10. 谷歌浏览器 翻译失败解决办法