RandomRooms:用于3D目标检测的无监督预训练方法(ICCV2021)

2021-11-04 15:28:36 浏览数 (1)

论文标题:RandomRooms: Unsupervised Pre-training from Synthetic Shapes and Randomized Layouts for 3D Object Detection

论文地址:https://arxiv.org/abs/2108.07794

摘要:近年来,三维点云理解取得了一定的进展。然而,一个主要的瓶颈是有注释的真实数据集的稀缺,尤其是与2D目标检测任务相比,因为对注释场景的真实扫描需要大量的人力。解决这一问题的一个方法是利用由计算机辅助设计对象模型组成的合成数据集来实现在真实数据集上的学习,上述方法可以采用预训练和微调程序实现。但是,当将在合成目标上学习的特征转移到真实世界中应用时,往往会失败。在这项工作中,研究人员提出了一种新的方法,通过利用合成计算机辅助设计数据集中的目标来生成场景的随机布局,并且通过对从同一组合成目标生成的两个随机场景应用object-level对比学习来学习3D场景表示,用于为后期微调提供更好的初始化。从经验上看,该方法在几个基本模型上的下游3D检测任务上的性能具有提升,尤其是当使用较少的训练数据时,上述结果证明了该研究方法的有效性和通用性。通过运用丰富的语义知识和合成数据的多样化对象,研究人员的方法在广泛使用的3D检测基准ScanNetV2和SUN RGB-D上获取了当前最好的性能。研究人员期望该方法有望为目标和场景级别的3D理解提供新的视角。

研究贡献:

在这项工作中,研究人员提出了一个新的框架,旨在对下游3D对象检测任务进行微调之前,先使用合成CAD模型数据集(即ShapeNet)进行三维预训练。为此,研究人员提出了RandomRooms的方法,其中,研究人员建议使用从ShapeNet数据集中随机抽样的一组对象生成两种不同的场景布局,然后在object-level对两者进行对比学习。

研究方法:

1.合成对象

与ScanNetV2相比,ScanNetV2包含17个类别的15000个对象,ShapeNet提供更为丰富的数据源,包含55个类别的52000个对象。因此,本研究的主要目标是研究如何使用ShapeNet收集的合成CAD模型来改进下游任务,如真实数据集上的3D检测和分割。

现有研究不足:之前的研究工作直接在ShapeNet上进行预训练无法提高下游检测和分割任务的性能,主要原因可能是ShapeNet上的单个对象分类任务与真实数据集上的多对象局部化任务之间存在差距。为了弥补这一差距,研究人员建议利用合成对象生成伪场景(RandomRooms),以构建有助于场景级理解的训练数据。

具体操作步骤

1)对象增强:研究人员首先将对象调整为[0.5m,2.0m]的随机大小,以确保对象与ScanNetV2中的对象具有相似的大小。然后,研究人员应用了常用的对象点云扫描技术,包括旋转等。

2)布局生成:为了便于生成布局,研究人员将对象放置在矩形房间中。房间的大小根据增强对象的总面积自适应调整。布局基于两个简单的原则生成:(1)不重叠:任何两个对象不应占据房间中的同一空间;(2)根据重力原则,物体不应漂浮在空中,较大的物体不应置于较小的物体之上。对于每个对象,研究人员首先随机选择X-Y平面上满足上述原则的位置,然后根据位置的当前最大高度确定位置(Z值)。如果当前位置的最大高度超过2米,物体将不会被放置在某个位置。

3)场景增强:研究人员对整个场景应用数据增强,如绕Z轴旋转等。为了使生成的场景更接近真实场景,研究人员还添加了地板和墙壁作为混淆因素。

示例图像如下图所示。

2.运用Random Rooms进行表示学习

为了利用生成的随机房间,研究人员设计了一种object-level对比学习(OCL)方法,该方法学习区分性表示而无需类别标注,整体框架如下图所示。

研究中给定n个随机采样对象,根据上述步骤生成2个随机房间,采用点云编码器-解码器网络提取设定的2个场景中的特征。为了获得每个对象的特征,研究中对属于该对象的每点特征应用平均池化操作:

然后类似于对比学习中的常见做法,使用多层感知器和L2归一化将对象特征投影到单位超球面上,Object-level对比学习目标可以写成:

实验:

表示学习的一个主要目标是学习能够转移到下游任务的表征。为了将研究人员的Random Rooms方法应用于对于场景级别的理解(如3D目标检测),研究人员结合了无监督预训练和监督微调。具体来说,研究人员首先使用本研究方法在ShapeNet上预训练主干模型,然后使用预训练的权重作为初始化,并在下游3D对象检测任务中进一步微调模型。

(1) 预训练设置

研究人员对ShapeNet进行了预训练,ShapeNet是一个由55个常见类别的3D CAD模型表示的具有丰富注释的形状组成的数据集。要生成随机房间,研究人员首先需要从数据集中随机采样多个对象。研究人员采样的对象数是一个从12到18的随机整数,与ScanNetV2场景中的平均对象数相似。然后,对于每个采样对象,研究人员执行随机房间生成算法,采用object-level对比学习损失以无监督的方式对模型进行训练.

对于下游3D目标检测任务,研究人员使用了其他研究中的主干模型,该模型以40000个点作为输入点。根据相应的网络模型配置,研究人员使用1024点特征作为主干模型的输出,并对该特征进行对比学习。在训练期间,研究人员使用初始学习率为0.001的Adam优化器,对模型进行了300个epoch的训练,在第100次和第200次epoch时,学习率乘以0.1,batch size设置为16,这样在每次迭代中,大约200~300个对象参与对比学习。

(2) 3D物体检测

数据集:研究人员在两个广泛使用的3D检测基准上进行了实验,ScanNetV2和SUNRGBD。ScanNetV2是一个具有丰富注释的室内场景三维重建网格数据集。它包含1513个扫描和重建的真实场景,由18个不同大小和形状的不同类别的对象组成。目前,它是使用轻型RGB-D扫描程序创建的最大的一个数据集。然而,与2D视觉中的数据集相比,它的规模仍然小得多。研究人员将整个数据集划分为两个子集,分别有1201和312个场景,用于以下训练和测试。

SUN RGB-D是用于三维场景理解的单视图RGB-D数据集。它包含10335个室内RGB和深度图像,带有对象边界框和带有10种不同对象类别的语义标签。研究人员也严格遵循相应的拆分方法,5285个样本作为训练数据,5050个样本作为测试数据。

检测模型:研究人员将本方法与最近提出的两种最先进的方法进行了比较:一种是VoteNet,另一个是H3DNet。它们都以无色的3D点云作为输入。研究人员还将GSPN、3D-SIS、DSS、F-PointNet、2D-driven和Cloud of gradient等使用其他类型的信息进行目标检测的信息纳入比较。

消融研究:如下表所示,研究人员进行了三组消融研究,都是在以VoteNet为主干的 ScanNetV2数据集上进行的,使用mAP@0.25作为评估指标。

首先研究执行预训练的数据集的选择。研究人员发现在ShapeNet或ScanNetV2上进行预训练都可以提高性能,然而,由于ShapeNet的规模更大,即来自更多样化类别的样本,与ScanNetV2相比,对其进行预训练可以获得更好的结果。此外,研究中展示了组合两个数据集以帮助预训练的可能性,拥有来自两个数据集的对象,与使用单个数据集相比,可以获得更好的微调结果。同时,研究人员研究了用于预训练的损失函数的影响。与PointContrast使用的point-level对比损失相比,可以通过instance-level对比损失获得更好的预训练结果。这表明object-level对比学习可以通过结合更多instance-level知识更好地帮助下游定位任务。此外,由于ShapeNet中对象的标签易于访问,还通过为对象的所有点分配相应的对象标签来增加额外的分割损失。上述说明该研究中的无监督预训练策略可以实现与合成数据集上的监督预训练相当的性能。

可视化:通过可视化在VoteNet的检测结果,如下图所示,预训练的模型可以产生更准确的检测结果,错误更少,并且更接近于真实边界框。可视化的结果进一步证实了所提出方法的有效性。

总结:

该研究提出了一种新的框架,RandomRoom,应用于3D预训练,它可以利用合成的CAD模型数据集来帮助在高级3D对象检测任务中学习真实数据集。与之前在点级别执行对比学习的工作不同,该研究通过从CAD模型数据集中随机采样的同一组对象组合两个不同的场景,在object-level执行对比学习,并在多个基础模型的3D检测任务中提升了性能,尤其是在使用较少训练数据时。通过运用丰富的语义知识和合成数据的多样化对象,研究人员的方法在广泛使用的3D检测基准ScanNetV2和SUN RGB-D上获取了当前最好的性能。除了这项工作,该研究可以为未来的研究开辟一条新途径,即如何利用易于访问的合成对象来执行更复杂的3D场景理解任务。

备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区

本文仅做学术分享,如有侵权,请联系删文。

0 人点赞