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

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定