PointBeV:稀疏化BEV感知范式,实现自动驾驶感知效率与性能双突破 1. 从密集到稀疏为什么我们需要重新思考BEV感知的计算范式如果你在过去几年里关注过自动驾驶或者机器人领域的感知技术Birds-Eye ViewBEV鸟瞰图这个词一定不会陌生。它几乎成了多传感器融合和下游任务如检测、分割、预测、规划的“标准答案”。无论是LSS、BEVFormer还是Simple-BEV大家似乎都在遵循一个共同的范式构建一个固定范围、固定分辨率的密集BEV网格然后把所有传感器的特征都“拍”到这个网格上再进行后续处理。这个思路直观、有效也催生了一系列优秀的成果。但作为一个在一线折腾过模型部署和实时系统的人我每次看到那些动辄200x200甚至更高分辨率的BEV网格心里都会咯噔一下。这背后是海量的计算和内存开销。尤其是在考虑时序融合时——为了理解动态物体的运动趋势我们往往需要聚合过去几秒甚至十几秒的帧——将每一帧的密集BEV特征都存下来并参与计算对显存和算力都是噩梦。这直接限制了模型在边缘设备上的部署潜力也让研究者们在设计更复杂的时序模型时束手束脚。PointBeV的出现正是对这个根本性瓶颈的一次“外科手术式”的精准打击。它的核心思想极其简洁有力我们真的需要为BEV空间中的每一个位置包括大量空旷无物的区域都进行计算吗答案显然是否定的。感知任务的核心是识别场景中的“感兴趣区域”ROI比如车辆、行人、车道线。那么何不从一开始就只关注这些可能包含目标的稀疏点集而忽略掉那些背景区域呢这就是PointBeV的出发点——一种面向BEV预测的稀疏方法。它不再操作于密集的BEV网格而是直接在一组稀疏的BEV“细胞”或“点”上进行预测。这种范式转换带来了几个立竿见影的优势内存与计算效率的质变通过精确控制参与计算的点的数量模型可以灵活地在性能和效率之间取得平衡。论文中的图1IoU vs. 内存占用清晰地展示了这一点PointBeV可以用仅1/6的点数达到与处理全部网格点相近的性能同时内存占用减少三分之一。对长时序上下文的友好支持稀疏性使得聚合长时间跨度的历史帧变得可行因为需要存储和处理的过去帧特征也同样是稀疏的。前所未有的灵活性在推理阶段模型无需重新训练就能根据不同的应用场景如高速公路注重远距离停车场注重近距离或可用的先验信息如LiDAR点云、高精地图来动态调整采样的位置和密度实现“按需计算”。简单来说PointBeV不是在已有的密集BEV框架上做优化而是换了一条赛道重新定义了BEV感知的计算单元。它让我想起了点云处理从体素化到PointNet的演进都是从“均匀网格”走向“非均匀稀疏表达”的思路。接下来我们就深入拆解一下这个“稀疏BEV”究竟是如何实现的。2. PointBeV的核心架构稀疏特征提取、训练与推理三部曲PointBeV的整体架构可以概括为三个关键组成部分它们共同构成了从稀疏视角出发的完整BEV感知流水线。理解这三部分就抓住了这篇工作的精髓。2.1 稀疏特征提取只提取“看得见”的特征传统基于“特征提取Feature Pulling”的BEV方法如BEVFormer, Simple-BEV的工作流程是在BEV平面上定义一个3D坐标体通常是每个网格位置上方的一组离散高度然后将所有这些3D坐标投影到所有相机图像上再通过双线性插值获取图像特征。这里存在一个巨大的浪费一个3D点通常只出现在1-2个相机的视野内但传统方法会将其投影到所有6个环视相机上对于不可见的相机其提取的特征是无效或噪声但计算照常进行。PointBeV提出的Sparse Feature Pulling模块彻底解决了这个问题。它的逻辑非常直接输入一组稀疏的2D BEV点(x, y)以及通过骨干网络提取的多相机图像特征{I_i}。构建3D支柱对于每个2D点在其垂直方向Z轴上均匀采样形成一组3D点p {p_z (x, y, z)}构成一个“支柱”。可见性判断对于支柱中的每一个3D点p_z只将其投影到那些真正能“看到”它的相机即该点在相机视锥体内。论文中用了一个优雅的符号C(p_z) : {i | C_i ∢ p_z}来表示可见相机集合。稀疏插值仅在C(p_z)包含的相机特征图上对p_z的投影位置进行双线性插值提取特征。如果一个点被多个相机看到则对提取到的多个特征取平均。这个改进看似简单效果却非常显著。根据论文附录C的对比实验在nuScenes数据集的标准设置下6相机200x200x8的BEV网格由于每个点平均只出现在约1.2个相机中Sparse Feature Pulling模块避免了约84%的无谓计算。与标准的PyTorch插值操作相比其前向传播速度快了2.3倍后向传播快了4.2倍内存占用减少了一半以上从1.9 GiB降至0.9 GiB。这个模块是PointBeV高效性的基石它让稀疏计算从理念变成了可高效实现的工程实践。2.2 两阶段“粗-精”训练策略用更少的点学得更准在密集网格上训练分割模型是标准的做法但这也意味着巨大的内存开销。PointBeV在训练时也采用稀疏采样但如果只是随机采样一些点来做分割模型会非常不稳定难以收敛因为很多重要的物体区域可能根本就没被采样到。受NeRF中分层采样策略的启发PointBeV设计了一个巧妙的“粗-精”两阶段训练策略其目标有三个提升性能聚焦于判别性区域、稳定训练过程、控制训练内存。整个过程如图4所示分为两步粗粒度阶段从BEV网格中均匀随机采样N_coarse个点例如2500个约占全网格的1/16输入网络进行前向传播得到这些点的初始预测logits。锚点选择与精细化从粗粒度阶段预测的N_coarse个点中选出 logits 值最高的N_anchor个点例如100个作为“锚点”。我们认为这些点最有可能位于物体上或其附近。精粒度阶段以每个锚点为中心在一个k_fine × k_fine例如9x9的方形窗口内进行密集采样生成一系列精细点。从所有这些精细点中再选择N_fine个点例如2500个再次输入同一个网络权重共享进行前向传播。注意图像特征提取只需要做一次因为图像内容没有变化。最后将粗粒度和精粒度两个阶段在所有被采样点上的预测结果合并计算交叉熵损失。这个策略的精妙之处在于粗粒度阶段负责“探索”尽可能覆盖整个BEV空间精粒度阶段负责“利用”聚焦于粗粒度阶段认为有价值的区域进行精细化预测。这相当于让模型自己学会“哪里值得多看两眼”。实验表明论文表7仅使用全网格20%的点N_coarse N_fine 2.5k进行训练最终达到的IoU与使用100%点训练的效果几乎相同38.3 vs 38.3。这证明了该策略在保持性能的同时极大优化了训练阶段的内存使用使得在有限资源下训练更复杂的模型如长时序模型成为可能。2.3 稀疏时序建模在时空中开一扇“局部关注”的窗时序信息对于区分静态/动态物体、理解交通模式、缓解因短暂遮挡或深度估计不准带来的歧义至关重要。传统的时序融合方法如基于运动补偿的BeV特征扭曲存在一个问题它们只能保留过去帧中与当前BeV网格对齐的区域信息随着自车运动重叠区域会减少限制了长期融合的能力。PointBeV的时序模型另辟蹊径其核心思想是将当前帧感兴趣的稀疏点投影到过去帧的图像中然后在稀疏的时空邻域内进行特征聚合。稀疏点投影对于当前时刻t0采样得到的一组稀疏BEV点将它们通过相机参数投影到过去T个时间步的相机图像中。时序阈值过滤对每个过去时间步计算这些投影点的特征和预测分数logits。引入一个时序阈值τ_temp只保留分数高于该阈值的点丢弃低于阈值的点。这样就得到了每个过去时间步的一个稀疏BEV表示。子流形时序注意力这是PointBeV为稀疏时序融合量身定制的模块。传统的注意力机制需要计算所有点对之间的关系计算复杂度高。子流形注意力受LiDAR 3D检测中的方法启发为每个当前时刻的查询点Q_{t0,x,y}定义了一个时空窗口W (w^t, w^x, w^y)。其中w^t是时间范围如过去2秒w^x, w^y是空间邻域大小。局部注意力计算对于每个查询点只与其时空窗口W内的那些来自过去帧的键K和值V进行注意力计算。由于过去帧的数据本身也是稀疏的每个查询点关联的键值对数量是可变的且远小于全部点。公式表达为O_{t0,x,y} Σ_{(tk, xk, yk) ∈ W} A_{tk,xk,yk}( (Q_{t0,x,y} · K_{tk,xk,yk}^T) / √d_k ) · V_{tk,xk,yk}^T其中A是注意力系数的softmax项。这种方法的高明之处在于它摒弃了对齐整个密集BeV网格的沉重负担转而只在那些跨时间都持续“活跃”的稀疏点位置进行特征聚合。这不仅计算效率高而且更符合直觉——我们关心的是某个物体对应一个点随时间是怎么运动的而不是把整个历史场景都搬过来。实验表明论文表6使用子流形注意力在达到相近性能的情况下所需处理的点数比标准注意力少约5倍。3. 推理时的灵活性如何让一个模型适应多种场景PointBeV在训练时是稀疏的在推理时则提供了前所未有的灵活性这是其区别于传统密集模型的一大亮点。用户可以根据对效率和精度的不同需求选择不同的推理模式。3.1 密集推理模式公平比较的基准为了与其他BEV方法在标准benchmark上进行公平比较PointBeV可以运行在“密集推理”模式下。即一次性处理BEV网格中的所有点例如200x20040k个点产生一个完整的、密集的预测图。这个模式下的性能就是论文中报告的主要SOTA结果。3.2 稀疏自适应推理效率与精度的平衡术这才是PointBeV的“完全体”。其流程与训练时的“粗-精”策略类似但采样策略可以更加多样粗粒度采样初始化不再局限于均匀随机采样。可以根据具体用例定制均匀/网格下采样在BEV网格上每隔k个点采样一个k1即为密集。这是默认策略通用性强。距离依赖的高斯采样在自车周围采样更密集远处更稀疏模拟驾驶中对近处关注度更高的需求。基于先验的采样这是PointBeV的一大特色。如果推理时有LiDAR点云可以直接在这些点投影的BEV位置进行采样因为这些位置极有可能存在物体。如果拥有高精地图HD Map可以在可行驶区域进行密集采样而在建筑物等区域减少采样避免无效计算。锚点选择对粗粒度采样点进行预测将置信度高于阈值τ如0.1的点选为锚点。精细化预测以锚点为中心用k_fine大小的窗口进行密集采样对这些精细点进行预测。生成密集预测图对于未被任何阶段采样到的BEV位置直接将其预测为空背景。在评估时如果真实物体位于这些未采样位置则会计为漏检False Negative。这种自适应能力意味着什么意味着你可以用同一个训练好的模型在资源受限的嵌入式平台上通过减少采样点来换取速度也可以在服务器端通过增加采样点或引入LiDAR先验来追求极致精度。论文图7展示了这种权衡曲线通过调整点数可以在IoU-内存曲线上平滑移动。例如使用LiDAR先验进行采样PointBeV_LiDAR仅用约6800个点就达到了44.5的IoU超越了使用4万个点的默认采样策略44.0 IoU。这证明了将宝贵计算资源集中在真正有信息量的区域不仅能省资源有时还能提升精度。4. 实验深潜性能表现、消融分析与关键参数纸上谈兵终觉浅任何新方法的提出都必须经过严格实验的检验。PointBeV在nuScenes和Lyft L5数据集上进行了全面评估结果令人信服。4.1 全面的SOTA对比车辆、行人、车道线分割PointBeV在多个任务和设置下均取得了领先的性能车辆分割在nuScenes数据集上表1无论是否进行低可见度车辆过滤无论图像分辨率是224x480还是448x800也无论是静态模型还是融入8帧历史的时序模型PointBeV-TPointBeV都超越了包括BEVFormer、Simple-BEV、FIERY在内的所有对比方法。在Lyft L5数据集上表2同样在长短距离设置下均达到最佳。行人分割表3在静态和时序设置下分别以18.5和19.9的IoU刷新了SOTA。车道线分割表4以49.6的IoU大幅领先此前的SOTA方法MatrixVT44.8提升达4.8个点。尤其值得注意的是这些卓越的性能是在仅使用稀疏信号进行训练的前提下取得的。这意味着模型并没有依赖任何密集监督的“作弊”其强大性能完全源于稀疏范式本身和精巧的设计。4.2 核心模块消融每一个改进都不可或缺Sparse Feature Pulling模块表5的消融实验清晰展示了该模块的价值。移除此模块后在Batch Size为12时内存占用从25.99 GiB激增至38.94 GiB且无法运行Batch Size28的实验。而使用该模块在BS28时仍能运行39.40 GiB。这表明该模块是支持大批次训练和长时序上下文的关键。Submanifold Temporal Attention模块表6对比了使用时序模型时使用子流形注意力与使用标准注意力的区别。虽然标准注意力在个别设置下性能有极其微弱的提升如40.49 vs 39.93但其需要处理约32万个点是子流形注意力约6.6万个点的5倍。用5倍的计算换来不到0.6个点的提升性价比极低。子流形注意力在几乎无损性能的前提下实现了计算效率的飞跃。“粗-精”训练策略表7的实验是稀疏训练有效性的直接证明。仅使用总点数40k的10%4k、20%8k、50%20k进行训练最终IoU与使用100%点数40k训练的结果38.3相差无几38.1, 38.3, 38.4。此外对比实验表明将固定点数预算全部用于单次“粗”传播IoU仅为35.4而将其平分给“粗”和“精”两阶段IoU提升至38.3。这充分证明了两阶段策略在聚焦关键区域、稳定训练方面的作用。4.3 关键参数剖析如何调优你的PointBeV附录E中对稀疏推理的关键参数进行了详尽的分析这对于实际应用至关重要精细化补丁大小k_fine在粗采样点固定的情况下如2500个k_fine决定了围绕锚点进行精细化探索的范围。如表14所示当k_fine较小时如1或3由于覆盖不足性能很差。当k_fine增大到7或9时性能趋于稳定IoU约38.0-38.1。选择原则是k_fine应略大于粗采样网格的间距以确保锚点周围的区域能被充分覆盖。论文默认选择k_fine9。锚点阈值τ这个阈值决定了哪些粗采样点有资格成为锚点并触发精细化过程。如表15所示阈值从0.0所有点都成为锚点等价于密集预测到0.5随着阈值升高参与精细化的点数N_fine减少内存占用下降但IoU也开始缓慢下降。τ0.1是一个较好的平衡点它能过滤掉约71%的低置信度点在几乎不损失精度38.1的前提下将精细化点数从4万大幅降至约2800内存占用从1577 MB降至493 MB。网格下采样因子S_k这决定了粗采样点的稀疏程度。S_k1为密集网格S_k16意味着在x和y方向上都每隔16个点采一个样即采样1/256的点。如表16所示随着S_k增大采样更稀疏需要相应增大k_fine以覆盖间隙。当S_k达到16时仅用约4500个点粗精就能达到43.7的IoU接近密集采样的44.0而内存占用从2379 MB降至442 MB。当S_k过大如64则会因为错过关键区域而导致性能显著下降39.1。实操建议在资源受限的部署场景可以尝试增大S_k如16或32并相应调整k_fine在可接受的精度损失下换取更大的速度提升。如果追求极致精度则使用较小的S_k如4或8并配合LiDAR等先验信息进行粗采样初始化。5. 工程实现启示与未来展望读完论文并梳理其脉络后从工程实践和未来研究的角度我有以下几点深刻的体会和展望首先关于稀疏性的价值PointBeV给了我们一个明确的答案它不仅是效率工具更是性能助推器。传统密集方法在BEV空间进行均匀计算实质上是将计算资源平摊给了所有区域包括大量无意义的背景。而PointBeV通过“粗-精”机制和基于置信度的采样实现了计算资源的动态、自适应分配让模型更专注于难以判断的或重要的区域。这本身就是一种注意力机制与人类驾驶时的视觉注意力分配有异曲同工之妙。因此其性能提升并非偶然。其次工程实现上的两个自定义模块Sparse Feature Pulling和Submanifold Attention是成败关键。很多好的想法止步于论文就是因为缺乏高效的实现。PointBeV团队用CUDA实现了稀疏特征提取用图神经网络库实现了子流形注意力这才让稀疏计算的理论优势转化为实际的训练和推理速度优势。这提醒我们在提出新范式时必须同时考虑其算法复杂度和工程可行性必要时需进行底层算子优化。再者PointBeV的“训练-推理解耦”设计极具启发性。模型在训练时学习的是“如何根据稀疏点做出正确预测”的能力而在推理时我们可以自由地改变采样的位置和策略。这意味着一个模型可以服务多种应用场景高速公路场景可以用远距离聚焦的采样城市拥堵场景可以用均匀密集采样有LiDAR辅助时可以用感知增强采样。这种灵活性对于产品化部署至关重要。展望未来我认为PointBeV开启的稀疏BEV范式有几个非常清晰的演进方向从分割到更复杂的任务论文末尾提到2D占据预测、3D体素占据估计等任务会立即受益于稀疏性带来的内存减少从而能够处理更长的时序或更高的空间分辨率。此外目标检测、跟踪、预测轨迹预测等任务都可以尝试构建在稀疏BEV表示之上。动态采样策略目前的采样策略均匀、基于先验还是相对静态的。未来的方向可以是由传感器输入实时引导的动态采样。例如根据前一帧检测到的物体运动轨迹预测下一帧可能的采样位置或者根据规划模块的需求动态调整BEV中不同区域的采样密度如对即将驶入的区域进行更密集的感知。轻量化的补全网络当前稀疏推理对于未采样区域直接置为空。引入一个轻量级的网络根据稀疏预测结果来“补全”或“上采样”出密集的BEV图可能会进一步提升全图预测的连贯性和精度同时计算开销增加有限。多任务、多分辨率统一稀疏表示天然适合处理不同范围、不同分辨率的感知需求。或许未来可以有一个统一的稀疏BEV模型同时处理近处高精度的分割和远处低精度的检测根据任务需求动态分配计算资源。在我个人看来PointBeV不仅仅是一个新的SOTA模型它更代表了一种思维方式的转变从“均匀处理整个空间”到“智能聚焦关键区域”。在自动驾驶感知系统越来越复杂对算力效率要求越来越高的今天这种稀疏化、自适应化的思路无疑是极具生命力的。它让我们看到在追求更高性能的路上除了把模型做大做深换个角度思考问题的本质往往能带来意想不到的突破。