论文阅读:An End-to-End Transformer Model for 3D Object Detection
  wh9rG0UkdQJu 2023年11月12日 62 0

An End-to-End Transformer Model for 3D Object Detection

用于 3D 物体检测的端到端 Transformer 模型(ICCV), 2021

摘要:

我们提出了 3DETR,一种基于 Transformer 的端到端 3D 点云对象检测模型。与采用许多 3D 特定感应偏差的现有检测方法相比,3DETR 需要对普通 Transformer 模块进行最少的修改。具体来说,我们发现具有非参数查询和傅立叶位置嵌入的标准 Transformer 与采用具有手动调整超参数的 3D 特定运算符库的专用架构相比具有竞争力。尽管如此,3DETR 在概念上很简单且易于实现,可以通过合并 3D 领域知识来进一步改进。通过大量实验,我们发现 3DETR 在具有挑战性的 ScanNetV2 数据集上比成熟且高度优化的 VoteNet 基线高出 9.5%。此外,我们证明 3DETR 适用于检测之外的 3D 任务,并且可以作为未来研究的构建块。

1.简介

3D 对象检测旨在识别和定位 3D 场景中的对象。此类场景通常使用点云表示,包含使用深度扫描仪捕获的无序、稀疏且不规则的点集。这种集合性质使得点云与传统的网格状视觉数据(如图像和视频)显着不同。虽然还有其他 3D 表示,例如多视图 [60]、体素 [1] 或网格 [8],但它们需要构建额外的后处理,并且通常会因量化而丢失信息。因此,点云已成为一种流行的 3D 表示形式,并刺激了专业 3D 架构的发展。

许多最近的 3D 检测模型直接作用于 3D 点来生成边界框。特别有趣的是,VoteNet [42]将 3D 检测视为一个集合到集合的问题,即将一组无序的输入(点云)转换为一组无序的输出(边界框)。VoteNet 使用编码器-解码器架构:编码器是一个 PointNet++ 网络 [44],它将无序点集转换为无序的点特征集。然后将点特征输入到生成 3D 边界框的解码器。虽然有效,但此类架构需要多年的精心开发,通过手动编码归纳偏差、半径以及设计特殊的 3D 算子和损失函数。

与 3D 并行,组对组编码器-解码器模型已成为 2D 对象检测建模的一种有竞争力的方法。特别是,最近基于 Transformer [68] 的模型,称为 DETR [4]2020,将 2D 对象检测视为一个集合到集合的问题。 Transformers 中的自注意力操作被设计为排列不变并捕获长范围上下文,使它们成为处理无序 3D 点云数据的自然候选者。受这一观察的启发,我们提出以下问题:我们是否可以利用 Transformer 来学习 3D 物体检测器,而不依赖于手工设计的归纳偏差?为此,我们开发了 3D DEtection TRansformer (3DETR),这是一种易于实现的 3D 检测方法,该方法使用较少的手工编码设计决策,并将检测视为一个集合到集合的问题。我们探讨了 VoteNet 和 DETR 之间的相似之处,以及 PointNet++ 的核心机制和 Trans 的自注意力机制之间的相似之处。前者构建我们基于 Transformer 的端到端检测模型。我们的模型遵循 DETR 和 VoteNet 所共有的通用编码器-解码器结构。对于编码器,我们用直接应用于点云的标准 Transformer 替换 PointNet++。对于解码器,我们考虑 DETR 与 Transformer 层的并行解码策略,进行两个重要的更改以使其适应 3D 检测,即非参数查询嵌入和傅里叶位置嵌入 [64]。

3DETR 消除了 VoteNet 和 PointNet++ 中的许多硬编码设计决策,同时易于实现和理解。与 DETR 不同,3DETR 不采用 ConvNet 主干网,而仅依赖于从头开始训练的 Transformer。我们基于变压器的检测管道非常灵活,与 VoteNet 一样,任何组件都可以被其他现有模块替换。最后,我们表明 3D 特定感应偏置可以轻松地合并到 3DETR 中,以进一步提高其性能。在两个标准室内 3D 检测基准 ScanNetV2 和 SUN RGB-D 上,我们分别实现了 65.0% AP 和 59.0% AP,比 ScanNetV2 上改进的 VoteNet 基线高 9.5% AP50。

2.相关工作

我们提出了一种由 Transformer 块组成的 3D 对象检测模型。我们以 3D 架构、检测和 Transformer 方面的先前工作为基础。

基于网格的 3D 架构。将不规则3D数据转换为规则网格后,可以将卷积网络应用于不规则3D数据。投影方法[3,19,25,26,59,60,65]将3D数据投影到2D平面并将其转换为2D网格。3D 数据还可以通过体素化转换为体积 3D 网格 [1, 12, 15, 28, 35, 49, 56, 66]。我们直接使用 3D 点云,因为它们适合基于集合的架构,例如 Transformer。

点云架构。 3D 传感器通常以无序点云的形式获取数据。当使用无序点云作为输入时,希望获得排列不变特征。基于逐点 MLP 的架构 [17, 83],例如 PointNet [44] 和 PointNet++ [45],使用排列等变集聚合(下采样)和逐点 MLP 来学习有效的表示。我们使用[45]中的单个下采样操作来保持模型中输入点的数量易于处理。

基于图的模型 [27, 73] 可以对无序 3D 数据进行操作。图是通过多种方式从 3D 数据构建的——DGCNN [77] 和 PointWeb [90] 使用点的局部邻域,SPG [24] 使用属性和上下文相似性,Jiang 等人 [18] 使用点-边交互。最后,基于连续点卷积的架构也可以在点云上运行。连续权重可以使用 SpiderCNN [80] 中的多项式函数或 FlexConvolutions [13] 中的线性函数来定义。卷积也可以通过以下方式应用软分配矩阵[69]或特定排序[28]。PointConv [78]和KPConv [67]根据输入点坐标动态生成卷积权重,而InterpCNN [34]使用这些坐标来插值权重。我们以 Transformer [68] 为基础,它适用于集合,但不适用于 3D。3D 对象检测是一个经过深入研究的研究领域,其中的方法根据 3D 输入数据预测三维边界框 [23,41,43,52,54,55,70,72,93]。许多方法通过使用 2D 投影来避免昂贵的 3D 操作。MV3D [6]、VoxelNet [92] 使用 3D 和 2D 卷积的组合。 Yan 等人 [81] 简化了 3D 操作,而 [82] 使用 2D 投影,[76] 使用体素的“柱子”。我们重点关注直接使用 3D 点云的方法 [40,51,75,85]。 PointRCNN [51] 和 PVRCNN [50] 是两阶段检测管道,类似于流行的 2D 图像 R-CNN 框架 [47]。虽然这些方法与我们的工作相关,但为了简单起见,我们构建了一个单阶段检测模型,如[11,14,42,84]中所做的那样。VoteNet [42] 在稀疏点云输入上使用霍夫投票,并通过为 3D 数据设计的特征采样、分组和投票操作来检测框。 VoteNet 是许多后续工作的基础。 3D-MPA [11] 将投票与图 ConvNet 相结合以细化对象提案,并使用专门设计的 3D 几何特征来聚合检测。 HGNet [5] 改进了霍夫投票并使用具有特征金字塔的分层图网络。 H3DNet [89] 通过预测 3D 图元并使用几何损失函数来改进 VoteNet。我们提出了一种简单的检测方法,可以作为 3D 检测创新的构建模块。

Transformer 的愿景。 Vaswani 等人 [68] 的 Transformer 架构在 NLP [9, 46]、语音识别 [33, 62]、图像识别 [4, 10, 16, 38, 74] 等领域取得了巨大成功,并且在跨领域领域应用程序[32,61,63]。 Transformer 非常适合在 3D 点上运行,因为它们本质上是排列不变的。基于注意力的方法已用于构建 3D 点表示以进行检索 [87]、户外 3D 检测 [29,36,86]、对象分类 [83]。并发工作 [37, 91] 也使用 Transformer 架构进行 3D。虽然这些方法使用 3D 特定信息来修改 Transformer,但我们突破了标准 Transformer 的限制。我们的工作受到 Carion 等人 [4] 最近用于图像中对象检测的 DETR 模型 [4] 的启发。与 Carion 等人不同的是,我们的模型是一个端到端转换器(无卷积骨干),可以从头开始训练,并且具有重要的设计差异,例如用于实现 3D 检测的非参数查询。

3. 方法

我们简要回顾了 3D 检测的先前工作及其与 3DETR 概念上的相似之处。接下来我们描述3DETR,边界框参数化的简化和更简单的设置到设置的目标函数。

3.1.预备知识

最近的 VoteNet [42] 框架构成了许多 3D 检测模型的基础,并且与我们的方法一样,是一个组对组预测框架。 VoteNet 使用专门的 3D 编码器和解码器架构进行检测。它将这些模型与专为稀疏点云设计的霍夫投票损失相结合。编码器是一个 PointNet++ [45] 模型,它使用专为 3D 点云设计的多个下采样(集合聚合)和上采样(特征传播)操作的组合。VoteNet“解码器”分三个步骤预测边界框 - 1)每个点为框的中心坐标“投票”; 2)在固定半径内聚合选票以获得“中心”; 3)围绕“中心”预测边界框。BoxNet [42] 是 VoteNet 的非投票替代方案,它从输入中随机采样“种子”点并将它们视为“中心”。然而,BoxNet 的性能比 VoteNet 差得多,因为投票捕获稀疏点云中的额外上下文并产生更好的“中心”点。正如作者 [42] 所指出的,编码器、解码器和损失函数中使用的多个手工编码半径对于检测性能非常重要,并且已经过仔细调整 [44, 45]。

Transformer [68] 是一种通用架构,可以处理集合输入并通过计算所有输入点对之间的自注意力来捕获大型上下文。这两个属性使其成为 3D 点云的良好候选模型。接下来,我们介绍我们的 3DETR 模型,该模型对编码器和解码器使用 Transformer,只需进行最少的修改,并且具有最少的 3D 手动编码信息。 3DETR 使用更简单的训练和推理过程。我们还强调了与用于 2D 检测的 DETR 模型的异同。

3.2. 3DETR:编码器-解码器转换器

3DETR 将 3D 点云作为输入,并以 3D 边界框的形式预测对象的位置。点云是 N 个点的无序集合,其中每个点都与其 3 维 XYZ 坐标相关联。点的数量非常大,我们使用[45]中的集合下采样操作对点进行下采样并将它们投影到 N′ 维特征。所得的 N' 特征子集通过编码器,也获得一组 N' 特征。解码器将这些特征作为输入,并使用受 [4] 启发的并行解码方案来预测多个边界框。编码器和解码器都使用具有“预范数”的标准 Transformer 块 [21],我们建议读者参考 Vaswani 等人 [68] 了解详细信息。图 2 说明了我们的模型。

论文阅读:An End-to-End Transformer Model for 3D Object Detection_编码器

图 2:方法。 (左)3DETR 是一种端到端可训练 Transformer,它采用一组 3D 点(点云)作为输入并输出一组 3D 边界框。 Transformer 编码器使用多层自注意力生成一组点特征。点特征和一组“查询”嵌入被输入到 Transformer 解码器,该解码器生成一组框。我们将预测框与真实情况相匹配并优化一组损失。我们的模型不使用颜色信息(仅用于可视化)。 (右)我们随机采样一组嵌入的“查询”点,然后由解码器转换为边界框预测。

编码器。下采样和集合聚合步骤使用具有两个 64、128 维隐藏层的 MLP 提供一组 d = 256 维的 N′ 特征。然后,这组 N' 特征被传递到 Transformer,以生成一组 d = 256 维的 N' 特征。 Transformer 应用多层自注意力和非线性投影。我们不在 Transformer 中使用下采样操作,而是使用标准的自注意力公式[68]。因此,Transformer 编码器没有针对 3D 数据进行具体修改。我们省略了编码器中坐标的位置嵌入,因为输入已经包含有关 XYZ 坐标的信息。

解码器。遵循 Carion 等人 [4] 的观点,我们将检测框架视为一个集合预测问题,即我们同时预测一组没有特定顺序的框。这是通过由 Transformer 块组成的并行解码器来实现的。该解码器将 N′ 点特征和一组 B 查询嵌入 {q e 1 , ... , q e B} 作为输入生成一组 B 特征,然后用于预测 3D 边界框。

在我们的框架中,查询嵌入 q e 表示 3D 空间中的位置,我们的最终 3D 边界框围绕该位置进行预测。我们在解码器中使用位置嵌入,因为它无法直接访问坐标(对编码器特征和查询嵌入进行操作)。

非参数查询嵌入。受 VoteNet 和 BoxNet [42] 中使用的种子点的启发,我们使用根据“种子”XYZ 位置计算的非参数嵌入。我们从 N′ 个输入点中随机采样一组 B 个“查询”点 {qi} B i=1(见图 2)。我们对随机样本使用最远点采样[45],因为它确保了原始点集的良好覆盖。我们将每个查询点 qi 与一个查询嵌入 q e i 相关联,通过将 qi 的坐标转换为傅立叶位置嵌入[64],然后用 MLP 进行投影。

3DETR-m:3DETR 中的归纳偏置。作为我们模型灵活性的概念证明,我们修改编码器以在 3D 数据中包含归纳偏差,同时保持解码器和损失固定。我们利用受 PointNet++ 启发的弱归纳偏差,即局部特征聚合比全局聚合更重要。通过对自注意力应用掩码,可以在 Transformers 中轻松实现这种归纳偏差 [68]。由此产生的模型 3DETR-m 具有一个屏蔽自注意力编码器,具有与 3DETR 相同的解码器和损失函数。 3DETR-m 使用三层编码器,在第一层之后有一个额外的下采样操作(从 N' = 2048 到 N'' = 1024 点)。

每个编码器层将 N'' × N'' 的二进制掩码应用于自注意力操作。掩码中的第 i 行表示  N''点中哪些点位于第 i 点的ℓ2 半径范围内。我们使用半径值 [0.16, 0.64, 1.44]。与PointNet++相比,3DETR-m不依赖多层3D特征聚合和3D上采样。

3.3.边界框参数化和预测

编码器-解码器架构产生一组 B 特征,这些特征被馈送到预测 MLP 中以预测边界框。 3D 边界框具有以下属性:(a) 其位置、(b) 大小、(c) 方向和 (d) 其中包含的对象的类。我们描述这些属性的参数化及其相关的预测问题。

预测 MLP 在每个查询坐标 q 周围生成一个框。 (a) 位置:我们使用盒子中心 c 的 XYZ 坐标。我们根据添加到查询坐标的偏移量 Δq 来预测这一点,即 c = q + Δq。

(b) 大小:每个盒子都是一个 3D 矩形,我们使用 XYZ 的尺寸 d 围绕中心坐标 c 定义其大小。

(c) 方向:在某些设置中[53],我们必须预测盒子的方向,即它与给定参照物相比形成的角度。我们遵循 [42],将角度从 [0, 2π) 量化为 12 个区间,并记下量化残差。角度预测涉及预测角度的量化“类别”和残差以获得连续角度 a。

(d)语义类:我们使用one-hot向量s来编码边界框中包含的对象类。我们引入“背景”或“非对象”类,因为某些预测框可能不包含对象。

将框的属性放在一起,我们有两个量:预测框 ^b 和真实框 b。每个预测框 ˆb = [cˆ, ˆd, aˆ, ˆs] 由 (1) 几何项 cˆ, ˆd ∈ [0, 1]3 组成,分别定义框中心和尺寸,

论文阅读:An End-to-End Transformer Model for 3D Object Detection_点云_02

定义角度的量化类别和残差; (2) 语义项 ˆs = [0, 1]K+1,包含 K 个语义对象类和“背景”类的概率分布。地面实况框 b 也具有相同的项。

3DETR-m:3DETR 中的归纳偏置。作为我们模型灵活性的概念证明,我们修改编码器以在 3D 数据中包含归纳偏差,同时保持解码器和损失固定。我们利用受 PointNet++ 启发的弱归纳偏差,即局部特征聚合比全局聚合更重要。通过对自注意力应用掩码,可以在 Transformers 中轻松实现这种归纳偏差 [68]。由此产生的模型 3DETR-m 具有一个屏蔽自注意力编码器,具有与 3DETR 相同的解码器和损失函数。 3DETR-m 使用三层编码器,在第一层之后有一个额外的下采样操作(从 N' = 2048 到 N'' = 1024 点)。每个编码器层将 N'' × N'' 的二进制掩码应用于自注意力操作。掩码中的第 i 行表示 N′′ 个点中的哪一个位于点 i 的 ℓ2 半径内。我们使用半径值 [0.16, 0.64, 1.44]。与PointNet++相比,3DETR-m不依赖多层3D特征聚合和3D上采样。

3.4.设置匹配和损失函数

为了训练模型,我们首先将 B 个预测 3D 边界框 { ˆb} 与地面实况边界框 {b} 进行匹配。虽然 VoteNet 使用手动定义的半径来进行此类集合匹配,但我们按照 [4] 来执行二分图匹配,该匹配更简单、通用(参见第 4.2.1 节)并且对非极大值抑制具有鲁棒性。我们使用其匹配的地面实况框计算每个预测框的损失。

二分匹配。我们使用几何和语义术语定义一对框、预测框 ^b 和地面真值框 b 的匹配成本。

论文阅读:An End-to-End Transformer Model for 3D Object Detection_点云_03

这些术语类似于用于训练模型的损失函数,并且 λs 是用于加权组合的标量。几何成本使用 GIoU [48] 和盒子中心之间的距离来衡量盒子重叠。盒子重叠会自动考虑盒子尺寸、角度旋转,并且比例不变。语义成本衡量预测分布 ˆs 下真实类别 sgt 的可能性以及属于前景类(即不属于背景类 sbg)的框特征的可能性。

正如之前的工作 [4, 58] 一样,我们使用匈牙利算法 [22] 计算所有预测框 { ˆb} 和地面真值框 {b} 之间的最佳二分匹配。由于我们预测的框数量多于真实值,因此未匹配的预测框被视为与“背景”类匹配。这鼓励模型不要过度预测,这一特性有助于我们的模型对非极大值抑制具有鲁棒性(参见第 5 节)。

损失函数。我们对中心和盒子维度使用 ℓ1 回归损失,将它们归一化在 [0, 1] 范围内以实现尺度不变性。我们使用 Huber 回归损失来计算角度残差,使用交叉熵损失来计算角度分类和语义分类。

论文阅读:An End-to-End Transformer Model for 3D Object Detection_点云_04

我们的最终损失函数是上述五个项的加权组合,我们在附录中提供了完整的详细信息。对于与“背景”类匹配的预测框,我们仅使用背景类真实标签计算语义分类损失。对于具有轴对齐 3D 边界框的数据集,我们还直接使用损失关于 GIoU,如 [4, 48] 中所示。我们不将 GIoU 损失用于定向 3D 边界框,因为它涉及计算。

中间解码器层。在训练时,我们使用相同的边界框预测 MLP 来预测解码器中每一层的边界框。我们独立计算每一层的集合损失,并对所有损失求和以训练模型。在测试时,我们仅使用从最后一个解码器层预测的边界框。

3.5.实现细节

我们使用 PyTorch [39] 实现 3DETR,并使用标准 nn.MultiHeadAttention 模块来实现 Transformer。我们使用单集聚合操作[45]对 N′ = 2048 个点进行二次采样,并获得 256 维点特征。 3DETR 编码器有 3 层,其中每层使用具有四个头的多头注意力和具有 128 个隐藏维度的“瓶颈”的两层 MLP。 3DETR 解码器有 8 层,紧随编码器,除了 MLP 隐藏维度为 256。我们在解码器中使用 XYZ 坐标的傅里叶位置编码 [64]。边界框预测 MLP 是隐藏维度为 256 的两层 MLP。完整的架构详细信息请参见附录 A.1。

模型中的所有 MLP 和自注意力模块都使用 0.1 的 dropout [57],但在解码器中我们使用更高的 dropout 0.3。 3DETR 使用 AdamW 优化器 [31] 进行优化,学习率通过余弦学习率计划 [30] 衰减到 10−6 ,权重衰减为 0.1,梯度裁剪为 0.1 ℓ2 范数。我们在单个 V100 GPU 上训练模型,批处理大小为 8,历时 1080 个周期。我们使用[88]中的 RandomCuboid 增强来减少过度拟合。

4. 实验数据集和指标。

我们在两个标准 3D 室内检测基准 - ScanNetV2 [7] 和 SUN RGB-D-v1 [53] 上评估模型。 SUN RGB-D 拥有 5K 个单视图 RGB-D 训练样本,带有 37 个对象类别的定向边界框注释。 ScanNetV2 具有 1.2K 训练样本(转换为点云的重建网格),以及 18 个对象类别的轴对齐边界框标签。对于这两个数据集,我们遵循[42]中的实验协议:我们使用平均精度(mAP)在两个不同的 IoU 阈值 0.25 和 0.5(表示为 AP25 和 AP50)下报告 val 集的检测性能。除了指标之外,他们的协议还对 SUN RGB-D 的 10 个最常见类别进行评估。

4.1. 3D 检测中的 3DETR

在这组实验中,我们验证了 3DETR 的 3D 检测效果。我们将其与 BoxNet 和 VoteNet 模型进行比较,因为它们在概念上类似于 3DETR,并且是许多最近的检测模型的基础。为了公平比较,我们使用我们自己的这些模型实现以及 3DETR 中使用的相同优化改进 - 导致 AP 比原始论文提高了 2-4%(详细信息参见补充)。我们还与最先进的方法 H3DNet [89] 进行比较,并在附录中提供与其他最新方法的更详细的比较。3DETR 模型对 ScanNetV2 和 SUN RGB-D 数据集使用 256 和 128 查询。

论文阅读:An End-to-End Transformer Model for 3D Object Detection_编码器_05

表 1:评估 3D 检测的 3DETR。我们将 3DETR 与 BoxNet 和 VoteNet 方法进行比较,并用 † 表示我们对这些基线的改进实现。尽管手工编码的 3D 或检测特定决策较少,但 3DETR 仍实现了与这些改进的基线相当或更好的性能。

我们报告了[89]中最先进的性能,它通过使用 3D 原语改进了 VoteNet。附录 B 中有详细的最新技术比较。

观察结果。我们将结果总结在表 1 中。BoxNet 和 3DETR 之间的比较特别重要,因为这两种方法都预测位置查询周围的框,而 VoteNet 使用 3D Hough Voting 来获取查询。我们的方法在两个数据集上均显着优于 BoxNet,在 ScanNetV2 上增益 +13% AP25,在 SUN RGB-D 上增益 +3.9% AP25。即使与 VoteNet 相比,我们的模型也实现了具有竞争力的性能,ScanNetV2 上的 AP25 为 +2.3%,SUN RGB-D 上的 AP25 为 -1.5%。 3DETR-m 使用 masked Transformer 编码器,在 SUN RGB-D 上实现了与 VoteNet 相当的性能,并在 ScanNetV2 上实现了 +4.6% AP25 和 +9.5% AP50 的增益。

与基于 VoteNet 的最先进方法 H3DNet [89] 相比,3DETR-m 在两个数据集上都在几个 AP25 点之内(附录 B 中有更详细的比较)。这些实验验证了基于标准 Transformer 的编码器解码器检测模型与针对 3D 数据定制的类似模型具有竞争力。正如 VoteNet 模型通过 H3DNet [89]、HGNet [5]、3D-MPA [11] 的创新改进一样,未来类似的创新也可以集成到我们的模型中。

定性结果。在图 3 中,我们可视化了来自 SUN RGB-D 的一些检测和地面实况框。尽管进行了部分(单视图)深度扫描,3DETR 仍然可以检测框,并且还可以预测 SUN RGB-D 上的非模态边界框或缺失注释。

论文阅读:An End-to-End Transformer Model for 3D Object Detection_3D_06

图 3:使用 3DETR 的定性结果。 SUN RGB-D 数据集的验证集场景的检测结果。 3DETR 不使用颜色信息(仅用于可视化)并根据点云预测框。 3DETR 即使使用单视图深度扫描也可以检测物体,并预测非模态框,例如床的整个范围(左上),包括地面实况中丢失的物体(右上)。

4.2.分析 3DETR

我们进行了一系列实验来了解 3DETR。在第 4.2.1 节中,我们探讨了 3DETR、VoteNet 和 BoxNet 之间的相似之处。接下来,在第 4.2.2 节中,我们将 3DETR 中支持 3D 检测的设计决策与 DETR 中的原始组件进行比较。

4.2.1 VoteNet 和 BoxNet 与 3DETR 的模块

编码器-解码器范例是灵活的,我们可以测试 VoteNet、BoxNet 和 3DETR 中的不同模块是否可以互换。我们重点关注编码器、解码器和损失,并在表 2 和表 3 中报告检测性能。为了简单起见,我们将 BoxNet 和 VoteNet 中使用的解码器和损失分别表示为 Box 和 Vote。我们使用 PointNet++ 来指代 VoteNet [42] 中使用的修改后的 PointNet++ 架构。

更换编码器。我们使用 PointNet++ 编码器训练 3DETR(表 2),并观察到与使用 Transformer 编码器的 3DETR 相比,检测性能没有变化或稍差。这表明 3DETR 中的设计决策与之前的工作广泛兼容,并且可用于设计更好的编码器模型。

更换解码器。在表 3 中,我们观察到用 Box 或 Vote 解码器替换基于 Transformer 的解码器会导致两个基准测试的检测性能较差。此外,Box 和 Vote 解码器仅适用于各自的损失,而我们在这些解码器上使用集合损失的初步实验导致了更糟糕的结果。因此,性能下降可能是由于更改了变压器编码器所使用的解码器所致。接下来,我们通过使用 Transformer 编码器和解码器替换 3DETR 中的损耗来检查这一点。

弥补损失。我们训练 3DETR,即具有 Box 和 Vote 损失的 Transformer 编码器和解码器。我们观察到(表 3 第 4 行和第 5 行)这会导致类似的性能下降,表明这些损失不适用于我们的模型。这并不奇怪,因为投票损失中的投票半径、聚合半径等设计决策是专门针对 PointNet++ 编码器中的半径参数设计的[45]。这组观察结果表明,VoteNet 中使用的解码器和损失函数在很大程度上取决于编码器的性质(附录 B.4 中的其他结果)。相比之下,我们的集合损失没有特定于我们的编码器-解码器的设计决策。

可视化自我注意力。我们在图 1 中可视化解码器中的自注意力。解码器关注整个实例和实例内的组点。这可能使得预测每个实例的边界框变得更容易。我们在补充材料中提供了编码器自注意力的可视化。

编码器应用于形状分类。为了验证我们的编码器设计并非特定于检测任务,我们在包括 3D Warehouse [79] 在内的模型的形状分类上测试编码器。我们使用 3DETR 的三层编码器和普通自注意力(无解码器)或 3DETR-m 的三层编码器。为了获得点云的全局特征,我们使用 Transformer 中的“CLS token”公式,即将一个常量点附加到输入,并使用该点的输出编码器特征作为全局特征(详细信息请参阅补充)。来自编码器的全局特征被输入到 2 层 MLP 以执行形状分类。表 4 显示,3DETR 和 3DETR-m 编码器与专为 3D 定制的最先进编码器具有竞争力。这些结果表明我们的编码器设计并非特定于检测,可以用于其他 3D 任务。

论文阅读:An End-to-End Transformer Model for 3D Object Detection_3D_07

表 4:形状分类。我们通过训练 Transformer 编码器模型来报告形状分类结果。我们的模型与专为 3D 设计的架构相比具有竞争力,这表明我们的设计决策可以超越检测范围并对其他任务有用。

4.2.2 3DETR 中的设计决策

我们的模型受到 DETR [4] 架构的启发,但有重大区别 - (1) 它是一个没有 ConvNet 的端到端转换器,(2) 它是从头开始训练的 (3)使用非参数查询和 (4) 傅里叶位置嵌入。

在表 5 中,我们通过在 ScanNetV2 上评估模型的各个版本来显示最后两个差异的影响。修改最少的版本是通过我们的训练和损失函数应用于 3D 的 DETR 模型。

论文阅读:An End-to-End Transformer Model for 3D Object Detection_点云_08

表 5:解码器查询类型和位置嵌入。我们研究使用非参数查询和傅立叶位置嵌入[64]如何影响检测性能。 DETR 的参数查询不适用于 3D 检测(第 3、5 行)。正弦位置嵌入的标准选择 [4, 68] 比傅里叶嵌入(第 2、3 行)差。 † - DETR 专为 2D 图像检测而设计,我们将其调整为 3D 检测。

首先,该版本在 ScanNetV2 基准测试中表现不佳,达到 15% AP25。但是,当用非参数查询替换参数查询时我们观察到 AP25 显着提高了 +40%(表 5 第 3 行和第 5 行)。事实上,仅使用不使用位置嵌入的非参数查询(第 4 行)可以使性能翻倍。这显示了使用 3D 点云非参数查询的重要性。原因是点云不规则且稀疏,使得参数查询的学习比二维图像网格更困难。非参数查询直接从点云中采样,因此受这些不规则性的影响较小。

与 DETR 中固定数量的参数查询不同,非参数查询可以轻松地在训练和测试时使用不同数量的查询(参见第 5.1 节)。

最后,用[64]的低频傅里叶编码替换正弦位置嵌入,在 AP25 中提供了 +5% 的额外改进(表 5 第 2 行和第 3 行)。附带说明一下,使用位置编码对解码器的好处比对编码器的好处更大,因为解码器无法直接访问坐标。

5. 消融

我们进行了一系列消融实验,以了解 3DETR 的组成部分以及第 4 节中的设置。

NMS 的效果。 3DETR 使用 DETR(第 3.4 节)的集合损失来强制地面实况框和预测框之间进行 1 对 1 映射。这种损失会惩罚预测过多框的模型,因为过多的预测与真实情况不匹配。相比之下,VoteNet [42] 中使用的损失不会阻止对同一对象的多次预测,因此依赖于非极大抑制作为后处理步骤将其删除。我们将表 6 中带和不带 NMS 的 3DETR 和 VoteNet 与检测 AP 指标进行比较,该指标对重复检测进行惩罚。如果没有 NMS,3DETR 的性能仅下降 3% AP,而 VoteNet 则下降 50%,这表明我们的集合损失在没有 NMS 的情况下也有效。

编码器/解码器层的影响。我们在图 4 中评估了编码器和解码器中层数的重要性。虽然较高的层数通常可以提高检测性能,但在解码器而不是编码器中添加层对性能的影响更大。例如,对于具有三个编码器和三个解码器层的模型,添加五个解码器层可将性能提高 +7% AP50,而添加五个编码器层可将性能提高 +2%AP50。这种对解码器的偏好的出现是因为在我们的并行解码器中,每一层都进一步细化了边界框的预测质量。

5.1.使计算适应推理约束

我们模型的一个优点是,我们可以通过在解码器中使用更少的层来在推理期间调整其计算或查询来预测框而无需重新训练。

调整解码器深度。 3DETR 的并行解码器经过训练,可以使用相同的边界框预测 MLP 来预测每一层的框。到目前为止,在我们的所有结果中,我们仅使用最后一个解码器层的预测。

现在,我们测试图 5(左)中具有六层的解码器的中间层的性能。我们将其与训练具有不同数量的解码器层的不同模型进行比较。我们有两个观察结果 - (1) 与图 4 类似,检测性能随着解码器层数的增加而增加; (2) 更重要的是,在测试时深度减少的同一模型的性能与从头开始训练的深度减少的模型一样好,甚至更好。第二个属性与 DETR 共享,但不与 VoteNet 共享。它允许在推理期间调整解码器中的层数以适应计算预算,而无需重新训练。

调整查询数量。随着查询数量的增加,3DETR 会预测更多的边界框,从而以更长的运行时间为代价获得更好的性能。然而,3DETR 中的非参数查询允许我们调整框预测的数量,以牺牲性能换取运行时间。请注意,这对于 VoteNet 也是可行的,但对于 DETR 则不行。在图 5(右)中,我们将测试时查询数量的变化与使用不同查询数量训练的不同模型进行了比较。相同的 3DETR 模型可以在测试时适应不同数量的查询,并且与不同模型的性能相当。性能不断提高,直到查询数量足以很好地覆盖点云。我们发现,这种对测试时查询数量的调整最适合使用 128 个查询训练的 3DETR 模型(有关其他模型,请参阅附录 B)。这种自适应计算很有前景,对有效自注意力的研究应该有利于我们的模型。

我们在附录 A.1 中提供了不同版本 3DETR 模型与 VoteNet 的推理时间比较。

6. 结论 我们提出了 3DETR,一种用于点云 3D 检测的端到端 Transformer 模型。 3DETR 需要很少的 3D 特定设计决策或超参数。我们表明,使用非参数查询和傅立叶编码对于良好的 3D 检测性能至关重要。我们提出的设计决策使强大的 Transformer 能够用于 3D 检测,并且也有利于形状分类等其他 3D 任务。此外,我们的集合损失函数可推广到先前的 3D 架构。一般来说,3DETR 是一个灵活的框架,可以轻松合并 3D 检测中使用的现有组件,并可用于构建更先进的 3D 检测器。最后,它还结合了 VoteNet 和 DETR 的灵活性,允许在测试时进行可变数量的预测(如 VoteNet)和可变数量的解码器层(如 DETR).

补充材料

A. 实施细节

A.1。架构

我们详细描述了 3DETR 架构。

架构。我们按照[42]中的数据集预处理为SUN RGB-D 和 ScanNetV2 数据集中每个样本分别得到N = 20000 个点和N = 40000个点。然后将 N ×3 点坐标矩阵传递到一层下采样和集合聚合操作 [45],该操作使用 Farthest-PointSampling 从场景中随机采样 2048 个点。

每个点都投影到 256 维特征,然后进行集合聚合操作,聚合 0.2 的 L2 距离内的特征。输出是 N’ = 2048 个点的 2048×256 维特征矩阵,该点被输入到编码器。我们现在描述编码器和解码器架构(如图6所示)

论文阅读:An End-to-End Transformer Model for 3D Object Detection_点云_09

图 6:编码器和解码器的架构。我们提出了一层 3DETR 编码器和解码器的架构。

编码器层将 N’ 个点的 N’ × d 个特征作为输入,并输出 N’ × d 个特征。它执行自注意力,然后执行 MLP。解码器将输入 B × d 特征(查询嵌入或先前的解码器层)、来自编码器的 N’ × d 点特征作为 B 个框的输出 B × d 特征。解码器在B个查询/框特征之间执行自注意力,以及在B个查询/框特征和N’个点特征之间执行交叉注意力。我们用∼F表示解码器中使用的傅里叶位置编码[64]。所有 3DETR 模型均使用 d = 256。

编码器。编码器具有三层自注意力,后跟一个 MLP。自注意力操作使用四个头的多头注意力。自注意力产生一个 2048×2048 的注意力矩阵,用于关注特征以产生 256 维的输出。每层中的 MLP 的隐藏维度为 128。所有层都使用 LayerNorm [2] 和 ReLU 非线性。

3DETR-m 编码器。掩码 3DETR-m 编码器具有三层自注意力,后跟一个 MLP。在每一层,大小为 #points×#points 的自注意力矩阵乘以相同大小的二进制掩码 M。如果点 i 和 j 的点坐标在彼此的半径 r 内,则二进制掩码条目 Mij 为 1。我们使用半径值 [0.4; 0.8; 1.2]三层。第一层对 2048 个点进行操作,然后是下采样 + 集合聚合运算符,使用 0.4 的半径下采样到 1024 个点,类似于 PointNet++。编码器层遵循与上述普通编码器相同的结构,即隐藏维度为 128 的 MLP、具有四个头的多头注意力等。编码器为 1024 个点生成 256 维特征。

解码器。解码器对 N’ × 256 编码器特征和 B × 256 位置查询嵌入进行操作。它生成一个 B × 256 框特征矩阵作为输出。解码器有八层,使用位置查询嵌入(第 3.2 节主要论文)和编码器特征之间的交叉注意力,以及框特征之间的自注意力。每层都有自注意力操作,然后是交叉注意力操作(与自注意力完全一样实现)和隐藏维度为 256 的 MLP。所有层都使用 LayerNorm [2]、ReLU 非线性和 0.3的dropout。

边界框预测 MLP。框预测 MLP 对来自解码器的 B × 256 框特征进行操作。我们使用单独的 MLP 进行以下五个预测 -

1)中心位置偏移 ;

论文阅读:An End-to-End Transformer Model for 3D Object Detection_编码器_10

2)角度量化类;

3)角度量化残差∈R;

4) 盒子大小 ;

论文阅读:An End-to-End Transformer Model for 3D Object Detection_点云_11

5) 对象的语义类别。

每个 MLP 有 256 个隐藏维度并使用 ReLU 非线性。中心位置和大小预测 MLP 输出后跟一个 sigmoid 函数,将它们转换为 [0,范围。

推理速度。 3DETR 几乎没有 3D 特定的调整,并使用标准 PyTorch。 VoteNet 依赖自定义 GPU CUDA 内核进行 3D 操作。我们在 V100 GPU 上测量了 3DETR(256 个查询)和 VoteNet(256 个盒子)的推理时间,批量大小为 8 个样本。两种模型都将点云下采样到 2048 个点。 3DETR 需要 170 毫秒,而 VoteNet 需要 132 毫秒。随着高效自注意力的研究变得更加成熟(最近的几项工作显示出了希望),它将有利于我们模型的运行时和内存效率。

A2。 Set Loss 集合匹配成本定义为:

论文阅读:An End-to-End Transformer Model for 3D Object Detection_点云_12

对于 B 个预测框和 G 个真实框,我们使用上述成对成本项计算 B × G 成本矩阵。然后,我们使用匈牙利算法计算每个地面实况框和预测框之间的最佳分配。由于预测框的数量大于真实框的数量,因此剩余的 B−G 框被认为与背景匹配。我们设置 λ1; λ2; λ3; λ4为2; 1; 0; ScanNetV2 和 3 为 0; 5; 1; 5 用于 SUN RGB-D。

对于与地面真实框匹配的每个预测框,我们的损失函数是:

论文阅读:An End-to-End Transformer Model for 3D Object Detection_编码器_13

对于每个被视为背景的不匹配框,我们仅计算语义损失项。语义损失被实现为加权交叉熵损失,其中“背景”类的权重为 0.2,K 个对象类的权重为 0.8。

B. 实验

我们提供额外的实验细节和超参数设置。

B.1.改进的基线

我们通过进行网格搜索和改进优化超参数来改进 VoteNet 和 BoxNet 基线。我们使用 Adam 优化器 [20] 训练基线模型 360 个周期,学习率为 1 × 10−3,在 160, 240,个周期后衰减 10 倍,并且权重衰减为 0。我们发现,使用余弦学习率计划,即使训练时间超过 360 个 epoch 或 AdamW 优化器,也不会在基线性能上产生显着差异。这些对基线的改进导致了性能的提高,如表 8 所示。

B.2.每类结果

我们在表 10 中提供了 ScanNetV2 的每类 mAP 结果,在表 9 中提供了 SUN RGB-D。这些模型的总体结果在主论文中报告了。

B.3.详细的最先进的比较

我们在表 11 中提供了与最先进的检测方法的详细比较。大多数最先进的方法都建立在 VoteNet 的基础上。 H3DNet [89] 将 3D 原语与 VoteNet 结合使用以实现更好的定位。 HGNet [5] 通过使用具有来自其 PointNet++ 主干的更高分辨率输出的分层图网络来改进 VoteNet。 3DMPA [11] 在 VoteNet 方法之上使用基于聚类的几何聚合和图卷积。与所有其他方法相比,3DETR 不使用投票,并且具有更少的 3D 特定决策。与这些方法相比,3DETR 的表现优于 VoteNet。这表明,与 VoteNet 一样,3DETR 可以用作未来 3D 检测方法的构建块。

B.4.具有投票损失的 3DETR-m

我们使用 3DETR-m 编码器调整了 VoteNet 损失,我们的最佳调整模型在 ScanNetV2 和 SUN RGB-D 上分别给出了 60.7% 和 56.1% 的 mAP(来自主论文表 3 的设置)。与普通 3DETR 编码器相比,3DETR-m 的 VoteNet 损失表现更好(增益分别为 6% 和 3%),这证实了 VoteNet 损失取决于编码器的归纳偏差/设计。对于 3DETR-m,使用我们的集合损失仍然比使用 VoteNet 损失更好(表 1 与本段中所述的结果)。因此,我们的集合损失设计决策比 VoteNet 的适用范围更广泛。

B.5。在测试时调整

查询我们为主论文第 5.1 节提供了额外的结果。我们更改了同一 3DETR 模型测试时使用的查询数量。我们在图 7 中显示了分别使用 64 和 256 个查询训练的两个不同 3DETR 模型的结果。我们观察到,使用 64 个查询训练的模型对于测试时更改查询的鲁棒性更强,但在最佳设置下,检测性能比使用 256 个查询训练的模型差。在主论文中,我们展示了使用 128 个查询训练的模型在测试时更改查询的结果,该模型在整体性能和测试时更改的鲁棒性之间实现了良好的平衡。

B.6.可视化编码器注意力

我们将在图 8 中的 SUN RGB-D 数据集上训练的 3DETR 模型的编码器注意力可视化。编码器关注对象的部分。

B.7.形状分类设置

数据集和指标。我们使用[45]中处理过的具有法线的点云,并采样 8192 个点作为训练和测试模型的输入。继之前的工作[90]之后,我们报告了两个评估形状分类性能的指标:1)总体精度(OA)评估我们正确分类的点云数量; 2) 类别平均准确度 (mAcc) 独立评估每个类别的准确度,然后是每个类别准确度的平均值。该指标确保尾部类别对最终性能的贡献相同。

架构细节。我们使用基本的 3DETR 和 3DETR-m 编码器架构,然后是具有批归一化和 0.5 dropout 的 2 层 MLP,将最终特征转换为 40 个预定义形状类的分布。与对象检测实验不同,我们的点特征包括每个点处与 3D 法线信息连接的 3D 位置信息,因此第一个线性层相应更大,尽管网络的其余部分遵循与用于检测的编码器相同的架构。对于 3DETR 的实验,我们在前面添加一个 [CLS] 标记,其输出用作分类 MLP 的输入。对于涉及屏蔽变压器的 3DETRm 实验,我们最大池化了最终的层特征,然后将其传递到分类器中。

训练细节。所有模型均使用 AdamW 优化器进行 250 个周期的训练,学习率为 4 × 10−4,权重衰减为 0:1。我们在 20 个时期内使用从 4 × 10−7 到初始 LR 的线性预热,然后在剩余的 230 个时期内衰减到 4×10−5 。这些模型在 4 个 GPU 上进行训练,每个 GPU 的批量大小为 2。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
wh9rG0UkdQJu