本文全面解析SparseBEV——一种在3D目标检测领域实现高精度与高速度的全稀疏模型。无论你是刚接触3D检测的初学者,还是希望优化现有方法的资深开发者,这份教程都将帮助你深入理解其核心设计、操作方式及性能优势。
一、背景与动机
3D世界本质上是稀疏的,因此稀疏3D目标检测成为重要发展方向。现有的稀疏方法(如DETR3D、PETR等)虽然结构简单、速度快,但性能落后于基于稠密BEV特征的方法(如BEVFormer、BEVDet)。我们提出问题:基于稀疏query的方法能否达到乃至超越稠密BEV方法的性能?
经过分析,我们认为关键点在于提升检测器在BEV空间和2D空间的适应性——即对于不同的query,检测器能以不同方式编码和解码特征。这正是之前的稀疏检测器DETR3D所欠缺的。为此,我们提出了SparseBEV,通过三个核心改进实现自适应:
- 尺度自适应自注意力(SASA):在BEV空间实现自适应感受野
- 自适应时空采样:实现稀疏采样的自适应性,充分利用长时序
- 动态Mixing:自适应地解码采集到的特征
二、性能概览
SparseBEV在nuScenes数据集上展现了优异性能:
- 验证集(ResNet50, 704x256):55.8 NDS,同时保持23.5 FPS实时推理速度
- 测试集(V2-99轻量级backbone):67.5 NDS
- 如果使用ViT-large作为backbone,可冲击70+ NDS



三、方法详解
3.1 模型架构总览

SparseBEV架构包含三个核心模块:尺度自适应自注意力、自适应时空采样、自适应融合。下面逐一解析。
3.2 Query初始化
现有query-based方法通常只用reference point作为query。而SparseBEV中的query包含更丰富的信息:3D坐标、尺寸、旋转角、速度,以及对应的特征维度。每个query被初始化为pillar形状(Z轴高度接近4米),因为自驾场景中通常不会在Z轴上出现多个物体。
小提示: 丰富query信息有助于模型更好地定位和识别物体。如果你希望尝试,可以自定义添加其他属性(如置信度、类别信息)。
3.3 尺度自适应自注意力 (SASA)
标准的多头自注意力(MHSA)不具备多尺度能力,而BEV空间的多尺度特征提取至关重要。SASA让模型自己决定合适的感受野:
公式中,两个query中心点之间的欧式距离记为d,感受野控制系数记为α。当α增大时,远距离query的注意力权重减小,感受野缩小;当α=0时,SASA退化为全局感受野的MHSA。α是通过对每个query feature使用一层Linear自适应生成的,每个head生成不同的α值。
实验发现两个有意思的现象:
- 每个head生成的α值在一定范围内均匀分布,且与初始化无关。这说明SASA能在不同head里进行不同尺度的特征聚合,类似FPN。而且SASA的感受野更灵活,可以根据数据自由学习。
- 不同类别的物体对应的query生成的α值有明显差异:大物体(如公交车)的感受野明显大于小物体(如行人)。


SASA几乎没有额外计算开销,却能暴涨4.0 mAP和2.2 NDS(在消融实验中替换MHSA的结果)。
3.4 自适应时空采样
对每个query,使用一层Linear生成一系列3D偏移量(Offset),然后将这些offset相对于query pillar进行坐标变换,得到3D采样点。这种方法使采样点可以适应不同尺寸、远近的物体,甚至可以撒到框外面去,由模型自己决定。

时序对齐: 为捕捉长时序信息,将采样点warp到不同时刻的坐标系中。自动驾驶场景有两种运动:
- 自车运动(ego motion):使用数据集提供的ego pose实现对齐
- 物体运动(object motion):利用query中的瞬时速度向量配合匀速运动模型进行自适应对齐

工程小细节: 对于环视六张图的输入,将3D采样点投影到2D图像时,传统方法需要分别投影到六个视图并取平均。我们发现大多数情况只有一个投影点正确,偶尔有两个(重叠区域)。因此我们只取其中一个投影点,将其视图ID作为新坐标轴,使用PyTorch内置的3D grid sample一步到位。这样显著提速,且NDS仅掉落0.1~0.2。
代码示例请查看:sparsebev_sampling.py
性能优化: 我们后来基于Deformable DETR写了一个CUDA优化,纯PyTorch实现已很快,CUDA进一步提速约15%。

可视化显示,SparseBEV的采样点精准捕捉到不同尺度物体(空间适应性),且对不同速度的物体也能很好对齐(时间适应性)。
3.5 自适应融合
对采集到的特征,在channel和point两个维度分别进行Mixing。假设共M帧,每帧K个采样点,首先堆叠为M×K个采样点(堆叠时序方案,可融合未来帧信息)。
先进行channel mixing(权重根据query feature动态生成),然后对point维度进行同样的mixing操作。动态权重使得模型能自适应地融合不同来源的信息。
3.6 Dual-branch SparseBEV(可选双分支结构)
进一步改进:将输入的多帧图像分为Fast和Slow两个分支处理。Slow分支使用高分辨率、低帧率,专注于静态细节;Fast分支使用低分辨率、高帧率,专注于捕获运动信息。

Dual-branch不仅减小训练开支,还能提升性能。但它使模型变复杂,默认情况下未使用(仅测试集NDS=63.6的那行结果用了它)。
四、实验结果
4.1 验证集结果

在nuScenes验证集上:
- ResNet-50 backbone,900个query,704x256输入:超越SOLOFusion 0.5 mAP和1.1 NDS
- 使用nuImages预训练,400个query:55.8 NDS,23.5 FPS
- 升级为ResNet-101,1408x512输入:超越SOLOFusion 1.8 mAP和1.0 NDS
4.2 测试集结果

在nuScenes测试集上:
- 不使用未来帧:62.7 NDS,54.3 mAP
- Dual-branch版本:63.6 NDS,55.6 mAP
- 加入未来帧后:超越BEVFormer V2 2.8 mAP和2.2 NDS。注意,SparseBEV使用的V2-99仅约70M参数,远低于BEVFormer V2使用的InternImage-XL(超300M参数)
五、限制与注意事项
已知缺陷:
- 依赖ego pose: 如果不使用ego-based warping,NDS会下降约10个点,几乎和没加时序一样。务必确保ego pose数据准确。
- 堆叠时序耗时: 推理时间与输入帧数成正比,当帧数过多(如16帧)时会拖慢速度。
- 训练资源要求高: 传统训练方式会把所有帧全部载入,对CPU和GPU都有较高要求。对于ResNet50和8帧704x256输入,2080Ti-11G尚可;若拉满所有设置,需要A100-80G。
解决方案:
- 可使用
stop_prev_grad选项,将历史帧以no_grad模式推理,仅当前帧回传梯度。 - 也可采用SOLOFusion、StreamPETR等方法的sequence训练方案,省显存省时间。
常见问题1:SparseBEV比DETR3D好在哪?
DETR3D缺乏自适应能力,SparseBEV通过SASA实现感受野自适应、通过自适应时空采样实现采样自适应、通过动态Mixing实现特征融合自适应,因此性能大幅提升。
常见问题2:可以使用更轻量的backbone吗?
可以。文中已使用V2-99(70M参数)达到67.5 NDS。如果你想在移动端部署,可尝试更轻量的backbone(如MobileNet系列),但性能会下降。
常见问题3:如何加速推理?
可尝试降低输入帧数、减小图像分辨率、使用CUDA优化(代码已提供),或者使用ONNX/TensorRT进行模型转换。
六、总结与展望
SparseBEV通过尺度自适应自注意力、自适应时空采样、自适应融合三大核心模块,显著提升了稀疏query模型的自适应性,在nuScenes上实现了高精度与高速度。尽管存在对ego pose依赖、训练资源要求高等局限,但其设计思路为稀疏3D检测范式提供了重要启发。
未来,我们可能尝试sequence训练方案以节省资源,并探索更高效的时序建模方法。希望这篇教程能帮助你快速上手SparseBEV,并在实际项目中取得优异结果。
作者:王利民
参考文献:
[1] Wang Y, et al. Detr3d: 3d object detection from multi-view images via 3d-to-2d queries. CoRL 2022.
[2] Liu Y, et al. Petr: Position embedding transformation for multi-view 3d object detection. ECCV 2022.
[3] Li Z, et al. Bevformer: Learning bird’s-eye-view representation from multi-camera images via spatiotemporal transformers. ECCV 2022.
[4] Park J, et al. Time will tell: New outlooks and a baseline for temporal multi-view 3d object detection. arXiv 2022.
[5] Zong Z, et al. Temporal Enhanced Training of Multi-view 3D Object Detector via Historical Object Prediction. arXiv 2023.
[6] Wang S, et al. Exploring Object-Centric Temporal Modeling for Efficient Multi-View 3D Object Detection. arXiv 2023.
[7] Yang C, et al. BEVFormer v2: Adapting Modern Image Backbones to Bird's-Eye-View Recognition via Perspective Supervision. CVPR 2023.
[8] Huang J, et al. Bevdet: High-performance multi-camera 3d object detection in bird-eye-view. arXiv 2021.
[9] Gao Z, et al. Adamixer: A fast-converging query-based object detector. CVPR 2022.
[10] Feichtenhofer C, et al. Slowfast networks for video recognition. ICCV 2019.
编辑:黄飞
