Voxel Transformer for 3D Object Detection (VoTr) 提出了一个基于Transformer的3D物体检测框架,旨在通过引入自注意力机制来有效地捕捉长程的空间关系,特别适用于稀疏的体素数据。传统的基于卷积的3D检测方法无法有效捕捉远距离的上下文信息,而VoTr通过Transformer架构克服了这一问题。以下是该论文中的核心方法总结,特别是模块和公式部分。
1. 方法概述
Voxel Transformer (VoTr) 是一个基于Transformer的3D检测框架,可以通过稀疏体素模块和子流形体素模块处理稀疏点云数据。其核心目标是通过自注意力机制建立体素之间的长程关系,从而提高检测性能。
1.1 稀疏体素模块(Sparse Voxel Module)
VoTr的关键创新之一是设计了专门用于处理稀疏体素的模块,这些模块可以有效地处理非空体素,并使用自注意力机制捕捉长距离的空间依赖关系。稀疏体素模块使得模型能够处理稀疏分布的点云数据,同时保持计算效率。
1.2 子流形体素模块(Submanifold Voxel Module)
子流形体素模块专注于非空体素,保持原始的3D几何结构。这些模块通过自注意力机制增强了模型的上下文感知能力,特别适合处理物体较少覆盖的区域。
1.3 局部注意力(Local Attention)与扩张注意力(Dilated Attention)
为了提高计算效率并扩大注意力范围,VoTr提出了局部注意力和扩张注意力机制。局部注意力专注于查询体素的邻域,而扩张注意力则通过逐步增大搜索步幅来扩大注意力范围。这两种注意力机制可以在保证细节捕捉的同时,避免计算开销过大。
2. 体素查询(Voxel Query)
为了解决查询体素时的效率问题,VoTr引入了快速体素查询(Fast Voxel Query),利用GPU上的哈希表快速查找非空体素,从而加速了查询过程。这个过程大大提高了计算效率,使得VoTr在处理大规模数据时保持高效。
体素查询的公式如下:
Qi=maxpool(⋃j∈Ω(i)fj)
Q_i = \text{maxpool}\left(\bigcup_{j \in \Omega(i)} f_j\right)
Qi=maxpoolj∈Ω(i)⋃fj
其中,QiQ_iQi是查询体素的特征,fjf_jfj是邻近体素的特征,Ω(i)\Omega(i)Ω(i)是查询体素的邻域。
3. 多头自注意力(Multi-head Self-Attention)
VoTr采用多头自注意力机制来进一步增强模型的上下文理解能力。每个查询体素的多头注意力机制通过计算所有相关体素的加权和来生成最终的特征表示。
自注意力机制的公式:
fattend=∑j∈Ω(i)softmax(QiKjd)Vj
f_{\text{attend}} = \sum_{j \in \Omega(i)} \text{softmax}\left(\frac{Q_i K_j}{\sqrt{d}}\right) V_j
fattend=j∈Ω(i)∑softmax(dQiKj)Vj
其中,QiQ_iQi是查询体素的查询向量,KjK_jKj是体素的键向量,VjV_jVj是体素的值向量,ddd是特征维度。
4. 实验结果
4.1 Waymo Open 数据集
在Waymo数据集上,VoTr显著提升了检测精度,相比于传统的3D卷积基线模型,VoTr在LEVEL 1 mAP上提高了1.05%(SECOND模型)和3.26%(PV-RCNN模型)。特别是在远距离检测中,VoTr的表现尤为突出。
4.2 KITTI 数据集
在KITTI数据集上,VoTr同样取得了优异的成绩,尤其在车辆检测任务中,VoTr-SSD和VoTr-TSD的mAP分别提高了2.29%和0.66%。
5. 总结
VoTr通过引入基于Transformer的架构,克服了传统卷积方法在处理稀疏体素数据时的局限性。其创新的稀疏体素模块和子流形体素模块有效处理了非空体素的稀疏特性,并通过扩张注意力机制和快速体素查询提升了计算效率。实验结果表明,VoTr在多个数据集上超越了现有的3D检测方法,具有显著的性能提升。