ECCV 2022 Oral | 首个用于理解三维桌面场景的大规模数据集

2022-12-09 19:17 980 阅读 ID:584
将门
将门

近日,香港中文大学(深圳)韩晓光教授团队的论文《TO-Scene: A Large-scale Dataset for Understanding 3D Tabletop Scenes》被欧洲计算机视觉国际会议ECCV2022收录,并入选为Oral Presentation (2.7%)。本文提出了首个大规模三维桌面场景数据集,可服务于三维检测、语义分割、实例分割、机器人SLAM等多种任务。数据集和代码目前均已开源!欢迎大家交流!

论文链接:

https://arxiv.org/abs/2203.09440
代码链接:

https://github.com/GAP-LAB-CUHK-SZ/TO-Scene

在人们的生活中,大量的室内活动都是围绕各种不同的桌面展开的(比如:咖啡桌,课桌等)。在人/机器人与室内环境的交互中,桌面常常扮演者不可或缺的角色。在机器人ROS系统中,地面和桌面、桌面和其他小物体部件之间的 Supporting 关系,也常常是室内场景建模、游戏逻辑生成的关键因素。因此,对于理解三维室内场景或者发展相关的应用(比如AR、VR、机器人抓取和交互)来说,研究桌面场景都是一个至关重要的部分。

但是,三维桌面场景在现有数据集中几乎无处可寻,因此我们很难直接应用深度神经网络等数据驱动的算法来开展实验和研究。为了弥补这一缺失,我们构建了一个用于三维桌面场景理解的大规模数据集 —— TO-Scene。

一、数据的获取

                                                                                     图1

大规模三维数据集的获取和标注需要极其巨大的人力和时间成本,为了解决这个问题,我们基于“Mix CAD with Real Scan”的思想,设计了一套高效的构建框架(如图1):首先,我们从现有的 ModelNet 和ShapeNet 这两个含有丰富物体 CAD模型的数据集中挑选出生活中常见的桌面物体 CAD模型(如笔,碗,杯子等52类物体),并从现有的ScanNet这一真实三维室内场景数据集中提取出各色各样的桌面(如课桌,橱柜,梳妆台,茶几等)。

接下来,我们自主开发了一个网页端的图形化人机交互界面 ,并寻找大量的众包用户在这一界面上进行操作,将桌面物体的 CAD模型放置到的真实室内的桌面上。在这一过程中,我们的数据集保证了物体会被放置在适合它的桌面上(如咖啡杯通常会被放置在茶几而不是梳妆台上),并且我们寻找了来自不同职业、不同年龄段的用户以实现数据的多样性,以使得我们的数据更加贴近于实际应用中的真实扫描数据。

二、数据集详情

为了实现数据的丰富性,我们将数据集扩展并分为三种变体,分别为单个桌面级别的简单模式TO_Vanilla、拥挤模式TO_Crowd、以及包含桌面物体和整个室内场景的全场景级别TO_ScanNet,以服务于更加广泛的实际应用场景。

具体地,我们构建了 TO-Scene —— 全球首个大规模室内桌面场景数据集(如图2),包括20, 740个场景(16,077个单个桌面级别场景),52个桌面物体类别,三种变体。所有的场景都具有精细的三维实例和三维单点标注,并提供三维点云和网格两种格式。用户可在此数据集上进行三维检测、语义分割、实例分割等任务,未来也可支持机器人SLAM等多种实际应用。下图展示了数据集的统计信息。

                                                                                      图3

值得一提的是,数据集构建过程中用到的人机交互界面(如图4),简单易用,使得任何人都可以便捷地通过该界面扩充此数据集,或构建其他类似的数据,赋予了我们数据集极高的可扩展性。

                                                                                    图4

三、Tabletop-aware Learning

在 TO-Scene 中,由于桌子以及其他家具相比小物体,在尺寸上差异很大。因此桌面实例的分割自然是困难的,特别是对于有很多大家具的 TO-ScanNet。另外,现有的3D网络大多采用经典的下采样,比如最远点采样来扩大感受野。尽管如此,经过这些方案的采样,桌面小物体的点密度明显比大家具稀疏(见图6 (a)),这损害了桌面物体的感知。

为了解决这些问题,我们的想法是通过添加一个 Tabletop-object Discriminator (本质上是一个二分类器)来引导网络感知桌面对象的存在。网络Loss为桌面对象二分类器和分割(或检测)损失的总和,进行联合优化。

具体来说,Tabletop-object Discriminator 进行了两个操作:

  • 如图5所示,将 Discriminator 最后一层FC层之前的特征向量,concat到主分割或检测分支提取的特征向量上,使得主分支的预测由二分类辅助驱动。
  • 提出了一种动态采样策略,其中 Discriminator 得分较高的点(即桌面对象的点) 更有可能被采样(如图6 (b))
                                                                                       图5
                                                                                   图6

四、实验

我们将TO-Scene用于三维语义分割和物体检测任务,并进行了大量的实验。

三维语义分割

网络: 我们对PointNet,PointNet++,PAConv 和 Point Transformer 进行了基准测试。Pointnet++ 和 Point Transformer 作为 Tabletop-object Discriminator 模块的backbone。

结果和分析: 我们使用 mIoU 作为评价指标。从表3中可以看到,仅仅基于geometry输入,模型就可以表现出良好的效果。此外,我们的 Tabletop-object Discriminator 学习模块稳定地提高了模型的性能。

三维目标检测

数据预处理: 在实例层面理解室内场景也很重要。我们遵循原始的state-of-arts的数据预处理方法。

网络: 我们在TO-Scene上训练了 VoteNet,H3DNet 和 Group-Free 3D 等经典网络。VoteNet 和 Group-Free 3D 作为 Tabletop-object Discriminator 模块的backbone。

结果和分析: 对于评估指标,我们使用mAP@0.25。如表4所示,深度网络在均取得了较好的结果,我们的桌面感知学习方法再次显著提高了模型性能。

图7显示了语义分割、目标检测以及桌面物体分类的结果。我们可以看到,网络通过 Tabletop-object Discriminator 成功地分割或检测对象。分割和检测结果都表明,TO-Crowd 比 TO-Vanilla 更具挑战性,而 TO-ScanNet 难度最大。
                                                                                  图7

五、真实世界数据 TO-Real

此外,项目还开源了部分真实扫描数据 —— TO-Real ,由深度相机直接扫描和人工标注。实验结果显示,由 TO-Scene 上训练的深度神经网络模型,在TO-Real上直接测试时也能表现出不错的性能,验证了TO-Scene数据在实际运用中的价值。

数据: 由于没有真正的数据集能够与TO-Scene的三种变体完美匹配,所以首先要做的就是获取真实世界的数据。我们雇佣了专业用户对TO-Real进行手工扫描和标注,包括三组数据,分别表示为Real Vanilla、Real Crowd、Real scan。

实现: 我们训练 Point Transformer 用于语义分割,VoteNet 用于目标检测,对于不同变体的 TO-Scene 都进行了实验,并在对应的 TO-Real 上测试,不进行任何微调。

结果和分析: 如下表所示,整体上,TO-Real上的测试结果是稳定的。尤其是在 Vanilla 和 Crowd 设置下,对于检测任务,TO-Real上某些类别的 Test mAP 甚至比TO-Scene上的还要好。这证明了TO-Scene桌面场景数据的价值。

六、总结

作为第一个三维桌面场景数据集,且考虑到人在室内活动中与桌面的频繁交互,TO-Scene提供了一个更好地与桌面场景交互的机会,将广泛应用于与人类相关的室内场景理解,对于探索“元宇宙”具有重要意义。另外,我们的数据集中的一个变体,TO-ScanNet包括共 4663个场景和 137k 个家具和桌面物体实例,它可以用于三维任务中针对个体形状级或整体场景理解的data-hungry pretraining

作者:许牧天Illustration by Manypixels Gallery from IconScout

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn