CVPR2021 | 国防科大:基于几何稳定性分析的物体位姿估计方法

本文主要是介绍CVPR2021 | 国防科大:基于几何稳定性分析的物体位姿估计方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文转载自机器之心。

物体6D姿态估计是机器人抓取、虚拟现实等任务中的核心研究问题。近些年来,随着深度学习技术和图像卷积神经网络的快速发展,在提取物体的几何特征方面出现了许多需要改善的问题。国防科技大学的研究人员致力于通过将几何稳定性概念引入物体 6D 姿态估计的方法来解决问题。

物体 6D 姿态估计的目的是确定物体从模型坐标系到相机坐标系的刚性变换矩阵。现有方法通常通过求解观测物体与物体三维模板模型的对应关系或使用深度神经网络回归的方法计算物体位姿。得益于图像卷积神经网络的发展,现有位姿估计方法大多依赖于对物体图像特征的提取,而忽略了物体的几何特征。当处理无纹理物体或者物体的纹理特征不够显著时,问题图像特征的提取往往非常困难,这也导致基于 RGB 特征的方法不能够处理无纹理、弱纹理物体的位姿估计问题。值得注意的是,在人类对三维物体的感知过程中,通常优先关注物体的几何形状。例如,在抓握物体时,人类往往只关注物体的形状,而忽略物体的纹理和颜色。使用物体的几何形状特征实现物体位姿估计,有望减少或消除物体纹理带来的影响,提升对无纹理物体的位姿估计算法性能。

近些年来,随着深度传感技术的快速发展,以 PPF 特征匹配算法为代表非学习方法和以 3DMatch 为代表的深度学习几何特征提取方法逐渐在位姿估计问题中崭露头角。这些方法虽然在多个公开数据集中取得了不错的效果,但是没有显式地约束几何特征提取和物体位姿的关系,因此制约了方法的可解释性和泛化性。

针对这一问题,国防科技大学的研究人员将几何稳定性概念引入了物体 6D 姿态估计,并提出了利用物体表面几何稳定(Geometrically stable)的面片组合(Patch group)预测物体姿态的方法 StablePose。StablePose 物体位姿估计模块的输入只有物体的深度信息,不包括 RGB 图像,能够有效处理无纹理、弱纹理物体的位姿估计问题。实验表明,StablePose 在多个实例位姿估计和类别位姿估计数据集上取得了最佳性能,能够处理物体间遮挡,具有良好的泛化性。论文的主要创新点包括:

  • 将几何稳定性概念引入到物体 6D 姿态估计问题;

  • 提出了基于几何稳定面块组合回归物体位姿的深度网络;

  • 提出了用于处理对称物体、有遮挡的物体以及新颖物体的机制,增强了方法的稳定性。

论文地址: https://arxiv.org/abs/2102.09334

几何稳定性分析与位姿估计

在现有工作中,几何稳定性分析主要被用于三维物体分割和三维点云配准。在三维点云配准任务中,几何稳定性分析旨在选择具有代表性的点云子集,这个子集可被用于实现快速、稳定的 ICP(Iterative closest point)点云配准。受到该思想的启发,StablePose 将几何稳定性引入物体 6D 位姿估计任务,其核心是提取物体表面几何稳定的面片组合。

几何稳定的面片组合是能够确定全部六个自由度物体位姿的面片集合,通常由三个以上面片构成。StablePose 位姿估计问题中的面片通过对观测点云数据平面和圆柱提取得到。根据几何稳定性分析理论,三个及三个以上满足一定空间关系的平面或圆柱面片能够确定物体位姿的全部六个自由度,因此在几何上是稳定的。

图2 面片组合的几何稳定性分析

如图所示,(d)中由三个互相垂直的平面组合能够确定物体位姿的全部六个自由度,构成几何稳定的面片组合,而(a)、(b)、(c)中的平面组合能够在某些自由度上滑动,在几何上不稳定,不能构成几何稳定的面片组合。利用几何稳定的面片组合进行物体姿态估计的目的非常直观:首先,面片是介于单个空间点和完整物体之间的几何模型,既包括局部几何特征,也包括全局语义特征,具有很好的表达能力;其次,几何稳定的面片组合在包括用于确定物体位姿全部自由度有效信息的同时,也去除了次要信息的影响,构成了对三维模型的精简表示。这样做不仅能够实现网络的快速训练,也能够提高方法的抗遮挡能力。为了估计物体的位姿,除了确定几何稳定的面片组合,还需计算观测面片与三维模型面片之间的对应关系。StablePose 使用深度网络学习这一对应关系并估计物体位姿。

位姿估计网络

StablePose 的计算流程如图所示。给定单视图 RGB-D 图像,StablePose 首先检测和分割其中的物体,然后使用相机内参得到目标物体的三维点云模型。使用 CAPE 算法对物体点云进行过分割处理,提取平面和圆柱面片。接着从平面和圆柱面片中筛选得到一系列几何稳定的面片组合。

如 StablePose 网络结构图所示,对于每个几何稳定面片组合,使用三维卷积神经网络提取特征并进行位姿估计。StablePose 使用的三维卷积神经网络以 PointNet++ 作为 backbone 提取面片的特征,并采用 Relation networks 进一步提取面片组合的全局特征。网络预测模块分成两个子任务:

Group pose prediction:将各面片特征和面片组合全局特征进行拼接,预测物体的位姿,损失函数(Point-to-point pose loss)约束物体位姿的全部自由度,具体形式为: ,其中,为预测位姿,为位姿真值,为物体三维模型表面采样点;

Patch pose prediction:将每一个面片特征分别单独与面片组合全局特征进行拼接,预测物体的位姿,损失函数(Point-to-patch pose loss)只约束物体位姿的部分自由度。以平面面片为例,其损失函数为:,其中,为预测位姿,为位姿真值,为面片中心点,为面片法向量。

该损失函数的含义是:不要求物体位姿的全部6个自由度都被预测正确,只要求当前面片分别按照预测位姿矩阵变换与位姿矩阵真值变换后的两个面片“共面”。

在上述方法中,子任务 2 是子任务 1 的辅助任务,可以提升网络的收敛速度和方法性能。此外,针对解决反射和旋转对称物体位姿不唯一的问题,StablePose 采用三类不同的损失函数分别对无对称物体、反射对称物体和旋转对称物体进行优化。这样做可以解决物体对称性带来的最优解不唯一的问题。

实验结果

为了验证 StablePose 的性能,文章分别在两个实例级位姿估计数据集 T-LESS、LineMod-O 和两个类别级位姿估计数据集 NOCS-REAL275、ShapeNetPose 上进行测试。实验结果表明,在无纹理数据集 T-LESS 上,StablePose 不仅达到了最佳性能,而且使用的训练数据量较之前 SOTA 方法更少,训练时间更短,推理时间更快。在遮挡较为严重的 LineMod-O 数据集上,相比于现有算法,StablePose 在使用最少量训练数据的情况下取得了次佳性能。,StablePose 不仅能在实例级的数据集上表现优异,也能够实现跨实例的位姿预测,StablePose 在 NOCS-REAL275 和作者提出的大型合成数据集 ShapeNetPose 上获得最佳性能,这得益于几何稳定面片组合带来的方法泛化性能的提升。

T-LESS 数据集实验结果

LineMod-O 数据集实验结果

ShapeNetPose 数据集实验结果

StablePose 位姿预测结果可视化

相关工作

基于 RGB 的物体位姿估计最常见的解决方案是从 RGB 图像检测并匹配关键点并求解 PnP。近些年来,这种方法已经被大量工作研究,并取得了较好的效果。但是当处理无纹理、弱纹理物体时,物体表面关键点难以被检测和匹配,因此性能较差。

基于物体几何形状的位姿估计方法大体包括以下几种:利用物体点云信息,使用 ICP 算法对初始估计位姿进行优化;将深度图或点云作为位姿估计深度网络的额外输入通道,将几何形状特征与颜色问题特征融合共同估计位姿;直接从深度图、点云或者体素提取几何形状特征,通过关键点匹配、投票算法或者使用深度网络估计位姿。

几何稳定性分析也被称作滑移性分析,是分析物体形状的经典工具。几何稳定性分析可被用于从一个点集中提取子集,以提高 ICP 算法的稳定性和有效性。这是通过过滤掉多余的点,同时为每个对齐自由度保留足够的点实现的。几何稳定性分析的另一个应用是从物体表面提取可滑动部件,以实现物体分割和物体特征提取。

END

备注:6D

6D位姿计算交流群

扫码备注拉你入群。

OpenCV中文网

微信号 : iopencv

QQ群:805388940

微博/知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

这篇关于CVPR2021 | 国防科大:基于几何稳定性分析的物体位姿估计方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/706776

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录