Advertisement

【CVPR2022】A Unified Query-based Paradigm for Point Cloud Understanding

阅读量:

A Unified Query-based Paradigm for Point Cloud Understanding

  • 论文简介:

  • 具体实现:

    • 整体框架
    • Embedding Stage
    • Querying Stage
  • Q-Net系统架构设计如下:

    • 系统架构概述

      • 编码块(Q-Block)

      • 编码层(Q-Encoder Layer)

      • 解码层(Q-Decoder Layer)

      • 注意力机制层(Attention Layer)

      • 相对位置编码(Relative Positional Encoding)

      • 局部注意力机制(Local Attention)

      • Hierarchical Q-Net

    • 实验结果:

      • 语义分割
      • 目标检测
      • 点云分类

论文简介:

认为三维点云的认识是自动驾驶和机器人技术中的一个重要组成部分。在本文中,作者开发了一种新的嵌入-查询范式(EQ-范式)作为本文的核心内容,并用于三维理解任务,并包含检测、分割和分类功能。

该EQ范式作为一个统一的标准,在现有3D主干架构与其他不同类别的任务头部之间实现了良好的整合能力。基于该EQ框架中输入点云首先经过编码过程,并采用了多种特征提取体系结构这一特点至关重要——这些架构设计均与具体的任务类别无关。随后,在查询阶段可分别针对不同类别的任务头部进行特征提取——这种连接是通过引入Q-表示这一中间变量实现的。此外,在研究过程中作者还开发了一种新型Q-NET模型——其主要应用于查询处理环节

通过在多个三维任务中进行大量实验验证,在探索 EQ 格式与 Q-Net 结合使用的基础上形成了一个通用且高效的模型框架。这种整合方式不仅使得主干部分与顶端模块能够协同工作,还进一步优化了现有最佳方案的表现。

在这里插入图片描述

具体实现:

在这里插入图片描述

整体框架

如图所示,该方法将点云模型划分为三个主要环节:嵌入部分、查询部分和任务头部。随后,在嵌入模块中从输入点云I∈ℝ{N×3}中提取关键特征。这些特征被用作后续查询模块的基础支撑特征F_S。其中,三维空间中的坐标信息由支撑点集S∈ℝ{n×3}来表示。接下来,在查询模块中根据支撑点集S和其相关特征F_S生成相应的Q表示。从而得到对应的查询向量F_Q∈ℝ^{m×3}。

注意 Q 并不需要是 I 的一个子集,而可以是 3D 点云空间的任何位置。

作者开发了一种创新性的查询阶段架构,并命名为 Q-Net。最终模块基于查询位置信息 Q 和特征向量 F_Q 来生成预测结果。

因此 EQ-范式可以被表示为:

\begin{aligned} F_{S} and S are defined as the encoding of input vector I, \ F_{Q} is computed by querying the encoding space with F_{S}, S, and query vector Q, \ The output tensor O is obtained by applying the head function to compute over query results. \end{aligned}$

其中,O 表示特定任务的最终输出。

Embedding Stage

在EQ-范式中,特征提取阶段的三维网络架构不仅限于基于体素化输入的体素网络(VoxelNet等),还包括直接处理原始点云结构的PointNet等模型;这些架构设计均不受具体任务及后续处理影响。

目标是在嵌入阶段生成支持点集 S 以及相应的特征向量 F_S。针对基于点样本的深度网络来说,在这种情况下,在这种情况下(例如通过最远点采样方法),S 是输入点云 I 的一个子集;而在体素化表示场景下,则是通过逐层缩减体素数量来完成降采样的过程。在此过程中,在此框架中(即在这种情况下),支撑样本集合 S 被设定为这些体素中心的位置坐标。

在本构关系中(或体素关系中),该算法可处理大规模复杂场景中的关键问题;而在点集关系中,则能有效提取更精细的几何信息。
基于此,在EQ框架下(或该范式下),模型可自由选择其嵌入阶段网络以适应具体需求。

Querying Stage

在支持特征的基础上分析其对应的位置信息后确定一组人工选定的关键点并从中提取对应的查询特征求取该类数据集上的性能表现

查询阶段的关键方面在于根据不同的任务和头部设计来选择查询位置:

  • 检测:为了在外场实现 3D 目标检测模型中的 SSD 检测器部署,在目标物体鸟瞰视角下确定其像素中心坐标(图 a)。同时通过均匀或最远距离的采样策略从原始输入点云中提取特征(图 b);
  • 分割:针对语义分割任务,在三维场景中的每个体素需进行分类预测时所对应的坐标位置(图 c)即为查询位置;通常情况下将整个输入点云 I 视为待分割体素集合 Q
  • 分类:其中,在本研究工作中,在三维空间中的每个体素被映射到其形状中心处时可提取特征代表该物体类别;或者采用均匀分布的方式选取多个采样点分别对应物体不同部位来进行类别区分(图 d)。值得注意的是,在本研究工作中作者选择了将 16 个均匀分布的采样点作为查询位置来进行投票分类;
在这里插入图片描述

Q-Net:

整体框架

该研究者在查询阶段开发了名为Q-Net的网络架构。该网络架构采用了Transformer结构来提取Q-表示(即用于表征查询特性的变量F_Q)。得益于Transformer模型灵活的感受野和强大的表示能力(即其可以有效提取反映输入序列不同部分之间关系的信息),能够有效提取反映输入序列不同部分之间关系的信息这一特性使得其能够有效提取反映输入序列不同部分之间关系的信息这一特性使得其能够有效提取反映输入序列不同部分之间关系的信息这一特性使得其能够有效提取反映输入序列不同部分之间关系的信息这一特性使得其能够有效提取反映输入序列不同部分之间关系的信息这一特性使得其能够有效提取反映输入序列不同部分之间关系的信息这一特性)。值得注意的是这种机制结合了位置编码的优势不仅提供了全局视角而且还能考虑点之间的相对位置从而实现了对灵活变化的需求(即这种机制结合了位置编码的优势不仅提供了全局视角而且还能考虑点之间的相对位置从而实现了对灵活变化的需求)。从整体来看这种机制不仅具备良好的全局处理能力还具有很强的位置感知能力因而特别适合应用于需要动态调整复杂度的任务如信息检索系统中的复杂性管理(即这种机制不仅具备良好的全局处理能力和很强的位置感知能力因而特别适合应用于需要动态调整复杂度的任务如信息检索系统中的复杂性管理)。下图展示了该网络架构的具体设计框架。

在这里插入图片描述

Q-Block

Q-Net 构成一个由 L 层 Q-Block 组成的序列,在每个模块中接收四个输入参数:包括查询位置 Q、支持点 S 以及来自上一层块的查询特征和支撑特征 F_Q^{l−1} 和 F_S^{l−1}(其中 F_Q^{l−1} 和 F_S^{l−1} 分别表示第 l-1 块输出的结果)。在第一个模块中,默认情况下将第一层块中的 F_S^0 初始化为空值(即零向量)。这种初始化方式不会引入任何归纳偏差的原因是因为:由于查询位置可能并非直接取自于输入点云 I(即 query points 不一定是 support points),因此将其对应的支撑信息初始化为空值并不会导致任何信息损失或偏差引入;同时,在嵌入阶段我们也提取了初始的支持特征向量用于赋值给第一层块中的 F_S^0 参数项。这些组件会在后续迭代过程中不断更新各自的查询和支撑特性以完成模型任务,在作者的研究实现中设定 L=3。

每个 Q-Block 块包含两层结构:Q-编码器模块与 Q-解码器模块。它们分别对应着 Q-编码器功能与 Q-解码器功能的不同实现路径。其中一部分负责更新支持特征并优化查询特征的具体环节中包括对全局语义信息进行提取与整合的过程。这种改进有助于提高查询特化的程度。

作者在最后一个小块中舍弃了Q编码器组件,并因缺乏后续Q解码组件而无需维护更新的支撑特性。

最后一个 Q-Block 块的输出结果是最终的查询表示 F_Q ,该结果会被传递给任务头模块以生成预测结果。在形式上,Q-Block 块的设计遵循以下原则:

\begin{aligned} &\quad F_Q^\ell \text{等于通过减法运算从原始数据中减去一个解码过程的结果值;这个解码过程接收四个输入:原始数据Q、前一层的特征
F_Q^{\ell - 1}、交叉数据S以及前一层的交叉特征 F_S^{\ell - 1}。 \\ &\quad F_S^\ell \text{等于通过减法运算从另一个数据源中减去一个编码过程的结果值;这个编码过程接收当前数据S和前一层的交叉特征
F_S^{\ell - 1}作为输入。
\end{aligned}
$

Q-Encoder Layer

作者通过 Q-编码器层来更新相应的支持特征向量;该结构由一个注意力机制模块和一个前馈网络(FFN)构成。将 Q-编码器的整体表示为:

\begin{array}{ll} \widehat{\mathcal F}_{{\rm s}}^{\ell} &= {\rm Attention} ( {\rm s}, {\mathcal F}_{{\rm s}}^{\ell - 1}, {\rm s}, {\mathcal F}_{{\rm s}}^{\ell - 1} ) + {\mathcal F}_{{\rm s}}^{\ell - 1}, \\ {\mathcal F}_{{\rm s}}^{\ell} &= {\rm FFN} ( \widehat{\mathcal F}_{{\rm s}}^{\ell} ) + \widehat{\mathcal F}_{{\rm s}}^{\ell}. \end{array}

这个注意层遵循 q, k, v 三者的指导下的经典多头自注意力机制,并且这些参数均取自于支撑特征 F^{l−1}_S。同时,在每个关注层和 FFN 模块之前应用 LayerNorm 进行归一化处理。

Q-Decoder Layer

该编码器层通过交叉注意力机制显著提升了针对查询位置的特征表示能力。值得注意的是,在 Q-解码器设计中,则采取了一种不同于 Transformer 解码器的方式,在 Q-解码器层中,默认情况下并不对查询特征施加自注意力以保持其独立性特性。具体而言,则可表述为:直接通过交叉注意力机制从支持特征中提取所需信息并构建相应的响应表示。

\begin{array}{l} \hat{F}_{Q}^{l}=\operatorname{Attention}\left(Q, F_{Q}^{l-1}, S, F_{S}^{l-1}\right)+F_{Q}^{l-1} \\ F_{Q}^{l}=\operatorname{FFN}\left(\hat{F}_{Q}^{l}\right)+\hat{F}_{Q}^{l}, \end{array}

具体来说,在这种架构中存在一个基于 qkv 的多头交叉注意力机制。其中 q 源自查询特征;而 k 和 v 则源自辅助特征。

换句话说,在选择一个特定的位置作为支撑点时(即确定该支撑点),它的属性只与该支撑点与其相关联的位置属性相关联(即与其周围的位置属性相关),而不受其他无关位置或属性的影响(即不受其他无关位置或 attribute 的影响)。从而使得在选择一个特定的位置作为支撑点时具有更大的自由度。例如,在整个场景中仅限于感兴趣的部分的 attribute。

Attention Layer

注意层可以表述为:

\tilde{F}_{Y}=\operatorname{Attention}\left(Y, F_{Y}, X, F_{X}\right)

该系统通过m个目标点云及其对应的特征向量F_Y \in \mathbb{R}^{m \times d}n个源点云及其对应的样本点云图谱F_X \in \mathbb{R}^{n \times d}的联合关系来生成的目标特征向量\tilde{F}_Y \in \mathbb{R}^{m \times d}中包含了丰富的语义信息。其中参数d表示的是模型内部通道的数量。

基于 qkv 的注意层可以被视为将注意力权重应用于源特征 F_X 来生成新的目标特征。为了便于理解,作者对单头计算进行了详细阐述。具体而言,第 i 个新目标特征 \tilde{F}_{Y}^{(i)} 的生成过程如下:首先,对源特征 F_X 进行查询向量 Q,得到中间结果 Z = QW_Q;接着,通过键向量 K 计算归一化系数 \alpha_i = \text{softmax}(ZK^\top / \sqrt{d_k});最后,利用值向量 V 加权求和得到目标特征 \tilde{F}_{Y}^{(i)} = \sum_{j=1}^n \alpha_i^{(j)} V^{(j)}.

\tilde{F}_{Y}^{(i)}=\mathcal{A}^{(i)}\left(F_{X} W_{\mathbf{v}}+B_{\mathbf{v}}^{(i)}\right)

基于目标特征 F_Y 和源特征 F_X 的点积结果计算出关注权重矩阵 \mathcal{A} 属于实数域上的m \times n矩阵:

\mathcal{A}等于Softmax运算作用于括号内内容:即两个矩阵乘积加上偏置项之后再除以根号d

Relative Positional Encoding

相对于 Q-Net 来说,相对位置编码是一个必不可少的关键组成部分。相较于传统的 Transformer 模块,在输入特征的设计上存在显著差异。在第一个 Q-Block 中将初始查询特征设定为空值,并且这种方法有效地规避了由于初始化带来的潜在偏差问题。因此,在整个网络架构的起始阶段,默认情况下所有的查询都是基于支持点与支持特性的信息来进行定位与提取的

然而仅仅依据查询点与支持点之间的坐标距离来更新第一个块中的查询特征并非最佳选择 因为对于具有相同相对位置的对象而言 不同尺度与形状的对象间并未产生差异性的关注权重 因此由此可见 作者采用了基于上下文相对位置的信息编码机制 这一方法非常适合 Q-Block架构

相对于偏模的位置编码而言,在考虑位置嵌入的同时综合考虑了这些特征间的相互作用关系,并由此使得该类方法能够根据不同的上下文信息进行相应的调整以适应不同情况下的特征分布特点。
该方法导致其对不同尺度和形状的对象中的点产生特定的反应模式,
即使某些点对在相同的相对位置差异下也会呈现出不同的响应效果。
补充材料部分详细阐述了这一策略及其具体效果分析。

Local Attention

当目标 m 和源 n 的规模较大时,在实际应用中如果直接采用全局注意力机制会导致巨大的 GPU 内存消耗。这是因为全局注意力权重过于庞大而无法有效存储。为了应对这一挑战,在 Q-Net 模型中作者引入了局部注意力机制以降低内存占用并提高模型效率。

具体而言,在处理每一个目标点时, 我们将基于欧氏距离来确定其在源点区域内的前K个最近邻点, 并仅关注这些邻居区域中的相关特征进行分析

Hierarchical Q-Net

面对不同尺寸和复杂程度的三维场景,在多个维度上进行组织能够显著提升模型性能。特别地,在需要精细粒度分割的任务中,采用多层特征能够显著提高预测精度。这是因为这些多层特征不仅能够捕获不同尺度的空间信息,还能够在各个层次上提取具有区分性的表征数据以实现精确的任务目标。

所以构建了一个分层化的Q-Network以充分利用多层次特性。如图所示在图中作者采用分层支持特征并通过一系列Q-Network进行处理将不同层级查询特征进行融合并综合生成最终预测结果。

在这里插入图片描述

实验结果:

语义分割

在这里插入图片描述

目标检测

在这里插入图片描述
在这里插入图片描述

点云分类

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~