Center-based Transformer for 3D Object Detection
论文网址:CenterFormer
查询式Transformer在许多图像领域任务中展现了很大的潜力,但在基于LiDAR的3D目标检测中由于点云数据的庞大规模很少被考虑。本文提出了一种基于center的transformer网络CenterFormer,用于3D目标检测。CenterFormer首先使用中心热图在标准的基于体素的点云编码器上选择中心候选点。然后,它将中心候选点的特征作为transformer中的查询嵌入。为了进一步聚合来自多个帧的特征,本文设计了一种通过交叉注意力融合特征的方法。最后,添加回归头来预测输出中心特征表示上的边界框。本文的设计减少了transformer结构的收敛困难和计算复杂性。结果显示,在无锚点目标检测网络的强基线上,取得了显著的改进。CenterFormer在Waymo开放数据集上以单个模型达到了最先进的性能,验证集上的平均精度为73.7%,测试集上的平均精度为75.6%,明显优于所有先前发布的CNN和基于transformer的方法。
激光雷达能够提供环境的高精度三维点云数据,是自动驾驶中重要的传感和感知工具。 基于激光雷达的三维目标检测旨在检测出激光雷达点云中目标的边界框。 与图像域目标检测相比,激光雷达数据中的点可能是稀疏的,并且根据与传感器的距离而不规则地间隔。 最近的方法依赖于将点云离散成体素[VoxelNet,Second]或投影鸟瞰(BEV)特征图[PointPillars]来使用2D或3D卷积网络。 有时,需要second starge RCNN[Rich feature hierarchies for accurate object detection and semantic segmentation]式的细化网络来补充体素化过程中的信息损失。 然而,目前的两阶段网络[PV-RCNN,Center-based 3d object detection and tracking]缺乏上下文和全局信息学习。 他们只使用提议的局部特征(ROI)来细化结果。 忽略了其他方框或相邻位置中也可能有利于细化的特征。 而且,自动驾驶场景的环境并不是静止的。 局部特征学习在使用序列扫描时有较大的局限性。
在图像领域,transformer编解码器结构已经成为检测[End-to-end object detection with transformer,Deformable detr]和分割[Max-deeplab,Per-pixel classification is not all you
need for semantic segmentation]任务的竞争方法。 该transformer能够在整个特征图和不同的特征域中捕获远程上下文信息。 其中最有代表性的方法是DETR,它利用参数化查询直接从编码器-解码器转换器中学习对象信息。 DETR被训练为端到端的集合匹配问题,以避免任何手工过程,如非最大抑制(NMS)。 然而,在Detr-style编解码transformer网络中存在两个主要问题:首先,计算复杂度随输入大小的增加呈二次增长。 这就限制了transformer只能将低维特征作为输入,从而导致对小对象的性能较低。 其次,查询嵌入是通过网络学习的,训练难以收敛。
能否为激光雷达点云设计一个transformer式编解码网络,以便更好地感知点云数据的全局信息? 考虑到激光雷达点云数据的巨大规模,以及待检测目标相对较小的规模,体素或BEV特征图表示需要足够大,以保持这些目标的特征是可分离的。 结果,由于输入尺寸较大,在特征映射上使用transformer编码器结构是不切实际的。 另外,如果对transformer解码器使用大的特征映射,查询嵌入也很难在训练过程中集中有意义的注意力。 为了缓解这些收敛问题,一种解决方案是为转换器提供良好的初始查询嵌入,并将注意力学习区域限制在较小的范围内。 在基于中心的三维目标检测网络[Center-based 3d object detection and tracking]中,目标中心的特征被用来捕获所有的目标信息,因此中心特征是目标特征嵌入的一个很好的替代。 多尺度图像金字塔和变形卷积[Deformable convolutional networks]是在不显著增加复杂度的情况下增加特征学习感受野的两种常用方法。 最近的一些工作[Deformable detr,Focal self-attention for local-global interactions in vision transformers]将这两种方法应用于transformer网络。
考虑到上述几个方面,本文提出了一种基于center的transformer网络,命名为Centerformer,用于三维物体检测。 具体来说,首先使用标准的基于体素的骨干网将点云编码为BEV特征表示。 然后,利用多尺度中心建议网络将特征转换成不同的尺度,并预测初始中心位置。 该中心的特征被送入transformer解码器作为查询嵌入。 在每个转换模块中,使用一个可变形的交叉注意力层来有效地聚合来自多尺度特征映射的特征。 输出对象表示然后回归到其他对象属性,以创建最终的对象预测。本文的方法可以建模对象级连接和longrange特性关注。 为了进一步探索transformer的能力,本文还提出了一个多帧设计,通过交叉注意来融合来自不同帧的特征。 在大规模的Waymo开放数据集和Nuscenes数据集上测试了Centerformer。本文的方法在Waymo验证和测试集上分别以73.7%和75.6%的MAPH性能超过了目前流行的基于中心的三维目标检测网络,这些网络在公共基准上占据主导地位,达到了最先进的性能。 本文的方法的贡献可以总结如下:
与PointNet和PointNet++等成熟的点云处理网络相比,最新的LiDAR检测和分割方法[Voxelnet,PointPillars,Polarnet,Panoptic-polarnet,Cylindrical and asymmetrical 3d convolution networks for lidar segmentation]将固定的3D空间中的点云体素化为BEV/体素表示,并使用常规的2D/3D卷积网络预测3D边界框。其他方法[Squeezeseg,Range conditioned dilated convolutions for scale invariant 3d object detection,Rsn, Rangedet]在投影的距离图像上检测目标。也有一些方法使用混合特征和体素网络[Pv-rcnn,Hybrid voxel-point representation for single-stage 3d object detection,Hvnet],并在体素特征表示中结合多视图特征。VoxelNet在每个体素中使用PointNet来将所有点编码成一个体素特性。这种特征编码器后来成为基于体素的点云网络的基本方法。PointPillar提出了pillar feature encoder,将点云直接编码到BEV feature map中,这样网络中只需要二维卷积。
与图像目标检测类似,3D目标检测方法可分为基于锚[Pointrcnn, Pvrcnn,PointPillars,Second]和无锚[Center-based 3d object detection and tracking,Afdet]两种方法。 基于锚点的方法通过对所有预定义的对象锚点进行分类来检测对象,而无锚点的方法通常将对象视为关键点,并在局部热图最大值处找到这些关键点。 尽管基于锚点的方法可以获得良好的性能,但它们在很大程度上依赖于超参数调优。 另一方面,随着无锚点方法在图像领域的应用越来越广泛,许多3D和激光雷达都采用了相同的设计,并显示出更高效和更有竞争力的性能。 许多作品[Pv-rcnn,Lidar r-cnn,Voxel r-cnn,Pyramid r-cnn]也需要RCNN风格的第二阶段改进。 每个边界框建议的特征映射通过ROIAlign或ROIPool聚合。 CenterPoint使用Center HeatMap检测对象,并使用Center特征表示回归其他边界框信息。
大多数方法都是利用多帧信息,直接基于自运动估计将不同帧中的点连接起来。这假设模型可以从不同的框架中对齐对象特征。然而,独立移动的物体会导致跨帧特征的不对齐。最近的多帧方法[An lstm approach to temporal 3d object detection in lidar point clouds, Lidar-based online 3d video object detection with graph-based message passing and spatiotemporal transformer attention]使用LSTM或GNN模块将之前的状态特征与当前的特征图融合。3D-MAN使用多帧对齐和聚合模块来学习多帧预测的时间注意。每个框的特性是由RoI pooling生成的。
Transformer最初是在自然语言处理(NLP)社区提出的,Transformer正在成为计算机视觉中一个有竞争力的特征学习模块。 与传统的CNN相比,transformer具有更大的感受野,并且特征聚合是基于直接从两两特征中学习的响应。 transformer编码器[An image is worth 16x16 words,Swin transformer,Focal self-attention for local-global interactions in vision transformers]通常用作骨干网络中卷积层的替代。 同时Transformer解码器采用高级查询特征嵌入作为输入,通过交叉注意从特征编码中提取特征,这在检测和分割任务中更为常见[End-to-end object detection with transformer, Deformable detr, Rethinking semantic segmentation from a sequence-tosequence perspective with transformers, Max-deeplab]。 DETR使用Transformer EncoderDecoder结构从学习的查询嵌入中预测对象。 Deformable DETR通过可变形的注意层改进DETR训练。 最近的一些方法[Dab-detr, Conditional detr for fast training convergence,Dino]表明,DETR更容易使用锚框之类的指导来收敛。
transformer结构的一个重要设计是由于transformer输入的置换不变性而进行的位置嵌入。 然而,三维点云中已经包含了位置信息,这就导致了三维transformer设计中的偏差。 Point Transformers在pointnet结构中提出了一个point transformer层,其中嵌入transformer中的位置是成对的点距离。 3DETR[An end-to-end transformer model for 3d object detection]和[Group-free 3d object detection via transformers] 在点云中使用了DETR风格的转换器解码器,不同的是解码器中嵌入的查询是从最远点采样(FPS)中采样并通过分类学习的。 voxel Transformer[Voxel transformer for 3d object detection]引入了体素Transformer层,以取代基于体素的点云骨干网络中的稀疏卷积层。 SST采用单步长稀疏transformer作为骨干网络,以防止先前三维物体检测器下采样时的信息丢失。 CT3D使用transformer从局部点学习初始预测的精化。 与上述方法相比,Centerformer对DETR进行了裁剪,使其能够以较低的内存占用和较快的收敛速度处理激光雷达点云。 此外,Centerformer可以学习对象级别的自我注意和局部交叉注意,而不需要第一阶段的边界框预测。
Center-based 3D Object Detection:基于center的三维目标检测是由最近的无锚点图像域目标检测方法[Detecting objects as paired keypoints,Centernet]所推动的。 它通过预测BEV特征图上的热图来检测每个对象作为中心关键点。 给定一个普通体素点云特征编码器的输出,其中H和W是BEV图的大小,C是特征维数,基于中心的激光雷达目标检测通过两个分离的头预测中心热图H和框回归B。Center HeatMap H有L个通道,每个对象类有一个通道。 在训练中,地面真值是从注释框中心的高斯热图生成的。 Box回归B包含8个对象属性:从预测网格中心到实际网格中心的网格偏移、对象的高度、3D大小和偏航旋转角。 在验证过程中,在Heatmap得分最高的前N位采用类和回归预测,并使用NMS预测最终的边界框。
Transformer Decoder :Transformer解码器根据查询关键字的成对关注度,将来自源表示的特征聚集到每个查询中。 每个transformer模块由三层组成:多头自注意力层、多头交叉注意力层和feed-forward层。 在每一层中,还有一个skip connection,连接输入和输出特征以及层规范化。
1.输入:Query:中心候选点的多尺度特征拼接,形状为(N,C)。N为候选点个数,C为特征维度。
Key/Value:来自多尺度BEV特征图,形状为(H,W,C)。
2.Encoder:无,Center Transformer是一个纯decoder结构。
3.Decoder:包含M个transformer decoder层,每个包含:
多头自注意力机制:学习query之间的上下文关系。
多尺度可变形交叉注意力:对每个query,在其周围窗口采样key,进行交叉注意力。可变形offset学习采样位置。
前馈全连接层。
LayerNorm和残差连接。
4.输出:
经过Decoder的query特征,形状为(N,C)。
对每个query预测目标框信息,进行检测。
5.损失函数:
中心分类、框回归、IoU预测等损失。
使用标准的基于稀疏体素的主干网络 [Center-based 3d object detection and tracking] 将每个点云处理为 BEV 特征表示。然后,将 BEV 特征编码为多尺度特征图并预测中心提议。然后将所提出的中心用作嵌入transformer解码器中的查询特征,以聚合来自其他中心和多尺度特征图的特征。最后,使用回归头来预测每个增强中心特征的边界框。在多帧 CenterFormer 中,帧的最后 BEV 特征在中心预测阶段和交叉注意力transformer中融合在一起。
Multi-scale Center Proposal Network:多尺度中心提议网络, DETR 式的 Transformer 编码器需要将特征图压缩到较小的尺寸,以便计算成本可以接受。这使得网络失去了对于检测小物体至关重要的细粒度特征,这些小物体通常占据 BEV 图像中 < 1% 的空间。因此,本文提出了一种多尺度中心提议网络(CPN)来替代 BEV 特征的 Transformer 编码器。为了准备多尺度特征图,使用特征金字塔网络将 BEV 特征表示处理为三个不同尺度。在每个尺度的末尾,添加一个卷积注意力模块(Cbam),以通过通道和空间注意来增强特征。
本文使用最高尺度特征图 C 上的中心头来预测对象中心的 l 通道热图。每个通道包含一个类别的热图分数。热图得分前 N 的位置将被取出作为中心提案。本文在实验中根据经验使用 N = 500。
Multi-scale Center Transformer Decoder:本文提取建议的中心位置处的特征作为transformer解码器的查询嵌入。使用线性层将中心的位置编码为位置嵌入。传统的 DETR 解码器使用可学习的参数初始化查询。因此,解码器中获得的注意力权重在所有特征中几乎相同。通过使用中心特征作为初始查询嵌入,可以引导训练集中于包含有意义的对象信息的特征。在普通 Transformer 解码器中使用相同的自注意力层来学习对象之间的上下文注意力。计算中心查询对所有多尺度 BEV 特征的交叉注意力的复杂度是
由于为了保持小物体的细粒度特征,BEV图的分辨率需要相对较大,因此使用所有BEV特征作为关键点是不可行的。相反,本文将关键点限制在每个尺度附近的小3×3窗口内,如下图所示。这种交叉注意力的复杂度为O(9SN),比常规实现更高效。
中心热力图预测出目标的中心位置坐标(x,y)
在多尺度BEV特征图上,提取这个中心坐标(x,y)在各尺度下对应的特征f,作为Query Q
在同一尺度特征图上,以(x,y)为中心,采样周围3x3区域内的特征作为Key和Value (K,V)
将Q,K,V喂入交叉注意力模块进行计算,输出增强后的中心特征
这个增强后的中心特征包含了目标局部区域的语义信息
最后在该特征上进行回归,预测目标的框参数
由于多尺度特征,本文能够捕捉到提议中心周围的广泛特征。多尺度交叉注意力可以表示为:
其中p表示中心提议,Ω j是中心周围的窗口,s是尺度的索引。前馈层也保持不变。
多帧常用于 3D 检测以提高性能。目前基于CNN的检测器无法有效融合快速移动物体的特征,而Transformer结构由于注意力机制更适合融合。为了进一步探索 CenterFormer 的潜力,本文提出了一种使用交叉注意力transformer的多帧特征融合方法。如下图所示,本文使用相同的骨干网络单独处理每个帧。前一帧的最后一个 BEV 特征被转换为当前坐标,并与中心头和交叉注意力层中的当前 BEV 特征融合。
由于目标的移动,目标的中心可能在不同的帧中发生移动。由于本文只需要预测当前帧中的中心,因此在center head中使用空间感知融合来减轻未对准误差。如下图所示,空间感知模块使用与 CBAM 类似的空间注意力层,基于当前的 BEV 特征计算像素级注意力。本文将当前的 BEV 特征和加权的先前 BEV 特征连接起来,并使用额外的卷积层将它们融合在一起。还根据 BEV 特征的相对时间将时间嵌入添加到其中。最后,将输出融合特征提供给中心头以预测中心候选者。
在交叉注意力层中,使用中心提案的位置来查找对齐的先前帧中的相应特征。提取的特征将添加到主键中。由于正常的交叉注意力设计使用靠近中心位置的小窗口中的特征,因此如果对象由于快速移动而超出窗口区域,则其可学习性有限。同时,可变形交叉注意力能够模拟任何级别的运动,并且更适合长时间范围的情况。因为本文的多帧模型只需要前一帧的最终 BEV 特征,所以通过将 BEV 特征保存在内存库中,很容易部署到在线预测。
我们模型中使用的最终损失是以下四个部分的加权组合:L = WhmLhm+WregLreg +WiouLiou+WcorLcor。使用focal loss 和 L1 loss进行热图分类和框回归。热图分类损失、盒回归损失、IoU 校正损失和角点分类损失的权重分别为[1,2,1,1]。
本文提出了一种用于 3D 对象检测的基于center的transformer。本文的方法提供了一种通过对象级注意力学习来改进无锚 3D 对象检测网络的解决方案。与 DETR 式的 Transformer 网络相比,使用中心特征作为 Transformer 解码器中的初始查询嵌入来加速收敛。还通过将每个查询的交叉注意力学习集中在一个小的多尺度窗口或可变形区域来避免高计算复杂度。结果表明,所提出的方法优于 Waymo 开放数据集中的强基线,并且在扩展到多帧时达到了最先进的性能。希望本文的设计能够激发未来在用于 LiDAR 点云分析的基于查询的transformer方面的更多工作。