3D Transformer网络在处理3D点云数据时面临的高计算复杂度问题。

3D场景理解是指利用计算机视觉和机器学习技术来解释和理解三维空间中的环境和对象,通常涉及到从3D数据中识别和分类对象、理解对象之间的关系以及场景的语义信息。传统的3D场景理解包括但不限于:(1)语义分割:识别并分割出图像中每个像素所属的类别(但不同实例的同一类别对象(如多辆汽车)通常无法区分)(2)实例分割:不仅识别图像中每个像素的对象类别,还区分同一类别中不同的实例(3)对象检测(4)视觉定位。3D场景理解广泛应用于自动驾驶、具身智能等领域,比如辅助车辆理解周围的3D环境,进行导航和避障、帮助机器人在复杂环境中自主导航、与环境交互等。

目前对于3D场景理解的最新研究进展如下:(1)部分学者致力于提高3D场景理解模型的计算效率,比如改进自注意力机制的计算复杂度。(2)也有大部分学者关注开放词汇的3D场景理解,即在没有明确标记数据的情况下,对3D场景进行理解和分类的方法。这与传统的3D场景理解方法不同,传统方法通常依赖于有限的、预先定义好的类别标签,而开放词汇3D场景理解允许模型理解和分类更广泛的对象、属性和场景特征,而无需针对每个新类别进行重新训练。为了实现开放词汇的3D场景理解,学者们致力于将视觉语言模型(如CLIP)的先验知识引入3D场景理解,具体来说需要将3D点云特征与文本特征、图像特征对齐。(3)另外,鉴于目前对于各个单一任务的3D场景理解研究已卓有成就,并且大多数3D场景理解框架仅适用于特定任务,还有学者希望设计一个通用的任务框架来应用在各种3D场景理解的任务上,包括语义分割、实例分割、全景分割、交互分割、开放词汇分割等,具体方法比如通过知识蒸馏将通用框架在某一任务上的知识向其他任务转移,从而实现了任务间的知识共享。

来看下近年来的一些研究。

Swin3D:用于 3D 室内场景理解的预训练 Transformer 主干

3D Transformer网络在处理3D点云数据时面临的高计算复杂度问题。在传统的3D Transformer网络中,自注意力(self-attention)模块的空间复杂度通常是二次方的,因为对于每个输入点,都需要计算它与所有其他点之间的关系,这意味着随着点云数据量的增加,计算和内存需求会急剧上升。这不仅限制了模型的规模,也限制了其在大规模数据集上的应用。为了解决这一问题,文章提出了一种改进的自注意力机制,能够在稀疏体素(voxels)网格上以线性空间复杂度运行,显著降低了内存和计算成本,使得模型能够处理更大规模的数据集。

  • 高效的自注意力算法:文章设计了一种新型的3D自注意力操作符,用于在局部窗口内计算稀疏体素的自注意力。这种算法将自注意力的内存成本从二次降低到线性,相对于窗口内稀疏体素的数量,从而使得模型能够高效地运行而不会牺牲自注意力的准确性。
  • 首先,文章使用稀疏体素(voxels)来表示3D点云数据。体素化是一种将连续的3D空间离散化成网格单元(体素)的方法,其中只有非空的体素才会存储点云数据。这种方法可以有效地减少内存占用,因为只处理非空体素,而不是整个空间。
  • 此外,文章将3D空间划分为局部窗口,并在这些窗口内计算自注意力。这种方法限制了自注意力计算的范围,从而减少了计算量和内存需求。
  • 文章提出的新型自注意力操作符通过优化计算过程,使得内存需求与窗口内非空体素的数量呈线性增长。这是通过避免存储所有点对之间的注意力权重来实现的,而是直接在计算过程中累加这些权重。
  • 层次化结构:SWIN3D采用了类似Swin Transformer的层次化结构,由多个阶段的SWIN3D块组成,每个阶段处理不同分辨率的体素特征,实现了多尺度特征编码。
  • 上下文相对位置编码(cRPE):为了捕捉点云信号的不规则性,文章提出了一种泛化的上下文相对位置编码方案。这种编码方案不仅考虑了点的位置信息,还考虑了颜色、法线等其他信号的不规则性,通过将这些信号的相对变化纳入自注意力计算中,进一步提升了网络的性能。

 

OpenScene:用开放词汇理解3D场景

开放词汇3D场景理解是指能够在没有明确标记数据的情况下,对3D场景进行理解和分类的方法。这与传统的3D场景理解方法不同,传统方法通常依赖于有限的、预先定义好的类别标签,并且需要大量的标记3D数据来训练模型,以便模型能够在特定任务上表现出色。这种方法的难点在于:(1)数据标记成本高(2)泛化能力有限(3)任务特定性强。开放词汇3D场景理解旨在解决这些限制,它允许模型理解和分类更广泛的对象、属性和场景特征,而无需针对每个新类别进行重新训练。

文章提出的模型架构OpenScene,是一种零样本学习方法,它利用了大规模预训练的文本-图像嵌入模型(如CLIP)来增强3D场景理解的能力。模型将3D点的特征与文本和图像像素在CLIP特征空间中共同嵌入。这意味着3D点的特征不仅与视觉信息相关联,还与语言概念对齐,从而允许使用文本查询来探索3D场景。模型具体通过以下步骤将3D点的特征与视觉特征和语言特征的对齐:

  • 图像特征提取及2D-3D配对:首先,对于每个RGB图像,使用一个预训练的2D视觉-语言分割模型(如OpenSeg或LSeg)来计算每个像素的嵌入特征。这些特征被用来表示图像中的视觉信息。接着,对于3D点云中的每个3D表面点,通过相机的内参和外参矩阵将其投影回对应的2D图像平面上。这个步骤确保了每个3D点都能找到它在2D图像中的对应像素。这样,每个3D点都获得了一个融合了多个视角下视觉信息的特征向量
  • 3D网络蒸馏:尽管可以直接使用融合的2D特征进行语言驱动的3D场景理解,但为了提高鲁棒性并处理只有3D点云数据的情况,文章提出了一个3D网络(如MinkowskiNet),它只使用3D点的位置信息作为输入,并训练这个网络来复现融合的2D特征。通过最小化3D网络输出和融合的2D特征之间的差异,3D网络学习到了与2D特征对齐的特征表示
  • 2D-3D特征集成:为了结合2D图像特征和3D几何特征的优势,文章提出了一个集成方法。通过计算每个3D点的2D融合特征和3D蒸馏特征与一组文本提示的相似度,选择与文本提示最相似的特征作为最终的集成特征

由于CLIP模型是在大规模的图像和文本数据上预训练的,它能够捕捉到比传统对象类别标签更丰富的概念,包括物理属性、材料、功能等。OpenScene利用这一点,允许用户输入任意文本查询,并在3D场景中找到与这些查询匹配的部分。

 

CLIP2Scene:通过CLIP实现标签高效的3D场景理解

类似于上文,CLIP2Scene也是应用 CLIP 来帮助学习 3D 场景理解,将CLIP知识从2D图像-文本预训练模型转移到3D点云网络。CLIP2Scene的框架通过语义和时空一致性正则化来预训练3D点云网络,使得3D点云特征能够与CLIP的视觉和文本特征对齐。下面是具体的对齐方法:

  • 语义一致性正则化(Semantic Consistency Regularization):利用CLIP的文本语义来选择正样本和负样本。具体来说,通过将类别名称放入预先定义的模板中,使用CLIP的文本编码器生成文本嵌入(text embeddings),这些嵌入包含了对应类别的语义信息。然后,将这些文本嵌入与3D点云特征进行对比学习。通过对比损失函数,拉近具有相同语义的点云特征和文本嵌入之间的距离,同时推远不同语义的点云特征和文本嵌入,从而使得3D网络学习到的特征能够与CLIP的文本语义对齐。
  • 时空一致性正则化(Spatial-Temporal Consistency Regularization):此外,还将点云数据与对应的图像数据进行校准,建立图像像素特征与点云特征之间的对应关系。为了使多扫描点云具有时间一致性,即在连续时间帧内捕获的点云数据具有空间和时间上的连贯性,在正则化过程中,强制使得同一空间位置和时间戳内的点云特征与图像像素特征保持一致。这通过计算点云特征和对应图像像素特征之间的相似度,并使用损失函数来最小化它们之间的差异来实现。

通过上述两个正则化策略,CLIP2Scene框架能够将3D点云特征与CLIP的丰富视觉和文本信息有效地结合起来,从而提高3D场景理解的性能。这种跨模态的对比学习方法不仅使得3D网络能够进行零样本(annotation-free)的语义分割,而且在有少量标注数据进行微调(fine-tuning)时也能显著提高性能。

 

PLA:语言驱动的开放词汇3D场景理解

提出了一种名为PLA(Point-Language Association)的方法,也是希望利用视觉语言模型辅助3D特征与文本特征对齐,实现开放词汇3D场景理解。具体如下:

  • 首先,从3D场景中获取多个视角的图像。这些图像通常由围绕3D场景的不同位置的相机拍摄得到,能够提供场景的全面视图。利用3D场景和这些多视图图像之间的几何关系,例如相机的内参和外参,以及3D点与2D图像之间的投影关系。这些几何约束确保了从不同视角观察到的同一物体在3D空间中的位置是一致的。
  • 构建分层的3D-字幕对:然后文章使用一个预训练的视觉语言基础模型(具体为GPT-ViT2)来为3D场景的多视图图像添加字幕,提供与3D场景相关的语义丰富的描述。文章设计了分层的3D字幕对,包括场景级(将整个3D场景与一个汇总的字幕相关联)、视图级(将每个视角下的3D点云与对应图像的字幕相关联)和实体级(通过分析相邻视图级点集的差异和交集,构建与特定实体(如单个物体实例)相关的字幕)。这些层次化的字幕对利用3D场景和多视图图像之间的几何约束,从而在不同的空间尺度上建立3D点云与文本之间的关联。
  • 3D点云特征与文本特征对齐:最后,通过对比学习的方法,使得3D点云的特征与相应文本描述的特征在特征空间中相互靠近,从而学习到能够反映文本描述内容的3D特征表示。

这种方法的优势在于,它不仅能够利用丰富的文本信息来增强3D数据的理解,还能够处理不同尺度和粒度的3D场景内容,从而提高模型在开放词汇3D场景理解任务中的性能和泛化能力。

 

UniSeg3D:三维场景理解的统一框架

以往的大多数 3D 场景分割方法都专门用于特定任务,因此将他们对 3D 场景的理解限制在特定于任务的视角上。这篇文章提出了 UniSeg3D,它使用一个统一的Transformer作为核心处理单元,这个Transformer接收统一的输入表示,并为所有任务生成特征。这种设计允许模型在不同任务之间共享知识,提高了模型的泛化能力和效率。

  • 首先,为了处理不同的任务,UniSeg3D引入了多种类型的输入查询(queries):
  • 通用分割任务(如语义分割、实例分割、全景分割)使用点云作为输入,通过3D U-Net提取特征。
  • 交互分割任务通过视觉提示(如点击或画框)来指定感兴趣的区域。
  • 引用分割任务使用文本描述来指定分割目标。
  • 开放词汇分割任务处理未在训练集中出现的类别。
  • 然后,UniSeg3D利用知识蒸馏从交互分割任务(由于其视觉提示的可靠性,通常具有较高的分割性能)向其他任务转移知识。具体来说,使用匈牙利算法(Hungarian algorithm)将交互分割任务的预测结果与真实标签进行匹配,从而得到正样本。然后,在交互分割任务的预测掩码中,选择具有最高置信度(例如,前k%)的区域作为学习区域。在这些学习区域内,计算交互分割任务的预测掩码与“学生”任务的预测掩码之间的损失。这个损失通过比较匹配区域内的预测掩码来衡量,使用二元交叉熵损失(Binary Cross-Entropy, BCE)来实现。通过最小化这个损失,将交互分割任务的知识转移到其他任务中,从而提高这些任务的性能。
  • 此外,为了将文本描述与3D场景中的相应对象或区域关联起来,设计了一种基于排名的对比学习方法。具体来说,首先使用Transformer架构来获取点云特征、使用预训练的CLIP模型来获取文本特征。然后通过一个对比学习框架匹配点云特征和文本特征。为了进一步优化对比学习的效果,UniSeg3D引入了排名规则。这个规则确保在对比学习过程中,与特定文本描述最相关的点云特征在相似度排序中位于最前面。通过这种方式,模型能够更好地理解和处理引用分割任务中的文本描述。

 

Loading

作者 yinhua

发表回复