Title: Autoencoders as Cross-Modal Teachers: Can Pretrained 2D Image Transformers Help 3D Representation Learning?
Paper: https://arxiv.org/abs/2212.08320
Code: https://github.com/RunpeiDong/ACT
导读
在过去的几年里,随着Transformer的普遍应用,NLP、2D vision和图文多模态在表征学习和预训练领域经历了井喷式的发展,大量的 foundational models[1]被提出,如BERT[2]、MAE[3]和CLIP[4]等等。但在3D表征学习中,该领域还相对落后,这让我们思考:
What makes 3D representation learning more challenging than 2D vision or NLP?
我们认为是以下三点导致的:
- Architecture Disunity
像PointNet
这样的开创性架构只能对3D坐标进行编码,而不适用于 NLP 和 2D 视觉中常用的掩蔽去噪自动编码(DAE)。Transformers 现在已经缩小了这一体系结构差距,这使得能够跨所有模态格式进行统一表示,并为扩展DAE以实现3D带来了巨大潜力,如Point-BERT[5]和Point-MAE[6]
- Data Desert
与图像和自由形式的语言相比,收集和标注3D数据更加困难,3D领域存在着严重的数据荒漠问题。这激发了跨模态Knowledge Transfer的使用。最近的一些工作如CrossPoint[7]通过与其他模态进行联合训练以获得更有效的对比,或直接图像数据上预训练的2D Transformers进行微调如P2P[8]。
- Pattern Difference
上表显示了语言、2D图像和3D点云的数据模式比较,我们可以看到:
- 与语言不同,3D点云通常是非结构化的,并且包含稀疏语义,这导致BERT风格的Tokenizer在点云上的离散识别学习更加困难。
- 2D图像规则地分布在网格上,而3D点云从物体表面不规则地采样,这种结构差异导致难以构建跨模态学习中双方的局部语义的对应关系。
因此,如何设计一个具有丰富语义的表征成为3D表征学习的关键。
预备知识
- 基于点云的Transformer
与2D图像相比,点云是无序的,因此很难实现固定位置的patch embeding。一般的方法是,使用最远点采样(FPS)获取位置中心用于位置编码,在各位置中心进行KNN聚类以获取局部patch,通过一个轻量级的pointnet获取局部embeding,进而使用标准的Transformer进行特征提取。
- 知识蒸馏——掩码数据建模的统一视角
掩码数据建模可视为denoising autoencoders(DAE) 的一种特殊情况,他通过 delete token 或将部分token替换为[Mask] Token的方式 Point-BERT 对原始数据进行扰动,并将完整数据或经过预处理的特征作为重建目标,在形式上可以视为一种特殊的带mask的蒸馏。在这种训练目标的设置下,模型将学习到token之间的一致性或相关性。用公式的方法书写,即为:
这种表示成功将各种掩码数据建模方法变成一个统一的形式。举例来说,对于语言BERT或者图像BEiT,教师模型为一个预训练好的文本tokenizer或离散VAE图像tokenizer,而decoder变成了一个非线性投影的softmax,度量函数则变成Cross-Entropy函数;对于MAE,教师模型变成一个同一映射(identity mapping),且encoder只接受可见token输入,度量函数变成MSE距离或者3D上的Chamfer距离。
方法
基于上述分析,我们提出ACT,将跨模式教师训练为自编码器,利用经过2D图像或自然语言预训练的基础Transformers作为跨模态教师,拥有深厚的知识和强大的表达能力。ACT的pipeline如下图所示:
第一阶段:我们将经过预训练的2D或语言Transformer迁移为3D自编码器,通过域迁移的方式,使用prompt tuning将跨模态知识迁移至3D几何结构。我们冻结了预训练的2D或语言Transformer block,类似 [VPT] (https://link.springer.com/cha...\_41 'VPT')或 Prefix-Tuning[9] 的参数高效微调方法,仅训练prompt token、3D dVAE的encoder
和decoder
。第一阶段的训练loss
为:
通过这种方式,3D中的数据荒漠问题得到了缓解。Transformer被用作通用的3D学习器,这缩小了在掩蔽建模表示学习方面的架构差距。通过简单地以自监督的方式将预训练的Transformer调整为3D数据的自动编码器,Transformer可以使用3D点云并将其编码为具有丰富语义的表示。为了保存和继承预先训练的基础知识,在该过程中使用了prompt tuning。因此,我们的ACT使预训练的Transformers自发地跨模态教师,为3D点云提供语义丰富的掩蔽建模目标。注意,Transformer可以编码任意长度的embedding,因此我们可以自由的迁移语言或2D Transformer blocks,直接接受3D的embedding序列进行特征编码。
实验
下表展示了我们在ScanObjectNN上了classification性能,包括Full-tuning、Liner和MLP-3三种配置,我们的ACT在迁移到ScanobjectNN分类任务的各种配置下均有大幅提升,这证明了跨模态教师作为自编码器的效果。
下表展示了我们在ModelNet40上了Few-Shot性能:
我们还在Scene Level中进行了预训练测试,我们以3DETR[10]作为模型和baseline,ACT在ScanNetV2上的3D detection效果如下表所示,可以看到ACT依然具有显著的性能提升。
讨论
- How does the 2D vision transformer understand 3D point clouds?
为了更好地理解2D Transformer如何通过AutoEncoder训练理解3D数据,我们研究了VIT-B在我们的ACT dVAE模型中使用的位置嵌入的效果。从下表中可以观察到:
- 在没有任何位置嵌入的情况下,预训练的VIT仍然可以学习可传递的3D特征。我们认为,这是因为位置几何信息已经包含在输入的3D坐标中,并且预训练的2D变换器可以纯粹通过几何特征处理3D数据,而没有明确的位置提示。
- 当使用仅具有2D xy平面坐标的位置嵌入时,精度显著提高了+0.89%。我们认为,2D位置嵌入是为了拟合冻结的图像变换器而学习的,使图像变换器能够以高发散性将3D输入编码到预训练的2D特征空间中。
- 对于用于位置嵌入的所有3D坐标,2D图像转换器成功地利用了额外的坐标信息来进行更好的特征编码。
- Teacher Choice
为了了解不同foundation model对于3D预训练的帮助,我们研究了Vision Transformer模型ViT、DeiT,MLP-based模型ResMLP、MLPMixer,语言模型BERT,以及VL模型CLIP。结果如下图所示,可以看到ViT-B取得了最佳效果,而BERT作为语言模型居然也带来了非常显著的提升。
- Visualization
- 3D Autoencoder
我们比较了基于2D Transformer的3D dVAE和Point-BERT 3D dVAE模型的重建结果。结果表明,我们的3D自动编码器可以重建物体的高质量细节。对于一些相对简单的对象,如第二行的矩形桌子,ACT和Point-BERT都可以很好地重建它们。然而,对于细节相对复杂的点云,如第三行中的架子和扶手椅,我们的方法可以重建更具有详细局部几何信息的对象。
- t-SNE
为了分析feature在预训练前后的分布变化,我们对预训练模型在ShapeNet以及下游模型在ModelNet以及ScanObjectNN上进行了t-SNE mainfold可视化,如图所示:
相关工作
相关后续工作包括ReCon[11]以及CLIP-FO3D[12],欢迎大家关注!
作者: 派派星
文章来源:CVHub
推荐阅读
- 华人团队开源指令精调的InstructBLIP多模态大模型
- 深度学习编译器之Layerout Transform优化
- 25FPS!全网首发 | 英伟达开放BEVFusion部署源代码,边缘端实时运行!!!
- PointPillar进阶之路 | PillarNeXt 一步一步优化改进PointPillars
- 在BEV、3D检测、2D检测、Lane检测的应用,量化与加速
- 全新YOLO模型YOLOCS | 改进YOLOv5的Backbone/Neck/Head
更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。