本文中,我们探索了一种新的自监督学习方法,称为混合和分离 (MD),用于 3D 点云表示学习。所提出的方法在点云分类和分割任务方面提高了 ModelNet-40 和 ShapeNet-Part 数据集的经验性能

文章题目:Self-supervised Point Cloud Representation Learning via Separating Mixed Shapes

作者:Chao Sun, Zhedong Zheng, Xiaohan Wang, Mingliang Xu and Yi Yang

论文链接:https://www.zdzheng.xyz/files/TMM_3D_Pre_Training.pdf

代码链接:https://github.com/cyysc1998/3d-pretraining

大规模点云的手动注释需要花费大量时间,并且在恶劣的现实世界场景中通常不可用。受视觉和语言任务中预训练和微调范式取得巨大成功的启发,我们认为预训练也是获得 3D 点云下游任务的可扩展模型的一种潜在解决方案。因此,在本文中,我们探索了一种新的自监督学习方法,称为混合和分离 (MD),用于 3D 点云表示学习。顾名思义,我们混合两个输入形状并要求模型学习将输入与混合形状分开。我们利用这个重建任务作为自我监督学习的借口优化目标。有两个主要优点:

1)与流行的图像数据集(例如 ImageNet)相比,点云数据集实际上很小。混合过程可以提供更大的在线训练样本池。

2)另一方面,解耦过程(Disentangle)促使模型挖掘几何先验知识,例如关键点。

为了验证所提出借口任务的有效性,我们构建了一个基线网络,该网络由一个编码器和一个解码器组成。在预训练期间,我们混合两个原始形状并从编码器获得几何感知嵌入,然后应用实例自适应解码器从嵌入中恢复原始形状。尽管简单,但预训练编码器可以捕获看不见的点云的关键点,并在下游任务上超越从头开始训练的编码器。所提出的方法在点云分类和分割任务方面提高了 ModelNet-40 和 ShapeNet-Part 数据集的经验性能。我们进一步进行消融研究以探索每个组件的效果,并通过利用不同的主干来验证我们提出的策略的泛化。

Motivation:

我们的出发点其实很简单,如下图 红色箭头所指的 混合点云,我们很容易就能看出 他是由 飞机(Plane) 和 椅子(Chair) 混合而成。甚至我们可以看出 哪些点 是来自于 飞机 , 哪些点来自于 椅子。

TMM_3D_数据集

What:

基于这种观察,我们很自然的提出一个拆玩具的任务,网络需要能区分 一个 混合的点云中 那些点 是来自 点云A,哪些是来自点云B。因为 我们 人 也可以做到。

在这个区分的过程中,网络需要理解一些(1)高层的语义,AB分别是什么,来帮助 区分;(2)寻找到一些keypoints,来区分两个原始点云。

How:

其实encoder很容易理解,用一个传统的PointNet 或者 DGCNN都行。

Decoder的话,设计类似于 拼乐高的过程,我们可以看一个成品图(condition),就能拼出一个3D模型。

TMM_3D_数据集_02

所以我们提出给一个 2D projection给 Decoder 作为condition,让他知道 如果遇到A的投影,就decode A的点云(红色虚线);如果 遇到B的投影,就重构 B的 点云(蓝色虚线) ,如下图。

TMM_3D_3D_03

投影的话 可以选择 XY平面,YZ平面 或者 XZ平面 如下图,同时我们还会 擦除一些信息,提升难度。 

TMM_3D_点云_04

Ok 所以具体最后的模型 如下图。预训练的时候我们需要decoder,训练完 finetune下游任务,我们只要保留encoder就行。

TMM_3D_人工智能_05

我们的方法可以做 点云分类,也可以做点云分割。

在Loss,方面我们用传统的点云重构loss,Chamfer loss就行 。

实验:
1.定量实验:
  • 基于我们的模型做了一些finetune,可以在下游任务上得到较好的提升。

 

TMM_3D_3D_06

  • 特别是下游标注数据量比较少的时候,预训练带来的好处越明显。

 

TMM_3D_点云_07

2.定性实验
  • 训练后我们确实观察到网络可以轻松分离两个点云,如下图。

 

TMM_3D_3D_08

  • 我们还尝试可视化 ,encoder 特征中 激活值最大的前25%的点(红色)。可见网络抓到一些边缘的点(对结构理解最有帮助的点)。

TMM_3D_数据集_09