6D目标检测简述

news/2025/1/25 7:13:11/

6D目标检测简述

文章目录

  • 6D目标检测简述
    • 介绍
      • 基于模版匹配的算法
      • 基于点的算法
      • 基于描述子的算法
      • 基于特征的算法
    • 基于深度学习的6D姿态估计
      • 基于RGB图像的深度学习方法
          • **SSD-6D**
          • **Deep-IM**
          • **PV-Net**
          • **HybridPose**
          • **Self6D**
          • **DSC-PoseNet**
          • **GDR-Net**
          • **SO-Pose**
          • **KDF-Net**

本文参考了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-20230326153538481

基于点的算法

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

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

image-20230326153518947

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

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-20230329152918288

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

一些经典的方法,比如说点特征直方图(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-20230410162911103

通过一些机器学习的方法,比如随机森林等,训练一个分类器,以特征作为输入,输出对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-20230410163652820
  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-20230414152657538

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

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

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

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

Deep-IM
image-20230414154416610

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

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

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

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

HybridPose
image-20230414165454511

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

Self6D

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

image-20230414170212375

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

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

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

DSC-PoseNet
image-20230415155211622

主要分成两个步骤:

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

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

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

2. 自监督关键点学习

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

主要有两个部分:

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

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

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

GDR-Net
image-20230415160856438

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

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

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

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

KDF-Net

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

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

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

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

image-20230420142331314

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

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


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

相关文章

6D姿态估计算法汇总

文章目录 标题 6D姿态估计的算法1、GDR-Net: Geometry-Guided Direct Regression Network for Monocular 6D Object Pose Estimation(CVPR 2021)(基于几何信息指导的单目6D物体姿态直接回归算法)算法思想 2、EPOS: Estimating 6D …

Yolo-6D(Real-Time Seamless Single Shot 6D Object Pose Prediction)理解

文章目录 本文创新点作者Ideal来源作者方法核心思想算法流程点的信息网络结构3D框置信度计算3D框Anchor的选择九个关键点的计算PnPloss计算 实验性能参考文献 文中所有灰色引用部分都是在阅读文章时的思考,阅读时可直接跳过灰色部分,不会影响内容 本文创…

【编译、链接、装载四】汇编知识补充——ATT 汇编语法、寄存器、指令、栈、栈帧

【编译和链接四】编译器后端——生成汇编代码 一、AT&T 汇编语法1、Intel 汇编2、AT&T汇编 二、x86寄存器1、x86通用寄存器2.其他寄存器3、寄存器的具体用途 三、常见的x86指令四、栈和栈帧 一、AT&T 汇编语法 AT&T VS Intel 基于 x86 架构 的处理…

什么是贫血模型?

什么是贫血模型? 简介 实际上,目前几乎所有的业务后端系统,都是基于贫血模型的。举一个简单的例子. // ControllerVO(View Object) // public class UserController {private UserService userService; //通过构造函数或者IOC框架注入publi…

第六十七天学习记录:对陈正冲编著《C 语言深度解剖》中关于变量命名规则的学习

最近开始在阅读陈正冲编著的《C 语言深度解剖》,还没读到十分之一就感觉收获颇多。其中印象比较深刻的是其中的变量的命名规则。 里面提到的不允许使用拼音正是我有时候会犯的错。 因为在以往的工作中,偶尔会遇到时间紧迫的情况。 而对于新增加的变量不知…

G480触摸板插入鼠标时禁用,每次开机都需要重新设置的处理

#使用到的触摸板驱动Elan Smart-Pad,360安全管家,win7系统 #G480的触摸板,驱动Elan Smart-Pad,个人感觉,有些碍事,每次输入的时候,总是很容易误碰,所以就给禁用了。 设置步骤如下: “控制面板…

lenovo G480 安装无线驱动 linux

1.查看无线网卡到具体型号 root用户打开终端: [rootlocalhost ~ ]# lspci |grep Network 03:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01) 2.下载安装包 http://www.broadcom.com/docs/linux_sta/hybrid-v3…

联想G480黑苹果试玩纪录

前几天折腾了好久装好了黑苹果,这两天试玩了几下,感觉还不错,不过目前还是存在些问题,纪录一下: 1、首先是键盘,这两天装好之后试玩,经常出现键盘无反应的情况,不过重启一下键盘就能…