6D目标检测简述

6D目标检测简述

本文参考了ITAIC的文章 A Review of 6D Object Pose Estimation

介绍

6D目标检测,和传统的目标检测类似,都是从图像(包括点云)中去识别物体的位置。

传统的2D目标检测,像是SSD、YOLO等,识别的结果是一个边界框(bounding box)

而3D目标检测的结果则是一个3D的边界框。

6D目标检测的输出结果包括两个部分:

  • 物体的空间坐标:x, y, z
  • 物体的三个旋转角: pitch, yaw, roll

传统的6D目标检测可以被分类成以下几种:

  • 基于模版匹配
  • 基于点
  • 基于描述子
  • 基于特征
方法 优点 缺点
基于模版匹配 擅长针对无纹理或者弱纹理的物体 对遮挡比较敏感
基于点 抗遮挡 依赖纹理细节
基于描述子 抗遮挡 依赖纹理细节
基于特征 擅长弱纹理,同时抗遮挡 较难处理对称物体

基于模版匹配的算法

基于模版匹配的算法,其思路就是: 生成尽可能多的模版,每一个模版表示不同的旋转姿态,同原图进行相似度的计算

由于实际环境会受到光照、遮挡的影响,这类算法在这种情况下表现较差。

同时,由于需要生成多的模版,所以算法的计算代价也较高。

较为经典的模版匹配算法,比如 linemod

ICCV-2011: Multimodal templates for real-time detection of texture-less objects in heavily cluttered scenes

使用了图像的色彩梯度(Color Gradient) 来抵抗光照和噪声等影响,同时引入了深度信息来构建数个表面垂直向量来作为特征

模版匹配

基于点的算法

这里所说的点,其实是空间中的点。基于点的算法,其本质是: 利用点云之间的匹配来实现姿态估计

和模版匹配类似,通过构造一些点的特征,边的特征,然后生成不同姿态下的特征集合,通过特征匹配进而实现点云的匹配。

image.png

这里给出一些相关文献,供大家参考:

CVPR-2010: Model globally, match locally: Efficient and robust 3D object recognition

IROS-2012: 3D pose estimation of daily objects using an RGB-D camera

基于描述子的算法

描述子通常是用来刻画点周围的一些几何特征,比如说:点坐标的特点,法向量或者是曲线

该方法和基于点的方法类似,都对纹理特征依赖比较严重

image.png

本质也是需要预先生成一堆描述子集合,然后逐个进行匹配。

一些经典的方法,比如说点特征直方图(Point Feature Histogram, PFH),有兴趣的读者可以自行阅读

R. B. Rusu, N. Blodow, Z. C. Marton, et al, Aligning Point Cloud Views using Persistent Feature Histograms, Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 3384-3391, 2008.

基于特征的算法

同样的,我们需要生成一系列特征集合,进行模型的训练,如下图所示:

image.png

通过一些机器学习的方法,比如随机森林等,训练一个分类器,以特征作为输入,输出对6D姿态的估计

  1. E. Brachmann, A. Krull, F. Michel, et al, Learning 6D Object Pose Estimation Using 3D Object Coordinates, Proceedings of European Conference on Computer Vision, pp. 536-551, 2014.
  2. M. A. Fischler, R. C. Bolles, Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography, Communications of the ACM, vol. 24, issue 6, pp. 381-395, 1981.

基于深度学习的6D姿态估计

这里,我们将所有的基于深度学习的方法分成两类:

  • 基于RGB图像的方法
  • 基于RGB-D图像的方法

RGB-D图像即是在原本的图像通道上,加了一个深度通道,代表像素点的深度信息

基于RGB图像的深度学习方法

这里给出一些相关的方法的总结表格

image.png
  1. SSD-6D: Making RGB- Based 3D Detection and 6D Pose Estimation Great Again,
  2. DeepIM: Deep Iterative Matching for 6D Pose Estimation
  3. PVNet: Pixel-Wise Voting Network for 6DoF Pose Estimation
  4. HybridPose: 6D Object Pose Estimation Under Hybrid Representations
  5. Self6D: Self-supervised Monocular 6D Object Pose Estimation
  6. Dsc-posenet:Learning6dofobjectpose estimation via dual-scale consistency
  7. GDR-Net: Geometry- Guided Direct Regression Network for Monocular 6D Object Pose Estimation
  8. SO-Pose: Exploiting Self-Occlusion for Direct 6D Pose Estimation
  9. KDFNet: Learning Keypoint Distance Field for 6D Object Pose Estimation

其中ADD(-S) 代表预测点和最近的真实点的距离偏差,越小越好。

SSD-6D

该方法是将原来目标检测的SSD范式拓展到了6D目标检测领域,使用InceptionV4,估计2D的边界框,并且对所有的视角和旋转进行打分。

image.png

可以看到,最后的预测结果由四个部分组成:

  • 4:2D边界框坐标
  • C:代表物体的类别
  • V:代表物体的视角个数,可以理解成物体的角度
  • R:平面内旋转的类别 (in-plane rotation class)

同时,SSD-6D使用ICP,来提高精确度,优化姿态的结果

在6D姿态识别中,ICP是指迭代最近点(Iterative Closest Point)算法。该算法主要用于将一个点云或三维模型与另一个点云或三维模型对齐或配准。在6D姿态识别中,ICP算法可以用来估计目标物体的姿态,即将一个模型与目标物体的点云匹配,找到最合适的姿态使两个模型之间的误差最小化。通过迭代求解最近点匹配问题,ICP算法可以不断优化姿态估计的准确性,从而实现6D姿态识别。

Deep-IM
image.png

DeepIM使用了一个FlowNetSimple的骨干网络,用来预测一个相对的特殊欧式群 SE(3) 的元素

SE(3) 是一个包含所有旋转和平移的集合,其中该集合中的元素可以表示成4x4的矩阵
T = \begin{pmatrix} R&v\\ 0&1 \end{pmatrix}
其中,R 是一个3x3的旋转矩阵,v 是一个平移向量

在训练过程中,DeepIM还会有两个额外的分支,用来进行Mask和光流估计

FlowNetSimple: A. Dosovitskiy, P. Fischer, E. Ilg, et al, FlowNet: Learning Optical Flow with Convolutional Networks, Proceedings of International Conference on Computer Vision, pp. 2758-2766, 2015.

PV-Net
image.png

如上图所示,PV-Net首先使用一个网络,做向量场估计以及语义分割,然后投票得到关键点位置的假设,最后得到关键点位置的分布

这里,PV-Net的骨干网络使用的是ResNet18。

HybridPose
image.png

HybridPose方法的特点就是揉合了多种不同的特征:关键点、边缘向量和对称相似(symmetry correspondences)

Self6D

首个将自监督学习引入6D姿态估计中,利用神经渲染(neural rendering)来实现视觉和几何的对齐

image.png

(a)先使用生成的数据进行模型训练

(b)基于训练后的模型,在大量的RGB-D数据上进行推断

(c)然后基于这些推断结果再进行训练,优化6D姿态检测的结果

DSC-PoseNet
image.png

主要分成两个步骤:

1. 利用2D边界框进行弱监督的分割

首先使用一个分割网络,在生成的数据上进行初始训练。

然后在实际的图像上推断,利用2D边界框移除掉一些异常的分割结果,反复优化这个分割网络

2. 自监督关键点学习

构造一个双尺度(dual-scale)的自监督信号来训练DSC-PoseNet

主要有两个部分:

  • 原始图像经过DSC-PoseNet之后,得到2D关键点和分割结果
  • 利用2D边界框,裁剪和缩放之后,经过DSC-PoseNet,得到2D关键点和分割结果

利用第一部分的分割结果,以及分割网络的结果进行对齐,

第一和第二部分得到的关键点进行比对,计算出不同尺度下的连续性,构造误差

GDR-Net
image.png

同先前的一些网络输出一样,最后输出包含两个部分,一个是旋转矩阵,一个是平移向量

在训练过程中,会使用一个随机放大技巧(Dynamic Zoom-In), 然后经过网络生成3个中间几何特征(intermediate geometry feature),分别是:

  • Dense Correspondences Map: M_{2D-3D}
    • 其大小是2x64x64,本质上就是每个像素2D投影的坐标
  • Surface Region Attention Map: M_{SRA}
    • 对于每一个像素来说,输出该点所属于表面区域,这里应该是不同的表面区域代表不同的类别
    • 可以看到形状是64x65x65,意味着一共有64个不同表面区域
    • 文章后续探究了不同的表面区域数量对方法的影响,有兴趣的可以看一下原文
  • Visible Object Mask: M_{vis}
    • 就是一个遮罩,类似语义分割的物体遮罩
SO-Pose
image.png

如上图所示,该方法的特点就是引入了一个自遮挡信息(Self-Occlusion Information),进一步增强了准确度

KDF-Net

传统方法通常都是使用像素粒度的投票来确定2D的关键点,利用解决PnP问题来求解物体的姿态

不过这种投票方法,因为是基于方向的,所以难以处理一些比较长、薄的物体

这些长、薄的物体的方向难以被推断出来,因此,该方法提出了一种关键点距离场 (Keypoint Distance Field)

利用KDF来预测2D的关键点位置

image.png

如上图所示,首先用一个全卷积网络来预测KDF,对于每一个像素应该都有一个KDF,然后使用RANSAC方法去随机采样N次

再使用投票来选出关键点,最后使用PnP求解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 210,978评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,954评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,623评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,324评论 1 282
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,390评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,741评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,892评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,655评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,104评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,569评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,254评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,834评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,725评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,950评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,260评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,446评论 2 348

推荐阅读更多精彩内容