论文笔记《Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation》

Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation

原文链接:论文笔记《Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation》 | Karl的博客 (karltan.com)

CSDN链接:论文笔记《Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation》-CSDN博客

论文链接:[1901.02970] Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation (arxiv.org)

代码链接:hughw19/NOCS_CVPR2019: [CVPR2019 Oral] Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation on Python3, Tensorflow, and Keras (github.com)

项目链接:Normalized Object Coordinate Space for Category-Level 6D Object Pose and Size Estimation, CVPR 2019 (Oral) (stanford.edu)

Abstract

本文的目标是估计RGB-D图像中未见过物体的6D位姿和尺寸。与“实例级”6D姿态估计任务相反,我们的问题假设在训练或测试期间没有精确的对象CAD模型可用。

为了处理给定类别中不同且未见过的对象实例,我们引入了标准化对象坐标空间(NOCS)——一个类别中所有可能对象实例的共享规范表示。然后,我们基于区域的神经网络被训练用来直接推断从观察到的像素到这个共享对象表示(NOCS)的对应关系,以及其他对象信息,如类标签和实例掩码。这些预测可以与深度图结合,共同估计在混乱场景中多个物体的度量6D姿态和大小。

为了训练我们的网络,我们提出了一种新的上下文感知技术来生成大量有标签的混合现实数据。为了进一步改进我们的模型并评估其在真实数据上的性能,我们还提供了一个具有多个环境和实例变化的有标签真实数据集。

大量的实验表明,该方法能够稳健地估计真实环境中未见过对象的姿态和大小,同时在标准6D姿态估计基准上实现最先进的性能。

1. Introduction

在虚拟和增强现实(AR)、机器人技术和3D场景理解中,目标检测和3D位置、方向和大小的估计是一个重要的需求。这些应用程序需要在新的环境中进行操作,这些环境可能包含以前未见过的对象实例。

过去的工作已经探索了实例级6D位姿估计问题[37, 46, 27, 51, 6, 28],其中精确的CAD模型和它们的尺寸是预先可得的。

不幸的是,这些技术不能在一般情况下使用,因为大多数对象以前从未见过,也没有已知的CAD模型。

另一方面,类别级3D对象检测方法[43, 36, 9, 34, 49, 12]可以估计出对象类别标签和3D bounding boxes,而不需要精确的CAD模型。然而,估计的3D bounding boxes依赖于视角,方法中并不会编码对象的精确方向。

因此,这两类方法都不能满足需要未见过对象6D姿态和3个非均匀尺度参数(编码维度)应用程序的需要。

在本文中,我们的目标是通过介绍第一个多对象的类别级6D位姿和大小估计的方法来弥合这两类方法之间的差距,据我们所知,这是一个对新对象实例具有挑战性的问题。

由于我们不能对未见过的物体使用CAD模型,第一个挑战是找到一种表示方式,允许在特定类别中定义不同物体的6D位姿和大小。第二个挑战是无法获得用于训练和测试的大规模数据集。像SUN RGB-D[41]或NYU v2[40]这样的数据集缺乏精确的6D姿态和大小的标签,或者不包含桌面尺度对象类别——确切地说是在桌面或桌面操作任务中出现的对象类型,对于这种类型的对象来说,知道6D姿态和大小将是有用的。

为了解决表示的挑战,我们将这个问题表述为在共享对象描述空间中寻找对象像素与归一化坐标之间的对应关系(参见第3节)。我们定义了一个称为**归一化对象坐标空间(NOCS)**的共享空间,其中所有对象都包含在一个公共归一化空间中,一个类别中的所有实例方向都是一致的。这使6D姿态和大小估计成为可能,即使是未见过的对象实例。

我们的方法的核心是一个卷积神经网络(CNN),它从单个RGB图像中联合估计对象类、实例掩码和多个对象的NOCS映射。直观地,NOCS映射通过预测目标像素和NOCS之间的密集对应来捕获目标可见部分的归一化形状。我们的CNN通过像素回归分类问题来估计NOCS映射。

然后,NOCS映射与深度图一起使用,以使用位姿拟合方法来估计对象的全度量6D位姿和大小。

为了解决数据挑战,我们引入了一种空间上下文感知的混合现实方法来自动生成大量的数据(275K训练,25K测试),这些数据由ShapeNetCore[8]中逼真的合成对象与真实的桌面场景组合而成。这种方法允许自动生成具有混乱对象的真实数据,并为类标签、实例掩码、NOCS映射、6D位姿和大小提供完整的GT标签。

我们还提供了一个用于训练和测试的真实世界数据集,该数据集中有6个对象类别,有18个不同场景,共计42个独特的实例,并且为每个实例提供了6D位姿和大小的GT标签。

据我们所知,我们的数据集是最大和最全面的,用于6D位姿和尺寸,以及3D对象检测任务的训练和测试数据集。

我们的方法使用来自商用RGB-D传感器的输入,设计用于处理对称和非对称对象,使其适用于许多应用程序。

图1显示了我们的方法在一个桌面场景上操作的例子,在训练期间有多个对象未见过:

image-20231026141109178

综上所述,本工作的主要贡献有:

  • 标准化对象坐标空间(NOCS),一个统一的共享空间,允许不同但相关的对象有一个共同的参考框架,以便对未见过的对象进行6D位姿和大小估计。
  • 一种联合预测RGB图像中多个未见过对象的类标签、实例掩码和NOCS映射的CNN。在位姿拟合算法中,我们使用NOCS映射和深度图来估计对象的全度量6D位姿和尺寸。
  • 数据集:一种空间上下文感知的混合现实技术,在真实图像中去合成合成对象,允许我们生成一个大规模的有标签数据集来训练我们的CNN。我们还为训练和测试提供了完整标签的真实世界数据集。

2. Related Work

在本节中,我们重点回顾了基于RGB-D图像的类别级3D目标检测、实例级6D位姿估计、类别级4 DoF位姿估计以及不同数据生成策略的相关工作。

Category-Level 3D Object Detection

预测物体的6D姿态和大小的挑战之一是在场景中定位物体并找到它们的物理尺寸,这可以表述为一个3D检测问题[54, 22, 21, 31, 14]。值得注意的尝试包括[43, 55],他们将3D体积数据作为输入,直接在3D中检测物体。另一种思路[36, 20, 10, 29]提出先在2D图像中生成2D对象推荐,然后将该推荐投影到3D空间中,进一步细化最终的3D bounding box位置。上面描述的技术达到了令人印象深刻的3D检测率,但不幸的是,仅仅关注于寻找物体的边界体积,而不能预测物体的6D姿态。

Instance-Level 6 DoF Pose Estimation

考虑到它的实际重要性,有大量的工作集中在实例级6D位姿估计。

在这里,任务是推断对象的3D位置和3D旋转(无比例),假设在训练期间可以获得这些对象的确切3D CAD模型和大小。目前的SOTA可以大致分为模板匹配或对象坐标回归技术

模板匹配技术通过迭代最近点[4, 53]等算法将GT 3D CAD模型与预测到的3D点云进行对齐,或者使用手工制作的局部描述符进一步指导对齐过程[26, 11]。这类技术经常遭受对象间和对象内的遮挡,这是我们只有部分扫描对象时的典型情况。

第二类是基于对象坐标回归的方法,目的是回归每个物体像素对应的物体表面位置。这些技术已成功应用于身体姿态估计[45, 18],相机重定位[39, 48]和6D目标姿态估计[5]。

上述两种方法都需要在训练和测试过程中建立精确的3D模型。除了在测试时存储所有3D CAD模型或学习过的物体坐标回归器的实际限制外,捕获大量物体的高保真和完整的3D模型是一项具有挑战性的任务。

虽然我们的方法受到了对象坐标回归技术的启发,但它也与上面的方法有很大的不同,因为我们在测试时不再需要完整和高保真的对象3D CAD模型。

Category-Level 4 DoF Pose Estimation

有一些关于类别级姿态估计的研究[20, 42, 19, 35, 7],但它们都做出了简化的假设。

首先,这些算法将旋转预测限制为仅沿重力方向(只有4个自由度)。

其次,他们关注一些大房间尺度的物体类别(例如,椅子、沙发、床或汽车),而没有考虑到物体的对称性[20, 42, 19]。相反,我们估计了各种手尺度物体的姿态,由于姿态变化较大,手尺度物体的姿态往往比室内尺度物体更具挑战性。我们的方法也可以在不假设物体重力方向的情况下预测完整的6D位姿和大小。

最后,我们的方法以交互帧率运行(每帧0.5秒),这比其他方法([20]为每帧约70秒,[42]为每帧25分钟)快得多。

Training Data Generation

训练CNNs的一个主要挑战是缺乏足够的类别个数、实例个数、姿态种类、混乱程度和光照变化的训练数据。

为了构建包含对象标签的真实数据集(例如,[40, 41, 50]),人们已经做出了一些努力。不幸的是,这些数据集往往相对较小,这主要是由于与GT标签相关的高成本(时间和金钱)。这个限制是其他工作(例如,[35, 44, 51])的动力,这些工作生成的数据完全是合成的,这允许以较小的成本生成大量具有完美标签的训练数据。

为了简单起见,所有这些数据集都忽略了一些因素的组合(材料、传感器噪声和照明),这些因素会在合成数据和真实数据分布之间造成事实上的领域差距。

为了缩小这种差距,[13]生成了混合真实数据和合成数据的数据集,方法是在真实背景上呈现虚拟对象。虽然背景是真实的,但渲染的对象是飞行在半空中的,并且是脱离上下文的[13],这阻止算法利用重要的上下文线索。

我们引入了一种新的混合真实的方法,以上下文感知的方式自动生成大量的由合成物体和真实背景组成的数据,使其更加真实。

这得到了实验的支持,表明我们的上下文感知训练数据能够使模型更好地泛化到真实世界测试数据。

我们还提供了一个真实世界的数据集,以进一步改善学习和评估。

3. Background and Overview

Category-Level 6D Object Pose and Size Estimation

我们关注对象实例的3个旋转、3个平移和3个缩放参数(维度)的估计问题。

此问题的解决方案可以可视化为围绕对象的一个紧密定向的bounding box,参见图1:

image-20231026141109178

虽然图像中的这些对象之前没有见过,但是这些对象来自于训练过程中的已知对象类别(如相机),并且在训练过程中,模型会见到这些类别中的若干个样本。

这项任务特别具有挑战性,因为我们不能在测试时使用CAD模型,而且6D位姿对未见过的物体没有明确定义。为了克服这个问题,我们提出了一种新的表示方式,它定义了一个共享的对象空间,可以定义未见过的对象的6D位姿和大小。

Normalized Object Coordinate Space (NOCS)

NOCS是一个在空间中的单位立方体,即: { x , y , z } ∈ [ 0 , 1 ] \{x, y, z\} \in [0, 1] {x,y,z}[0,1]

给定每个类别的已知对象CAD模型的形状集合,通过统一缩放对象,我们将其大小归一化,使其bounding box的对角线长度收缩为1(?),并在NOCS空间中居中,参见图2:

image-20231026155511223

此外,我们让同一类别对象的中心和方向一致。

我们使用ShapeNetCore[8]中的模型,这些模型已经对比例、位置和方向进行了规范化。图2显示了相机类别中规范化形状的示例。我们的表示允许形状的每个顶点在NOCS(图2中的颜色编码)中表示为一个元组 ( x , y , z ) (x, y, z) (x,y,z)

我们的CNN预测彩色编码的NOCS坐标的2D透视投影,即NOCS映射(图2左下角)。

注意,进行2D透视投影之后,像素的坐标仍然是三维的:

project

图中右侧的竖线是图像平面, ( x , y , z ) (x, y, z) (x,y,z)是点在空间中的位置, ( x ′ , y ′ , z ′ ) (x^\prime, y^\prime, z^\prime) (x,y,z)是点在图像平面中的位置。

那么预测的坐标也是一个三维坐标。

有多种方式来解释NOCS映射:

  1. 作为在NOCS中观测到的物体部分的形状重建
  2. 作为密集的像素-NOCS对应

我们的CNN学习对未见过的物体进行形状预测,或者在大的形状集合上训练,学习去预测物体的像素-NOCS对应。这种表示比其他方法(例如bounding boxes)更健壮,因为即使对象只有部分可见,我们也可以操作。

Method Overview

图3说明了我们使用RGB图像和深度图作为输入的方法:

image-20231026163707517

我们的CNN仅从RGB图像估计图像中对象的类标签、实例掩码(就是语义分割)和NOCS映射。

除此之外,我们没有在CNN中使用深度图,因为我们想利用现有不包含深度的RGB数据集,如COCO数据集来提高性能。

NOCS映射可以在一个标准化的空间中编码对象的形状和大小。因此,我们可以在稍后阶段使用深度图来提升这一归一化空间,并使用鲁棒的离群值去除和对齐技术来预测全度量6D对象的姿态和大小。

我们的CNN是建立在Mask R-CNN框架[23]上的,除了类标签和实例掩码外,在改进后还能够联合预测NOCS映射。第5节详细介绍了我们的改进和可以处理对称对象的新的loss函数。

在训练过程中,我们使用一种新的Context-Aware MixEd ReAlity(CAMERA)方法(参见第4节)来渲染GT图像。

这个大数据集允许我们在测试时从新的类别泛化到新的实例。并且为了进一步缩小这个领域的差距,我们还使用了一个更小的真实数据集。

4. Datasets

在类别级3D检测和6D位姿与尺寸估计中,一个主要的挑战是无法获得GT数据。虽然已经有了像NYU v2[40]和SUNRGB-D[41]这样的尝试,但它们都有重要的局限性。

首先,它们不提供对象的6D位姿,只关注3D bounding boxes。

其次,增强现实和机器人等应用得益于桌面设置中的手尺度对象,而当前的数据集关注的是更大的对象,如椅子和桌子。

最后,这些数据集不包含我们需要的GT类型的标签(即NOCS映射),并且包含的示例数量有限。

4.1. Context-Aware Mixed Reality Approach

为了促进大量手尺度对象GT训练数据的生成,我们提出了一种新的**Context-Aware MixEd ReAlity(CAMERA)**方法,它解决了以前方法的局限性,使数据生成需要的时间更少,并降低了成本。

它以一种上下文感知的方式将真实的背景图像与综合渲染的前景对象结合起来,即,将合成的对象渲染并组合成具有合理的物理位置、照明和比例的真实场景,见图4(左边蓝色框内):

image-20231026170636706

这种混合现实的方法允许我们生成比以前多得多的训练数据。

Real Scenes

我们使用31幅变化广泛的室内场景的真实RGB-D图像作为背景(图4中间粉色框内)。

我们的重点是桌面场景,因为大多数室内以人为中心的空间由桌面表面和手尺度的对象组成。我们总共为31个场景收集了553张图像,其中4个场景留作验证。

Synthetic Objects

为了在上面的真实场景中渲染逼真的对象,我们从ShapeNetCore[8]中选择手动缩放的对象,手动删除那些看起来不真实或有拓扑问题的对象。

总的来说,我们挑选了6种物品类别——瓶子、碗、相机、罐子、笔记本电脑和马克杯。我们还创建了一个干扰类别,其中包含了上面没有列出的类别中的对象实例,比如显示器、电话和吉他。这提高了预测我们的主要类别时的鲁棒性,即使场景中出现了其他对象。

我们策划的ShapeNetCore版本包含1085个单独的对象实例,我们留出184个实例用于验证。

Context-Aware Compositing

为了提高真实感,我们以一种上下文感知的方式组合虚拟对象,即,我们将其放置在它们自然出现的地方(例如,在支持表面上),并使用合理的照明。

我们使用了一种平面检测算法[15]对真实图像进行像素级平面分割。

随后,我们在可放置合成物体的分割平面上取样随机位置和方向。

然后我们放置几个虚拟光源来模拟真实的室内照明条件。

最后,我们将渲染的图像和真实的图像结合起来,以生成一个具有NOCS映射、掩码和类标签的合成图片,并且这个合成图片有完美的GT标签。

我们总共渲染了300K的合成图像,其中25K用于验证。据我们所知,这是分类级6D位姿和尺寸估计的最大数据集。

我们的混合现实合成技术是使用Unity游戏引擎[2]实现的,并且我们为引擎增加了用于平面检测和点采样的自定义插件(所有这些都将公开发布)。

与使用非上下文感知数据相比,使用我们的方法生成的图像看起来似乎合理和真实,从而提高了泛化。

4.2. Real-World Data

为了进一步改进和验证算法在具有挑战性的混乱和光照条件下的真实世界性能,我们捕获了两个真实世界的数据集:

  1. 我们前面生成的混合现实数据的真实训练数据集的补充
  2. 一个真实世界的测试数据集来评估6D姿态和尺寸估计的性能

我们开发了一种半自动的方法来标注物体的GT位姿和大小。图4显示了真实世界数据的示例(右边绿色框内):

image-20231026170636706

我们使用Structure Sensor[1]在18个不同的真实场景(7个场景用于训练,5个场景用于验证,6个场景用于测试)中,捕获了8K个RGB-D帧(4300个帧用于训练,950个帧用于验证,2750个帧用于测试)。

训练集用于训练,会反复遍历;验证集用于评估模型的好坏;测试集只用一次。

对于每个训练和测试子集,我们使用6个类别,每个类别选取3个不同的实例。对于验证集,我们使用6个类别,每个类别选取1个不同的实例。

我们在每个场景中放置超过5个对象实例来模拟真实世界的混乱。对于每个实例,我们使用我们为此目的开发的RGB-D重建算法来获得一个干净和准确的3D网格。

总的来说,我们的组合数据集包含18个不同的真实场景,42个独特的对象实例,跨越6个类别,使其成为分类级6D位姿和大小估计最全面的数据集。

5. Method

图3显示了我们从RGB-D图像中估计多个之前未见过物体的6D姿态和大小的方法:

image-20231026163707517

该CNN会预测对象的类标签、掩码和NOCS映射。然后我们使用NOCS映射和深度图来估计对象的度量6D位姿和大小。

5.1. NOCS Map Prediction CNN

我们CNN的目标是纯粹基于RGB图像估计对象的类标签、实例掩码和NOCS映射。

该CNN建立在基于区域的Mask R-CNN框架[23]上,因为它在2D目标检测和实例分割任务上展示了最先进的性能,是模块化的,灵活的,快速的,并可以很容易地被增强从而预测NOCS映射,如下所述。

5.1.1 NOCS Map Head

Mask R-CNN构建在Faster R-CNN架构[38]之上,由两个模块组成——一个模块提出可能包含对象的区域,一个检测器检测和分类区域内的对象。此外,它还预测区域内对象的实例掩码。

我们的主要贡献是在Mask R-CNN中添加了3个头部结构,用于预测NOCS映射的 x , y , z x, y, z x,y,z分量,见图5:

image-20231026190304830

对于每个提议的感兴趣区域(ROI),一个头部的输出大小为 28 × 28 × N 28 \times 28 \times N 28×28×N,其中 N N N是类别的数量,每个类别包含该类别中所有检测到的对象的 x x x(或 y , z y, z y,z)坐标。

与掩码头类似,我们在测试时使用对象类别,然后查找相应的预测通道。

在训练过程中,损失函数中只使用了来自GT对象类别的NOCS映射组件。

我们使用ResNet50[25]骨干网和特征金字塔网络(FPN)。

Regression vs. Classification

为了预测NOCS映射,我们要么回归每个像素值,要么将像素值离散化,将其作为一个分类问题(图5中(B))。

直接回归可能是一个更困难的任务,可能会在训练中引入不稳定性。类似地,具有大量类的像素分类(例如, B = 128 B = 128 B=128或者 B = 256 B = 256 B=256,其中, B B B是像素的取值数)可能引入更多的参数,使训练比直接回归更具有挑战性。

实验结果表明, B = 32 B = 32 B=32的像素分类优于直接回归。

Loss Function

我们网络中的类、框和掩码头使用与[23]中描述的相同的损失函数。

对于NOCS映射头,我们使用两个损失函数:

  1. 一个标准的softmax损失函数用于分类

  2. 另一个soft L 1 L^1 L1损失函数用于回归,使学习更鲁棒,表示如下:
    L ( y , y ∗ ) = 1 n { 5 ( y − y ∗ ) 2 , ∣ y − y ∗ ∣ ≤ 0.1 ∣ y − y ∗ ∣ − 0.05 , ∣ y − y ∗ ∣ > 0.1 L(\mathbf{y}, \mathbf{y}^\ast) = \frac{1}{n}\begin{cases} \begin{array}{ll} 5(\mathbf{y} - \mathbf{y}^\ast)^2, & \left|\mathbf{y} - \mathbf{y}^\ast\right| \le 0.1 \\ \left|\mathbf{y} - \mathbf{y}^\ast\right| - 0.05, & \left|\mathbf{y} - \mathbf{y}^\ast\right| > 0.1 \end{array} \end{cases} L(y,y)=n1{5(yy)2,yy0.05,yy0.1yy>0.1
    其中, ∀ y ∈ N , y ∗ ∈ N p \forall\mathbf{y} \in N, \mathbf{y}^\ast \in N_p yN,yNp

在该损失函数中:

  • y ∈ R 3 \mathbf{y} \in \mathcal{R}^3 yR3,是NOCS映射像素的GT值
  • y ∗ \mathbf{y}^\ast y是NOCS映射像素的预测值
  • n n n是ROI中掩码像素的个数
  • I I I是NOCS的GT值
  • I p I_p Ip是NOCS的预测值
Object Symmetry

许多常见的家用物品(如瓶子)都展现出了绕轴对称的特性。我们的NOCS表示没有考虑到对称性,这导致了一些对象类的巨大错误。

为了缓解这个问题,我们引入了一个考虑对称性的损失函数的变体。对于训练数据中的每个类别,我们定义了一个对称轴。在NOCS映射中,对象发生预定义的绕轴旋转时,会产生相同的损失函数值。

例如,顶部为方形的长方体有一个垂直的对称轴。在这个轴上旋转 θ = { 0 ∘ , 9 0 ∘ , 18 0 ∘ , 27 0 ∘ } \theta = \{0^\circ, 90^\circ, 180^\circ, 270^\circ\} θ={0,90,180,270}时,会导致相同的映射,因此有相同的损失。

对于非对称对象, θ = 0 ∘ \theta = 0^\circ θ=0是唯一的。

我们发现 ∣ θ ∣ ≤ 6 \left|\theta\right| \le 6 θ6 ∣ θ ∣ \left|\theta\right| θ θ \theta θ取值的数量)足以处理大多数对称类。

我们生成GT NOCS映射, { y ~ 1 , y ~ 2 , ⋯   , y ~ ∣ θ ∣ } \{\tilde{\mathbf{y}}_1, \tilde{\mathbf{y}}_2, \cdots, \tilde{\mathbf{y}}_{\left|\theta\right|}\} {y~1,y~2,,y~θ},下标表示沿着对称轴旋转的次数。

然后我们定义我们的对称损失函数 L s L_s Ls L s = min ⁡ i = 1 , ⋯   , ∣ θ ∣ L ( y ~ i , y ∗ ) L_s = \min_{i = 1, \cdots, \left|\theta\right|}L(\tilde{\mathbf{y}}_i, \mathbf{y}^\ast) Ls=mini=1,,θL(y~i,y),其中 y ∗ \mathbf{y}^\ast y表示的是预测的NOCS映射像素 ( x , y , z ) (x, y, z) (x,y,z)

这里相当于是将GT的NOCS旋转 ∣ θ ∣ \left|\theta\right| θ次,分别计算损失函数值,然后选取一个最小的损失函数值来作为最后的损失函数值。

Training Protocol

我们在COCO数据集[33]上,用在二维实例分割任务上训练的权值来初始化RESNET50主干、RPN和FPN。

对于所有头,我们使用[24]中提出的初始化技术。

我们使用的批量大小为 2 2 2,初始学习率为 0.001 0.001 0.001,SGD优化器的动量为 0.9 0.9 0.9,权重衰减为 1 × 1 0 − 4 1 \times 10^{-4} 1×104

在训练的第一阶段,我们冻结ResNet50权重,只训练头部、RPN和FPN中的层,进行10K次迭代。

在第二阶段,我们将ResNet50层冻结在4级以下,并训练进行3K迭代。

在最后阶段,我们将ResNet50层冻结在第3级以下,持续70K次迭代。当切换到每个阶段时,我们将学习速度降低了10倍。

5.2. 6D Pose and Size Estimation

我们的目标是通过使用NOCS映射和输入深度图来估计被检测物体的全度量6D位姿和尺寸。

为此,我们使用RGB-D相机的内部和外部特性来对齐深度图像和彩色图像。然后应用预测的对象掩码来得到被检测对象的三维点云 P m P_m Pm(如果语义分割正确,那么这个点云是真实点云)。我们还使用NOCS映射来获得 P n P_n Pn的3D表示(这个是在原点处的点云)。然后我们估计从 P n P_n Pn转换到 P m P_m Pm的缩放,旋转和平移。

我们使用了Umeyama算法[47]来解决这个7维刚性变换估计问题,并使用RANSAC算法[16]来去除离群点。定性结果见补充资料。

从NOCS得到的点云应该是在原点位置的,然后经过缩放,旋转和平移到深度相机处,从而得到6D姿态估计。

6. Experiments and Results

Metrics

我们报告了3D物体检测和6D姿态估计指标的结果。

为了评估三维检测和目标尺寸估计,我们使用了阈值为50%[17]的交并比(IoU)度量。

对于6D位姿估计,我们报告的对象实例的平均精度,其中平移的误差小于 m m m cm,旋转的误差小于 n ∘ n^\circ n,类似于[39, 30]。

我们将目标检测与6D姿态评估分离,因为它可以更清晰地显示性能。

我们在预测和GT之间设置了10%的bounding box重叠检测阈值,以确保大多数目标都包含在评估中。

对于对称对象类别(瓶、碗和罐),我们允许预测的3D bounding box围绕对象的垂直轴自由旋转,而不会受到任何惩罚。

我们对马克杯类杯子进行了特殊处理,在手柄不可见的情况下使其对称,因为在这种情况下很难判断它的位姿,即使是人类。我们使用[52]来检测CAMERA数据的处理可视性,并手动标注真实数据。

Baselines

由于我们不知道有其他方法来估计类别级6D的位姿和大小,我们建立了自己的基线来帮助比较性能。

它由Mask R-CNN网络组成,在相同的数据上训练,但没有NOCS映射头。我们使用预测的实例掩码从深度图中获得对象的三维点云。我们(使用ICP[4])将掩码点云与相应类别中随机选择的模型进行对齐。

对于6D位姿估计,我们给出的结果可以很容易地与[51]进行比较。

Evaluation Data

我们所有的实验都使用这些评估数据集中的一个或两个:

  1. CAMERA验证数据集(CAMERA25)
  2. 一个2.75K的真实数据集(REAL275),带有GT标签

由于真实数据是有限的,这允许我们在不涉及姿态估计和域泛化的情况下研究性能。

6.1. Category-Level 6D Pose and Size Estimation

Test on CAMERA25

我们报告了我们的方法的类别级结果,CNN仅在275K CAMERA训练集(CAMERA ∗ ^\ast )上训练。我们在CAMERA25上测试性能,它由训练中完全未见过的对象和背景组成。

我们在3D IoU为50%时实现了83.9%的mAP,在 ( 5 ∘ , 5  cm ) (5^\circ, 5 \text{ cm}) (5,5 cm)的测量中实现了40.9%的mAP。** ( 5 ∘ , 5  cm ) (5^\circ, 5 \text{ cm}) (5,5 cm)是用于估计6D姿态的严格度量,即使对于已知实例[51, 6, 37]。**更多细节请参见图6:

image-20231027134714854

因为这里的测试集中都是在训练中没有见过的背景和对象,Baselines是无法处理的,所以在这个数据集上是无法将NOCS方法和Baselines方法进行比较的。

Test on REAL275

然后,我们在结合CAMERA ∗ ^\ast 、真实数据集(REAL ∗ ^\ast )和来自COCO[33]的弱监督下训练我们的网络,并在真实测试集上对其进行评估。因为COCO没有GT的NOCS映射,所以我们在训练中不使用NOCS损失。

我们使用了20K张包含我们类实例的COCO图片。

为了平衡这些数据集,对于每个小批量,我们从三个数据源中选择图像,CAMERA ∗ ^\ast 的概率为60%,COCO的概率为20%,REAL ∗ ^\ast 的概率为20%。

这个网络是我们产生的所有可视化结果中表现最好的,见图8:

image-20231027135558831

在真实的测试集中,我们在3D IoU为50%时实现了76.4%的mAP,在 ( 5 ∘ , 5  cm ) (5^\circ, 5 \text{ cm}) (5,5 cm)的测量中实现了10.2%的mAP,在 ( 1 0 ∘ , 5  cm ) (10^\circ, 5 \text{ cm}) (10,5 cm)的测量中实现了23.1%的mAP。

相比之下,基线算法(Mask R-CNN + ICP alignment)在3D IoU为50%时实现了43.8%的mAP,在 ( 5 ∘ , 5  cm ) (5^\circ, 5 \text{ cm}) (5,5 cm) ( 1 0 ∘ , 5  cm ) (10^\circ, 5 \text{ cm}) (10,5 cm)的测量中实现了0.8%的mAP,这显著低于我们算法的性能。

图7显示了更详细的分析和比较:

image-20231027140036076

该实验表明,通过学习去预测密集NOCS映射,我们的算法能够提供有关对象的形状,部件和可见性的额外详细信息,这些信息对于正确估计对象的6D姿态和大小都至关重要。

6.2. Ablation Studies

CAMERA Approach

为了评估我们的CAMERA数据生成方法,我们对在不同训练数据组合上训练的网络进行了实验。对于这个实验,我们设置网络架构来回归NOCS映射。

表1显示了我们的网络在REAL275测试集上的性能:

image-20231027140302082

我们还创建了CAMERA ∗ ^\ast 的变体,其中图像以非上下文感知的方式合成(在表1中由B表示)。

如表中所示,由于域间隙,仅使用CAMERA ∗ ^\ast 会导致性能较差。我们看到了在添加COCO和REAL ∗ ^\ast 后的逐步改进。

仅在REAL ∗ ^\ast 或在REAL ∗ ^\ast 和COCO上进行训练往往会由于数据集大小较小而过拟合到训练数据。使用COCO和REAL ∗ ^\ast 进行CAMERA ∗ ^\ast 训练可获得最佳效果。

此外,我们看到,非上下文感知数据的结果比上下文感知数据的性能更差,这表明我们的CAMERA方法是有用的。

Classification vs. Regression

在CAMERA25和REAL275上,像素分类始终优于回归。

使用32bits最适合姿态估计,而128bits在检测上更好,参见表2:

image-20231027140845274

Symmetry Loss

这种损失对于许多日常对称对象类别来说是至关重要的。

为了研究对称性损失的影响,我们在CAMERA25和REAL275集上对回归网络进行了消融实验。表2示出了如果不使用对称性损失(Reg. w/o Sym.表示不使用对称性损失),姿态精度显著降低,特别是对于6D姿态。

6.3. Instance-level 6D Pose Estimation

我们还评估了我们在OccludedLINEMOD[26]上的实例级6D姿态估计任务的方法,并与PoseCNN[51]进行了比较。

OccludedLINEMOD数据集有9个对象实例,并为每个实例提供一个CAD模型。它有1214张带有标签的GT 6D姿态的图像。我们遵循[46, 27]中的协议,随机选择15%的数据集作为训练图像。然后,我们使用第4节中描述的技术生成15000个合成图像。

使用32bits分类网络,我们实现了94.7%的检测率,在3D IoU为50%时实现了88.4%的mAP,在 ( 5 ∘ , 5  cm ) (5^\circ, 5 \text{ cm}) (5,5 cm)的测量中实现了13.9%的mAP,在 ( 1 0 ∘ , 5  cm ) (10^\circ, 5 \text{ cm}) (10,5 cm)的测量中实现了33.5%的mAP。这远远高于PoseCNN[51],后者在没有迭代姿态细化的情况下仅实现了1.7%的mAP(在[30]中报告)。图9提供了更详细的分析:

image-20231027141645905

这个实验表明,虽然我们的方法是为类别级姿态估计而设计的,但它也可以在标准6D姿态估计基准上实现最先进的性能。

使用2D投影度量,其测量GT值和估计的对象姿态之间的平均像素距离,我们在5像素的2D投影上实现了30.2%mAP。我们的方法显著优于PoseCNN[51],后者在[30]中报告了5像素的2D投影上实现的17.2%mAP。详细对比见补充文件。

Limitations and FutureWork

据我们所知,我们是第一个解决类别级6D姿态和大小估计问题的方法。仍有许多悬而未决的问题需要解决。首先,在我们的方法中,位姿估计是以区域推荐和类别预测为条件的,这可能是不正确的,并对结果产生负面影响。其次,我们的方法依赖于深度图像来提升NOCS预测到真实世界的坐标。未来的工作应该研究直接从RGB图像估计6D姿态和大小。

7. Conclusion

我们提出了一种方法,为未见过的的对象实例做类别级的6D姿态和尺寸估计。

我们提出了一个新的规范化对象坐标空间(NOCS),允许我们定义一个共享的空间与一致的对象缩放和方向。

我们提出了一个CNN来预测NOCS映射,该映射可以与深度图一起使用,使用一种位姿拟合方法来估计未见过物体的全度量6D位姿和大小。

我们的方法在增强现实,机器人和3D场景理解等领域有重要的应用。

A. Implementation and Computation Times

我们的网络在Python 3,Keras和Tensorflow上实现。代码基于MatterPort的Mask RCNN实现[3]。该网络使用特征金字塔网络(FPN)[32]和ResNet50骨干网络[25]。

我们的网络将分辨率为640×360的图像作为输入。我们在Intel Xeon Gold 5122 CPU@3.60GHz台式机上使用NVIDIA TITAN Xp实现了约4fps的交互速率。我们的实现使用Umeyama算法,神经网络推理的平均时间为210ms,姿态对齐的平均时间为34ms。

B. Scanned Real Instances

我们的真实数据集包含6个对象类别和42个真实扫描的唯一实例。对于每个类别,我们收集了7个实例,其中4个用于训练和验证,其余3个用于测试。图10显示了我们实例的一个子集:

image-20231027144043766

在这里可以看到数据集中有很大的类内形状差异。

第一行是在训练中使用的实例。第二行和第三行是为测试而保留的实例。

C. Result Visualization

这里我们提供了6D位姿和尺寸估计的更多视觉结果。

由于有足够的训练数据,我们的方法在CAMERA25验证集上取得了非常好的性能,如图11所示:

image-20231027144353576

在REAL275测试集上,尽管实际训练数据量很小,但我们仍然观察到良好的性能,如图12所示:

image-20231027144824279

我们观察到真实数据的几种失效模式,包括缺失检测、错误分类和预测坐标图的不一致。

D. Comparisons on the OccludedLINEMOD Dataset

我们的方法与现有的在OccludedLINEMOD数据集[6]上使用二维投影度量的方法的比较如图13所示:

image-20231027144659132

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理,美食推荐管理,酒店推荐管理,周边推荐管理,分享圈管理,我的收藏管理,系统管理。用户可以在微信小程序上注册登录,进行每日签到,防疫查询,可以在分享圈里面进行分享自己想要分享的内容,查看和收藏景点以及美食的推荐等操作。因而具有一定的实用性。 本站后台采用Java的SSM框架进行后台管理开发,可以在浏览器上登录进行后台数据方面的管理,MySQL作为本地数据库,微信小程序用到了微信开发者工具,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得旅游社交小程序管理工作系统化、规范化。 管理员可以管理用户信息,可以对用户信息添加修改删除。管理员可以对景点推荐信息进行添加修改删除操作。管理员可以对分享圈信息进行添加,修改,删除操作。管理员可以对美食推荐信息进行添加,修改,删除操作。管理员可以对酒店推荐信息进行添加,修改,删除操作。管理员可以对周边推荐信息进行添加,修改,删除操作。 小程序用户是需要注册才可以进行登录的,登录后在首页可以查看相关信息,并且下面导航可以点击到其他功能模块。在小程序里点击我的,会出现关于我的界面,在这里可以修改个人信息,以及可以点击其他功能模块。用户想要把一些信息分享到分享圈的时候,可以点击新增,然后输入自己想要分享的信息就可以进行分享圈的操作。用户可以在景点推荐里面进行收藏和评论等操作。用户可以在美食推荐模块搜索和查看美食推荐的相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶Karl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值