PointGPT 论文解读,点云的自回归生成预训练

简介: PointGPT 论文解读,点云的自回归生成预训练

PointGPT: Auto-regressively Generative Pre-training from Point Clouds

论文:https://arxiv.org/pdf/2305.11487.pdf

一种将GPT概念扩展到点云的方法,在多个3D点云下有任务中(点云分类,part分割等)上实现了最先进的性能。

1c4935f969cf4683b488607a8373272a.png

图1, PointGPT 方法的示意图。该方法使用 Transformer 解码器进行预训练,以自回归的方式预测点块。这种设计使得我们的方法能够在没有专门规定的规格的情况下预测点块,并避免了位置信息的泄漏,从而提高了泛化能力。

从图中可以看到,输入的点云被分割成多个点块,并按照它们的空间接近性排列成一个有序序列。这个序列被输入到 Transformer 解码器中,解码器根据之前预测的点块来预测下一个点块。这种自回归的方式使得模型能够逐步生成点块,并且模型可以利用之前生成的点块来预测下一个点块。

通过这种方式,PointGPT 的方法能够在没有专门指定点块的情况下进行预测,并且避免了位置信息泄漏的问题,从而提高了模型的泛化能力。这种方法的优势在于能够处理点云数据的无序性,并且在各种下游任务上表现出较好的性能。

1 摘要:

这篇论文介绍了一种名为 PointGPT 的方法,将 GPT 的概念扩展到了点云数据中,以解决点云数据的无序性、低信息密度和任务间隔等挑战。论文提出了一种点云自回归生成任务来预训练 Transformer 模型。该方法将输入的点云分割成多个点块,并根据它们的空间接近性将它们排列成有序序列。然后,基于提取器-生成器的 Transformer 解码器(使用双重掩码策略)学习了在前序点块条件下的潜在表示,以自回归方式预测下一个点块。这种可扩展的方法可以学习到高容量模型,具有很好的泛化能力,在各种下游任务上实现了最先进的性能。

具体来说,该方法在 ModelNet40 数据集上实现了94.9%的分类准确率,在 ScanObjectNN 数据集上实现了93.4%的分类准确率,超过了所有其他 Transformer 模型。此外,该方法还在四个小样本学习基准测试上获得了新的最先进准确率。

PointGPT 是一种将 GPT 的思想应用到点云数据生成中的方法,通过自回归生成任务的预训练,能够学习到点云数据的特征表示,并在各种下游任务上取得了优秀的性能表现。

2 论文的主要贡献:

(I) 提出了一种名为 PointGPT 的新型 GPT 模型用于点云自监督学习(SSL)。PointGPT 利用点云自回归生成任务,同时减轻了位置信息泄漏的问题,在单模态自监督学习方法中表现出色。

(II) 提出了一种双重掩码策略来创建有效的生成任务,并引入了提取器-生成器 Transformer 架构来增强学习表示的语义级别。这些设计提高了 PointGPT 在下游任务中的性能。

(III) 引入了一个预训练后阶段,并收集了更大的数据集,以促进高容量模型的训练。利用 PointGPT,我们的扩展模型在各种下游任务上实现了最先进的性能。

综上所述,这篇论文的主要贡献包括了提出了 PointGPT 模型用于点云自监督学习,在生成任务和模型架构方面进行了创新,并引入了预训练后阶段和更大的数据集来训练高容量模型。通过这些贡献,PointGPT 在各种下游任务上取得了最先进的性能表现。

3 PointGPT 原理

4faaea68e12f4a9db38d51be9c8be8fc.png

图2:PointGPT的总体架构。 (a) 输入点云被分成多个点块,然后按顺序排序和排列。 (b) 基于提取器-生成器的transformer解码器与双重掩码策略一起使用,用于自回归预测点块。在这个示例中,双重掩码策略的附加掩码应用于相同组的随机令牌,以更好地进行说明。

论文中的图2展示了 PointGPT 在预训练阶段的整体流程。下面是对图2中各部分的解释:

  • 点云序列模块(Point Cloud Sequencer Module):这个模块用于构建点块的有序序列。它将点云分割成不规则的点块,并按照 Morton 排序将它们排列起来,形成一个有序序列。
  • 提取器(Extractor):这是一个用于学习潜在表示的模块。有序的点块序列被输入到提取器中,通过自回归的方式学习点块的潜在表示。提取器的目标是从前面的点块中预测下一个点块。
  • 生成器(Generator):这是一个用于自回归生成点块的模块。在预训练阶段,生成器根据前面的点块生成下一个点块,以自回归的方式逐步生成点块序列。在预训练结束后,生成器被丢弃,不再使用。
  • 预训练后的阶段(Post-Pre-training Stage):在预训练阶段结束后,生成器被舍弃,而提取器则利用学习到的潜在表示进行下游任务。此时,不再使用双重掩码策略。

3.1 Point Cloud Sequencer

在点云领域,与自然语言处理(NLP)领域不同,点云缺乏预定义的词汇表,并且点云是一种稀疏结构,具有无序性的特点。为了克服这些挑战并获得一个有序的点云序列,其中每个组成单元捕捉到丰富的几何信息,论文中采用了一个三阶段的过程,包括点块划分、排序和嵌入。

  • 点块划分(Point Patch Partitioning):该阶段将点云划分为不规则的点块。通过将点云分割成块状的子集,可以将点云的结构分解成更小的部分,以便更好地进行处理。
  • 排序(Sorting):划分的点块按照 Morton 排序进行排序。Morton 排序是一种用于多维数据的排序方法,通过将多维数据转换成一维的比特串,实现了对多维数据的排序。通过 Morton 排序,点块的顺序得到了定义,形成了有序的点块序列。
  • 嵌入(Embedding):排序后的点块序列被嵌入到模型中,用于后续的预训练和任务学习。嵌入可以将点块的几何信息转化为模型能够理解和处理的向量表示。

通过这个三阶段的过程,点云被划分为有序的点块序列,并经过嵌入转换为模型可处理的表示形式。这样做的目的是克服点云领域缺乏预定义词汇表和无序性的问题,为后续的预训练和任务学习提供有序的输入。

(1)点云序列:PointGPT 的预训练流程包括使用点云序列模块构建有序的点块序列,提取器学习点块的潜在表示,生成器自回归生成点块序列。在预训练后阶段,生成器被舍弃,提取器利用学习到的表示进行下游任务。这个流程旨在通过自回归生成任务来学习点云数据的特征表示,并为后续任务提供更好的表示能力。

(2)点块分割:考虑到点云的固有稀疏性和无序性,输入点云通过最远点采样(FPS)和K近邻(KNN)算法处理,以获取中心点和点块。给定一个包含M个点的点云X,我们使用FPS初始采样n个中心点C。然后,利用KNN算法从X中选择k个最近的点构建n个点块P。

(3)排序:为了解决点云的固有无序性,获得的点块根据它们的中心点被组织成一个连贯的序列。具体而言,使用Morton编码[34]将中心点的坐标编码到一维空间中,然后进行排序以确定这些中心点的顺序O。然后,将点块按照相同的顺序排列。

(4)嵌入: 在 PointGPT 中,采用了嵌入(Embedding)步骤来提取每个点块的丰富几何信息。与论文中引用的 Point-MAE 和 PointNet 方法类似,这里使用了 PointNet 网络来进行几何信息的提取。

具体而言,对于每个点块,使用 PointNet 网络对其进行处理,以提取其中的几何信息。PointNet 是一种常用的点云处理网络,能够对点云数据进行特征提取和学习。通过应用 PointNet 网络,可以从每个点块中提取丰富的几何特征。

为了促进训练的收敛性,对每个点的坐标进行了归一化处理,相对于其所在点块的中心点进行归一化。这样做可以减小数据的尺度差异,帮助模型更好地进行训练。在嵌入步骤中,使用 PointNet 网络对每个点块进行处理,提取其中的几何信息,并对点的坐标进行归一化处理,以促进训练的收敛性。

3.2 Transformer Decoder with a Dual Masking Strategy

论文中提到,将 GPT 直接应用到点云数据的方法是利用基本的 Transformer 解码器来自回归地预测点块,并对所有预训练参数进行微调以进行下游任务。然而,由于点云数据的信息密度有限以及生成和下游任务之间存在差距,这种方法在低级语义方面存在问题。

为了解决这个问题,论文提出了一种双重掩码策略,以促进对点云的全面理解。这个策略能够帮助模型更好地处理点云数据,提高语义的表达能力。

此外,论文还引入了提取器-生成器 Transformer 架构,其中生成器更专注于生成任务,并在预训练后被丢弃,从而增强了提取器学习到的潜在表示的语义水平。这种架构设计使得提取器能够更好地学习点云的语义信息,提高模型的表示能力。

为了应对点云数据的低级语义和生成任务与下游任务之间的差距,论文提出了双重掩码策略和提取器-生成器 Transformer 架构。这些方法能够提高模型对点云数据的理解能力,并增强潜在表示的语义水平。

81b944e0defb4037b3acccb721dbc44d.png

 (1)Dual masking strategy:

双重掩码策略:transformer解码器中的基本掩码策略使得每个令牌都可以从所有前面的点令牌中接收信息。为了进一步促进有用表示的学习,提出了双重掩码策略,该策略在预训练期间还会额外屏蔽每个令牌所参考的一定比例的前置令牌。在 PointGPT 中,提取器(Extractor)和生成器(Generator)是两个关键组件,用于学习点云的表示和生成任务。

(2)Extractor-generator:

提取器完全由 Transformer 解码器块组成,并采用双重掩码策略,得到潜在表示 T。在这里,每个点的令牌只与前面未被掩码的令牌相互关联。考虑到点块是用归一化坐标表示的,并且全局结构对于点云的理解至关重要,论文中采用正弦位置编码(Sinusoidal Positional Encodings)将排序后的中心点的坐标映射到绝对位置编码(Absolute Positional Encoding)。在每个 Transformer 块中添加位置编码,以提供位置信息和整合全局结构信息。

生成器的架构与提取器类似,但包含较少的 Transformer 块。它以提取的令牌 T 作为输入,并生成用于后续预测头的点令牌 Tg。然而,由于中心点采样过程可能会影响点块的顺序,这在预测后续点块时会引入不确定性。这使得模型难以有效地学习有意义的点云表示。为了解决这个问题,在生成器中提供了相对于后续点块的方向信息,作为提示而不暴露被掩码的点块的位置和整体点云对象的形状。

提取器由 Transformer 解码器块组成,并采用双重掩码策略生成潜在表示 T。生成器与提取器类似,但包含较少的 Transformer 块,并在生成过程中引入了方向信息以解决顺序预测中的不确定性问题。

(3)Prediction head:

预测头用于在坐标空间中预测后续的点块。它由一个两层的多层感知机(MLP)组成,包含两个全连接(FC)层和修正线性单元(ReLU)激活函数。预测头将令牌 Tg 投影到向量空间,其中输出通道的数量等于一个点块中的坐标总数。然后,这些向量被重新组织成预测的点块 。

3.3 Generation Target

在每个点块的生成目标是预测后续点块内点的坐标。给定预测的点块 Ppd 和与排序后的点块序列中最后 n0 个点块对应的真实点块 Pgt,生成损失 Lg 使用 Chamfer 距离(CD)的 L1 形式和 L2 形式进行定义,分别记为 Lg1 和 Lg2。Chamfer 距离是一种衡量两个点云之间距离的指标,用于评估生成的点块与真实点块之间的差异。Lg1 表示使用 L1 形式计算的 Chamfer 距离,而 Lg2 表示使用 L2 形式计算的 Chamfer 距离。

具体而言,生成损失 Lg1 和 Lg2 可以通过计算预测的点块 Ppd 与真实点块 Pgt 之间的 Chamfer 距离来获得。这些损失函数用于衡量生成结果与真实结果之间的差异,以指导生成器的训练。

3.4 Post-Pre-training

传统的点云自监督学习(SSL)方法直接在目标数据集上微调预训练模型,由于语义监督信息有限,这可能导致潜在的过拟合问题。为了缓解这个问题并便于训练高容量模型,PointGPT采用了中间微调策略,并引入了一个预训练后的阶段。

在这个阶段中,使用一个带标签的混合数据集(Sec. 4.1)进行训练,该数据集收集和对齐了多个带标签的点云数据集。通过在这个数据集上进行监督训练,可以有效地从多个来源合并语义信息。随后,在目标数据集上进行微调,将学到的通用语义知识转移到任务特定的知识上。

这种中间微调和预训练后阶段的策略有助于提高模型的泛化能力,避免潜在的过拟合问题,并利用多样化的语义信息来提升模型的性能。

4 Experiments

为了展示PointGPT在不同下游任务上的性能,我们进行了一系列实验,包括真实世界和干净对象数据集上的物体分类、少样本学习和部分分割。我们使用三种不同的模型容量来评估PointGPT的性能:PointGPT-S,在ShapeNet数据集上进行预训练但不进行预训练后阶段;PointGPT-B和PointGPT-L,在收集的混合数据集上进行预训练和预训练后阶段。

表1显示了在ScanObjectNN和ModelNet40数据集上的分类结果,所有结果均以百分比表示。具体来说,对ScanObjectNN数据集进行了三个变体的评估。此外,报告了在ModelNet40数据集上使用1k点和8k点时的准确率。

95a94975d5cc42108dd2a19b1ed95f08.png

5 Conclusion

本文介绍了PointGPT,这是一种将GPT概念扩展到点云领域的新方法,解决了点云的无序性、信息密度差异和生成任务与下游任务之间的差距等挑战。

与最近提出的自监督遮蔽点建模方法不同,我们的方法避免了整体物体形状泄漏,具有更好的泛化能力。此外,我们还探索了高容量模型的训练过程,并收集了用于预训练和预训练后阶段的混合数据集。

我们的方法在各种任务上验证了其有效性和强大的泛化能力,表明我们的PointGPT在模型容量相似的单模态方法中表现优异。此外,我们的大规模模型在各种下游任务上取得了SOTA的性能,无需跨模态信息和教师模型的参与。

尽管PointGPT表现出了良好的性能,但其探索的数据和模型规模仍然比NLP [5; 10]和图像处理 [65; 27] 领域小几个数量级。我们的愿望是,我们的研究可以在这个方向上刺激进一步的探索,并缩小点云与这些领域之间的差距。


目录
相关文章
|
7月前
|
机器学习/深度学习 自然语言处理 数据可视化
深度探索变分自编码器在无监督特征学习中的应用
【4月更文挑战第20天】 在深度学习领域,无监督学习一直是研究的热点问题之一。本文聚焦于一种前沿的生成模型——变分自编码器(Variational Autoencoder, VAE),探讨其在无监督特征学习中的关键作用与应用潜力。不同于传统的摘要形式,本文将直接深入VAE的核心机制,分析其如何通过引入随机隐变量和重参数化技巧,实现对复杂数据分布的有效建模。文章还将展示VAE在多个实际数据集上的应用结果,验证其作为无监督特征提取工具的有效性和普适性。通过理论与实践的结合,本文旨在为读者提供关于VAE在无监督特征学习领域的全面认识。
|
机器学习/深度学习 编解码 监控
目标识别知识蒸馏
翻译:《learning efficient object detection models with knowledge distillation》
141 0
|
机器学习/深度学习 自动驾驶 计算机视觉
目标检测落地必备Trick | 结构化知识蒸馏让RetinaNet再涨4个点
目标检测落地必备Trick | 结构化知识蒸馏让RetinaNet再涨4个点
396 0
|
机器学习/深度学习 算法 PyTorch
论文阅读笔记 | 目标检测算法——DETR
论文阅读笔记 | 目标检测算法——DETR
939 0
论文阅读笔记 | 目标检测算法——DETR
|
2月前
|
机器学习/深度学习 调度 知识图谱
TimeDART:基于扩散自回归Transformer 的自监督时间序列预测方法
近年来,深度神经网络成为时间序列预测的主流方法。自监督学习通过从未标记数据中学习,能够捕获时间序列的长期依赖和局部特征。TimeDART结合扩散模型和自回归建模,创新性地解决了时间序列预测中的关键挑战,在多个数据集上取得了最优性能,展示了强大的泛化能力。
94 0
TimeDART:基于扩散自回归Transformer 的自监督时间序列预测方法
|
6月前
|
存储 算法
预训练特征分类器
【6月更文挑战第11天】
39 1
|
6月前
|
机器学习/深度学习 数据采集 自动驾驶
探索深度学习的点云分类
点云分类是指将三维点云数据中的每个点或整个点云进行分类的任务。点云数据由大量三维点构成,每个点包含空间坐标(x, y, z),有时还包含其他信息如颜色和法向量。点云分类在自动驾驶、机器人导航、3D重建等领域有广泛应用。
174 1
|
7月前
|
机器学习/深度学习 编解码 算法
【论文解析】CFPNet:用于目标检测的集中特征金字塔
【论文解析】CFPNet:用于目标检测的集中特征金字塔
483 0
【论文解析】CFPNet:用于目标检测的集中特征金字塔
|
机器学习/深度学习 编解码 移动开发
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
|
机器学习/深度学习 编解码 算法
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
763 0
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
下一篇
DataWorks