点击下方卡片,关注“3D视觉之心”公众号
>>点击进入→3D视觉之心技术交流群
引言
点云被广泛用于表示3D信息,可以表达丰富的几何信息。多功能性使得它们在各种应用场景中得到了广泛采用,包括自动驾驶、机器人技术和元宇宙。在点云理解的早期发展阶段,有许多相关工作提出来增强网络对点云的理解能力,其中网络通常需要从头开始进行有监督训练。然而,与2D视觉和NLP中的数据相比,点云数据更难注释,因为人工对点云分类更加困难。这导致了3D领域中出现了所谓的“数据荒漠”现象,限制了这些有监督方法的发展。最近,研究者们提出了许多自监督学习方法来缓解“数据荒漠”带来的负面影响,其中以Point-MAE为代表的Generative自监督学习范式最近发展迅速。Point-MAE是3D自监督学习领域十分重要的一项工作,也是很多后续工作的基础模型,其在点云领域得到了广泛应用。
Point-MAE的缺陷
掩码自编码器(Masked Autoencoders MAE)是一种自监督预训练方法,旨在通过在大量无标注数据中预训练,使模型学习到语义丰富的表征,从而迁移到下游任务中提升模型性能。MAE的架构具有明显的不对称性,包含一个编码器(encoder)和一个轻量级的解码器(decoder)。其典型的处理流程是将输入分割成若干patch,并在编码之前选择性地对其进行掩码。编码器仅接受可见patch作为输入,并附带patch的位置编码(Positional Embeddings PE)。解码器则接收编码过后的可见patch和掩码patch的位置编码进行输入样例的重建,经过预训练后,将encoder用于下游任务微调。
Point-MAE是首个把2D图像领域的MAE拓展到点云领域的工作,其将点云划分为多个patch,并对patch中的点进行归一化处理,归一化是通过减去相应中心的坐标并缩放点云实现的。Point-MAE所代表的是一类目前在点云自监督领域中应用广泛的掩码重建预训练范式。
然而,与2D MAE中图像patch的位置编码(图像patch的索引编号)不同的是,Point-MAE中点云patch的位置编码是由patch中心的坐标得到的,这些中心的坐标包含丰富的几何和语义信息。 因此,本文提出了一个问题:在点云领域,执行掩码重建时,是否应该像2D中那样直接提供掩码patch的位置编码给decoder用于样例重建?
本文通过一个有趣的实验解答了这个问题。本文将Point-MAE的掩码比例设置为100%,并进行掩码重建预训练(移除encoder),以验证仅通过将掩码patch的位置信息提供给decoder,是否能够重建出整个点云。出乎意料的是,尽管没有使用encoder的输出,经过预训练后的decoder依然能够很好地重建点云,结果如下图所示。
这个现象在2D MAE中是无法复现的,因为当掩码100%的图像,仅提供掩码patch的位置编码(即图像patch的索引编号)时,2D MAE无法识别图像(所有具有相同分辨率的图像共享相同的位置嵌入)。这种差异表明,相比于图像领域,点云领域patch的中心坐标至关重要。这也说明当前Point-MAE所采用的预训练范式在一定程度上是存在掩码重建捷径的,不利于encoder学习到语义丰富的表征,本文认为前文的问题答案是:掩码patch的中心(位置编码)不能直接提供给decoder,而应该以更加合理的方式利用它们。
对此,本文提出了PCP-MAE,即Learning to Predict Centers for Point Masked AutoEncoders。现有的基于MAE的方法(Point-MAE,ACT,ReCon,Point-FEMAE,I2P-MAE等)忽视了patch中心的重要性,直接将掩码中心泄漏给解码器。和它们不同的是,PCP-MAE很好地利用了patch中心,不仅执行点云重建,还引导模型学习预测掩码patch的中心位置编码,使用预测的中心替代真实的掩码中心。
代码仓库:https://github.com/aHapBean/PCP-MAE
PCP-MAE[1] 的核心思想如下:
在Point-MAE的基础上,本文提出了一个新颖的中心位置编码预测任务,旨在引导encoder不仅学习编码可见patch的表征,还要学习预测掩码patch的位置编码。
具体实现上,本文将可见patch和掩码patch同时输入到encoder中。可见patch(包含位置编码)通过自注意力机制在每个模块中进行编码;而掩码patch(不含位置编码)则通过交叉注意力机制,从可见patch和自身中获取位置编码信息。
此外,本文还引入了一个专门的目标函数,用于最小化预测的掩码位置编码与真实值之间的差异。预测的掩码patch位置编码将替代真实的位置编码,输入到decoder中。这一过程使得encoder不仅能够有效地编码可见patch,还能学习到可见和掩码patch中心之间的相互关系。通过这种方式,encoder能够推断出缺失的位置信息,从而学习到语义更加丰富的表征。
主要贡献如下:
本文指出了2D(图像)和3D(点云)在patch划分上的差异:在2D中,位置编码代表的是patch的索引编号,而在点云中,位置编码(PE)则表示patch中心的坐标,其中坐标信息比索引编号提包含了更加丰富的信息。在100%掩码比例下,点云能够通过解码器成功重建,这表明解码器不完全依赖于编码器学习到的表示也能完成掩码重建预训练。而这一现象在2D MAE中并不存在,表明现有基于MAE的点云自监督学习方法的掩码重建预训练是有缺陷的,存在捷径。
本文提出了PCP-MAE,它不仅用于点云重建,还通过引导网络学习预测掩码patch的中心,在避免直接泄漏中心信息的同时,使得encoder学习到的表征更加丰富。为此,提出了预测中心模块(PCM),该模块负责预测中心的位置编码,并与encoder共享参数,从而避免增加额外的参数量。
与其他基于MAE的方法相比,PCP-MAE仅引入了少量的额外参数和可接受的额外预训练时间,保持了非常高的预训练效率,如下图所示。 PCP-MAE的性能在某些基准上达到了SOTA。特别地,PCP-MAE在ScanObjectNN的三个基准上相比于Point-MAE分别提高了5.50%、6.03%和5.17%。
具体方法
PCP-MAE的框架如下图所示。在进行patch划分后,将中心和归一化的patch划分为可见部分和掩码部分,利用中心坐标得到位置编码,patch编码为tokens。编码器接收可见tokens和PE作为输入,执行自注意力操作。同时,权重共享的PCM(预测中心模块)执行交叉注意力(将掩码tokens作为查询,结合可见和掩码tokens作为键和值),从中获取知识以预测掩码patch的位置编码。CD-L2表示L2 Chamfer距离损失函数。
Patch生成与掩码
Patch生成:基于patch的学习范式已经被证明比直接处理整个点云更有效。本文采用该范式,通过Farthest Point Sampling (FPS) 和 K-Nearest Neighborhood (KNN)算法将输入点云划分为多个point patch。具体地,给定一个包含个点的点云 ,首先应用FPS从个点中采样出个中心点,然后使用KNN选择每个中心点的个最近邻点,组成个point patch :
点云patch中的点通过其对应的中心点进行归一化。
掩码:使用预定义的掩码比例,对点云patch进行全局随机掩码。掩码后的patch表示为,可见的patch表示为,其中和分别表示下取整和上取整函数。对应的中心点分别为和。
嵌入:可见的patch 通过轻量级的PointNet进行嵌入,得到编码后的tokens ,具体如下:
对每个中心点的坐标计算固定的sin-cos位置编码(sin-cos PE):
其中。然后将、和连接,得到。接着将该sin-cos位置嵌入输入到可学习的MLP模块(Positional Embedding Module, PEM)中,得到最终的PE。这种方式与Point-MAE中的操作不同,通过sin-cos PE可以为位置提供更加稀疏的信息,从而更适合作为预测任务的目标。过程可以表示为:
编码器与PCM
本文采用一个由标准Transformer模块组成的编码器。给定编码后的可见tokens 、掩码tokens 和可见位置编码 ,编码器通过自注意力编码,同时利用掩码tokens 进行交叉注意力,以从可见和掩码表示中获取掩码中心的信息。需要注意的是,自注意力和交叉注意力共享Transformer块的参数,以避免增加额外的参数。
可见tokens编码:可见部分的潜在表示通过将和输入编码器,并使用自注意力机制获得。过程可表示为:
具体地,第个Transformer块中的自注意力计算为:
其中,,,、、为可学习的参数。注意,。
学习预测中心的模块(PCM):PCM与编码器共享参数,并且仅接受掩码patch 作为输入。除了共享的Transformer块参数外,PCM还引入了一个MLP,用于将潜在的预测投影到掩码中心的嵌入。PCM的目标是通过从可见和掩码表示中获取信息,恢复掩码patch的中心。可以将其理解为,在给定局部模式(没有告知中心位置)和可见的全局模式的情况下,任务是从已知的局部模式中获取局部模式的中心位置。交叉注意力机制如下:
具体地,对于PCM中的第个Transformer块,交叉注意力计算为:
其中,,,、为共享参数。将和连接得到,同样操作也适用于和。注意,是PCM的输入,即。
解码器
解码器同样由Transformer模块组成,用于点云的掩码重建。在现有基于MAE的方法(如Point-MAE、ReCon、Point-FEMAE)中,解码器通常接受、、作为输入,并结合可学习的掩码token。具体形式为:
其中,掩码patch的中心直接提供给解码器。然而,点云中patch的中心非常重要。因此,用代替,即使用网络学习到的结果,但不直接泄漏位置编码的真实值给解码器。过程可以写成:
其中,表示停止梯度操作,。停止梯度用于防止解码器通过反向传播修改PCM的权重,进而找到重建的捷径(详见消融实验部分)。最后,沿用Point-MAE的方法,本文使用一个包含MLP层的映射头来预测输入点云中归一化掩码patch中点的坐标:
目标函数
目标函数由两部分组成,用来衡量所预测掩码patch的中心和重建每个掩码patch中点的坐标和真值之间的差异。可以表示为:
其中,是一个缩放因子。
中心预测:本文使用损失函数计算预测中心的损失:
由于生成点云patch时通过归一化移除了中心信息,因此PCM无法通过、和找到恢复掩码patch中心的捷径。恢复并非易事,因为这要求PCM能够很好地编码掩码patch,并且要求可见表示不仅包含自身的信息,还要能够跨patch地包含掩码patch的中心信息。换句话说,最小化使得可见表示能够包含足够的信息来推断掩码patch中心的分布,这是Point-MAE中是所做不到的。
点云重建:重建损失使用 Chamfer Distance损失函数计算:
实验效果
总结一下
本文首先指出了了图像和点云中位置编码的差异,发现直接泄漏掩码中心会使得Point-MAE和现有基于Point-MAE的方法在预训练阶段变得 trivial,即不使用编码器,解码器也能完成重建。为了解决这个问题,本文提出了PCP-MAE,它引入了一个新的预训练目标,指导编码器预测掩码patch的中心信息,从而使编码器能够学习到更多语义信息。为此,本文提出了一个预测中心模块(PCM),该模块使用交叉注意力机制并与编码器共享参数。通过在自监督学习基准上的大量实验,展示了其提出的方法相比于Point-MAE具有更优的性能,并在多个任务上达到了SOTA。
局限性与未来工作:PCP-MAE的局限性主要体现在两个方面。首先,PCP-MAE是一个单模态自监督方法,而目前3D点云数据集的规模较小,这限制了该方法的广泛应用。其次,PCP-MAE是一种Generative学习范式,而没有结合Contrastive学习范式的优势。未来的研究可以基于PCP-MAE进行多模态扩展、或者是提出一个结合生成式和对比学习的混合PCP-MAE模型。
参考
[1] PCP-MAE: Learning to Predict Centers for Point Masked Autoencoders
本文仅做学术分享,论文汇总于『3D视觉之心知识星球』,欢迎加入交流!
扫码添加小助理进群
3D视觉之心知识星球主打3D感知全技术栈学习,星球内部形成了视觉/激光/多传感器融合SLAM、传感器标定、点云处理与重建、视觉三维重建、NeRF与Gaussian Splatting、结构光、工业视觉、高精地图等近15个全栈学习路线,每天分享干货、代码与论文,星球内嘉宾日常答疑解惑,交流工作与职场问题。