Masked Autoencoders for Point Cloud Self-supervised Learning 论文精读

题目:Masked Autoencoders for Point Cloud Self-supervised Learning

论文地址:ECCV 2022 2203

题目:用于点云自监督学习的掩码自编码器

Masked Autoencoders 掩码自编码器
Point Cloud Self-supervised Learning 点云自监督学习

Abstract 摘要

  作为一种极具潜力的自监督学习方案,掩码自编码在自然语言处理和计算机视觉领域取得了显著进展。受此启发,我们提出一种简洁的点云自监督学习掩码自编码器方案,旨在解决点云掩码自编码中的关键问题,包括骨干网络架构、位置信息和不均匀信息密度等挑战。具体而言,我们将输入点云划分为不规则点块,并以高比例随机掩码这些点块。然后,基于标准Transformer构建的自编码器(采用非对称设计和转移掩码标记操作)从未掩码点块中学习高级潜在特征,旨在重建掩码点块。大量实验表明,我们的方法在预训练阶段高效,并且在各种下游任务上具有良好的泛化能力。具体来说,我们的预训练模型在ScanObjectNN上达到85.18%的准确率,在ModelNet40上达到94.04%的准确率,超越了所有其他自监督学习方法。我们表明,通过我们的方案,一个完全基于标准Transformer的简单架构可以超越专门用于监督学习的Transformer模型。我们的方法在小样本目标分类中也使当前最优准确率提升了1.5%-2.3%。此外,我们的工作启发了将语言和图像领域的统一架构应用于点云领域的可行性。代码可在https://github.com/Pang-Yatian/Point-MAE获取。

1 Introduction 引言

  自监督学习从无标签数据中学习潜在特征,而非基于人为定义的标注构建表征。通常的做法是设计一个前置任务对模型进行预训练,然后在下游任务上进行微调。 自监督学习依赖的标注数据较少,在自然语言处理(NLP) 、计算机视觉领域取得了显著进展 。

1.1 掩码自编码器用于自然语言处理(BERT)和计算机视觉(MAE)

  其中,如图1所示的掩码自编码,在语言和图像领域都是一种很有前景的方案。它随机掩码输入数据的一部分,并采用自编码器来重建与原始掩码内容对应的显式特征(如像素)或隐式特征(如离散标记)。由于掩码部分不提供数据信息,这个重建任务使自编码器能够学习到未掩码部分的高级潜在特征。此外,掩码自编码的强大能力得益于其采用Transformer架构的自编码器骨干网络。例如,NLP中的BERT计算机视觉中的MAE都应用掩码自编码,并采用标准Transformer架构作为自编码器骨干网络,以实现领先的性能。
在这里插入图片描述

1.2 掩码自编码器用于点云自监督学习

  掩码自编码的思想也适用于点云自监督学习,因为点云本质上与语言和图像有共同属性(见图1)。具体来说,承载信息的基本元素(即点、词汇、像素)不是相互独立的。相反,相邻元素形成有意义的子集来呈现局部特征。这些局部特征完整的元素集共同构成全局特征。因此,将点子集嵌入为标记后,点云可以像语言和图像一样进行处理。此外,考虑到点云数据集相对较小,掩码自编码作为一种自监督学习方法,可以自然地满足Transformer架构(自编码器骨干网络)对大量数据的需求

1.2.1 Point - BERT

  确实,最近的工作Point - BERT尝试了一种类似于掩码自编码的方案。它提出一种类似BERT的预训练策略,即掩码点云的输入标记,然后采用Transformer架构预测掩码标记的离散标记。
  ①然而,这种方法相对复杂,因为在预训练前需要训练一个基于DGCNN的离散变分自编码器(dVAE) ,并且在预训练期间严重依赖对比学习数据增强
  ②此外,掩码标记及其输入在预训练期间从Transformer的输入阶段就开始处理,这会导致位置信息过早泄露,且计算资源消耗高。

1.2.2 本文:点云掩码自编码器

  与该方法不同,更重要的是,我们引入点云掩码自编码,旨在设计一种简洁高效的掩码自编码器方案。

1.3 引入点云掩码自编码的挑战

  为此,我们首先从以下几个主要方面分析引入点云掩码自编码的挑战:

  • 缺乏统一的Transformer架构:与NLP中的Transformer和计算机视觉中的视觉Transformer(ViT)相比,点云领域的Transformer架构研究较少且相对多样,主要原因是小型数据集无法满足Transformer对大量数据的需求。不同的先前方法要么使用定制的Transformer,要么采用额外的非Transformer模型辅助(例如Point - BERT使用额外的DGCNN ),我们旨在完全基于标准Transformer构建自编码器骨干网络,使其成为点云领域潜在的统一架构。
  • 掩码标记的位置嵌入导致位置信息泄露:在掩码自编码器中,每个掩码标记需要用一个共享权重的可学习掩码标记替换。所有掩码标记在输入数据中都需通过位置嵌入提供其位置信息。然后,经过自编码器处理后,每个掩码标记用于重建输入数据中对应的掩码部分。提供位置信息在语言和图像领域不是问题,因为它们不包含位置信息。而点云数据天然包含位置信息,掩码标记的位置信息泄露会使重建任务难度降低,这对自编码器学习潜在特征不利。我们通过将掩码标记从自编码器编码器的输入转移到解码器的输入来解决这个问题。这会延迟位置信息的泄露,使编码器能够专注于从未掩码部分学习特征。
  • 点云与语言和图像的信息密度不同:语言包含高密度信息,而图像包含大量冗余信息 。在点云中,信息密度分布相对不均匀。构成关键局部特征(如尖锐的角和边)的点,其信息密度远高于构成不太重要局部特征(如平坦表面)的点。换句话说,如果被掩码,信息密度高的点在重建任务中更难恢复。这在重建示例中可以直接观察到,如图2所示。以图2最后一行为例,掩码后的桌面(左)的重建相对容易,而掩码后的摩托车车轮(右)的重建则困难得多。

  尽管点云的信息密度不均匀,但我们发现高比例(60%-80%)的随机掩码效果很好,这与图像的情况惊人地一致。这表明在信息密度方面,点云与图像更相似,而非语言。
在这里插入图片描述

1.4 Point - MAE

  受上述分析的启发,我们通过设计一种简洁高效的掩码自编码器方案,提出了一种新的点云自监督学习框架,称为Point - MAE。

1.4.1 Point - MAE的结构:点云掩码+嵌入模块+一个自编码器

  如图3所示,我们的Point - MAE主要由点云掩码嵌入模块,以及一个自编码器组成。输入点云被划分为不规则的点块,并以高比例随机掩码,以减少数据冗余。然后,自编码器从未掩码的点块中学习高级潜在特征,旨在重建坐标空间中的掩码点块。
在这里插入图片描述

1.4.2 自编码器的结构

  具体来说,我们的自编码器骨干网络完全由标准Transformer模块构建,并采用非对称的编码器 - 解码器结构
  编码器仅处理未掩码的点标记。然后,将编码后的标记和掩码标记作为输入,带有简单预测头的轻量级解码器重建掩码点块。与在编码器输入阶段就处理掩码标记相比,将掩码标记转移到解码器可显著节省计算资源,更重要的是,避免位置信息过早泄露

1.4.3 论文方法有效

  我们的方法是有效的,预训练模型在各种下游任务上具有良好的泛化能力。在目标分类任务中,我们的Point - MAE在最具挑战性的真实世界数据集ScanObjectNN上达到85.18%的准确率,在干净目标数据集 ModelNet40上达到94.04%的准确率,超过了所有其他自监督学习方法。同时,Point - MAE超越了所有专门用于监督学习的Transformer模型。在小样本目标分类中,Point - MAE在ModelNet40的不同设置下,相比当前最优准确率显著提升了1.5%-2.3%。当泛化到部件分割任务时,Point - MAE将基线平均交并比(IoU)大幅提高了1%。

1.5 论文的主要贡献

  我们的主要贡献可总结如下:

  • 我们提出一种新的点云自监督学习掩码自编码器方案,解决了骨干网络架构、位置信息过早泄露以及点云信息密度等关键问题。我们的方法简洁高效,在各种下游任务上具有高泛化能力,超越了所有其他自监督学习方法。
  • 我们表明,通过我们的方法,一个完全基于标准Transformer的简单架构可以超越专门用于监督学习的Transformer模型。这个结果表明,标准Transformer可以作为点云领域潜在的统一架构。
  • 从多模态学习的角度来看,我们的工作启发了这样一种观点:来自语言,特别是图像领域的统一架构,如掩码自编码器,在配备特定模态的嵌入模块和特定任务的输出头后,也适用于点云领域。我们希望我们的领域能够通过与其他模态数据的联合学习进一步发展。

2 Related Work

2.1 Self-supervised Learning 自监督学习

  在机器学习领域,自监督学习(SSL)被定义为“机器根据任何已观察到的部分来预测其输入的任何部分” 。其主要思想可总结为:
  a) 监督标签由数据自身生成,而非人工标注;
  b) 模型从数据的一部分预测另一部分 。这个过程通常通过设计一个前置任务来实现,从而减轻对人工标注数据的需求。

2.1.1 SSL for NLP and Image 自然语言处理和图像领域的自监督学习

  在自然语言处理领域,自监督学习发展良好。生成式自监督方法(如BERT )通过设计掩码输入标记的前置任务,并预训练模型来预测原始词汇,取得了巨大成功。
  在图像计算机视觉领域,对比式自监督方法(如 ) 旨在判别不同增强图像之间的相似程度。在生成式自监督方法占据主导地位之前,这些对比式方法一直占据主导,直到最近生成式自监督方法[17,49,45]取得了更具竞争力的性能。例如,==MAE[17]==随机掩码输入图块,并预训练模型在像素空间中恢复掩码图块。

2.1.2 SSL for Point Cloud 点云领域的自监督学习

  自监督学习在点云表征学习方面也得到了广泛研究 。前置任务相对多样
  ①其中,DepthContrast设置实例判别任务。两种增强版本的点云进行对比。
  ②OcCo尝试从相机视角下的遮挡点云恢复原始点云。
  ③IAE采用自编码器从增强输入中重建隐式特征。
  ④最近的工作Point - BERT提出一种类似BERT的预训练策略,即掩码输入标记,并借助dVAE 预测掩码部分的离散标记
  与先前的方法不同,我们尝试为点云自监督学习设计一种简洁的方案。

2.2 Autoencoders 自编码器

2.2.1 基础的自编码器

  一般来说,自编码器由一个编码器和一个解码器组成。编码器负责将输入编码为高级潜在特征,然后解码器对潜在特征进行解码,旨在重建输入。优化目标是使重建数据尽可能与原始输入相似,例如采用均方误差作为度量。

2.2.2 进阶:去噪自编码器

  具体而言,我们的方法属于去噪自编码器类别。去噪自编码器的主要思路是通过引入输入噪声来增强模型的鲁棒性

2.2.3 相同原理,通过掩码操作引入输入噪声:掩码自编码器

  遵循相同的原理,掩码自编码器通过掩码操作引入输入噪声。例如,在自然语言处理中,BERT采用掩码语言建模。它从输入中随机掩码标记,然后应用自编码器预测与掩码标记对应的词汇。在计算机视觉中,MAE和SimMIM都提出了类似的掩码图像建模方法,即随机掩码输入图像图块,然后使用自编码器在像素空间中预测被掩码的图块。
  受上述思路启发,我们的工作旨在将掩码自编码器引入点云领域。

2.3 Transformers Transformer

  Transformer[40]通过自注意力机制对输入的全局依赖关系进行建模,在自然语言处理领域占据主导地位 。
  自ViT 以来,Transformer架构在计算机视觉领域也广受欢迎 。然而,作为掩码自编码器的骨干网络,用于点云表征学习的Transformer架构发展尚不充分
  ①PCT [16]设计了一个专门的输入嵌入层,并对Transformer层中的自注意力机制进行了修改。
  ②Point - Transformer [59]同样对Transformer模块进行了修改,并在Transformer层之间使用额外的聚合操作
  ③最近的工作Point - BERT [54]引入了标准的Transformer架构,但在预训练时需要DGCNN [44]的协助
与先前的工作不同,我们提出一种完全基于标准Transformer的架构。

3 Point-MAE

  我们旨在为点云自监督学习设计一种简洁高效的掩码自编码器方案。图3展示了我们提出的Point - MAE的总体方案。输入点云首先经过一个掩码嵌入模块。然后采用基于标准Transformer的自编码器,包括一个简单的预测头,来重建输入点云的掩码部分。

3.1 Point Cloud Masking and Embedding 点云掩码与嵌入

  与计算机视觉中可自然划分为规则图块的图像不同,点云由三维空间中无序的点组成。基于这一特性,我们通过三个阶段来处理输入点云:点块生成掩码嵌入

3.1.1 Point Patches Generation 点块生成

  按照Point - BERT[54]的方法,我们将输入点云划分为不规则的点块(可能会有重叠)。首先使用最远点采样(FPS)k近邻(KNN)算法

3.1.1.1 最远点FPS采样选取n个中心点

  具体来说,给定一个包含 p p p个点 X i ∈ R p × 3 X^i \in \mathbb{R}^{p \times 3} XiRp×3的输入点云,通过FPS算法对中心点(CT)进行采样,从点块中选取 n n n个点 。
C T = F P S ( X i ) , C T ∈ R n × 3 CT = FPS(X^i),\quad CT \in \mathbb{R}^{n \times 3} CT=FPS(Xi),CTRn×3

3.1.1.2 通过KNN算法,选取中心点周围k个最近邻点,组成点块

  基于中心点 C T CT CT,KNN算法从输入点云中选取 k k k个最近邻点,以形成对应的点块 P P P
P = K N N ( X i , C T ) , P ∈ R n × k × 3 P = KNN(X^i, CT),\quad P \in \mathbb{R}^{n \times k \times 3} P=KNN(Xi,CT),PRn×k×3

3.1.1.3 点块表示:每个点都相对于其中心点的归一化坐标来表示

  需要注意的是,对于点块而言,每个点都通过相对于其中心点的归一化坐标来表示。这样能带来更好的收敛效果。

3.1.2 Masking 掩码
3.1.2.1 分别进行掩码

  考虑到点块可能存在重叠,我们分别对它们进行掩码操作,以确保每个点块中的信息完整。

3.1.2.2 使用掩码比例,掩码一定数量的块,并作为重建的真值

  使用掩码比例 m m m,被掩码的点块集合表示为 P n t ∈ R m × n × k × 3 P_{nt} \in \mathbb{R}^{m \times n \times k \times 3} PntRm×n×k×3这些点块将作为重建的基础真值

3.1.2.3 掩码策略:高比例的随机掩码效果好(4.3节有消融实验)

  至于掩码策略,我们发现高比例(60% - 80%)的随机掩码在我们的方法中效果良好,详见4.3节

3.1.3 Embedding 嵌入
3.1.3.1 被掩码的点块:掩码标记

  对于每个被掩码的点块,我们用一个共享权重的可学习掩码标记来替换它。我们将掩码标记的全集表示为 T m ∈ R m × n × C T_{m} \in \mathbb{R}^{m \times n \times C} TmRm×n×C,其中 C C C是嵌入维度。

3.1.3.2 未被掩码的可见点块:可见标记
3.1.3.2.1 可学习的线性投影方式将其展平并嵌入

  对于未被掩码的可见点块,我们采用一种可学习的线性投影方式将其展平并嵌入,这与视觉Transformer(ViT)类似。

3.1.3.2.2 一种更合理的嵌入方法:采用带权重的PointNet

  然而,我们认为线性嵌入不符合排列不变性原则。因此,我们采用一种更合理的嵌入方法,即采用带权重的PointNet,它主要由多层感知机(MLP)最大池化层组成。这样,可见点块 P v ∈ R ( 1 − m ) × n × k × 3 P_{v} \in \mathbb{R}^{(1 - m) \times n \times k \times 3} PvR(1m)×n×k×3 就被嵌入为可见标记 T v T_{v} Tv
T v = P o i n t N e t ( P v ) , T v ∈ R ( 1 − m ) × n × C T_{v} = PointNet(P_{v}),\quad T_{v} \in \mathbb{R}^{(1 - m) \times n \times C} Tv=PointNet(Pv),TvR(1m)×n×C

3.1.3.3 为嵌入标记提供中心点的位置:位置嵌入

  考虑到点块是用归一化坐标表示的,为嵌入标记提供中心点的位置信息至关重要。位置嵌入(PE)的一种简单方法是使用可学习的MLP将中心坐标映射到嵌入维度,遵循之前的工作[54,59]。
  需要注意的是,我们在自编码器中分别为编码器和解码器引入了两个单独的位置嵌入。 下一节将详细介绍。

3.2 Autoencoder’s Backbone 自编码器骨干网络

  我们的自编码器骨干网络完全基于标准Transformer,并采用非对称的编码器 - 解码器设计
  自编码器的最后一层采用一个简单的预测头,以实现重建目标。

3.2.1 Encoder-decoder 编码器 - 解码器
3.2.1.1 编码器

  我们的编码器由标准Transformer模块组成,仅对可见标记 T v T_{v} Tv进行编码,不处理掩码标记 T m T_{m} Tm。编码后的标记记为 T e T_{e} Te。此外,在每个Transformer模块中都添加了位置嵌入,以提供位置信息。
T e = E n c o d e r ( T v ) , T e ∈ R ( 1 − m ) n × C T_{e} = Encoder(T_{v}),\quad T_{e} \in \mathbb{R}^{(1 - m)n \times C} Te=Encoder(Tv),TeR(1m)n×C

3.2.1.2 解码器

  我们的解码器与编码器类似,但Transformer模块数量较少。它 以编码后的标记 T e T_{e} Te掩码标记 T m T_{m} Tm 作为输入,并为所有标记添加完整的位置嵌入,从而提供位置信息。经过处理后,解码器仅输出解码后的掩码标记 H m H_{m} Hm ,并将其输入到后续的预测头。编码器 - 解码器结构公式如下:
H m = D e c o d e r ( c o n c a t ( T e , T m ) ) , H m ∈ R m n × C H_{m} = Decoder(concat(T_{e}, T_{m})),\quad H_{m} \in \mathbb{R}^{mn \times C} Hm=Decoder(concat(Te,Tm)),HmRmn×C

3.2.1.3 本文的编码器-解码器结构

※掩码标记转移到轻量级解码器中处理,而不是从编码器的输入阶段就开始处理
  在我们的编码器 - 解码器结构中,我们将掩码标记转移到轻量级解码器中处理,而不是从编码器的输入阶段就开始处理。这种设计有两个好处。

3.2.1.3.1 优点1:减少编码器输入tokens数量,节省计算资源

  首先,由于我们使用高掩码比例,转移掩码标记显著减少了编码器的输入标记数量。因此,我们可以节省计算资源,因为Transformer的计算复杂度是二次的。

3.2.1.3.2 优点2:避免位置信息过早泄露给编码器,使编码器能够更好地学习潜在特征

  更重要的是,将掩码标记转移到解码器可以避免位置信息过早泄露给编码器,从而使编码器能够更好地学习潜在特征(详见4.3节)。

3.2.2 Prediction Head 预测头

  作为骨干网络的最后一层,预测头旨在在坐标空间中重建被掩码的点块。我们简单地使用一个全连接(FC)层作为预测头。将解码器的输出 H m H_{m} Hm输入预测头,预测头将其投影为一个向量,该向量的维度与点块的总坐标数相同。然后通过重塑操作,得到预测的被掩码点块 P p r e P_{pre} Ppre
P p r e = R e s h a p e ( F C ( H m ) ) , P p r e ∈ R m n × k × 3 P_{pre} = Reshape(FC(H_{m})),\quad P_{pre} \in \mathbb{R}^{mn \times k \times 3} Ppre=Reshape(FC(Hm)),PpreRmn×k×3

3.3 Reconstruction Target

  我们的重建目标恢复每个被掩码点块中点的坐标。给定预测的点块 P p r e P_{pre} Ppre 和真实值 P g t P_{gt} Pgt ,我们使用 l 2 l_2 l2 倒角距离来计算重建损失:
L = 1 ∣ P p r e ∣ ∑ a ∈ P p r e min ⁡ b ∈ P g t ∥ a − b ∥ 2 2 + 1 ∣ P g t ∣ ∑ b ∈ P g t min ⁡ a ∈ P p r e ∥ a − b ∥ 2 2 L = \frac{1}{|P_{pre}|} \sum_{a \in P_{pre}} \min_{b \in P_{gt}} \|a - b\|_2^2 + \frac{1}{|P_{gt}|} \sum_{b \in P_{gt}} \min_{a \in P_{pre}} \|a - b\|_2^2 L=Ppre1aPprebPgtminab22+Pgt1bPgtaPpreminab22

4 Experiments 实验

  我们使用Point - MAE进行了以下实验:
   a) 我们在ShapeNet训练集上对模型进行预训练
   b) 我们在各种下游任务上评估预训练模型,包括目标分类、小样本学习和部件分割。
   c) 我们研究不同的掩码策略,并展示掩码策略对迁移学习的影响。
  在Point - MAE中,对于不同分辨率的输入点云,我们通过线性缩放将其划分为不同数量的点块。以典型的包含 p = 1024 p = 1024 p=1024个点的输入点云为例,我们将其划分为 n = 64 n = 64 n=64点块。对于KNN算法,我们设置 k = 32 k = 32 k=32 ,以保持每个点块中的点数恒定。
  在自编码器骨干网络中,编码器有12个Transformer模块,而解码器有4个Transformer模块。每个Transformer模块有384个隐藏维度和6个头。Transformer模块中的MLP比例设置为4。

4.1 Pre-training Setup 预训练设置

4.1.1 预训练的数据集:仅在ShapeNet的训练集上训练

  ShapeNet数据集包含约51,300个干净的三维模型,涵盖55个常见目标类别。我们将该数据集划分为训练集和验证集,但仅在训练集上进行预训练

4.1.2 输入点云:对每个实例进行最远点采样选取1024个点

  对于每个实例,我们通过最远点采样(FPS) 选取1024个点作为输入点云。

4.1.3 数据增强:仅采用随机缩放和随机平移

  需要注意的是,在预训练过程中,我们仅采用标准的随机缩放随机平移进行数据增强。

4.1.4 预训练细节

  关于预训练细节,我们使用AdamW优化器和余弦退火学习率衰减策略。初始学习率设为0.001,权重衰减为0.05。我们对模型进行300个epoch的预训练,批量大小为128。

4.1.5 可视化结果

固定掩码比例预训练模型在ShapeNet不同掩码比例验证集的重建结果
  为展示我们方法的有效性,我们在图4中可视化了在ShapeNet验证集上的重建结果。模型在掩码比例为60% 的情况下进行预训练,但它能够重建具有不同掩码比例的输入。这表明我们的模型具备良好的泛化能力,因为它能够很好地学习高级潜在特征。此外,与Point - BERT相比,我们的方法将预训练速度提升了1.7倍。
在这里插入图片描述

4.2 Downstream Tasks 下游任务

4.2.1 Object Classification on Real-World Dataset 真实世界数据集上的目标分类
4.2.1.1 验证高泛化能力:具有挑战性的真实世界数据集ScanObjectNN

  在点云自监督学习(SSL)中,主要关注点之一是设计一个具有高泛化能力的模型。具体来说,用于预训练的常用数据集ShapeNet[5]只包含干净的对象模型,没有任何场景上下文,如背景。受此启发,我们在具有挑战性的真实世界数据集ScanObjectNN上评估预训练模型,该数据集包含约15000个来自15个类别的目标,这些目标是从具有杂乱背景的真实室内场景数据中扫描得到的。

4.2.1.2 三个变体数据集:OBJ - BG、OBJ - ONLY和PB - T50 - RS

  我们在三个变体数据集上进行实验:OBJ - BG、OBJ - ONLY和PB - T50 - RS。补充材料中提供了详细信息。注意在测试时未使用投票方法和数据增强。结果列于表1。我们的Point - MAE在三个变体上相比基线分别有较大提升,基线准确率分别为10.16%、7.74%和7.94% 。在最难的变体PB - T50 - RS上,我们的模型达到85.18%的准确率,比Point - BERT高出2.11%。尽管是在干净目标上进行预训练,我们的Point - MAE在真实世界数据上仍展现出强大的泛化能力
在这里插入图片描述

4.2.2 Object Classification on clean objects dataset 干净目标数据集上的目标分类
4.2.2.1 干净目标数据集上进行训练和测试:ModelNet40数据集

  我们在ModelNet40数据集上评估预训练模型的目标分类性能。ModelNet40由12,311个干净的三维CAD模型组成,涵盖40个目标类别。我们遵循标准流程,将ModelNet40划分为9843个训练集模型2468个测试集模型

4.2.2.2 训练和测试细节

  训练期间采用标准随机缩放和随机平移进行数据增强。为保证公平比较,测试时我们也使用标准投票方法。补充材料中提供了更多详细信息。
  实验结果列于表2。为保证公平比较,所有报告的方法都使用1024个点作为输入,且仅包含坐标信息,无其他常规信息。
  我们的Point - MAE达到93.8%的准确率,比从头开始训练(91.4%)高出2.4%。与其他自监督学习方法相比,我们的Point - MAE也取得了领先的性能。
在这里插入图片描述

4.2.2.3 基于Transformer vs 基于DGCNN

  具体而言,我们基于标准Transformer的骨干网络超越了使用更强大的DGCNN作为骨干网络的IAE(如表2所示,DGCNN从头开始训练时准确率为92.9%,比Point - MAE低0.9% )。

4.2.2.4 Point - MAE vs Point - BERT

  此外,Point - MAE比复杂的Point - BERT高出0.6%。这表明我们的改进效果显著。
  由于ModelNet40是相对较小的数据集,我们的方法还超越了所有专门用于监督学习的Transformer模型。此外,当输入为8192个点时,我们的Point - MAE达到94.04%的准确率

4.2.3 Few-shot Learning 小样本学习

  我们参照先前的研究,在ModelNet40数据集上进行小样本学习实验,采用n - way,m - shot设置。其中,n是从数据集中随机选择的类别数量m是为每个类别随机采样的目标数量。我们使用上述提到的n×m个目标进行训练。测试时,我们从n个类别中每个类别随机采样20个未见目标用于评估
  表3展示了n∈{5, 10}且m∈{10, 20}设置下的结果。按照标准流程,我们对每个设置进行10次独立实验,并报告平均准确率及标准差。我们的Point - MAE在四种设置下,相比当前最优准确率显著提升了1.5% - 2.3%,且标准差更小。
在这里插入图片描述

4.2.4 Part Segmentation 部件分割
4.2.4.1 数据集:ShapeNetPart

  我们在ShapeNetPart数据集上评估Point - MAE的表征学习能力,该数据集包含涵盖16个类别的16,881个目标。我们参照先前的研究,为每个目标采样2048个点作为输入,这会生成128个点块

4.2.4.2 分割头+学习特征

  我们的分割头相对简单,不使用任何传播操作或DGCNN。为保证公平比较,我们的分割头与Point - BERT的权重相近,并且也使用Transformer模块第4层、第8层和第12层的学习特征。我们分别连接这三层特征,然后采用平均池化和最大池化来获取两个全局特征。
连接后的特征表示128个中心点的特征,需要上采样到2048个输入点以获得2048个点的逐点特征
  此外,连接后的特征表示128个中心点的特征,在向上采样到2048个输入点以获取每个点的特征后,使用多层感知机(MLP)来预测每个点的标签。补充材料中提供了更多详细信息。注意在测试时未使用投票方法和数据增强。
  如表4所示,我们报告所有实例的平均交并比(mIoU)以及每个类别的IoU。我们的Point - MAE达到86.1%的mIoU,比基线高出1% 。我们带有简单分割头的Point - MAE也优于使用DGCNN和传播操作的Point - BERT。
在这里插入图片描述

4.3 Ablation Study 消融实验

4.3.1 Masking Strategy 掩码策略

  为找到适用于我们方法的掩码策略,我们对比了两种不同掩码比例的掩码类型。测试时不使用投票方法。表5展示了在ModelNet40上的重建损失和微调准确率。我们还在图5中可视化了不同掩码策略的重建结果。
在这里插入图片描述
在这里插入图片描述

4.3.1.1 块掩码

  块掩码类型会掩码相邻的点块,形成掩码块。尽管这种策略更难重建,但采用中等掩码比例也能取得不错的效果。

4.3.1.2 随机掩码

  随机掩码类型会随机掩码点块,根据经验,在高掩码比例(即60% - 80%)下效果最佳。低掩码比例时性能大幅下降,而掩码比例过高时性能也会略有下降。

对比维度块掩码随机掩码
掩码分布相邻点块,集中成块随机点块,分散无规律
关键挑战依赖局部上下文重建依赖全局语义推断
最佳掩码比例中等(约50%)高(60%–80%)
适用场景强调局部结构的任务强调全局语义的任务
4.3.2 Effect of shifting mask tokens 转移掩码标记的效果

  我们的Point - MAE 将掩码标记从编码器的输入转移到轻量级解码器中

4.3.2.1 实验设置以便在微调任务上评估完全相同的模型

  为展示这种设计的有效性,我们进行了一项实验,在该实验中从编码器输入阶段就开始处理掩码标记。为保证公平比较,自编码器骨干网络采用与Point - MAE相同的编码器和预测头,但没有解码器,从而在微调任务上评估完全相同的模型。
  在本实验中,我们使用60%的随机掩码比例。预训练后,我们观察到该模型的重建损失为2.51,高于Point - MAE的2.60 。在ModelNet40上的微调性能方面,该模型达到92.14%的准确率,远低于Point - MAE的93.19%。

4.3.2.2 原因:位置信息的泄露使得重建任务难度降低,模型无法很好地学习潜在特征

  这个结果并不意外,且可以解释。在编码器输入阶段,包括掩码标记在内的所有标记都必须提供位置信息。这会导致位置信息过早泄露,因为掩码标记要用于点块坐标空间的重建。
  位置信息的泄露使得重建任务难度降低,模型无法很好地学习潜在特征,从而导致微调性能变差。

5 Conclusions 结论

  在本文中,我们提出了一种用于点云自监督学习的新型掩码自编码器方案,称为Point - MAE。我们的Point - MAE简洁高效,只需根据点云的属性进行最小的修改。我们的方法在各种任务(包括目标分类、小样本学习和部件分割)中验证了其有效性和高泛化能力。具体而言,Point - MAE在这些任务中优于其他自监督学习方法。我们还表明,通过我们的方法,一个完全基于标准Transformer的简单架构可以超越专门用于监督学习的Transformer模型。此外,我们的工作启发了将语言和图像领域的统一架构应用于点云领域的可能性。

在当今计算机视觉领域,深度学习模型在图像分割任务中发挥着关键作用,其中 UNet 是一种在医学影像分析、遥感图像处理等领域广泛应用的经典架构。然而,面对复杂结构和多尺度特征的图像,UNet 的性能存在局限性。因此,Nested UNet(也称 UNet++)应运而生,它通过改进 UNet 的结构,增强了特征融合能力,提升了复杂图像的分割效果。 UNet 是 Ronneberger 等人在 2015 年提出的一种卷积神经网络,主要用于生物医学图像分割。它采用对称的编码器 - 解码器结构,编码器负责提取图像特征,解码器则将特征映射回原始空间,生成像素级预测结果。其跳跃连接设计能够有效传递低层次的细节信息,从而提高分割精度。 尽管 UNet 在许多场景中表现出色,但在处理复杂结构和多尺度特征的图像时,性能会有所下降。Nested UNet 通过引入更深层次的特征融合来解决这一问题。它在不同尺度上建立了密集的连接路径,增强了特征的传递与融合。这种“嵌套”结构不仅保持了较高分辨率,还增加了特征学习的深度,使模型能够更好地捕获不同层次的特征,从而显著提升了复杂结构的分割效果。 模型结构:在 PyTorch 中,可以使用 nn.Module 构建 Nested UNet 的网络结构。编码器部分包含多个卷积层和池化层,并通过跳跃连接传递信息;解码器部分则包含上采样层和卷积层,并与编码器的跳跃连接融合。每个阶段的连接路径需要精心设计,以确保不同尺度信息的有效融合。 编码器 - 解码器连接:Nested UNet 的核心在于多层次的连接。通过在解码器中引入“skip connection blocks”,将编码器的输出与解码器的输入相结合,形成一个密集的连接网络,从而实现特征的深度融合。 训练与优化:训练 Nested UNet 时,需要选择合适的损失函数和优化器。对于图像分割任务,常用的损失
内容概要:本文详细介绍了威纶通标准程序集锦,涵盖了多个常用功能模块,如XY曲线绘制、配方管理、权限设置、报警记录查询与操作、操作记录查询等。每个功能模块不仅提供了完整的代码示例,还附带了详细的解释和优化建议。例如,XY曲线功能展示了如何进行坐标系转换并保持画面流畅;配方管理部分则强调了合理的寄存器规划和数据保存方法;权限管理模块引入了MD5加密和全局权限变量传递,确保系统的安全性和灵活性;报警记录处理采用了类SQL查询方式,能够高效处理大量报警数据。此外,操作记录模块采用三层架构设计,便于审计和项目验收文档生成。这套程序不仅功能全面,界面简洁,而且各个模块之间通过全局变量耦合,实现了松耦合结构,方便移植和扩展。 适合人群:初学者、在校学生以及有一定经验的工程师。 使用场景及目标:① 初学者可以通过这套程序快速掌握威纶通触摸屏编程的基本技能;② 工程师可以在实际项目中直接引用或修改这些功能模块,提高开发效率;③ 学习权限管理和数据处理的最佳实践,提升系统安全性。 阅读建议:建议读者仔细研读每个功能模块的代码实现及其背后的原理,尤其是权限管理和报警记录处理部分,这对于理解和设计复杂系统非常重要。同时,可以根据具体需求对代码进行适当调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值