MegaPose: 6D Pose Estimation of Novel Objects via Render & Compare
文章概括
作者:Labbé, Y., Manuelli, L., Mousavian, A., Tyree, S., Birchfield, S., Tremblay, J., Carpentier, J., Aubry, M., Fox, D. and Sivic, J.
来源:arXiv:2212.06870v1 [cs.CV] 13 Dec 2022
原文:https://arxiv.org/abs/2212.06870
代码、数据和视频:
系列文章目录:
上一篇:
https://blog.csdn.net/xzs1210652636?spm=1000.2115.3001.5343
下一篇:
摘要
我们介绍MegaPose,这是一种估计新型物体6D姿势的方法,也就是在训练中未曾见过的物体。在推理的时候,该方法只假设知道(i)图像中显示物体的感兴趣区域和(ii)观察到的物体的CAD模型。这项工作的贡献有三个方面。首先,我们提出了一个基于渲染和比较策略的6D姿势精炼器,可以应用于新的物体。通过渲染物体CAD模型的多个合成视图,新型物体的形状和坐标系被提供给网络作为输入。第二,我们引入了一种新的粗略姿态估计方法,利用训练有素的网络来分类合成渲染和同一物体的观察图像之间的姿态误差是否可以由精炼器纠正。第三,我们引入了一个大规模的合成数据集,该数据集由数千个具有不同视觉和形状特性的物体的逼真图像组成,并表明这种多样性对于在新物体上获得良好的概括性能至关重要。我们在这个大型合成数据集上训练我们的方法,并将其应用于几个姿势估计基准的真实图像中的数百个新物体,而无需重新训练。我们的方法在ModelNet和YCB-Video数据集上实现了最先进的性能。对BOP挑战赛的7个核心数据集的广泛评估表明,我们的方法取得了与现有的需要在训练期间访问目标对象的方法相竞争的性能。代码、数据集和训练好的模型都可以在项目页面上找到[1]。
1. 介绍
准确的6D物体姿态估计对许多机器人和增强现实应用来说是至关重要的。目前最先进的方法是基于学习的[2, 3, 4, 5, 6],在训练和测试时都需要相关物体的三维模型。这些方法需要数小时(或数天)来为每个物体生成合成数据并训练姿势估计模型。因此,它们不能用于机器人的应用中,在这些应用中,物体只在推理过程中是已知的(例如,CAD模型是由制造商提供的或重建的[7]),而且快速部署到新的场景和物体是关键。
这项工作的目标是估计新物体的6D姿态,即只有在推理时才有的物体,而在训练时并不事先知道。这个问题带来的挑战是,如何将其推广到形状、纹理、光照条件以及现实世界应用中可能遇到的严重遮挡等方面的巨大变化。一些先前的工作[8, 9, 10, 11, 12, 13, 14]已经考虑了类别级别的姿态估计,通过开发能够泛化到已知类别(如杯子或鞋子)的新物体实例的方法来部分解决新物体的挑战。然而,这些方法并不能归纳到训练类别之外的物体实例。其他方法旨在概括任何新的实例,无论其类别如何[15, 16, 17, 18, 19, 20, 21, 22]。这些工作存在着重要的技术限制。他们依赖非学习型组件来生成姿势假设[21](如PPF[23]),用于姿势精化[17](如PnP[24]和ICP[25, 26]),用于计算像素空间的光度误差[15],或用于估计物体深度[18, 16](如仅使用2D检测的大小[27])。然而,这些组件本质上不能从对大量数据的训练中获益,以获得对噪声、遮挡或物体变化的鲁棒性。基于学习的方法也有可能随着数据集的质量和规模的提高而得到改善。
由多个学习阶段组成的已知(非新)物体的6D姿势估计管道[4, 5]在多个基准[2]上表现出优异的性能,包括各种光照条件、无纹理物体、杂乱的场景和高水平的遮挡。我们从[4, 5]中得到启发,该方法将问题分成三个部分:(i)二维物体检测,(ii)粗略的姿势估计,以及(iii)通过渲染和比较进行迭代细化。我们的目标是将这种方法扩展到训练时未见的新物体。新型物体的检测已经在之前的工作中得到解决[17, 28, 29, 30],不在本文的讨论范围之内。在这项工作中,我们专注于6D姿势估计的粗略和细化网络。对[4]中的范式进行扩展有三个主要挑战。首先,一个物体的姿态在很大程度上取决于它的视觉外观和坐标系的选择(在物体的CAD模型中定义)。在现有的基于渲染和比较的细化网络中[20, 4],这些信息在训练过程中被编码在网络权重中,当对新的物体进行测试时,导致泛化结果不佳。其次,用于粗略姿势估计的直接回归方法是用对称物体的特定损失来训练的[4],要求物体的对称性事先被知道。最后,现实世界应用中可能遇到的物体的形状和视觉属性的多样性是巨大的。归纳到新的物体需要对物体对称性、物体形状的可变性和物体纹理(或没有纹理)等属性具有稳健性。
贡献。 我们解决了这些挑战,并提出了一种在单一的RGB或RGB-D图像中估计任何新物体的姿势的方法,如图1所示。首先,我们提出了一种基于渲染和比较的6D姿态精化的新方法,该方法能够普及到新型物体。通过渲染物体CAD模型的多个合成视图,新型物体的形状和坐标系被提供给网络作为输入。第二,我们提出了一种新的粗略姿态估计方法,在训练过程中不需要了解物体的对称性。粗略姿态估计被表述为一个分类问题,我们将随机姿态假设的渲染与观察到的图像进行比较,并预测姿态是否可以被精炼器纠正。最后,我们利用大规模三维模型数据集的可用性,生成一个高度多样化的合成数据集,该数据集由200万张逼真的[31]图像组成,描述了超过2万个模型在物理上合理的配置。代码、数据集和训练好的模型可在项目页面[1]找到。
我们表明,在我们的大规模合成数据集上训练的新物体姿态估计方法在ModelNet上取得了最先进的性能[32, 20]。我们还对来自BOP挑战赛[2]所有7个核心数据集的数百个新物体进行了广泛的评估,并证明我们的方法取得了与现有的需要在训练期间访问目标物体的方法相竞争的性能。
2. 相关工作
在本节中,我们首先回顾了关于已知刚性物体的6D姿势估计的文献。然后,我们重点讨论与我们类似的实际情况,即在训练之前,物体是不知道的。
已知物体的六维姿态估计。 估算刚性物体的6维姿势是一个基本的计算机视觉问题[33, 34, 35],最初是用局部不变的特征[35, 36, 37, 38, 23]或模板匹配[39, 40]建立的对应关系来解决。这些方法已被基于学习的卷积神经网络所取代,该网络直接回归稀疏[41, 42, 27, 43, 44, 45, 46]或密集[47, 48, 49, 50, 3, 44]特征集。所有这些方法都使用非学习阶段,依靠PnP+Ransac[51, 24]从RGB图像的对应关系中恢复姿势,或者在有深度时使用迭代最接近点算法的变种ICP[25, 26]。表现最好的方法是依靠可训练的细化网络[52, 20, 4, 20, 5],基于渲染和比较[53, 54, 55, 20]。这些方法渲染物体的单一图像,这不足以向网络提供关于三维模型的形状和坐标系的完整信息。因此,这些信息在训练时被编码在网络的权重中,这导致在对训练时未见过的新物体进行测试时,泛化效果不佳。我们的方法是通过渲染物体的多个视图来提供这种三维信息,使训练后的网络不受这些物体特定属性的影响。
新型物体的6D姿态估计。 其他工作考虑的是物体不事先知道的实际情况。类别级的6D姿势估计是一个流行的问题[8, 9, 10, 11, 12, 13, 14],其中测试物体的CAD模型是不知道的,但物体被假定属于一个已知的类别。这些方法依靠类别内常见的物体属性(如杯子的把手)来定义和估计物体的姿势,因此不能推广到新的类别。我们的方法要求在推理过程中知道新物体实例的三维模型,但不依赖任何类别级别的信息。其他的工作涉及与我们类似的情况。[56, 19, 57, 18, 16, 30]只通过比较渲染的姿势假设和使用网络提取的特征观察的图像来估计新物体的三维方向。他们依靠手工制作的[18, 16]或基于学习的DeepIM[19]细化器来恢复准确的6D姿势。相反,我们提出了一种估计物体完整6D姿势的方法,并显示我们的细化网络在对新的物体实例进行测试时明显优于DeepIM[20]。与我们最接近的作品是OSOP[17]和ZePHyR[21]。OSOP专注于粗略估计,明确预测物体的单一渲染视图和观察到的图像之间的2D-2D对应关系,并使用PnP或Kabsch[25]解决姿势问题,这使得推理速度较慢,与我们的解决方案中使用网络直接预测细化变换相比,不够稳健。ZePHyR[21]强烈依赖于深度模式,而我们的方法也可用于纯RGB图像。最后,[15, 58, 22, 59]研究了使用新物体的一组真实参考视图而不是使用CAD模型。这些方法只报告了在有限的或没有闭塞的数据集上的结果。我们使用在大规模合成数据集上训练的深度渲染和比较网络,显示高度闭塞的物体实例,使我们能够处理像LineMOD闭塞、HomebrewedDB或T-LESS数据集中的高度杂乱的场景。
3. 模型
在这一节中,我们介绍了我们对新型物体进行姿势估计的框架。我们的目标是在给定输入的RGB(或RGBD)图像和物体的3D模型的情况下,检测一个新物体的姿势TCO(物体帧O在相机帧C中表示的姿势,由3D旋转和3D平移组成)。与DeepIM[20]和CosyPose[4]类似,我们的方法包括三个部分(1)物体检测,(2)粗略的姿势估计和(3)姿势细化。与这些作品相比,我们提出的方法能够泛化到训练期间未见过的新物体,需要对粗略模型、细化器和训练数据采取新的方法。我们的方法可以接受RGB或RGBD输入,如果深度可用,则RGB和D图像在进入网络之前会被串联起来。检测图像中的新物体是一个有趣的问题,在以前的工作中已经得到解决[28, 60, 17, 22, 30],但不属于本文的范围。因此,在我们的实验中,我们假设有一个物体检测器,但强调我们的方法可以与任何物体检测器结合起来,包括诸如[28, 60]中的零拍方法。
图2:⊕表示串联。(a) 粗略估计器:给定一个裁剪过的输入图像,粗略模块以多种输入姿势 渲染物体。然后,粗略网络对哪个渲染的图像与观察到的图像最匹配进行分类。(b) 精炼器:给出一个初始姿势估计值
,精炼器以估计的姿势
(蓝轴)以及3个额外的视点
(绿轴)进行渲染,定义为相机Z轴与锚点O相交。精炼器网络消耗观察和渲染图像的连接,预测更新的姿势估计值
。
3.1 技术方法
粗略姿态估计。 给定一个物体检测,如图1(b)所示,粗略姿态估计器的目标是提供一个初始姿态估计,它足够准确,然后可以由精炼器进一步改进。为了推广到新的物体,我们提出了一种新的基于分类的方法,比较物体在各种姿势下的观察图像和渲染图像,选择物体姿势与观察物体姿势最匹配的渲染图像。
图2(a)给出了粗略模型的概况。在推理时,网络消耗观察到的图像以及物体在许多不同姿势
下的渲染图像
。对于每个姿势
,模型预测一个分数
,对该姿势假设是否在精炼器的吸引盆地内进行分类。得分最高的姿势
被用作细化步骤的初始姿势。由于我们正在进行分类,我们的方法可以隐含地处理物体的对称性,因为多个姿势可以被分类为正确。
姿势精化模型。 给定一个输入图像和一个估计的姿态,精炼器预测一个更新的姿态估计。从一个粗略的初始姿势估计值开始,我们可以迭代地应用精炼器来产生一个改进的姿势估计。与[4, 20]类似,我们的精炼器将观察到的
和渲染的图像
作为输入,并预测一个更新的姿势估计值
,见图2(b),其中
k
k
k指精炼器的第
k
k
k次迭代。我们的姿势更新使用与DeepIM[20]和CosyPose[4]相同的参数化,将旋转和平移预测分开。重要的是,这个姿势更新
∆
T
∆T
∆T取决于锚点
O
O
O的选择,更多细节见附录。在以前的工作中[4, 20],对同一组物体进行训练和测试,网络可以有效地学习每个物体的锚点
O
O
O的位置。然而,为了推广到新的物体,我们必须让网络在推理时推断出锚点
O
O
O。
为了向网络提供关于锚点的信息,我们总是渲染图像,使锚点O投影到图像中心。使用来自多个不同视点
的渲染图像,网络可以推断出锚点O的位置,即通过图像中心的相机光线的交点,见图2(b)。
关于物体形状和几何的额外信息可以通过在渲染的图像中渲染深度和表面法线通道提供给网络。我们使用当前估计的姿势TkCO对输入的深度(如果有的话)和渲染的深度图像进行归一化处理,以帮助网络在不同的物体尺度上进行概括,更多细节见附录。
网络结构。粗略网络和细化网络都由ResNet-34骨干网和空间平均池组成。粗略模型有一个单一的全连接层,消耗主干特征并输出一个分类Logit。精炼网络有一个单一的全连接层,消耗主干特征并输出9个值,指定姿势更新的翻译和旋转。
3.2 训练流程
训练数据。 为了进行训练,粗略模型和细化模型都需要带有地面真实的6D物体姿势注释的RGB(-D)1图像,以及这些物体的3D模型。为了使我们的方法能够推广到新型物体,我们需要一个包含各种物体的大型数据集。我们所有的方法都是在使用BlenderProc[31]生成的合成数据上进行纯粹的训练。我们使用ShapeNet[61](缩写为SN)和Google-Scanned-Objects(缩写为GSO)[7]的组合生成了一个200万张图像的数据集。与BOP[62]的合成数据类似,我们从数据集中随机抽出物体,并使用物理模拟器将它们投放到飞机上。材料、背景纹理、照明和摄像机位置都是随机的。示例图像可以在图1(a)和附录中看到。我们的一些消融也使用了BOP挑战[62]提供的合成训练数据集。我们将类似于CosyPose[4]的数据增强添加到RGB图像中,这被证明是成功的模拟到真实的转移的关键。我们还对深度图像进行了数据增强,详见附录。
精炼器模型。 细化器模型的训练与[4]类似。给定一个物体在地面真实姿势
的图像,我们通过对
应用随机的平移和旋转来产生一个扰动姿势
。平移是从标准偏差为(0.02, 0.02, 0.05)厘米的正态分布中抽取的,旋转是随机欧拉角,每个轴的标准偏差为15度。该网络被训练来预测初始姿势和目标姿势之间的相对变换。继[4,20]之后,我们使用了一种损失,将深度、X-Y平移和旋转的预测分离开来。更多细节见附录。
粗略的模型。 给定一个物体的输入图像
和一个姿势
,粗略模型被训练来对姿势
是否在精炼器的吸引范围内进行分类。换句话说,如果精炼器从初始姿势估计值
开始,它是否能够通过迭代精炼来估计地面真实的姿势?给定一个地面真实姿势注释
,我们通过向
添加随机的平移和旋转来随机抽样
的姿势。正面取样来自于用于生成扰动姿势的相同分布,精炼网络被训练来纠正这些姿势(见上文),而其他与此充分不同的姿势(更多细节见附录)被标记为负面的。然后用二元交叉熵损失来训练该模型。
4. 实验
我们使用BOP[2, 62]6D姿势估计基准的七个挑战性数据集和ModelNet[20]数据集来评估我们对新型物体的6D姿势估计的方法。数据集和我们使用的标准6D姿势估计指标详见第4.1节。在我们所有的实验中,物体被认为是新的,也就是说,它们只在新图像的推理过程中可用,在训练过程中不使用。在第4.2节中,我们评估了由粗略和细化网络组成的方法的性能。值得注意的是,我们表明:(i)我们的方法与其他需要事先知道物体模型的方法相比具有竞争力;(ii)我们的细化器在ModelNet和YCB-V数据集上的表现优于当前的最先进水平。第4.3节验证了我们的技术贡献,并表明训练数据对我们方法的成功至关重要。最后,我们在第4.4节讨论了局限性。
4.1 数据集和指标
我们考虑BOP挑战的七个核心数据集[62,2]。LineMod Occlusion(LM-O)[63]、T-LESS[64]、TUD-L[62]、IC-BIN[65]、ITODD[66]、HomebrewedDB(HB)[67]和YCB-Video(YCB-V)[47]。这些数据集展示了132个不同的物体在杂乱的场景中的遮挡。这些物体呈现出许多变化因素:有纹理的或无纹理的,对称的或不对称的,家用的或工业用的(例如,观看投手、订书机、碗、多插座插头适配器),这使得它们能够代表机器人场景中通常遇到的物体。ModelNet数据集描述了来自ModelNet[32]数据集的7个类别(浴缸、书架、吉他、抽油烟机、沙发、电视柜和衣柜)的单个物体实例。我们使用通过向地面实况添加噪声提供的初始姿势,与以前的工作[20, 16, 15]类似。重点是完善这些初始姿势。我们遵循[2]对BOP数据集的评估协议,以及DeepIM[20]对ModelNet的评估协议。
表1: BOP挑战数据集的结果。我们报告了在BOP挑战赛中考虑的7个数据集中每个数据集的AR得分以及各数据集的平均得分。除了Zephyr(第11行)之外,所有的方法都是纯粹在合成数据上训练的。对于每一列,我们用斜体字表示最好的结果,用黑体字表示最好的小说物体姿势估计方法。
4.2 新型物体的6D姿势估计
粗加工+精加工的性能: 表1报告了我们在BOP数据集上的新型物体姿势估计方法的结果。我们首先使用由PPF和SIFT组合提供的检测和姿势假设,与最先进的方法Zephyr[21]类似。对于每个物体的检测,这些算法提供了多种姿势假设。我们使用粗略网络的得分找到最佳假设,并应用我们的精炼器进行5次迭代。结果报告在第7行。在YCB-V上,与Zephyr相比,我们的方法实现了+10.7的AR得分改进(第6行)。对YCB-V和LM-O数据集进行平均,我们的方法的AR得分是59.7,而Zephyr是55.7(第6行)。接下来,我们使用Mask-RCNN网络的检测结果提供了一套完整的结果。请注意,由于新型物体的检测不在本文的范围内,我们使用在目标物体的合成PBR数据上训练的网络[2],这些数据集都是公开的。我们报告了我们的粗略估计策略(表1,第11行),以及在RGB(第12行)或RGB-D(第13行)图像上运行细化器网络后的结果。我们观察到(i)我们的细化网络明显改善了粗略估计(我们的RGBD细化器的平均AR得分+41.0),(ii)两个模型的性能与CosyPose[4](第1行)的基于学习的细化器有竞争力,同时不需要在测试对象上进行训练。最近的SurfEmb[3]比我们的方法表现得更好,但严重依赖对象的知识进行训练,不能推广到新的对象。
精炼器的性能: 我们现在重点评估我们的精炼器,它可以用来精炼任意的初始姿势。我们的精炼器是表1中唯一基于学习的方法,可以应用于新的物体。在第9行和第10行,我们将我们的精炼器应用于CosyPose[4]的粗略估计(第11行)。我们再次观察到,我们的精炼器明显提高了这些初始姿势估计的准确性(对于RGB-D模型来说,平均+23.7)。值得注意的是,纯RGB方法(第9行)比CosyPose精炼器(第1行)的平均表现更好,而在训练期间没有看到BOP对象。这要归功于我们对数以千计的各种物体进行的大规模训练,而CosyPose对每个数据集只训练了几十个物体。
表2:对ModelNet[20]数据集的精炼器的评估。平均召回率是在数据集的七个类别上计算的。
图3: 定性结果。 对于每一对图像,左边的图像是我们粗略估计的可视化,右边的图像是应用我们的精炼器进行5次迭代后的结果。YCBV、LMO、HB或T-LESS数据集中的这些物体都没有被用来训练我们的方法。请注意MegaPose的高准确率,尽管(i)有严重的遮挡和(ii)新物体的不同属性(例如右上角的无纹理工业插头,左上角的有纹理芥末瓶)。
在RTX 2080 GPU上,我们的精炼器的一次迭代大约需要50毫秒,这使得它适合用于在线跟踪应用程序。我们的精炼器的五次迭代也比SurfEmb[3]的特定对象精炼器快5倍,后者每次图像裁剪需要1秒左右。最后,我们在ModelNet上评估了我们的精炼器,并将其与最先进的方法MP-AAE[16]和LatentFusion[15]进行了比较。在这个实验中,我们从训练集中删除了与ModelNet中测试类别重叠的ShapeNet类别,以便在类似于[15, 16, 20]的新实例和新类别上提供一个公平的比较。表2中的结果显示,我们的精炼器在所有指标上都明显优于现有方法。
4.3 消融
我们的主要贡献。额外的消融在附录中。在这些消融中,我们考虑了仅有的RGB精炼器,并以不同的超参数和训练数据的配置重新训练了几个模型。
对锚点和物体形状进行编码: 正如第3.1节中所讨论的,精炼器必须有关于锚点O的信息,以便对新的物体进行归纳。我们通过使用指向锚点的4个渲染视图来实现这一目标,见图2(b)。表3(a)显示,当我们将视图的数量从1增加到4时,精炼器的性能就会增加,这验证了我们的设计选择。多视图也可以帮助网络从不同的视角理解物体的外观,从而有可能帮助精炼器克服巨大的初始姿势误差。我们还验证了我们的选择,即向网络提供物体的法线图。这一信息可以帮助网络使用微妙的物体外观变化,这些变化只有在不同的光照下才能看到,比如吉他的十字架上的细节。
训练对象的数量: 我们现在展示了训练数据的关键作用。我们在表3(b)中报告了我们在越来越多的CAD模型上训练的精炼器的结果。性能随着对象数量的增加而稳步提高,这验证了在大量的对象模型上进行训练对于归纳新的对象模型是很重要的。这些结果还表明,随着更多像GSO[7]这样的高质量CAD模型数据集的出现,我们的方法的性能可以得到改善。
表3:消融研究。我们研究(a)使用多个渲染的物体视图和法线图作为我们的纯RGB精炼器模型的输入;(b)在我们的大规模合成数据集的不同变化上训练精炼器。在BOP5(LM-O、T-LESS、TUD-L、IC-BIN和YCB-V的平均值)和ModelNet上报告平均召回率。
训练对象的多样性: 接下来,我们将训练限制在不同的对象集上。我们在表3(b)的底部观察到,与使用ShapeNet和GSO相比,来自GoogleScannedObjects的模型对BOP数据集上的方法性能更为重要。我们假设这是由于GSO数据集中存在高质量的纹理物体。最后,我们在BOP数据集的132个物体上训练我们的模型。当在相同的BOP对象上进行测试时,与使用我们的GSO+ShapeNet或GSO数据集相比,在训练期间了解这些对象的性能优势很小。
4.4 限制
虽然MegaPose在机器人实验(请见补充视频)和6D姿势估计基准中显示了有希望的结果,但仍有改进的空间。我们在补充材料中说明了我们方法的失败模式。最常见的失败模式是由于粗略模型的初始姿势估计不准确造成的。细化模型被训练成在一个受限范围内纠正姿势,但如果初始误差太大,就会失败。存在多种潜在的方法来缓解这个问题。我们可以以增加推理时间为代价,增加姿势假设的数量M,提高粗略模型的准确性,并增加细化模型的吸引盆地。另一个限制是我们粗略模型的运行时间。我们对每个物体使用M=520个姿势假设,这需要2.5秒的时间来渲染和评估我们的粗略模型。然而,在跟踪场景中,粗略模型只需在初始帧运行一次,物体就可以用运行频率为20Hz的精炼器进行跟踪。此外,我们的精炼器还可以与其他的粗略估计方法相结合,如[17, 18],以实现改进的运行时间性能。
5. 结论
我们提出了MegaPose,一种对新型物体进行6D姿势估计的方法。Megapose可以估计新物体的6D姿态,而该物体的CAD模型仅在测试时可用。我们对杂乱场景中描绘的数百个不同的物体进行了定量评估,并进行了消融研究,以验证我们的网络设计选择,并强调训练数据的重要性。我们发布了我们的模型和大规模的合成数据集,以刺激新方法的发展,这些方法在机器人操纵的背景下是实用的,在这种情况下,快速部署到有新物体的新场景是至关重要的。虽然这项工作的重点是对物体姿势的粗略估计和细化,但要想拥有一个完整的新物体检测和姿势估计框架,仅靠CAD模型检测任何未知物体仍是一个有待解决的难题。未来的工作将使用我们的大规模合成数据集来解决零拍物体检测问题。