[论文阅读]CT3D——逐通道transformer改进3D目标检测
CT3D
论文网址:CT3D
论文代码:CT3D
简读论文
本篇论文提出了一个新的两阶段3D目标检测框架CT3D,主要的创新点和方法总结如下:
- 创新点:
(1) 提出了一种通道注意力解码模块,可以进行全局和局部通道聚合,生成更有效的解码权重。
(2) 提出了建议到点嵌入模块,可以有效地将建议信息编码到每个原始点中。
(3) 整个框架端到端,可以非常方便的和任何高质量的建议生成网络结合,实现强大的建议优化。
- 方法:
(1) 利用SECOND作为默认的建议生成网络,由于其生成的建议质量很高。
(2) 对每个建议,采样256个原始点,计算这些点与建议框8个角点的相对坐标作为点特征。
(3) 通过多头自注意力层refine点特征,捕捉点之间的全局上下文信息。
(4) 提出通道注意力解码模块,先重复查询和键的矩阵乘法,然后点积重加权到键上,生成解码权重。既保留了全局信息,也强调了通道级别的局部信息。
(5) 最终解码后的全局特征,馈入两个全连接层分别预测 confidence 和 box regression。
(6) 使用IoU误差、分类误差和回归损失进行端到端训练。
本方法在KITTI和Waymo数据集上验证了其有效性,明显超过之前的状态矩阵方法。
摘要
尽管基于点云的3D目标检测近年来取得了快速发展,但缺乏灵活和高性能的提案细化仍然是现有最先进的两阶段检测器的一大障碍。之前关于完善3D提案的工作依赖于人工设计的组件,例如关键点采样、集合抽象和多尺度特征融合来生成强大的3D目标表示。然而,这样的方法捕获点之间丰富的上下文依赖关系的能力有限。本文利用高质量的区域提议网络和一个Transformer架构,构成两阶段的3D目标检测架构(CT3D)。CT3D同时执行提案感知嵌入和聚合每个提议通道上下文点的功能。具体来说,CT3D使用使用提案的关键点进行空间上下文建模,并在编码模块中学习注意力传播,将提案映射到点嵌入。接下来,一个新的通道解码模块通过通道重新加权来丰富查询键交互,以有效的合并多级上下文,这有助于更准确的对象预测。大量实验表明,CT3D方法具有良好的性能和可扩展性。CT3D在KITTI测试3D检测基准中的中型车类别中达到了81.77%的ap,优于最先进的3D检测器。
引言
从点云数据中检测三维物体被认为是未来自动驾驶汽车(AV)不可或缺的一部分。与已经成熟运用的二维检测算法不用,其成功主要是由于图像像素的规则结构,LiDAR点云通常是稀疏的,无序的和不均匀分布的。这使得类似CNN的操作不太适合直接处理非结构化的点云数据。为了应对这些挑战,许多方法采用点云体素化或自定义离散化。几种方法[Multi-view convolutional neural networks for 3d shape recognition-2015,Vehicle detection from 3d lidar using fully convolutional network-2016]将点云投影到鸟瞰图(BEV)表示并应用标准的2D卷积。但是,它将不可避免的牺牲某些几何细节,这些细节对于生成准确的定位至关重要。其他方法[Multi-view 3d object detection network for autonomous driving-2017,Second-2018]将点云绘制成3D体素网格并使用常规3D CNN在网格空间中执行计算,但这类方法存在与网格更精细相关的计算瓶颈。点云检测任务的重大突破是由于点云表示的有效深度架构,例如volumetric convolution[Second] 和 permutation invariant convolution[Pointnet]。
最近,大多数用于3D目标检测的最先进的方法采用由3D区域提议生成和提议特征细化组成的两阶段框架。请注意,最流行的区域提议网络(RPN)骨干在KITTI 3D检测基准上实现了超过95%的召回率,而这种方法仅实现了78%的平均精度(AP)。造成这种差距的原因是,在遮挡或长距离的情况下,难以对目标进行编码并从3D提案中提取鲁棒特征。因此,如何在提议的特征细化阶段,有效的建模点之间的几何关系,并利用准确的位置信息对实现良好性能是至关重要的。一个重要的模型家族是PointNet及其变体,他们使用灵活的感受野通过局部区域和置换不变网络来聚合特征。然而,这些方法涉及大量的手工设计,例如,相邻球半径和网格大小。另一类模型是基于体素的方法,它使用3D卷积收集来自相邻体素的信息。但由于体素量化和对超参数的敏感性,这些方法的性能并不是最优的。后来的研究进一步应用point-voxel混合策略来捕获多尺度特征,同时保留细粒度定位,但与特定的RPN架构密切相关。
本文做了两个主要贡献。首先,提出了一个新的端到端的两阶段的3D目标检测框架,称为CT3D。受最近基于Transformer的2D检测方法DETR的启发,该方法使用CNN主干提取特征,并使用encoder-decoder Transformer增强ROI区域特征,本文设计了CT3D,以在第一阶段生成3D边界框,然后通过在解码器中结合新颖的Transformer架构和通道重新加权机制来学习每个提案表示。所提出的框架在准确性和效率方面表现出非常强的性能,因为可以方便地与任何高质量的RPN骨干相结合。
第二个贡献是自定义Transformer,它比传统的而基于point/voxel的特征聚合机制提供了几个好处,尽管逐点卷积或体素卷积具有局部和全局上下文建模的能力,但在增强感受野或参数优化等方面仍存在一些限制。此外,基于点云的3D目标检测器还必须处理具有挑战性的丢失/噪声检测,如遮挡和与几个点的距离模式。最近,Transformer中的自注意力已经成为捕获远程交互的基本构件,因此在获取背景信息以丰富远处物体或增加假阴性的置信度方面是一个自然而然地选择。在这一思想地启发下,本文初步提出了一种提案到点地嵌入方法,以便在编码器模块中对RPN提案信息进行有效编码。此外,考虑到编码点的全局和局部通道特性,本文采用了通道重新加权的方法来增强标准Tranformer解码器。其目的是扩大特征解码空间,在这里可以计算关键字嵌入的每个通道维度上的注意力分布,从而增强查询关键字交互的表现力。
相关工作
基于点云表示的三维目标检测 : 最近,在学习原始LiDAR点云的有效表示方面取得了很大进展。一个值得注意的部分是PointNet系列,它采用排列不变操作来聚合点特征。F-PointNet为每个3D平截头体内的点云生成区域级特征。PointRCNN使用PointNet++来分割前景3D点,并使用分割功能完善提议。STD通过将稀疏点特征转换为密集体素表示,进一步扩展了提议的细化。此外,3DSSD通过基于特征距离的新采样策略改进了基于点的方法。然而,类似PointNet的架构仍然存在有限的能力来捕获LiDAR数据的局部结构。另一类方法旨在将非结构化点云体素化为常规的2D/3D网格,在该网格上可以很容易的应用传统的CNN。先驱的工作将点云编码为2D鸟瞰图特征图,以生成高度准确的3D候选框,激发了许多基于鸟瞰图表示的有效方法。VoxelNet将这些点转换为一个紧凑的特征表示。Second引入了3D稀疏卷积,用于高效的3D体素处理。这些基于体素的方法仍然集中在细分的体素,而不是自适应建模的局部几何结构。此外,已经提出了各种基于点-体素的方法用于多尺度特征聚合。SA-SSD提出了一种基于3D体素CNN的辅助网络。PV-RCNN及其变体VoelRCNN采用3D体素CNN作为RPN来生成高质量的提议,然后利用PointNet来聚合网格周围的体素特征。然而,这些混合方法需要大量手工制作的功能设计。
基于Transformer的目标检测 : 由于Transformer在计算机视觉领域的许多成功,最近发展了一种新的物体检测范例。由于Transformer模型在学习局部上下文感知表示方面非常有效,DETR将检测视为集合预测问题,并采用具有并行解码的Transformer来检测2D图像中的目标。DETR的一个变体进一步开发了一个可变性的注意力模块,以采用跨尺度聚合。对于点云,最近的方法[Pct-2020,Point transformer-2020]也探索了使用self-attention进行分类和分割任务。
CT3D for 3D Object Detection
鉴于广泛使用的 RPN 主干(如 3D 体素 CNN [33])生成的提案,当前最先进的提案细化方法专注于细化由卷积层提取的中间多阶段体素特征,遇到困难包括额外的超参数优化和设计通用模型。本文相信具有精确位置信息的原始点足以完善检测建议。考虑到这一观点,本文通过在 RPN 网络之上部署精心设计的 Transformer 来直接利用原始点云来构建 CT3D 框架。具体来说,整个 CT3D 检测框架由三部分组成,即用于生成提案的 RPN 主干、用于提案特征细化的通道级 Transformer 和用于对象预测的检测头。
RPN for 3D Proposal Generation
从具有 3 维坐标和 C 维点特征的点云 P 开始,RPN 生成的预测 3D 边界框由中心坐标 pc = [xc, yc, zc]、长度 lc、宽度 wc、高度 hc 和方向θc。本文采用 3D 体素 CNN SECOND 作为默认 RPN,因为它具有高效率和准确性。请注意,任何高质量的 RPN 都应该可以在本文的框架中轻松替换,并且可以通过端到端方式进行训练。
Proposal-to-point Encoding Module
为了完善生成的 RPN 提案,采用了两步策略。具体来说,第一个提议到点嵌入步骤将提案映射到点特征,然后第二个自注意力编码步骤是通过对相应提案内点之间的相对关系进行建模来细化点特征。
Proposal-to-point Embedding. : 考虑到 RPN 生成的提案,根据提案在点云中划定了按比例缩放的 RoI 区域。其目的是通过尽可能多地包裹所有对象点来补偿提案与相应的地面实况框之间的偏差。具体来说,缩放后的 RoI 区域是一个高度无限、半径为 的圆柱体,其中 α 是超参数,l、w 表示区域的长度和宽度。分别提出建议。此后,取出缩放RoI内随机采样的N=256个点(N={p1,…,pN})以进行进一步处理。
首先,我们计算每个采样点与proposal中心点之间的相对坐标,以统一输入距离特征,表示为 Δpc i = pi − pc, ∀pi ∈ N。一个简单的想法是直接连接proposal将信息放入每个点特征中,即 [Δpc i , lc, wc, hc, θc, fr i ],其中 fr i 是原始点特征,例如反射。然而,提案的大小方向表示仅产生适度的性能,因为 Transformer 编码器根据上述几何信息重新定向的效果可能较差。
值得注意的是,关键点通常在检测任务中提供更明确的几何属性,我们提出了一种新颖的关键点减法策略来计算每个点与相应提案的八个角点之间的相对坐标。计算出的相对坐标为 Δpj i = pi − pj, j = 1,…, 8,其中 pj 是第 j 个角点的坐标。请注意,lc、wc、hc 和 θc 消失,但包含在距离信息的不同维度中。通过这种方式,新生成的相对坐标 Δpj i 可以被视为提案信息的更好表示。如上图左侧所示,对于每个点pi,proposalguided点特征可以表示为:
其中 A(·) 是线性投影层,用于将点特征映射到高维嵌入。
Self-attention Encoding. : 然后将嵌入的点特征输入多头自注意力层,然后是具有残差结构的前馈网络(FFN),以编码丰富的上下文关系和点依赖性,以细化点特征。如上图右半部分所示,这种自注意力编码方案与原始 NLP Transformer 编码器几乎具有相同的结构,除了位置嵌入,因为它已经包含在点特征中。表示 X = [fT 1 , . 。 。 , fT N]T ∈ RN×D 作为维度为 D 的嵌入点特征,有 Q = WqX; K=WkX; V = WvX,其中 Wq,Wk,Wv ∈ RN×N 是线性投影,Q、K 和 V 是所谓的查询、键和值嵌入。然后通过多头自注意力机制处理这三个嵌入。在 H-head 注意力情况下,Q,K 和 V 进一步分为 Q = [Q1, . 。 。 ,QH],K = [K1,. 。 。 ,KH],且 V = [V1,. 。 。 ,VH],其中 Qh,Kh,Vh ∈ RN×D′ , ∀h = 1, . , H 和 D′ = D/H 。多头自注意力后的输出由下式给出:
其中 σ(·) 是 softmax 函数。下面,应用简单的 FFN 和残差算子,结果如下:
其中 Z(·) 表示加法和归一化算子,F(·) 表示具有两个线性层和一个 Relu 激活的 FFN。本文观察到,由 3 个相同的自注意力编码模块组成的堆栈非常适合本文的 CT3D 框架。
Channel-wise Decoding Module
在本小节中,设法将编码器模块中的所有点特征(即 ^X)解码为全局表示,并由 FFN 进一步处理以进行最终检测预测。与标准 Transformer 解码器不同,标准 Transformer 解码器使用自编码器-解码器注意机制转换 M 个多个查询嵌入,本文的解码器仅根据以下两个事实操作一个查询嵌入:
- M 查询嵌入会遭受较高的内存延迟,尤其是在处理大量提案时。
- M 个查询嵌入通常独立地转换为 M 个单词或对象,而本文的提案细化模型只需要一次预测。
一般来说,解码器之后的最终建议表示可以被视为所有点特征的加权和,本文的关键动机是确定专用于每个点的解码权重。下面,首先分析标准解码方案,然后开发改进的解码方案以获得更有效的解码权重。
Standard Decoding. : 标准解码方案利用 D 维的可学习向量(即查询嵌入)来聚合所有通道的点特征。如图3(a)所示,每个注意力头中所有点特征的最终解码权重向量为:
其中 Kˆ h 是通过编码器输出的投影计算出的第 h 个头的关键嵌入,qˆ h 是相应的查询嵌入。请注意,向量 qˆ h ˆKT h 的每个值都可以视为各个点(即每个密钥嵌入)的全局聚合,后续的 softmax 函数根据归一化向量中的概率为每个点分配解码值。因此,解码权重向量中的值是从简单的全局聚合导出的,缺乏局部通道建模,这对于学习点云的 3D 表面结构至关重要,因为不同的通道通常在点云中表现出很强的几何关系。
Channel-wise Re-weighting. : 为了强调关键嵌入 K^ T h 的通道信息,一个简单的解决方案是基于 K^T h 的所有通道计算点的解码权重向量。也就是说,为每个通道生成D个不同的解码权重向量,以获得D个解码值。此外,对这些D个解码值引入线性投影以形成统一的通道方式解码向量。如图 3(b) 所示,用于解码权重向量的新通道方式重新加权可以总结为:
其中 s 是将 D′ 个解码值压缩为重新加权标量的线性投影,^σ(·) 沿 N 维度计算 softmax。然而,由 ^σ(·) 计算的解码权重与每个通道相关联,因此忽略了每个点的全局聚合。因此,我们可以得出结论,标准解码方案侧重于全局聚合,而通道方式重加权方案则集中于通道方式局部聚合。为了结合它们的特点,我们提出了一种扩展的通道方式重加权方案,如下所示。
Extended Channel-wise Re-weighting. : 具体来说,首先重复查询嵌入和键嵌入的矩阵乘积,将空间信息传播到每个通道中,然后将输出按元素与键嵌入相乘以保持通道差异。如图 3 © 所示,这种新颖的扩展通道方式重加权方案为所有点生成以下解码权重向量:
其中 ρ(·) 是重复算子,使得 R1×N → RD′×N。这样,与通道方式重加权方案相比,我们不仅可以保持全局信息,而且与标准解码方案相比,可以丰富局部和详细的通道交互。此外,与其他两种方案相比,这种扩展的通道方式重新加权仅带来 1K+(字节)的增加。结果,最终解码的提案表示可以描述如下:
其中值嵌入 ^V 是从 ^X 获得的线性投影。
Detect head and Training Targets
在前面的步骤中,输入点特征被汇总为 D 维向量 y,然后将其输入到两个 FFN 中,分别用于预测相对于输入 3D 提案的置信度和框残差。
为了输出置信度,训练目标被设置为 3D 提案与其相应的地面实况框之间的 3D IoU。给定3D提案的IoU及其对应的ground-truth框,分配置信度预测目标,如下所示:
其中αF和αB分别是前景和背景IoU阈值。此外,回归目标(上标 t)由提案及其相应的地面实况框(上标 g)编码,由下式给出:
其中是提案框底边的对角线。
Training Losses
本文采用端到端策略来训练 CT3D。因此,总体训练损失是 RPN 损失、置信度预测损失和框回归损失的总和,如下所示:
这里,利用二元交叉熵损失作为预测置信度 c 来计算 IoU 引导的置信度损失:
此外,框回归损失采用:
其中 I(IoU ≥ αR) 表示只有 IoU ≥ αR 的提案才会对回归损失产生影响。
结论
本文提出了一个两级 3D 对象检测框架 CT3D,具有新颖的通道 Transformer 架构。本文的方法首先通过有效的提案到点嵌入将提案信息编码到每个原始点中,然后通过自注意力来捕获点之间的远程交互。随后,通过扩展的通道重加权方案将编码点特征转换为全局提案感知表示,该方案可以获得所有点的有效解码权重。 CT3D提供了一个灵活且高效的框架,对于点云检测任务特别有帮助。 KITTI 数据集和大规模 Waymo 数据集上的实验结果也验证了 CT3D 可以比最先进的方法取得显着改进。