用于类别级物体6D姿态和尺寸估计的标准化物体坐标空间
作者:五百英里
「3D视觉工坊」技术交流群已经成立,目前大约有12000人,方向主要涉及3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等。工坊致力于干货输出,不做搬运工,为计算机视觉领域贡献自己的力量!欢迎大家一起交流成长~
译者:五百英里
论文、代码地址:在公众号「3D视觉工坊」,后台回复「6D姿态」,即可直接下载。
摘要
本文的目的是估计RGB-D图像中未见过的对象实例的6D姿态和尺寸。与“实例级”6D姿态估计任务相反,我们的问题假设在训练或测试期间没有可用的精确对象CAD模型。为了处理给定类别中不同且未见过的对象实例,我们引入了标准化对象坐标空间(NOCS)-类别中所有可能对象实例的共享规范表示。然后,我们训练了基于区域的神经网络,可以直接从观察到的像素向对应的共享对象表示(NOCS)推断对应的信息,以及其他对象信息,例如类标签和实例蒙版。可以将这些预测与深度图结合起来,共同估算杂乱场景中多个对象的6D姿态和尺寸。为了训练我们的网络,我们提出了一种新的上下文感知技术,以生成大量完全标注的混合现实数据。为了进一步改善我们的模型并评估其在真实数据上的性能,我们还提供了具有大型环境和实例变化的真实数据集。大量实验表明,所提出的方法能够稳健地估计实际环境中未见过的对象实例的姿态和大小,同时还能在标准6D姿态估计基准上实现最新的性能。
1 引言
检测对象并估计其3D位置、方向和大小是对虚拟现实和增强现实(AR)、机器人技术和3D场景的重要要求。这些应用程序需要在可能包含以前未见过的对象实例的新环境中运行。过去的工作探讨了实例级6D姿态估计问题[37,46,27,51,6,28],其中事先提供了精确的CAD模型及其大小。不幸的是,这些技术无法在绝大多数对象从未见过且没有已知CAD模型的常规设置中使用。另一方面,类别级别的3D对象检测方法[43、36、9、34、49、12]可以估计对象类别标签和3D边界框,而无需精确的CAD模型。但是,估计的3D边界框取决于视点,并且不对对象的精确方向进行编码。因此,这两种方法都无法满足需要6D姿态和3个非均匀缩放参数(编码尺寸)的未见过对象的应用程序的要求。
在本文中,我们旨在通过介绍据我们所知第一种用于多个对象的类别级6D姿态和尺寸估计的方法,以弥合这两种方法之间的差距,这对于新颖的对象实例而言是一个难题。由于我们无法将CAD模型用于未见过的物体,因此第一个挑战是找到一种表示形式,该表示形式可以定义特定类别中不同对象的6D姿态和尺寸。第二个挑战是无法使用大规模数据集进行训练和测试。SUN RGB-D或NYU v2等数据集缺少用于精确6D姿态和尺寸的注释,或不包含对象类别-而在桌面或桌面操作任务中了解出现对象的6D姿态和尺寸将非常有用。
图1我们提出了一种用于RGB-D图像中多个未见过物体的类别级别6D姿态和尺寸估计的方法。一种新颖的归一化对象坐标空间(NOCS)表示形式(在(b)中用颜色编码)使我们能够在类别级别上一致地定义6D姿态。我们获得了未见过的物体的完整6D姿态((c)中的轴)和尺寸((c)中的红色边框)。
为了解决表示挑战,我们将问题公式化为在共享对象描述空间中找到对象像素与规范化坐标之间的对应关系(请参见第3节)。我们定义了一个称为标准化对象坐标空间(NOCS)的共享空间,其中所有对象都包含在一个公共的标准化空间中,并且类别内的所有实例都始终一致。即使对于未见过的物体实例,这也可以进行6D姿态和尺寸估计。我们方法的核心是卷积神经网络(CNN),它可以从单个RGB图像联合估计对象类别,实例蒙版和多个对象的NOCS映射。直观地,NOCS映射捕获可见光的归一化形状通过预测对象像素和NOCS之间的密集对应关系来预测对象的各个部分。我们的CNN通过将NOCS映射表述为像素回归或分类问题来对其进行估算。然后,使用姿态拟合方法将NOCS映射与深度映射一起使用,以估计完整的6D姿态和对象的尺寸大小。
为了应对数据挑战,我们引入了一种空间感知上下文的混合现实方法,以自动生成大量数据(275K训练,25K测试),这些数据由ShapeNet Core与真实桌面场景合成的逼真的合成对象组成 。这种方法可以自动生成具有杂乱对象和全地面真相注释的真实数据,以用于类别标签,实例蒙版,NOCS映射,6D姿态和尺寸大小。我们还提供了一个用于训练和测试的真实数据集,其中包含18种不同场景以及6种物体类别的地面真实6D姿态和尺寸注释,总共有42个唯一实例。据我们所知,我们是针对6D姿态和尺寸以及3D对象检测任务的最大,最全面的训练和测试数据集。
我们的方法使用来自商品RGB-D传感器的输入,旨在处理对称和非对称对象,使其适合于许多应用。图1显示了我们的方法在桌面场景上运行的示例,其中在训练过程中有多个未见过的对象。总而言之,这项工作的主要贡献是:
- 标准化对象坐标空间(NOCS),一个统一的共享空间,允许不同但相关的对象具有一个公共参考系,从而可以对未见过的对象进行6D姿态和尺寸估计。
- 一个CNN,可共同预测RGB图像中多个未见过的对象的类标签,实例蒙版和NOCS映射。我们在姿态拟合算法中将NOCS图与深度图一起使用,以估计完整的6D姿态和对象尺寸。
- 数据集:一种空间感知上下文的混合现实技术,用于在真实图像中合成对象,使我们能够生成大型带注释的数据集来训练我们的CNN。我们还提供了经过全面注释的真实世界数据集,用于训练和测试。
2 相关工作
在本节中,我们重点介绍与类别级别3D对象检测,实例级别6D姿态估计,RGB-D图像类别级别4 DoF姿态估计以及不同数据生成策略有关的工作。
类别级别的3D对象检测:预测对象的6D姿态和尺寸的挑战之一是将它们定位在场景中并找到其物理尺寸,可以将其表述为3D检测问题[54、22、21, 31,14]。值得注意的尝试包括[43,55],他们将3D体积数据作为输入来直接检测3D对象。另一项工作思路[36、20、10、29]提出,首先要在2D图像中生成2D对象建议,然后将建议投影到3D空间中以进一步完善最终的3D边界框位置。上述技术达到了令人印象深刻的3D检测率,但不幸的是,它仅专注于找到对象的边界体积,而没有预测对象的6D姿态。
实例级6 DoF姿态估计:鉴于其实际的重要性,目前有大量工作专注于实例级6D姿态估计。在这里,任务是提供对象的3D位置和3D旋转(无比例),假设在训练过程中可以使用精确的3D CAD模型和这些对象的大小。现有技术可大致归类为模板匹配或对象坐标回归技术。模板匹配技术将3D CAD模型与诸如迭代最近点[4,53]之类的算法对齐到观察到的3D点云,或使用手工制作的本地描述符进一步指导对齐过程[26,11]。这一系列技术经常遭受对象间和对象内的遮挡,这在我们仅对对象进行部分扫描时很常见。基于对象坐标回归的第二类方法旨在使与每个对象像素相对应的对象表面位置回归。此类技术已成功应用于身体姿态估计[45,18],摄像机重新定位[39,48]和6D对象姿态估计[5]。
在训练和测试期间,以上两种方法都需要对象的精确3D模型。除了在测试时将所有3D CAD模型或学习的对象坐标回归器存储在内存中的实际限制外,捕获非常大的对象阵列的高保真度和完整的3D模型也是一项艰巨的任务。尽管我们的方法受对象坐标回归技术的启发,但由于我们在测试时不再需要完整且高保真的对象3D CAD模型,因此它与上述方法也有很大不同。
类别级别4 DoF姿态估计:在类别级别姿态估计方面已有一些工作[20、42、19、35、7],但是它们都做出了简化的假设。首先,这些算法将旋转预测约束为仅沿重力方向(仅四个自由度)。其次,它们专注于一些大型的房间对象类别(例如,椅子,沙发,床或汽车),并且没有考虑对象对称性[20、42、19]。相反,我们估计了各种手部比例对象的姿态,由于姿态变化较大,这些姿态通常比房间比例大小的对象具有更大的挑战性。我们的方法还可以预测完整的6D姿态和尺寸,而无需假设物体的重力方向。最终,我们的方法以每帧0.5 s运行,这比替代方法([20]每帧约70 s,[42]每帧25分钟)要快得多。
训练数据的生成:训练CNN的一个主要挑战是缺乏具有足够类别,姿态,杂乱和光照变化的训练数据。为了构建包含对象标签的现实世界数据集已经进行了一些努力(例如[40、41、50])。不幸的是,这些数据集往往相对较小,主要是由于与地面真相注释相关联的高成本(时间和金钱)。这一限制是其他作品(例如[35、44、51])产生动力的原因,这些作品生成的数据完全是合成的,从而可以以较低的成本生成大量完美注释的训练数据。为了简单起见,所有这些数据集都忽略了因素(材料,传感器噪声和照明)的组合,这些因素在合成数据分布和实际数据分布之间造成了实际的差距。为了缩小这种差距,[13]生成了通过在真实背景上渲染虚拟对象来混合真实数据和合成数据的数据集。当背景是真实的,渲染的对象在空中飞行并且脱离上下文[13],这阻止了算法利用重要的上下文线索。
我们引入了一种新的混合现实方法,以一种上下文感知的方式自动生成由对象和真实背景的合成渲染组成的大量数据,这使得它更加现实。这得到了实验的支持,实验表明,我们的上下文感知训练数据使模型能够更好地推广到真实的测试数据。我们还提出了一个真实世界的数据集,以进一步改进学习和评估。
3 背景和概述
类别-级别6D对象姿态和尺寸大小估计:我们关注估计对象实例的3个旋转,3个平移和3个比例参数(尺寸)的问题。这个问题的解决方案可以看成一个围绕对象的紧密包围的边界框(见图1)。尽管以前没有观察到这些对象,但是这些对象来自在训练过程中已观察到训练样本的已知对象类别(例如,相机)。这项任务特别具有挑战性,因为我们无法在测试时使用CAD模型,并且无法为未见过的物体定义6D姿态。为了克服这个问题,我们提出了一种新的表示形式,它定义了一个共享的对象空间,从而可以为未见过的对象定义6D姿态和尺寸大小。
图2.规范化对象坐标空间(NOCS)是包含在单位多维数据集中的3D空间。对于给定的对象类别,我们使用面向规范的实例并将其规范化以位于NOCS内。将NOCS中的每个(x,y,z)位置可视化为RGB颜色元组。我们根据NOCS在RGB图像上的透视投影,NOCS映射(左下插图)来训练我们的网络。在测试时,网络会将NOCS映射回归,然后将其与深度映射一起用于6D姿态和尺寸估计。
归一化对象坐标空间(NOCS):将NOCS定义为包含在单位立方体内的3D空间,即{x,y,z}∈[0,1]。给定每个类别的已知对象CAD模型的形状集合,我们通过均匀缩放对象以使其紧边界框的对角线的长度为1并在NOCS空间内居中来对它们的大小进行归一化(请参见图2)。此外,我们在同一类别中一致地对齐对象中心和方向。我们使用ShapeNetCore [8]中的模型,这些模型已经针对尺寸,位置和方向进行了规范化处理。图2显示了相机类别中规范化形状的示例。我们的表示允许将形状的每个顶点表示为NOCS(图2中的颜色编码)内的元组(x,y,z)。
我们的CNN可以预测以颜色编码的NOCS坐标的2D透视投影,即NOCS映射(图2的左下方)。可以使用多种方法来解释NOCS映射:(1)以NOCS形式对物体的观察部分进行形状重构,或者(2)作为密集的像素-NOCS对应关系。我们的CNN学会对未见过的物体进行形状预测,或者在对大型形状集合进行训练时学会预测物体像素与NOCS的对应关系。这种表示比其他方法(例如边界框)更健壮,因为即使在对象仅部分可见的情况下我们也可以操作。
方法概述:图3说明了我们的方法,该方法使用RGB图像和深度图作为输入。CNN仅从RGB图像估计类别标签,实例蒙版和NOCS映射。我们在CNN中不使用深度图,因为我们想利用不包含深度的现有RGB数据集(例如COCO)来提高性能。NOCS映射对标准化空间中对象的形状和大小进行编码。因此,我们可以在以后的阶段使用深度图来提升此归一化空间,并使用可靠的异常值移除和对齐技术来预测完整的6D对象姿态和尺寸。
图3.我们方法的输入是具有多个对象的场景的RGB和深度图像。我们的CNN会为RGB图像中的每个对象预测类别标签,实例蒙版和NOCS映射(颜色编码)。然后,我们将每个对象的NOCS映射与深度图像一起使用,以获取完整的6D姿态和尺寸(轴和红色紧边框),即使以前从未见过该对象。
我们的CNN建立在Mask R-CNN框架[23]之上,并进行了改进以共同预测NOCS映射,此外还添加了类别标签和实例分割。第5节包含有关我们的改进和可以处理对称对象的新损失函数的更多详细信息。在训练期间,我们使用通过新的上下文感知MixEd ReAlity(CAMERA)方法渲染的地面真相图像(请参见第4节)。庞大的数据集使我们可以在测试时将新类别的新实例推广到新的实例。为了进一步缩小领域差距,我们还使用了较小的实际数据集。
4 数据集
类别级别3D检测以及6D姿态和尺寸大小估计的主要挑战是数据ground truth的可用性。尽管已经进行了许多尝试,例如NYU v2 [40]和SUNRGB-D [41],但它们具有较大的局限性。首先,它们不提供对象的6D姿态,而仅关注3D边界框。其次,诸如增强现实和机器人技术之类的应用受益于桌面设置中的手动缩放对象,而当前设置集中于椅子和桌子等较大对象的数据集中缺少这些对象。最后,这些数据集不包含我们所需的ground truth类型的注释(即,NOCS映射),并且包含数量有限的示例。
4.1 情境感知的混合现实方法环境感知混合现实途径
为了便于生成具有手部比例尺对象的ground truth的大量训练数据,我们提出了一种新的上下文感知的MixEd ReAlity(CAMERA)方法,该方法解决了以前方法的局限性,并减少了数据生成的时间消耗,并显着提高了效益。它以上下文感知的方式将真实的背景图像与合成渲染的前景对象结合在一起,即,合成对象被渲染并合成为具有合理物理位置,照明和比例的真实场景(参见图4)。这种混合现实方法使我们能够生成比以前更多的训练数据。
真实场景:我们使用31种室内场景的真实RGB-D图像作为背景(图4中间)。我们的重点是放在桌面场景上,因为大多数以人为中心的室内空间都是由桌面表面和可缩放的物体组成的。我们总共为31个场景收集了553张图像,其中有4张用于验证。
合成对象:为了在上述真实场景中渲染逼真的对象,我们从ShapeNetCore [8]中选择了手工缩放的对象,手动删除了看起来不真实或存在拓扑问题的对象。总共,我们选择了6个对象类别-瓶,碗,相机,罐,笔记本电脑和杯子。我们还创建了一个干扰项类别,该类别由上面未列出的类别(例如监视器,电话和吉他)中的对象构成。即使在场景中存在其他对象的情况下,也可以为主要类别做出预测时提高鲁棒性。我们精心策划的ShapeNet Core版本包括1085个单独的对象实例,其中我们预留了184个实例进行验证。
情境感知合成:为了提高真实感,我们以情境感知方式合成虚拟对象,即我们将它们放置在有可能的光线下自然发生的位置(例如,在支撑表面上)。我们使用平面检测算法[15]来获得真实图像中的像素级平面分割。随后,我们在可以放置合成对象的分段平面上采样随机位置和方向。然后,我们放置几个虚拟光源来模拟真实的室内照明条件。最后,我们将渲染的图像和真实的图像相结合,以生成具有完美的地面真实NOCS图,蒙版和类别标签的逼真的合成图像。
我们总共渲染了300K合成图像,其中有25K用于验证。据我们所知,这是类别级6D姿态和尺寸估计的最大数据集。我们的混合现实合成技术是使用Unity游戏引擎[2]和自定义插件进行平面检测和点采样(全部将公开发布)来实现的。与使用无上下文感知的数据相比,使用我们的方法生成的图像看起来合理且逼真,从而使泛化能力提高。
图4.我们使用上下文感知的MixEd ReAlity(CAMERA)方法通过组合桌面场景的真实图像,检测平面表面并将合成对象渲染到平面表面上来生成数据(左图)。由于对象是合成对象,因此我们可以获得类别标签,实例蒙版,NOCS映射以及6D姿态和尺寸大小的准确ground truth情况。我们的方法快速,具有成本效益,并产生逼真的图像(中间)。我们还收集了用于训练,测试和验证的真实数据集(右)。
4.2 真实世界数据
为了进一步改善和验证我们的算法在充满挑战的杂乱和光照条件下的真实世界性能,我们捕获了两个真实世界数据集:(1)真实世界训练数据集补充了我们先前生成的混合现实数据,(2) 真实的测试数据集,以评估6D姿态和尺寸估计的性能。我们开发了一种半自动方法来注释物体姿态和尺寸的ground truth。图4显示了我们真实数据的示例。
我们使用结构传感器[1]捕获了18个不同真实场景的8K RGB-D帧(用于训练的4300,用于验证的950和用于测试的2750)(分别用于训练的7个场景,用于验证的5个场景和用于测试的6个场景)[1]。对于每个训练和测试子集,我们使用6个类别,每个类别使用3个唯一实例。对于验证集,我们使用6个类别,每个类别1个唯一实例。我们在每个场景中放置5个以上的对象实例,以模拟现实世界中的杂乱情况。对于每种情况,我们都使用为此目的开发的RGB-D重建算法获得了干净且准确的3D网格。总体而言,我们的组合数据集包含18个不同的真实场景,42个唯一的对象实例,涵盖6个类别,使其成为类别级6D姿态和尺寸估计的最全面的数据集。
5 方法
图3显示了我们从RGB-D图像中对多个先前未见过的对象进行6D姿态和大小估计的方法。CNN会预测对象的类别标签,蒙版和NOCS映射。然后,我们使用NOCS图和深度图来估计度量6D姿态和对象的大小。
5.1. NOCS地图预测CNN
我们的CNN的目标是纯粹基于RGB图像估算对象的类标签,实例蒙版和NOCS映射。我们建立在基于区域的Mask R-CNN框架[23]之上,因为它展示了2D对象检测和实例分割任务的最新性能,具有模块化,灵活,快速,并且可以轻松地进行增强以预测NOCS映射,如下所述。
5.1.1 NOCS Map Head
maskR-CNN建立在Faster R-CNN体系结构之上[38],它由两个模块组成一个用于建议可能包含对象的区域的模块,以及一个用于检测和分类区域内对象的检测器。此外,它还可以预测区域内对象的实例分割。
图5.NOCS map head架构。我们向Mask R-CNN体系结构添加了三个附加的头部,以预测NOCS映射(彩色框)的x,y,z坐标。这些头可以用于直接像素回归或分类(最佳)。我们使用ReLU激活和3×3卷积。
我们的主要贡献是为Mask R-CNN添加了3个头部结构,以预测NOCS映射的x,y,z分量(请参见图5)。对于每个建议的兴趣区域(ROI),头的输出大小为28×28×N,其中N是类别数,每个类别包含该类别中所有检测到的对象的x(或y,z)坐标。与mask头类似,我们在测试过程中使用对象类别先查找相应的预测通道。在训练期间,损失函数中仅使用地面真实物体类别的NOCS映射组件。我们使用ResNet50 [25]主干与功能金字塔网络(FPN)结合使用。
回归与分类:为了预测NOCS映射,我们可以通过离散化像素值来回归每个像素值或将其视为分类问题(由图5中的(B)表示)。直接回归可能是一项艰巨的任务,有可能在训练过程中引入不稳定性。类似地,具有大量类别(例如B = 128、256)的像素分类可能会引入更多参数,从而使训练比直接回归更具挑战性。我们的实验表明,B = 32的像素分类比直接回归的效果更好。
损失函数:我们网络的类,框和mask head使用与[23]中所述相同的损失函数。对于NOCS映射头,我们使用两个损失函数:用于分类的标准softmax损失函数,以及用于回归的以下softL1损失函数,这使学习更加强大。
训练协议:我们用在COCO数据集上的二维实例分割任务上训练的权重来初始化ResNet50,RPN和FPN [33]。对于所有头,我们使用[24]中提出的初始化技术。batch size使用2,初始学习率为0.001,以及SGD优化器,其动量为0.9,重量衰减为。在训练的第一阶段,我们冻结ResNet50权重,仅训练磁头中的图层(RPN和FPN)进行10K迭代。在第二阶段,我们将ResNet50层冻结在4级以下,并进行3K迭代训练。在最后阶段,我们将ResNet50层冻结在3级以下,再进行70K次迭代。切换到每个阶段时,我们的学习率都会降低十分之一。
5.2 6D姿态和尺寸估计
我们的目标是通过使用NOCS映射和输入深度图来估算检测到的物体的6D姿态和尺寸。为此,我们使用RGB-D相机的内部和外部特性将深度图像与彩色图像对齐。然后,我们应用预测的对象蒙版以获得检测到的对象的3D点云Pm。我们还使用NOCS映射获得Pn的3D表示。然后,我们估计将Pn转换为Pm的比例,旋转和平移。对于这个7维刚性变换估计问题,我们使用Umeyama算法[47],对于异常值去除,我们使用RANSAC [16]。
备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区
本文仅做学术分享,如有侵权,请联系删文。