Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling

摘要

我们提出了Point-BERT,一个学习注意力的新范式,将BERT[8]的概念推广到三维点云。受BERT的启发,我们设计了一个掩蔽点建模(MPM)任务来预先训练点云注意力。具体来说,我们首先将点云划分为几个局部的点补丁,并设计了一个带有离散变异自动编码器(dVAE)的点云标记器,以生成包含有意义的局部信息的离散点标记。然后,我们随机屏蔽掉一些输入点云的斑块,并将其送入骨干变形器。预训练的目的是在标记器获得的点标记的监督下,恢复被遮蔽位置的原始点标记。大量的实验表明,所提出的BERT式预训练策略大大改善了标准点云变换器的性能。装备了我们的预训练策略,我们表明一个纯粹的变形器架构在ModelNet40上达到了93.8%的准确率,在ScanObjectNN的最难设置上达到了83.1%的准确率,超过了精心设计的点云模型,而手工设计的数量要少得多。我们还证明了Point-BERT学到的表征可以很好地转移到新的任务和领域,我们的模型在很大程度上提高了少数照片点云分类任务的最先进水平。代码和预训练的模型可在https://github.com/lulutang0608/Point-BERT上找到。

1. 引言

与传统的手工设计的特征提取方法相比,卷积神经网络(CNN)[21]对先验知识的依赖要少得多。Transformer[57]进一步推动了这一趋势,因为它是朝着没有归纳偏见和最小的人为假设迈出的一步,例如CNN中的翻译等价性或定位性。最近,标准Transformer的结构优势和多功能性在语言[3, 8, 19, 29, 42]和图像任务[2, 6, 9, 53, 63, 76]中都得到了证明,通过启用更多的参数、更多的数据[9]和更长的训练计划,减少归纳偏差的能力也得到了证明。尽管Transformer在自然语言处理(NLP)和图像处理中产生了惊人的结果,但它在三维社区中的研究还不充分。现有的基于Transformer的点云模型[11,72]从局部特征聚合[72]和邻居嵌入[11]中带来了某些不可避免的归纳偏见,使它们偏离了标准变形器的主流。为此,我们的目标是在点云上直接应用标准Transformer,并将其归纳偏差降到最低,作为建立整齐统一的三维表征学习模型的踏脚石。

显然,直接采用Transformer并不能在点云任务上取得令人满意的表现(见图5)。这个令人沮丧的结果部分归因于有限的注释的3D数据,因为没有归纳偏见的纯Transformer需要大量的训练数据。例如,ViT[9]使用ImageNet[21](14M图像)和JFT[50](303M图像)来训练视觉Transformer。相比之下,准确的注释点云则相对不足。尽管随着现代扫描设备的普及,三维数据的获取变得越来越容易,但标注点云仍然很耗时,容易出错,甚至在一些极端的真实世界场景中是不可行的。这种困难促使人们开始研究从无标签的三维数据中学习。因此,自我监督的预训练成为一种可行的技术,以释放Transformer在三维点云表示学习中的可扩展性和通用性。

在所有基于Transformer的预训练模型中,BERT[8]在其发布时取得了最先进的性能,在NLP领域树立了一个里程碑。受BERT[8]的启发,我们试图探索BERT式的预训练,用于三维点云的理解。然而,由于缺乏预先存在的词汇,在点云上直接采用BERT是具有挑战性的。相比之下,语言词汇已经有了很好的定义(例如,[8]中的WordPiece),并且是现成的,可用于模型预训练。就点云Transformer而言,没有为点云预先定义的词汇表。一个天真的想法是把每个点当作一个 "词",模仿BERT[8]来预测被掩盖的点的坐标。这样的逐点回归任务随着标记数量的增加而使计算成本呈四倍增长。此外,一句话中的一个词包含基本的上下文语义信息,而点云中的一个点几乎不包含语义。

然而,从整体点云中划分出来的局部斑块包含丰富的几何信息,可以被当作一个组成单元。如果我们建立一个词汇表,其中不同的标记代表了输入单元的不同几何模式,会怎么样呢?在这一点上,我们可以将点云表示为这种标记的序列。现在,我们可以有利地采用BERT和它的高效实现,几乎是开箱即用。我们假设,弥合这一差距是将成功的Transformer和BERT扩展到三维领域的关键。

在上述分析的推动下,我们提出了Point-BERT,一种学习点云变形的新方案。我们设想了两个基本组成部分。

1) 点标记化。通过基于dVAE[46]的点云重构,设计了一个点云标记器,点云可以根据学习到的词汇转换为离散的点标记;我们期望点标记应该意味着局部的几何模式,而学习到的词汇应该涵盖不同的几何模式,这样一来,这些标记的序列可以代表任何点云(甚至以前从未见过)。

2) 遮蔽点建模。一个 "遮蔽点建模"(MPM)任务被用来预训练Transformers,它遮蔽一部分输入点云,并学习重建被遮蔽区域的缺失点标记;我们希望我们的模型能够推理出点云不同斑块之间的几何关系,为点云理解捕捉有意义的几何特征。

这两种设计在我们的实验中都得到了实现和论证。我们在图2中可视化了合成(ShapeNet[5])和真实世界(ScanObjectNN[55])数据集的重建结果。我们观察到,我们的Point-BERT模型正确地预测了被掩盖的点标记,并通过我们的dVAE解码器推导出多样化、整体性的重建。结果表明,所提出的模型已经学会了三维点云的固有和通用知识,即几何模式或语义。更重要的是,我们的模型是在ShapeNet上训练的,ScanObjectNN上的遮蔽点预测结果反映了它在具有未见物体和领域空白的挑战性场景中的卓越表现。

我们的Point-BERT采用纯Transformer架构和BERT式的预训练技术,在ModelNet40上达到了93.8%的准确率,在ScanObjectNN的复杂设置上达到了83.1%的准确率,超过了精心设计的点云模型,而人类的先验因素要少得多。我们还表明,通过Point-BERT学到的表征可以很好地转移到新的任务和领域,我们的模型在很大程度上提高了小样本点云分类任务的最先进水平。我们希望一个跨越图像和点云的整齐统一的Transformer架构可以促进这两个领域的发展,因为它可以对二维和三维视觉信号进行联合建模。

2. 相关工作

我们的点云预训练模型建立在自监督学习、Transformer和BERTstyle预训练的工作基础上,以三维点云为应用。在本节中,我们试图对上述领域的最新进展做一个概述。

自我监督学习(SSL)。自监督学习是一种无监督学习,监督信号可以从数据本身产生[15]。自监督学习的核心思想是去掉一个前提任务,如图像中的拼图[35]、着色[22]和光流[33]。最近,一些研究建议使用SSL技术来理解点云[10,14,23,36,45,47,48,51,58,62,65] 。三维领域任务的例子包括方向估计[38]、变形重建[1]、几何结构线索[52]和空间线索[34, 49]。受图像中的拼图的启发[35],[48]提出从随机重新排列的部分重建点云。DepthContrast[71]提出了一个对比性学习框架,从深度扫描中学习表征。最近,OcCo[58]描述了一个编码器-解码器机制来重建被遮挡的点云。与这些研究不同,我们试图在成功的Transformers[57]之后探索一个点云SSL模型。

Transformer。Transformer[57]最近已经成为NLP[3, 8, 19, 29, 42]中的主导框架,因为其突出的优点,包括大规模并行计算、长距离特性和最小的感应偏差。它吸引了各种视觉任务[12, 20],如物体分类[6, 9]、检测[4, 76]、分割[59, 73]、姿势估计[17, 27]、图像生成[37]、视频处理[69, 75]和多模式学习[41]。然而,它在三维点云的应用仍然有限。一些初步的探索已经实现[11,67,72]。例如,[72]应用矢量化的自我关注机制来构建一个用于三维点云学习的点Transformer层。作为与[72]平行的工作,[11]使用一个更典型的Transformer架构来学习点云,包括一个位置编码、一个偏移注意模块和一个邻居嵌入。尽管如此,之前基于Transformer的点云模型的努力或多或少都涉及到一些归纳性的偏见,使得它们与标准的Transformer不相符合。在这项工作中,我们试图延续标准Transformer的成功,并将其扩展到三维点云学习中,将归纳偏差降到最低。

BERT式的预训练。BERT[8]的主要架构建立在一个多层Transformer编码器之上,它首先被设计为在一个自我监督的方案中从未标记的文本中预训练双向表示。帮助BERT脱颖而出并取得令人印象深刻的性能的主要成分是掩码语言建模(MLM)的借口,它首先随机掩码,然后恢复输入标记的序列。MLM策略也激发了很多预训练任务[2, 7, 19, 29, 54]。以BEiT[2]为例,它首先将输入图像标记为离散的视觉标记。之后,它随机掩盖一些图像斑块,并将损坏的图像送入Transformer骨干网。该模型被训练来恢复被遮蔽的斑块的视觉标记。最近,MAE[13]提出了一种用于图像表示学习的遮蔽自动编码器策略。它首先掩盖了输入图像的随机斑块,然后鼓励模型重建那些缺失的像素。我们的工作受到BEiT[2]的极大启发,它将图像编码为离散的视觉标记,这样一个Transformer骨干就可以直接应用于这些视觉标记。然而,由于点云的非结构化性质,为点云获取标记更具挑战性,这随后阻碍了BERT在点云上的直接使用。

3. Point-BERT

这项工作的总体目标是将BERT风格的预训练策略扩展到点云Transformer。为了实现这一目标,我们首先学习一个标记器,为每个输入点云获得离散的点标记。模仿BERT[8]中的 "MLM "策略,我们设计了一个 "遮蔽点建模"(MPM)任务,在这些离散点标记的帮助下对Transformer进行预训练。图3说明了我们方法的总体思路。

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_建模

图3. Point-BERT的管道。我们首先将输入的点云划分为几个点斑块(子云)。然后使用迷你点网[39]来获得一连串的点嵌入。在预训练之前,通过基于dVAE的点云重建学习一个标记器(如图的右边部分所示),点云可以被转换成一串离散的点标记;在预训练期间,我们对点嵌入的某些部分进行屏蔽,并用一个屏蔽标记代替它们。然后,被屏蔽的点嵌入被送入Transformer。在标记器获得的点标记的监督下,模型被训练成恢复原始点标记。我们还增加了一个辅助性的对比学习任务,以帮助Transformer捕捉高级的语义知识。

3.1. 点标记化

在本节中,我们将介绍如何将点云标记化为一组离散的标记。

点嵌入。一个天真的方法将每个点视为一个标记。然而,由于Transformer中自我注意的二次复杂性,这样的逐点重建任务往往会导致难以承受的计算成本。受Vision Transformers[9]中补丁嵌入策略的启发,我们提出了一个简单而高效的实现方法,将每个点云分组为几个局部补丁(子云)。具体来说,给定一个输入点云,我们首先通过最远点采样(FPS)从整体点云p中采样g个中心点。然后用k-近邻(kNN)算法为每个中心点选择最近的邻居点,将g个局部斑块(子云)分组。然后,我们通过减去其中心坐标使这些局部斑块成为无偏的,解除局部斑块的结构模式和空间坐标。这些无偏的子云可以被当作NLP中的词或视觉领域中的图像斑块。我们进一步采用mini-PointNet[39],将这些子云投射到点嵌入中。按照NLP和二维视觉任务中Transformer的做法,我们将点云表示为一连串的点嵌入,它们可以作为标准Transformer的输入被接收。

点标记器。点标记器将点嵌入作为输入并将其转换为离散的点标记。具体来说,标记器将点嵌入映射为离散的点标记,其中V是总长度为N的学习词汇。在这一步,子云可以被标记为点标记,与有效的局部几何模式有关。在我们的实验中,DGCNN[60]被用作我们的标记化网络。

点云重构。dVAE的解码器接收点标记作为输入,学习重建相应的子云。由于局部几何结构过于复杂,无法用有限的N种情况来表示。我们采用DGCNN[60]来建立与相邻点标记的关系,这可以增强离散点标记对不同局部结构的表示能力。之后,使用FoldingNet[65]来重构子云。总体重建目标可以写成,重建过程可以看作是最大化对数可能性的证据下限(ELB)[43]:

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_数据_02

其中p表示原始点云,p˜表示重建后的点云。由于潜伏点标记是离散的,我们不能应用重新参数化梯度来训练dVAE。继[43]之后,我们在dVAE训练中使用Gumbelsoftmax松弛[18]和统一先验。关于dVAE的结构及其在点云重建上的实现,我们参考了补充资料。

3.2. Transformer主干

我们在实验中采用了标准的Transformer[57],由多头的自注意层和FFN块组成。对于每个输入的点云,我们首先将其分为g个局部斑块,以

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_数据_03

为中心点。然后,这些局部斑块通过mini-PointNet[39]被投射到点嵌入,它只包括MLP层和全局maxpool操作。我们进一步通过对每个补丁的中心点应用MLP来获得其位置嵌入。形式上,我们将输入嵌入定义为

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_建模_04

,它是点嵌入和位置嵌入的组合。然后,我们将输入嵌入送入骨干Transformer。按照[8],我们在输入序列上附加一个类标记E[s]。因此,Transformer的输入序列可以表示为

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_数据_05

。在我们的模型中,Transformer块有L层,最后一层的输出

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_数据_06

代表全局特征,同时还有输入子云的编码表示。

3.3. 屏蔽点建模

在BERT[8]和BEiT[2]的启发下,我们将屏蔽建模策略扩展到点云学习,并设计了一个屏蔽点建模(MPM)任务来预训练我们的Point-BERT。屏蔽序列生成。与BERT[8]和MAE[13]中使用的随机掩蔽不同,我们采用了像[2]一样的块状掩蔽策略。具体来说,我们首先选择一个中心点和它的子云,然后找到它的m个邻居子云,形成一个连续的局部区域。我们把这个区域中的所有局部斑块都屏蔽掉,生成屏蔽的点云。在实践中,我们直接将这种块状屏蔽策略(如[2])应用于Transformer的输入。形式上,我们将被遮蔽的位置标记为

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_建模_07

,其中r是遮蔽率。接下来,我们用相同的可学习的预定义掩码嵌入物E[M]替换所有被掩码的点嵌入物,同时保持其位置嵌入物不变。最后,被破坏的输入嵌入 被送入Transformer编码器。

前言任务定义。我们的MPM任务的目标是使模型能够根据剩余的部分推断出缺失部分的几何结构。预训练的dVAE(见第3.1节)将每个局部补丁编码为离散的点标记,代表几何模式。因此,我们可以直接应用这些信息标记作为我们的代理监督信号来预训练Transformer。

点贴片混合。受CutMix[68,70]技术的启发,我们另外设计了一个整齐的混合标记预测任务,作为一个辅助的前置任务,以增加我们的Point-BERT预训练的难度,称为 "点补丁混合"。由于每个子云的绝对位置信息已经被归一化排除,我们可以通过简单地混合两组子云来创建新的虚拟样本,而不需要在不同的补丁之间采用任何繁琐的对齐技术,如最优传输[70]。在预训练期间,我们还强制虚拟样本预测原始子云产生的相应标记,以执行MPM任务。在我们的实现中,我们生成了与真实样本相同数量的虚拟样本,以使预训练任务更具挑战性,这有助于在有限的数据下提高Transformer的训练效果,正如在[53]中观察到的那样。

优化目标。MPM任务的目标是恢复与被屏蔽位置相对应的点标记。预训练的目标可以被形式化为给定被遮蔽的输入嵌入的正确点标记的对数可能性最大化:

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_点云_08

MPM任务鼓励模型预测点云的遮蔽几何结构。只用MPM任务训练Transformer会导致对点云高层次语义的理解不尽如人意,这也是最近在二维领域的工作所指出的[74] 。因此,我们采用广泛使用的对比学习方法MoCo[14]作为工具,帮助Transformer更好地学习高层语义。通过我们的点片混合技术,对比性损失的优化鼓励模型关注点云的高层语义,使虚拟样本的特征尽可能地接近原始样本的相应特征。设q为混合样本的特征,该样本来自另外两个样本。假设混合比为r,对比损失可写为:

论文阅读:Point-BERT: Pre-training 3D Point Cloud Transformers with Masked Point Modeling_数据_09

其中τ为温度超参数,K为存储库的大小。将MPM目标和对比性损失结合起来,使我们的Point-BERT能够同时捕获局部几何结构和高级语义模式,这在点云重现中是至关重要的。

4. 实验

在本节中,我们首先介绍了我们的预训练方案的设置。然后,我们用各种下游任务来评估所提出的模型,包括物体分类、部分分割、少数照片学习和转移学习。我们还对我们的Point-BERT进行了一次消融研究。

4.1. 预训练设置

数据设置。ShapeNet[5]被用作我们的预训练数据集,它涵盖了55个常见物体类别的50,000多个独特的三维模型。我们从每个三维模型中抽取1024个点,并将其划分为64个点补丁(子云)。每个子云包含32个点。一个包含两层MLPs的轻量级PointNet[39]被用来将每个子云投影成64个点嵌入,这些嵌入被用作dVAE和Transformer的输入。

dVAE设置。我们使用四层DGCNN[60]来学习斑点间的关系,为输入点云的内部结构建模。在dVAE训练过程中,我们将词汇量大小N设置为8192。我们的解码器也是一个DGCNN架构,后面是一个FoldingNet[65]。值得注意的是,dVAE的性能很容易受到超参数的影响,这使得基于图像的dVAE[44]的配置不能直接用于我们的场景中。在重建过程中采用了常用的L1-style 倒角距离损失。由于这个L1损失的数值很小,公式1中KLD损失的权重必须比图像任务中的权重小。我们在前10,000步将KLD损失的权重设置为0,并在随后的100,000步中逐渐增加到0.1。学习率被设定为0.0005,采用余弦学习计划,有60,000步升温。我们按照[44]的方法将Gumble-softmax函数中的温度在100,000步内从1衰减到0.0625。我们训练dVAE用总共150,000步,批次大小为64。

MPM设置。在我们的实验中,我们将transformer的深度设置为12,特征维度为384,头数为6。在我们的transformer编码器中应用了随机深度[16],速率为0.1。在MPM预训练期间,我们固定了由dVAE学习的Tokenizer的权重。25%∼45%的输入点嵌入被随机屏蔽掉。然后对模型进行训练,以推断出这些被掩盖位置的预期点标记。在MoCo方面,我们将内存库大小设置为16,384,温度为0.07,权重动量为0.999。我们采用AdamW[31]优化器,使用0.0005的初始学习率和0.05的权重衰减。该模型被训练了300个epochs,批次大小为128。

4.2. 下游任务

在本小节中,我们报告了几个下游任务的实验结果。除了广泛使用的基准,包括分类和分割,我们还研究了该模型在小样本学习和转移学习方面的能力。

物体分类。我们在ModelNet40[61]上进行分类实验,ModelNet40是最流行的三维形状分类数据集,它包含40个类别的12,311个合成的CAD对象。我们遵循以前的工作,将数据集分成9843/2468个对象进行训练和验证。在分类任务中,我们使用了一个两层的MLP,落差为0.5,作为分类头。我们使用权重衰减为0.05、学习率为0.0005的AdamW,在余弦计划下优化模型。批量大小被设置为32。

结果显示在表1中。我们把我们的基线模型称为 "Transformer",它是在ModelNet40上用随机初始化训练的。图中展示了几个基于Transformer的模型,其中[ST]代表标准的Transformer架构,[T]表示具有一些特殊设计或归纳偏差的Transformer模型。尽管我们在这项工作中主要关注标准变形器的预训练,但我们的MPM预训练策略也适用于其他基于变形器的点云模型[11, 72]。此外,我们还与最近的预训练策略OcCo[58]进行了比较,作为我们预训练方法的一个强有力的基线。为了进行公平的比较,我们遵循[58]中说明的细节,使用基于Transformer的解码器PoinTr[67]来执行他们的预文任务。结合我们的Transformer编码器和PoinTr的解码器,我们按照OcCo的想法,在ShapeNet上进行完成任务。我们把这个模型称为'Transformer+OcCo'。

我们看到在使用1024/4096输入的情况下,用OcCo预训练Transformer比基线提高了0.7%/1.0%。相比之下,我们的Point-BERT比从头开始训练带来1.8%/2.2%的收益。我们还观察到,在没有预训练的情况下,增加更多的点不会明显改善Transformer模型,而Point-BERT模型可以通过增加点的数量来持续改善。当我们增加输入的密度(4096)时,我们的Point-BERT的性能(93.4%)明显好于基线(91.2%)和OcCo(92.2%)。如果有更多的输入点(8192),我们的方法可以在ModelNet40上进一步提升到93.8%的分类精度。

小样本学习。我们遵循以前的工作[49],在小样本学习设置下评估我们的模型。一个典型的设置是 "K-way N-shot",首先随机选择K个类别,然后为每个类别取样(N+20)个对象[49]。该模型在K×N样本(支持集)上进行训练,并在剩余的20K样本(查询集)上进行评估。我们将Point-BERT与OcCo[58]进行比较,后者在这项任务上取得了最先进的性能。在我们的实验中,我们测试了在 "5路10个镜头"、"5路20个镜头"、"10路10个镜头 "和 "10路20个镜头 "下的性能。我们在每种设置下进行了10次独立的实验,并报告了10次运行中的平均性能和标准偏差。我们还在同样的条件下重现了DGCNN-rand和DGCNN-OcCo,以进行公平的比较。

如表2所示,Point-BERT在小样本学习任务中取得了最佳性能。它比基线获得了6.8%、3.0%、6.4%、3.3%的绝对改进,比基于OcCo的方法在四个设置上获得了0.6%、0.4%、1.6%、0.3%的改进。强有力的结果表明,由Point-BERT预训练的模型学习了更多的通用知识,可以快速转移到数据有限的新任务上。

部件分割。物体部分分割是一项具有挑战性的任务,旨在为每个点预测一个更精细的类标签。我们在ShapeNetPart[66]上评估了PointBERT的有效性,它包含16个类别的16,881个模型。按照PointNet[39],我们从每个模型中抽取2048个点,在分割任务中把组数g从64增加到128。我们设计了一个分割头,将组的特征分层传播到每个点。具体来说,从第4层、第8层和变形器的最后一层选择特征,表示为{H4 = {h 4 i } g i=1, H8 = {h 8 i } g i=1, H12 = {h 12 i } g i=1}。然后,我们通过FPS对原点云进行降样到512和256点,表述为P 4 = {p 4 i } 512 i=1 512 i=1和P 8 = {p 8 i } 256 i=1. 我们按照PointNet++ [40]在H4和P4、H8和P8之间进行特征传播。在这里,我们可以得到上采样的特征图ˆH4和ˆH8,它们代表了P 4和P 8中的点的特征。然后,我们可以将该特征从H12传播到Hˆ4,最后传播到每一个点。

表3中报告了两种类型的mIoU。很明显,我们的Point-BERT优于PointNet、PointNet++和DGCNN。此外,Point-BERT比vanilla Transformers提高了0.69%和0.5%的mIoU,而OcCo未能提高部分分割任务的基线性能。

转移到现实世界的数据集。我们通过在ShapeNet上预训练模型并在ScanObjectNN[55]上进行微调来评估学习到的表征的泛化能力,该数据集包含15个类别的2902个点云。这是一个更具挑战性的数据集,取自包含背景和遮挡的真实世界扫描。我们遵循以前的工作,在三个主要变体上进行实验。OBJ-BG, OBJ-ONLY, 和PB-T50-RS。实验结果在表4中报告。我们可以看到,Point-BERT在三种变体上将虚构的Transformers提高了约7.57%,7.57%和5.83%,并持续优于OcCo。

比较ModelNet40(表1)和ScanObjectNN(表2)上的分类结果,我们观察到DGCNN在ModelNet40上优于PointNet++(+2.4%)。而在现实世界的数据集ScanObjectNN上,其优越性则有所下降。至于Point-BERT,它在两个数据集上都达到了SOTA性能,这有力地证明了我们方法的有效性。

4.3. 消融研究

借口任务。我们把模型A表示为我们的基线,也就是从头开始训练Transformers。模型B是用MPM借口任务预先训练Transformer。模型C是用更多来自 "点修补混合 "技术的样本进行训练。模型D(建议的方法)是在MPM、点贴片混合和MoCo的设置下训练的。从表5的上半部分可以看出,只有MPM的模型B比基线模型A提高了约1.17%的性能,通过采用点修补策略,模型C得到了0.33%的改进。在MoCo[14]的帮助下,模型D进一步带来了0.33%的改进。

屏蔽策略。我们在图2中可视化了点标记预测任务。我们的Transformer编码器可以合理地推断出缺失斑块的点标记。在实践中,我们通过dVAE的解码器,根据Transformer编码器预测的点标记,重建局部斑块。我们探索了两种掩蔽策略:块状掩蔽(block-mask)和随机掩蔽(rand-mask)。掩蔽策略决定了预言任务的难度,影响了重建质量和表示方法。我们进一步研究了不同掩蔽策略的效果,并在表5中提供了结果。我们看到,在25%~45%的比例下,带有块状遮蔽的模型D效果更好。与图像不同的是,图像可以被分割成规则的不重叠的斑块,从原始点云中分割出来的子云往往涉及到重叠。因此,randmask比block-mask更容易完成任务,并进一步降低了重建性能。我们还考虑了另一种类型的增强:用其他样本的嵌入随机地替换一些输入嵌入。我们发现它对我们的Point-BERT没有帮助。

4.4. 可视化

我们在图4中通过tSNE[56]对两个数据集的学习特征进行了可视化。在图(a)和(b)中,可视化的特征来自我们的Point-BERT(a)微调前和(b)ModelNet40上微调后。可以看出,即使在微调之前,不同类别的特征也能被我们的方法很好地分离。这表明我们的预训练策略可以有效地指导Transformers在没有标签监督的情况下学习对象的语义。我们还在(c)中可视化了ScanObjectNN的PB-T50-RS上的特征图。我们可以看到,每个类别都形成了独立的聚类,这表明学习到的表征可以转移到现实世界的场景中。这进一步验证了我们的Point-BERT的有效性,它帮助Transformers学习三维物体的通用知识。我们还在图5中直观地显示了我们的基线Transformers和拟议的Point-BERT的学习曲线。可以看出,用我们的Point-BERT进行预训练,在合成数据集和真实世界数据集上的准确性和速度方面都显著提高了基线Transformers的性能。

5. 结论

我们提出了一种学习三维点云变形器的新范式,通过BERT式的预训练来学习点云的低层次结构信息和高层次语义特征。通过对几个三维点云任务的综合实验,包括物体分类、物体部分分割、小样本学习和转移学习,我们观察到Transformers在学习和泛化方面的显著改善。我们展示了标准Transformers在三维场景中的潜力,并期待着在三维领域对标准Transformers的进一步研究。

6. 更广泛的影响和局限性

    在本文中开发了一个学习三维点云Transformers的一般范式。目前,我们没有预见到任何负面的道德/社会影响。虽然本文提出的方法可以有效地提高标准Transformers在点云上的性能,但整个 "预训练+微调 "的过程是相当耗时的,就像其他Transformers的预训练方法一样[2, 8, 13]。提高训练过程的效率将是一个有趣的未来方向。




附录。

实施细节 A.

离散VAE架构。我们的dVAE由一个标记器和一个解码器组成。具体来说,标记器包含一个4层的DGCNN[60],而解码器包括一个4层的DGCNN和一个FoldingNet[65]。我们的dVAE的详细网络结构如表6所示,其中Cin和Cout是输入和输出特征的尺寸,Cmiddle是隐藏层的尺寸。Nout是每层中的点补丁的数量,K是kNN操作中的邻居数量。此外,FoldingLayer将二维网格与输入相连接,最后生成三维点云。优化。在训练阶段,我们同时考虑重建损失和分布损失。对于重建,我们遵循PoinTr[67],用地面真实点云监督粗粒度的预测和细粒度的预测。采用`1形式的倒角距离,其计算方法为:其中P代表预测点集,G代表地面实况点集。除重建损失外,我们按照[44]的方法,对预测的标记分布和统一先验之间的KL-分歧进行优化。最后的目标函数是实验设置。我们在表7中报告了dVAE训练的默认设置。dVAE的超参数:我们将可学习词汇的大小设置为8192,其中每个 "词 "是一个256的向量。dVAE的最重要和最敏感的超参数是LKL的α和Gumbelsoftmax的温度τ。我们在前18个历时(约10,000步)将α设置为0,并在随后的180个历时(约100,000步)使用余弦计划逐渐增加到0.1。至于τ,我们遵循[44],在前180个历时(约100,000步)使用余弦计划将其从1衰减到0.0625。B. Point-BERT结构。我们在实验中遵循标准的Transformer[9]架构。它包含一个Transformer块的堆栈[57],每个块由一个多头自我注意层和一个FeedForward网络(FFN)组成。在这两层中,采用了LayerNorm(LN)。多头注意。多头注意机制使网络能够共同考虑来自不同表示子空间的信息[57]。具体来说,给定输入值V、密钥K和查询Q,多头关注的计算方法是:其中Wo是最后一个线性层的权重。每个头的特征可以通过以下方式获得:其中Wi Q ,Wi K和Wi V是将输入投射到不同子空间的线性层,dk是输入特征的维度。前馈网络(FFN)。按照文献[57],采用两个具有ReLU激活和退出的线性层作为前馈网络。Point-BERT预训练。我们在表8中报告了我们在Point-BERT预训练实验中的默认设置。预训练是在ShapeNet上进行的。端到端微调。我们对Point-BERT模型的微调严格遵循监督模型的常见做法。端到端微调的默认设置见表9。变压器的超参数。我们将变形器中的块数设置为12。每个多头自留层中的头数设置为6。变形器层的特征维度被设置为384。我们遵循[53]采用随机深度策略,下降率为0.1。分类头:我们的分类头采用了两层的MLP,带有dropout。在分类任务中,我们首先将[CLS]标记的输出特征取出,并将其余节点的特征放大。然后,这两个特征被组合在一起,送入分类头。分类头的详细结构如表6所示,其中Ncls是某个数据集的类的数量。分割头:标准变形金刚中没有下采样层,使得基于单一分辨率的特征图进行密集预测具有挑战性。我们采用上采样-传播的策略来解决这个问题,包括两个步骤。1)基于几何的特征上采样和2)分层特征传播。我们从Transformer的不同层中提取特征,其中浅层的特征倾向于捕捉低层次的信息,而深层的特征涉及更多的高层次信息。为了对不同分辨率的特征图进行升采样,我们首先对原点云应用FPS,获得不同分辨率的点云。然后,我们将不同层的特征图相应地放大到不同的分辨率。

如图6左侧所示,'A'是密集点云中的一个点,'a'、'b'、'c'是其在稀疏点云中的最近点,距离分别为da、db和dc。我们在这些特征的加权基础上得到'A'的点特征,可以写为:其中pA代表'A'点的坐标。在获得不同分辨率的特征图后,我们从粗粒度的特征图向细粒度的特征图进行特征传播。如图6右侧所示,对于密集点云中的一个点'A',我们在较稀疏的点云中找到其最近的k个点。然后用一个轻量级的DGCNN[60]来更新 "A "的特征。随着分辨率的提高,我们分层次地更新特征,最后得到密集的特征图,它可以用于分割任务。分割头的详细结构如表6所示。