本文首发于微信公众号 CVHub,严禁私自转载或售卖到其他平台,违者必究。
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被提出,如BERT、MAE和CLIP等等。但在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和Point-MAE
- Data Desert
与图像和自由形式的语言相比,收集和标注3D数据更加困难,3D领域存在着严重的数据荒漠问题。这激发了跨模态Knowledge Transfer的使用。最近的一些工作如CrossPoint通过与其他模态进行联合训练以获得更有效的对比,或直接图像数据上预训练的2D Transformers进行微调如P2P。
- Pattern Difference
上表显示了语言、2D图像和3D点云的数据模式比较,我们可以看到:
- 与语言不同,3D点云通常是非结构化的,并且包含稀疏语义,这导致BERT风格的Tokenizer在点云上的离散识别学习更加困难。
- 2D图像规则地分布在网格上,而3D点云从物体表面不规则地采样,这种结构差异导致难以构建跨模态学习中双方的局部语义的对应关系。
因此,如何设计一个具有丰富语义的表征成为3D表征学习的关键。
预备知识
- 基于点云的Transformer
与2D图像相比,点云是无序的,因此很难实现固定位置的patch embeding。一般的方法是,使用最远点采样(FPS)获取位置中心用于位置编码,在各位置中心进行KNN聚类以获取局部patch,通过一个轻量级的pointnet获取局部embeding,进而使用标准的Transformer进行特征提取。
h 0 = [ E c l s , P o i n t N e t ( K N N ( F P S ( x ) ) ) ] h_0 = [E^{cls}, PointNet(KNN(FPS(x)))] h0 = [Ecls,PointNet(KNN(FPS(x)))]
E p o s = [ E p o s c l s , M L P ( x p o s ) ] E_{pos} = [E_{pos}^{cls}, MLP(x_{pos})] Epos = [Eposcls, MLP(xpos)]
h l ′ = M S A ( L N ( h l − 1 + E p o s ) ) + h l − 1 h'_l = MSA(LN(h_{l-1} + E_{pos})) + h_{l-1} hl′ = MSA(LN(hl−1+Epos)) + hl−1
h l = F F N ( L N ( h l ′ ) ) + h ′ h_l = FFN(LN(h'_{l})) + h'_{} hl = FFN(LN(hl′)) + h′
- 知识蒸馏——掩码数据建模的统一视角
掩码数据建模可视为denoising autoencoders(DAE) 的一种特殊情况,他通过 delete token 或将部分token替换为[Mask] Token的方式 Point-BERT 对原始数据进行扰动,并将完整数据或经过预处理的特征作为重建目标,在形式上可以视为一种特殊的带mask的蒸馏。在这种训练目标的设置下,模型将学习到token之间的一致性或相关性。用公式的方法书写,即为:
其中, m i m_i mi 为mask指示函数, L D L_D LD 表示某种度量函数, h S h_S hS、 h T h_T hT和 h S h_S hS、 h T h_T hT 分别表示学生模型、教师模型的 Encoder 和 Decoder。$ Z^M = \mathbb{1}(M) ⊙ e^{[M]} + \mathbb{1}(1 − M) ⊙ T , , ,e^{[M]}$表示为 ⊙ ⊙ ⊙ 为哈达玛积。
这种表示成功将各种掩码数据建模方法变成一个统一的形式。举例来说,对于语言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/chapter/10.1007/978-3-031-19827-4_41 ‘VPT’)或 Prefix-Tuning 的参数高效微调方法,仅训练prompt token、3D dVAE的encoder
和decoder
。第一阶段的训练loss
为:
其中, Q ϕ ( z ∣ p ) Q_ϕ(z|p) Qϕ(z∣p) 表示离散3D dVAE tokenizer, P ψ ( p ∣ z ) P_ψ(p|z) Pψ(p∣z)为dVAE decoder输出的离散token,$P_θ(z|p) $ 以自动编码器的方式重建输入点云。
第二阶段:我们将训练好的3D自编码器作为Tokenizer,用于通过掩蔽建模提取3D点云Transformer学生的潜在特征,将AutoEncoder中的跨模态知识通过掩码数据建模向学生网络进行蒸馏,即 $F_T = h_T ◦ g^{post} ◦ g^{2D} ◦ g^{pre} $ 作为教师网络, F S = h S ◦ f S F_S = h_S ◦ f_S FS=hS ◦ fS 作为学生网络。第二阶段的训练loss为:
其中,我们使用 L c o s ( s , t ) = 1 − s ⋅ t / ( ∥ s ∥ ⋅ ∥ t ∥ ) L_{cos}(s, t) = 1 − s · t/(∥s∥·∥t∥) Lcos(s,t)=1−s⋅t/(∥s∥⋅∥t∥) 作为teacher和student的度量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作为模型和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以及CLIP-FO3D,欢迎大家关注!
CVHub是一家专注于计算机视觉领域的高质量知识分享平台,全站技术文章原创率达99%,每日为您呈献全方位、多领域、有深度的前沿AI论文解决及配套的行业级应用解决方案,提供科研 | 技术 | 就业一站式服务,涵盖有监督/半监督/无监督/自监督的各类2D/3D的检测/分类/分割/跟踪/姿态/超分/重建等全栈领域以及最新的AIGC等生成式模型。关注微信公众号,欢迎参与实时的学术&技术互动交流,领取CV学习大礼包,及时订阅最新的国内外大厂校招&社招资讯!