【6D位姿估计】GDR-Net 单目几何引导的直接回归模型

news2024/11/25 18:55:31

前沿

本文介绍6D位姿估计的直接回归方法GDR-Net,它从单个RGB图像中确定物体在三维空间中的位置和方向。

它是一个端到端模型,与传统的间接方法不同,GDR-Net可以通过反向传播完全训练,简化了训练过程。

论文地址:GDR-Net(CVPR2021)

代码地址:https://github.com/THU-DA-6D-Pose-Group/GDR-Net

 一、模型框架

模型的框架结构,如下图所示:

  1. 输入RGB图片。
  2. 在训练阶段,识别和放大物体所在区域;推理阶段,检测物体所在的区域,设置为3x256x256固定大小的特征图。
  3. 物体所在区域的图像,经过ResNet34提取图中特征。
  4. 然后通过解码器,分别输出表面区域注意力特征、2D-3D转换特征M2D-3D、物体掩码特征MSRA。
  5. 结合表面区域注意力特征2D-3D转换特征,通过3层卷积层,进一步提取特征;
  6. 接着,用2层全连接层,进行位姿信息转换,包括R旋转和t平移。
  7. 输出6D位姿信息,包括3D位置信息和3D方向信息。

关键点: 

  • M2D-3D:这是2D图像和3D模型之间密集对应关系的中间特征表示。它包含了图像中每个像素点和物体模型之间的对应关系。
  • MSRA:表面区域注意力模块,它聚焦于图像中物体表面的特定区域,为位姿估计提供更加精细的几何线索。
  • Patch-PnP:是位姿估计的最终步骤,它使用从CNN中提取的密集对应关系和表面注意力特征来回归物体的6D位姿。

二、思路流程

GDR-Net用于从单张RGB图像中,直接回归物体的6D位姿的过程,如下图所示。

  1. 2D-3D转换稠密特征:2D图像平面上的特征点与3D模型坐标之间的对应关系。这些对应关系为物体在三维空间中的定位提供了关键线索。
  2. 表面区域注意力特征:网络还关注物体的不同表面区域。这可以帮助模型更准确地理解物体的三维形状和其在图像中的表现,进而更准确地预测其位姿。
  3. Patch-PnP学习:这一步是GDR-Net的创新之处,通过Patch-PnP,网络不仅仅是识别图像中的关键点,而且还能学习如何利用这些关键点来计算物体的位姿。与传统的PnP算法不同,Patch-PnP是可学习的,通过反向传播进行优化。

三、6D位姿估计方法

通常6D位姿估计方法主要分为两类:间接方法直接方法

间接方法:

  • 这些方法首先在图像平面和物体坐标系统之间建立2D-3D对应关系。通常通过检测图像中的关键点并将它们与物体上已知的3D位置相关联来实现。
  • 之后,使用透视N点—PnP算法的变体来估计位姿,通常结合随机样本一致性RANSAC算法。这种方法因其鲁棒性和准确性而占主导地位。
  • 然而,一个显著的缺点是该流程不是端到端可训练的。这种局限性是因为PnP/RANSAC步骤不可微分,意味着不能通过反向传播直接优化,使其难以与需要微分操作的深度学习框架集成。

直接方法: 

  • 这些方法尝试通过回归直接从图像学习6D位姿。

  • 这通常通过训练神经网络直接输出位姿参数来完成。主要优势是这些方法可以端到端训练。

  • 然而,直接回归方法的性能上一直不如基于几何的间接方法。

  • 挑战在于模型从仅有的2D数据中推断复杂的3D结构和空间关系的能力。

GDR-Net提出一种几何引导的直接回归模型,结合间接方法和直接方法的优势,实现端到端训练。

四、关键内容——M2D-3D(2D-3D转换稠密特征

这是2D图像和3D模型之间密集对应关系的中间特征表示, 这些对应关系为物体在三维空间中的定位提供了关键线索。

计算方法

  • 首先,为了构建Dense Correspondences Maps(M2D-3D),需要估计底层的Dense Coordinates Maps(Mxyz)。
  • M2D-3D可以通过将Mxyz叠加到相应的2D像素坐标上来获得。
  • 具体来说,给定一个物体的CAD模型,可以通过在给定关联姿态的情况下渲染模型的3D对象坐标来获取Mxyz。

归一化输出

  • 网络预测的是一个标准化的表示形式,其中每个通道的Mxyz在[0,1]的范围内被标准化,标准化的基准是CAD模型的相应紧密3D包围盒的大小(lx, ly, lz)。
  • 这种标准化有助于网络学习如何解释不同尺寸的物体,并且保持姿态估计的一致性。

M2D-3D特点

  • 不仅是2D-3D对应:M2D-3D不只是编码了2D到3D的对应关系,它还明确地反映了物体的几何形状信息。

  • 这意味着这些映射中包含了物体表面的结构信息,为位姿估计提供了额外的几何线索。

  • 利用于6D位姿学习:由于M2D-3D在图像中是规则排列的,可以通过一个简单的2D卷积神经网络(即Patch-PnP)来学习6D物体位姿。

  • 这一点突出了GDR-Net的一个关键优势——能够以一种结构化和有效的方式将复杂的3D信息编码进2D图像,并利用这些信息直接回归出物体的位姿。

这些Dense Correspondences Maps (M2D-3D) 是GDR-Net核心部分之一,因为它们为从单个RGB图像中直接回归出精确的6D物体位姿提供了必要的几何信息。

通过这种方式,GDR-Net能够结合深度学习的强大能力和3D几何信息的精确性,从而提供一个既有效又准确的位姿估计方法。

五、关键内容——MSRA(表面区域注意力特征

  • 灵感来源:MSRA受到前人工作的启发,使网络能够预测物体表面区域作为额外的模糊性感知监督。这一点体现了网络设计中对于物体表面区域特性的认识,以及这些特性如何影响位姿估计的准确性。

  • 与RANSAC的区别:与RANSAC(一种常用的鲁棒性估计算法)相结合的传统方法不同,MSRA被直接集成到Patch-PnP框架内。这意味着MSRA是作为网络学习过程的一部分来实现的,而不是作为一个后处理步骤。

MSRA算法思路:

  • MSRA的真值区域是通过采用最远点采样(farthest points sampling)方法从Mxyz导出的。

  • 这种采样方法有助于确定物体表面上最重要的特征点,为位姿估计提供关键的几何线索。

  • 对于每个像素,网络将对应的区域进行分类,从而预测的MSRA中的概率隐含地表示了物体的对称性。

例如,如果一个像素因对称平面而可能被分配给两个不同的区域碎片,最小化这种分配会返回每个碎片的概率为0.5。

MSRA的应用和优势

  • 对称性识别:利用MSRA,网络不仅减少了模糊性的影响,而且还在M3D上增加了一个辅助任务。有助于解决由于物体对称性导致的位姿估计中的不确定性问题。

  • 简化学习过程:通过首先定位粗略的区域然后再回归更细的坐标,MSRA简化了M3D的学习过程。这意味着网络可以更系统地学习复杂的位姿估计任务,从宏观到微观逐步解决问题。

  • 引导Patch-PnP的学习:MSRA作为一种对称性感知的注意力机制,指导了Patch-PnP模块的学习。这强调了注意力机制在提高位姿估计性能方面的作用,尤其是在处理具有复杂对称性的物体时。

MSRA表面区域注意力特征不仅提供了对物体表面区域的深入理解,而且还增强了网络对物体对称性的识别能力,最终提高了位姿估计的准确性和鲁棒性。

##  物体对称性补充:

  • 如果物体有对称性,某些像素可能在视觉上对应于物体的多个不同的表面区域。例如,考虑一个正中间有一条对称线的物体,两边看起来几乎一样。在这种情况下,位于对称线一边的像素点可能和另一边的对应点有着相同的外观,但实际上属于不同的物体表面区域。

  • 为了解决这种歧义,网络需要学会识别这些对称性,并通过分类来为每个像素点分配正确的表面区域。在训练过程中,这种分类任务会帮助网络更好地理解物体的三维结构。

  • 最终,这种按像素点分类的方法能够提高网络预测物体位姿的准确性,因为它给予了网络额外的几何信息,帮助它更好地理解物体表面的布局。

## 最远点采样补充:

  • 最远点采样(Farthest Point Sampling, FPS)是一种在处理点云数据时常用的抽样技术,它的目的是从一个较大的点集中选取一个包含代表性点的较小子集。
  • 这种方法通过迭代地选取当前最远的点来确保采样的点能够广泛地覆盖整个数据集。
  • 在3D几何处理和计算机视觉中,FPS可以用来有效地提取出一个物体表面的关键特征点。
  • 通过选择分布在物体表面关键位置的点,间接帮助网络在处理对称物体时,更好地理解其几何结构,并对这种结构进行建模。通过这种方式,MSRA能够辅助网络在识别和处理物体对称性时减少歧义。

六、关键内容——Patch-PnP模块

结合表面区域注意力特征和2D-3D转换特征,输入到Patch-PnP模块,经过三个卷积层进一步提取特征;

接着,用2层全连接层,进行位姿信息转换,包括R旋转和t平移。

 

  • Patch-PnP模块的设计采用了三个卷积层,每个层后都跟随了组归一化(Group Normalization)和ReLU激活函数。
  • 然后,两个全连接(FC)层被应用于扁平化的特征,从而将特征维度从8192降至256。
  • 最终,两个并行的FC层分别输出6D位姿的旋转(R_6d)和平移(t_trans)参数。

Patch-PnP模块是一个创新点,它允许网络以一种可微分的方式学习位姿估计,从而使得整个网络能够端到端训练。

补充信息:

  • 两阶段训练,GDR-Net实现为一个两阶段方法,即首先检测物体,然后估计位姿。
  • 模型使用L1损失来优化归一化的M2D-3D和可见掩码Mvis​,同时使用交叉熵损失来优化MSRA。

 

分享完成~

本文先介绍到这里,后面会分享“6D位姿估计”的其它数据集、算法、代码、具体应用示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIP的学习(13)

第五章,重发布和路由策略 重发布 ​ 在路由协议的边界设备上,将某一种路由协议的路由信息引入到另一种路由协议中,这个操作被称为路由引入或者路由重分发。----技术本质为重发布。 条件 必须存在ASBR设备(路由边界设备&#x…

暗区突围进不去/游戏无法启动/掉帧卡顿/报错的解决方法

暗区突围是一款高拟真硬核射击手游,打造了全新的沉浸式暗区战局体验,发行商是腾讯公司。这个游戏名词虽然看起来有些陌生,但其本身的玩法内核毫无疑问的是,这款游戏在画面质量和枪械操作方面,都是手游市场上同类游戏中…

《构建高效的财务管理系统:设计与实现》

在当今数字化时代,企业财务管理系统的设计与实现至关重要。一个高效的财务管理系统不仅能够提高企业的运营效率,还能够增强企业的竞争力,为企业的发展提供有力支持。本文将探讨财务管理系统的设计与实现,为企业打造一套符合自身需…

Raft共识算法图二解释

下面是有关Raft协议中不同术语和概念的翻译及解释: 术语和概念: 任期号(term number):用来区分不同的leader。前一个日志槽位的信息(prelogIndex):这是前一个日志条目的索引&#…

【容器】k8s获取的节点oom事件并输出到node事件

在debug k8s node不可用过程中,有可能会看到: System OOM encountered, victim process: xx为了搞清楚oom事件是什么,以及如何产生的,我们做了一定探索,并输出了下面的信息。(本文关注oom事件是如何生成&传输的&a…

LeetCode-1463. 摘樱桃 II【数组 动态规划 矩阵】

LeetCode-1463. 摘樱桃 II【数组 动态规划 矩阵】 题目描述:解题思路一:动态规划一般有自顶向下和自底向上两种编写方式,其中自顶向下也被称为「记忆化搜索」。解题思路二:0解题思路三:0 题目描述: 给你一…

HBase 读写流程

HBase 读写流程 1. 读流程 Client先访问zookeeper,从zookeeper获取meta region的位置从meta region中读取meta表中的数据,meta中存储了用户表的region信息;根据namespace、表名和rowkey在meta表中找到对应的region信息;找到这个r…

深入剖析Spring框架:推断构造方法与@Bean注解的内部机制

你好,我是柳岸花开。 Spring框架作为Java开发中广泛使用的基础架构,其设计精巧、功能强大,尤其是其依赖注入(DI)和控制反转(IoC)特性,极大地提高了代码的可维护性和可测试性。本文将…

9. Django Admin后台系统

9. Admin后台系统 Admin后台系统也称为网站后台管理系统, 主要对网站的信息进行管理, 如文字, 图片, 影音和其他日常使用的文件的发布, 更新, 删除等操作, 也包括功能信息的统计和管理, 如用户信息, 订单信息和访客信息等. 简单来说, 它是对网站数据库和文件进行快速操作和管…

SpringBoot项目部署到阿里云服务器

部署步骤 步骤分以下: 将SpringBoot项目打包Linux上准备好Java环境、可用的MySql数据库项目上传到服务器启动项目停止项目 1.SpringBoot项目打包 数据库的链接,账户和密码需要和Linux上一致。 如上图打包即可。 2.Linux上准备好Java环境以及Mysql环境…

【数据结构】二叉树知识点详解

树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、…

【busybox记录】【shell指令】expand

目录 内容来源: 【GUN】【expand】指令介绍 【busybox】【expand】指令介绍 【linux】【expand】指令介绍 使用示例: 把制表符转化为空格 - 默认输出 把制表符转化为空格 - 修改制表符转空格的个数 把制表符转化为空格 - 修改制表符转空格的个数…

git bash各分支修改内容不同但合并后不显示冲突问题

在跟着廖雪峰老师的git学习时,按部就班的执行明后,发现 而不是出现原文的结果 解决方法: 切换位feature分支,再合并 git switch feature1 git merge master 此时我们发现: 后面再跟着原文敲就可以了

CSS学习笔记之基础教程(二)

上节内容CSS学习笔记之基础教程&#xff08;一&#xff09; 6、边距 6.1 外边距&#xff1a;margin 6.1.1 外边距 marginmargin-topmargin-leftmargin-bottommargin-right <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8…

python-scrapy框架示例

参考&#xff1a;https://blog.csdn.net/qq_44907926/article/details/119531324 创建项目步骤&#xff1a; 1.目标网站:www.itcast.cn 2.安装虚拟环境 pip install virtualenv3.创建虚拟环境 virtualenv --always-copy --system-site-packages venv4.激活虚拟环境 venv\sc…

OCR文本识别模型CRNN

CRNN网络结构 论文地址&#xff1a;https://arxiv.org/pdf/1507.05717 参考&#xff1a;https://blog.csdn.net/xiaosongshine/article/details/112198145 git:https://github.com/shuyeah2356/crnn.pytorch CRNN文本识别实现端到端的不定长文本识别。 CRNN网络把包含三部分&…

推荐5个免费的国内平替版GPT

提起AI&#xff0c;大家第一个想到的就是GPT。 虽然它确实很厉害&#xff0c;但奈何于我们水土不服&#xff0c;使用门槛有些高。 不过随着GPT的爆火&#xff0c;现在AI智能工具已经遍布到各行各业了&#xff0c;随着时间的推移&#xff0c;国内的AI工具也已经“百花盛放”了…

简单了解泛型

基本数据类型和对应的包装类 在Java中, 基本数据类型不是继承自Object, 为了在泛型代码中可以支持基本类型, Java给每个基本类型都对应了一个包装类型. 简单来说就是让基本数据类型也能面向对象.基本数据类型可以使用很多方法, 这就必须让它变成类. 基本数据类型对定的包装类…

Istio 流量管理(请求路由、流量转移、请求重试、流量镜像、故障注入、熔断等)介绍及使用

一、Istio 流量管理 Istio是一个开源的服务网格&#xff0c;它为分布式微服务架构提供了网络层的抽象。它使得服务之间的通信变得更为可靠、安全&#xff0c;并且提供了细粒度的流量管理、监控和策略实施功能。Istio通过在服务之间插入一个透明的代理&#xff08;Envoy&#x…

Unreal游戏GPU参数详解,游戏性能优化再升级

UWA GOT Online For Unreal GPU模式近期全新发布&#xff0c;方便开发者从渲染和带宽的角度进行GPU分析。同时&#xff0c;此次更新中UWA也增加了丰富的GPU参数&#xff0c;涵盖了GPU SoC和GPU Counter模块。这些新增的参数不仅能够帮助Unreal开发者从宏观层面监控GPU的压力状况…