【论文阅读】Pose from Shape: Deep Pose Estimation for Arbitrary 3D Objects

在这里插入图片描述

摘要

大多数深度位姿估计方法都需要针对特定的对象实例或类别进行训练。在这项工作中,我们提出了一种完全通用的深度姿势估计方法,它不需要网络对相关类别进行训练,也不需要类别中的对象具有规范姿势。我们认为,这是设计机器人系统的关键一步,该系统可以对训练集外的目标进行预测,而不是属于预先定义的类别。我们的主要方法是用目标物体的3D形状表示来动态估计姿态。更准确地说,我们训练了一个卷积神经网络,它将测试图像和3D模型作为输入,输出输入图像中物体相对于3D模型的相对3D姿态,我们证明了我们的方法在标准数据集上(Pascal3D+,ObjectNet3D和Pix3D)上提高了基于监督类别的姿态估计的性能,在这些基准上我们提供了比现有技术更好的结果。更重要的是,我们通过提供LINEMOD数据集和来自ImageNet的自然实体(如动物)的结果,证明了我们在ShapeNet中对日常人造对象进行训练的网络可以在没有任何额外训练的情况下推广到全新类型的3D对象。我们的代码和型号可在http://imagine.enpc.fr/~xiaoy/PoseFromShape/上获得

1.引言

设想一个机器人需要与不属于任何预定义类别的新型对象交互,例如车间中新制造的对象。对这个新物体使用现有的单视图姿态估计方法将需要停止机器人,并在采取任何进一步行动之前先训练该物体的特定网络。这里我们提出了一种方法,它可以直接将新对象的3D模型作为输入,并估计对象在图像中相对于该模型的位置,而不需要任何额外的训练过程。我们认为这样的能力对于诸如“野外”机器人这样的应用是必要的,在这里,陌生类别的新对象可能会在任何时候常规地出现且不能忽视。类似的,这项技术在VR中也同样需要。
在这里插入图片描述

图1:我们方法的图解。(A)训练数据:日常人造物体的3D模型、输入图像和姿态符号;(B)在测试时,给出一幅RGB图像和相应的3D形状,估计任意物体的姿态,即使是未知类别的物体

为了克服深度位姿估计方法是基于类别的情况——即根据物体类别预测不同的方位,最近的工作[10,54]提出了对刚性物体进行未知类别的位姿估计,从而产生单一的预测。然而,[10]只对训练数据中包括的对象类别进行评估,而[54]要求测试类别与训练数据相似。相反,我们想强调的是,我们的方法对新对象也能起作用,这些对象可能与训练集中有很大不同。例如,我们只在人造物体上训练,但仍然能够估计马等动物的姿势,而在训练数据中没有包含任何一种动物(参见图1或图3)。我们的方法类似于类别不可知方法,因为它只产生一个姿态预测,并且不需要额外的训练来产生新的类别的预测。然而,它也是特定于实例的,因为它需要将待检测对象的3D模型作为输入。
事实上,我们的关键思路是,测量单个对象实例的观测视角时,给定对象的3D形状比给定整个对象类别定义效果更好。我们的工作可以看作是综合了近期基于深度3D模型来解决位姿估计问题的研究成果[37,38,40]。我们的结果表明,使用3D模型信息也可以提高在已知类别上的性能,即使类别只是和在Pascal3D+[48]数据集中近似。
当对象的确切3D模型已知时,如在LINEMOD[15]数据集中,通常通过首先执行粗略的观察视角估计,然后应用姿势细 化方法,通常将3D模型的渲染图像与目标图像相匹配来获得领先水平的结果。我们的方法是用来执行粗对准的。在应用我们的方法之后,可以使用基于ICP的经典方法或最近的DeepIM[25]方法来执行姿势细化。注意虽然DeepIM只执行优化,但它与我们的工作相似,因为它也与类别无关,并且利用3D模型的一些知识(使用以估计的姿势渲染的视图)来预测其姿势更新。
我们的核心贡献如下:
1.据我们所知,我们提出了第一种不基于类别的视角估计的深度学习方法,该方法只需在物体的三维模型上就可以估计出它的姿态,无论它是否与训练时看到的物体相似。
2.我们可以学习和使用“未经训练的形状”,它的参照系不必与规范的方向一致,简化了姿势监督。
3.我们在大量的数据集[15,42,48,49]上证明了对于已知对象类别时,在位姿估计网络中加入3D信息能够得性能提升,并在以前未见过的对象上产生效果。

2.相关工作

在本节中,我们首先讨论在物体的三维模型已知的情况下,然后讨论在三维模型未知的情况下,从单个RGB图像中对刚体进行姿态估计。
使用对象形状估计位姿传统的估计图像中给定3D形状位置的方法大致可以分为特征匹配法和模板匹配法。特征匹配方法通过从图像中提取局部特征,将其与给定的物体3D模型进行匹配,然后使用PNP算法的一种变体基于估计的2D-3D对应关系恢复6D姿态。鲁棒性更强的局部特征描述符[27,34,45,46]和更有效的PNP算法[6,21,24,53]已经被使用在这种类型的检测网络中。不仅是特征检测,甚至是像素级别的预测[1]。虽然这些方法在纹理对象上执行得很好,但通常在处理纹理较差的对象时会遇到困难。为了处理这种类型的对象,模板匹配方法尝试将观察到的对象与存储的模板[14,15,23,26]进行匹配。然而,在部分遮挡或截断的情况下,它们的性能很差。
最近,深度模型已经被训练用于对已知3D模型的图像进行估计姿势。大多数方法通过估计对象的3D边界框[10,32,39,43]或对象语义关键点[9,34]的投影的测试图像中的2D位置,以找到2D到3D的对应关系,然后再应用PNP算法类似特征匹配。在得到粗略的对象姿态后,就可以利用基于模板匹配的方法的得到更加精确的结果
未使用对象形状的姿势估计近年来,随着大规模数据集的发布[8,15,42,48,49],数据驱动的学习方法(基于真实或合成数据)被大量使用,它们不依赖于对准确的3D信息。这些方法大致可以分为基于训练类别中任何对象的姿态估计方法和基于单个对象或场景的位姿估计方法。对于基于类别的位姿估计,需要为所有类别提供各个角度的标准视图。预测过程可以归结为回归问题[30,33,35]、分类问题[4,41,46]或两者的组合[12,22,28,31]。此外,例如 Zhou 直接通过回归与类别无关的3D关键点,来估计图像和世界坐标系之间的相似性[54]。遵循相同的策略,同样可以在没有准确3D模型信息的基础下估计单相机相对于单个3D模型的位姿关系。近期许多工作都采用该策略来解决测量目标6-DOF姿态[17,22,31,44,50]及摄像机视角定位问题。
在这里插入图片描述
图2:我们的方法概述。(A)给定物体的RGB图像及其3D形状,我们使用两个编码器从每个输入中提取特征,然后估计所拍摄的物体的方向。对形状使用分类和回归方法,得到其方位角、俯仰角和滚动角。(B)对于形状编码,我们使用PointNet对对象上采样的点云进行编码(上),,或者我们生成对象不同角度的渲染图并使用cnn来提取特征(下)。

在这项工作中,我们将上述两项工作合并。我们把位姿估计当作一个预测问题,相当于没有直接利用视点信息的深度学习方法。但是,我们的网络是基于单个实例对象的3D模型,它由一组视图或一组点云表示,即我们的网络依赖于精确的3D模型,类似于特征和模板匹配方法。据我们所知,我们是首个利用图像和形状信息作为网络输入的来进行位姿估计的。

3.网络结构和训练过程

我们的方法是提取出图像和形状的深层次特征信息并加以融合预测出相对位姿。总体结构如图2所示。在本节,我们将展示我们网络结构的更多细节、损失函数和训练方法,以及我们方法专门的数据增强方案。
特征提取 网络的第一部分包含两个独立的模块:(i)图像特征提取(ii)3D形状特征提取。对于图像特征提取,我们使用了标准的CNN网络——ResNet-18[13]。对于3D特征,我们实验了图2(b)所示的两种目前性能最优的3D图像表示网络。

  • 首先 ,我们使用嵌入式的点云网络PointNet[37],它已经被成功运用于许多任务中的点云编码器s [5, 11, 36, 47, 52]。
  • 其次,我们尝试使用渲染视图来表示3D形状,类似[40],将虚拟摄像机放置在3D形状周围,指向模型的质心;CNN将相关的渲染图像作为输入,提取得到的图像权重相同,而后凭借得到全局特征向量。我们考虑了该架构的变体,使用额外的输入通道进行深度和/或表面法向定向,但这并没有显著改善我们的结果。理想情况下,我们会考虑物体周围任何方向的整个球体的视点。然而事实情况中,很多目标在垂直方向有很大的偏转,且只能从侧面或者上方获取图像。因此在我们的实验中,我们仅考虑顶部半球体上的视点,并且在方位和高程上均匀采样。

方位估计 目标的方位估计是通过一个多层感知机提取来自图像和3D信息的特征实现的,它由三个隐藏层组成,分别含800、400、200个神经元。每个全连接层后面都有一个归一化层和一个Relu激活函数。
输出是三个相对于3D形状坐标系的欧拉角,即方位角(azi)、俯仰角(ele)和滚动角(inp)。每个角θ ∈E={azi, ele, inp}都使用分类回归相结合的算法从角度和偏移量中计算得到的。具体做法为,我们将ε平均分为Lθ个,每个角度为θ。对于每个θ -bin l∈{0,Lθ−1},网络输出为一个概率p θ.l∈[0,1],它是对分类的结果用softmax函数进行归一化,另外一个输出值是相对于θ中心位置的偏移量δ θ.l∈[-1,1]经双曲正切函数获得。这样网络就有2 ×(Lazi +Lele +Linp)个输出。

损失函数 当我们结合分类和回归时,网络会有两种输出(概率和偏移量),得到总体损失函数L,它是由分类问题得到的交叉熵损失函数Lcla以及回归问题得到的Huber损失函数Lreg求和得到。
此外,假设训练数据(xi,si,yi),其中xi为输入图形,si为3d形状,yi为对应的欧拉角。我们将欧拉角yi转换为1个标签数据l i.θ以及与之对应的偏移量δ。网络损失函数表达如下:
在这里插入图片描述

数据增强我们对输入图像进行标准化的数据增强:水平翻转、随机裁剪、色彩抖动。
此外,我们引入了一种新的数据增强方法,针对我们的方法,设计了一种新的数据增强方法,以避免网络过度拟合3D模型方向,这在训练数据中很常见,因为大多数模型都是方向相同的。相反,我们希望我们的网络是类别不可知的,并且总是预测对象相对于参考3D模型的姿势。因此,我们向输入形状添加随机旋转,并相应地修改方向标签。在我们的实验中,我们将旋转限制在方位角变化上,这也是因为现实背景下物体存在很强的垂直性偏差,但理论上可以将其应用到所有角度。由于对象具有对称性(通常在90°或180°),我们在[−45°,45°]中用均匀采样替代随机采样,这也有助于确保注释的0°偏差。有关详细信息和参数研究,请参阅补充资料。
实施细节我们的所有实验中,批大小设置为16,并使用ADAM优化器[20]训练我们的网络,学习率前一百次迭代为10−4,再用10−5训练100次。与不基于形状的方法相比,在TITAN X GPU上,用12个渲染视图编码的形状的训练速度大约慢8倍。

实验

给定目标的3D模型和一张RGB图像,用我们的方法来测量该物体在图上表示出来的3d方位。在本节,我们首先对我们所使用的训练集类型做一个概述,然后解释我们方法的基本想法。而后在两种测试场景中评估我们的方法:即目标类别已知和未知。
数据集 我们在4个主流数据集中进行训练和测试。其中Pascal3D+[48]、ObjectNet3D[49]和Pix3D[42]包含了各种环境中的多类对象,符合在野外进行对象姿态估计的条件。相反的,LINEMOD[15]聚焦于环境变化较小的少数几个对象,主要是面向机器人操作。Pascal3D+和Object-Net3D仅提供近似模型和粗略对齐,而Pix3D和LINEMOD提供精确模型和像素对齐。我们还使用ShapeNetCore[2]对合成数据进行训练,背景为SUN397[51],并在Pix3D和LINEMOD上进行了测试。
除非另有说明,否则在所有实验中都使用真值作为边界框。我们使用最常见的几个指标来计算每个数据集的情况:AccΠ/6是旋转误差小于30°的百分比;MedErr是角度中位数误差(°);ADD-S-0.1是预测值位置和3D模型真值位置平均距离不超过待测目标10%的百分比;Add-S-0.1d是ADD-0.1d的变体,用于对称对象,其中平均值是根据最近的点距离计算的。补充材料中提供了有关数据集和指标的更多详细信息。
Baseline 我们的方法采用了和自然模型相同的结构、训练集和训练策略,但它没有使用对象的3D模型。它在我们的表格中被报告为“基线”,与图2的网络相对应,没有以浅蓝色显示的形状编码器。我们还报告了第二个基线,旨在评估3D模型的精度对我们的工作方法的重要性。我们准确地使用了我们的方法,但是时间证明,我们用相同类别的随机3D形状替换了测试图像中对象的3D形状。这在表中报告为‘Our(RS)’。

扫描二维码关注公众号,回复: 15696970 查看本文章

4.1 基于分类监督的姿态估计

我们首先对数据集中包含的目标类别进行测试。可以发现利用目标的3D模型可以明显提高姿态估计效果。
我们在Object3D上测试我们的方法,它拥有最多的模型种类、3D模型以及图像。我们将结果展示在表1种。首先,一个最重要的结论就是使用3D模型信息时,无论使用点云或者渲染图,都能取得一个很明显的性能提升,这验证了我们方法的有效性。其次,使用多角度的渲染图(MV)来表示3D模型的结果优于基于点云(PC)的表示[37]。因此本节剩余部分中我们仅对MV方法进行测试。第三,在类别中使用随机形状(RS)而不是真实形状来测试网络,仅提供类信息而不提精确的3D信息,取得的结果比使用基础模型好,但比使用准确3D模型差,这表明了我们的方法能够有效利用3D信息来提高检测效果。最后,我们发现即便是我们的基础模型检测效果也几乎超过了StarMap[54],特别是在五个类别(熨斗、小刀、钢笔、步枪、拖鞋)在StarMap上检测全面不如我们的网络,这可能是因为基于关键点检测的方法不适用于小的狭窄的目标。
表1表1:ObjectNet3D上的位姿估计[49]。训练集和测试集与[54]相同的数据;对于新类别的实验,训练集包含了80个类别上,测试集包含其他20个类别。 *检测训练时结合和姿态估计的联合训练,使用估计的包围盒进行测试

在这里插入图片描述表2:在Pascal3D+数据集[48]上的位姿估计.*是基于关键点的,+是不使用ImageNet数据训练,而使用ShapeNet网络渲染图像训练的。
在这里插入图片描述

然后我们在Pascal3D+数据集上评估了我们的方法。结果如表2所示。有趣的是,虽然我们的基准结果远远低于最先进的结果,但添加我们的形状分析网络再次提供了非常明显的改进,结果与最好的已知类别分类的方法不相上下,而且表现优于未知类别分类的方法。但要注意的是,Pascal3D+中提供的3D模型只是真实3D模型的极其粗糙的近似。同样的,正如预料的那样,使用一个类别里的随机模型形状得到的效果优于不提供模型的基础方法但劣于提供准确模型的方法。
最后,我们在Pix3D数据集中的检测结果展示在表3中。和其它的方法类似。我们的模型纯粹是在合成数据上训练,在真实数据上测试,没有任何微调。同样,我们可以观察到,添加3D形状信息会带来很大的性能提升,从23.9%提高到36%,ACCπ/6。请注意,我们的方法甚至明显优于基于类别的基础模型。我们认为这是由于Pix3D提供的3D模型比ObjectNet3D和Pascal3D+的质量要高得多。支持这一假设的事实是,当提供同一类别的随机模型时,我们的结果要差得多。
因此,在三个标准数据集上得到的结论是一致且有效的:(I)使用3D模型提供了明显的改进(与“基础方法”相比),(Ii)我们的方法能够有效利用3D信息(与使用类别中的随机形状“RS”进行估计相比)。

4.2 在未知类别上的姿态估计

我们现在将重点泛化至未知类别,这也是我们方法的主要焦点。我们首先讨论了在数据集ObjectNet3D和Pix3D上的结果。然后,我们给出了在非常不同的LINEMOD数据集上对ImageNet Hors图像的定性结果和定量结果。
在ObjectNet3D的新类别上测试时,我们的结果如表1(底部)所示。我们使用与[54]相同,将数据分为80个训练类别和20个测试类别。不出意外,当测试训练集中没有的模型时,所有方法的准确度都会下降。事实上,基础模型的表现仍然很不错,这是由于训练集中存在类似的类别。然而,我们的方法的优势比在有监督的情况下更明显,且我们的MV方法比PC方法的性能略有提高。同样,我们从ShapeNet[2]合成训练集中删除了Pix3D中存在的类别,并在表3(底部)中展示了在Pix3D上的测试结果。同样,所有方法的精确度都会下降,但使用准确3D模型的效果会更加明显。
在ObjectNet和Pix3D实验中,测试对象的类别都是全新的,但仍然与训练集中含有的类别相似。现在,我们专注于评估我们的网络,该网络使用来自ShapeNetCore[2]数据集的人造物的形状生成的合成图像对完全不同的对象进行训练。
我们首先通过使用在线模型库中固定的马3D模型[7]来估计ImageNet图像中马的姿势,从而获得定性的结果。事实上,与其他动物相比,马的变形更有限。尽管这并不适用于所有图像,但那些网络给了最高置信度的图像的检测效果都非常好。在图3中,我们展示了不同姿势下置信度最高的图像,我们在补充材料中提供了更多的结果。请注意渲染的3D模型和测试图像之间存在非常强烈的外观差距。
最后,为了进一步验证我们的网络泛化能力,我们在LINEMOD[15]的无纹理特征的对象上对其进行了评估,结果如表4所示。这个数据集着重于非常精确的对齐,而大多数方法都建议首先估计粗对齐,然后用特定的方法对其进行细化。我们的方法提供了粗略的比对,并使用最近的DeepIM[25]精化方法对其进行了补充。我们的方法得到的结果低于最先进的水平,但仍然非常令人印象深刻。事实上,我们的网络在训练过程中从未使用任何类似LINEMOD数据集中的 3D模型的对象,而所有其他基础模型都是针对真实训练图像上的每个对象实例进行的专门训练,除了SSD-6D[17],它使用精确的3D模型但没有真实图像,并且粗对齐程度非常低。因此,我们的方法与所有的基础模型非常不同,因为它不要求测试对象在训练时可以获取,我们认为这是一个更现实的机器人应用场景。我们确信,我们的方法在这个标准下提供了可用的准确度,这是一个非常有力的结果。
在这里插入图片描述
在这里插入图片描述

5 结论

我们提出了一种新的深度位姿估计方法,将三维物体模型作为网络的输入。我们证明了该方法在精度方面的优势,并在几个标准位姿估计数据集上获得了更高的精度。更重要的是,我们已经表明,我们的方法是一个完全通用的用于姿态估计的深度学习方法,可以实现在训练集和测试集相互独立。在LINEMOD数据集上,无需任何特定的训练,也取得了客观的效果,尽管合成训练数据和测试用的真实图像之间存在领域差异。

猜你喜欢

转载自blog.csdn.net/onepunch_k/article/details/122287191