BEV感知十年演进:从鸟瞰视角到空间智能的关键跨越
发布时间:2026/10/17 11:53:51 锦皓数字建站

BEV感知十年演进从鸟瞰视角到空间智能我们到底经历了什么如果你是2018年左右入行做自动驾驶感知大概率经历过那个“画框时代”前视摄像头测距、雷达点云聚类、后融合把一切叠到目标列表里然后导航模块拿着一个“目标列表”去做决策。那时候我们讨论的是单目深度准不准、毫米波是不是会漏检。但真正让整个感知架构发生质变的是BEVBirds Eye View鸟瞰视角感知——它把感知从“图像空间”搬到了“物理空间”也让自动驾驶第一次有了统一的、可学习的时空坐标系。这篇文章我想沿着BEV感知近十年的演进路径把几个关键转折点、典型方法、工程落地中的硬骨头以及我从实际项目中踩过的坑一次性说透。适合正在做自动驾驶感知、打算入场做BEV方向或者只是好奇“为什么现在的车都能自己画道路线”的朋友。1. 为什么说BEV是感知范式的一次原点级革命1.1 透视视角下的“三大困局”逼出了鸟瞰表达先回到最朴素的问题为什么大家折腾了那么久最后都转向了BEV因为透视视角即相机看到的前视图像在自动驾驶这个物理场景里有三个绕不开的短板。第一个短板叫遮挡。前视相机看到的是透视投影前面的车会挡住后面的车行人会被路牌挡掉一半。虽然单车智能可以用“推测”来补但推测的前提是你得先有一个空间模型。第二个短板叫尺度非线性。同样的一个行人距离5米和50米在图像上的像素尺寸差一个量级模型要同时学会“大目标”和“小目标”的语义本质上是让同一个网络去表达多个尺度的同一物体这很难。第三个短板是与下游模块的接口割裂。规划模块需要的是“我的车周围360度都有什么”而你喂给它的是“8路相机各自看到的图像”中间还隔着坐标系变换信息一转换就损失。BEV表达天生就是站在“世界坐标系”说话的。它把周边所有传感器观测到的信息统一投影到自车所在水平面的一张栅格图上每个栅格代表真实世界的一小块区域。规划需要“右后方向有没有车逼近”直接从BEV图对应区域查特征就行不需要再做几何拼接。1.2 多传感器融合最容易踩的坑被BEV一个坐标系抚平了过去做前融合和后融合团队里吵得最多的就是“你那个激光雷达坐标系和我的相机坐标系差了多少毫米”。传统做法是做硬同步标定然后写死一个外参矩阵。问题是车辆运行中标定会有微小漂移悬架压缩、路面颠簸都会让外参发生动态变化。一旦外参不准后融合还能靠逻辑校验补救前融合直接就“错位叠影”。BEV最大的隐性红利在于它天然就是一种“特征级前融合”的表达方式。相机图像经过特征提取后被提升到BEV空间生成图像特征栅格激光雷达点云也可以直接栅格化成BEV特征毫米波雷达同样可以投影到同一张图里。三者共享同一个坐标系不用再纠结“以谁为主”网络自己学习各路传感器的置信度和互补关系。这个思路直接催生了后来各种“Camera-LiDAR Fusion in BEV”的论文和量产方案。1.3 意识转变从“识别物体”到“理解空间”做感知的人往往会有一种执念我要把每个目标都检测得特别准框框要贴合得严丝合缝。BEV的出现逼着大家换了一种思路——比起“它是什么”更要紧的是“它占住了哪块空间、往哪个方向动”。当你把一辆车表达成一个3D框投影到BEV网格里和把它表达成“障碍物占据概率较高的连续区域”本质上就是两种哲学。前者是“识别派”后者是“占据派”。BEV栅格天然偏向第二种因为栅格本身就是空间划分。这个转变的意义在后续几年越来越明显决策规划根本不关心它是不是一辆“轿车”只关心那块空间能不能走BEV的空间化表达直接降低了感知与决策之间的“翻译损耗”。2. BEV感知的核心方法论演进从LSS到Transformer霸主2.1 LSS把像素“提升”到空间的第一套优雅解法我最早接触BEV感知是从“Lift, Splat, Shoot”这篇工作开始的。这套方法的巧妙之处在于它回答了一个核心问题相机图像上的一个像素投影到BEV空间里该落在哪里单目相机本质上丢掉了深度信息。LSS的做法是先让网络为每个像素预测一个离散的深度分布比如从0到60米每隔1米一个bin而不是只预测一个确定深度值。这样每个像素就被“抬起”成一个沿着相机射线的、带权重的点云柱——这就是“Lift”。接着把这些点按坐标投到BEV网格里每个格子统计落入其中的特征类似“撒点填充”——这就是“Splat”。最后在BEV网格上做2D卷积就能输出统一的BEV特征图接到检测头、分割头都行。这套方法最打动我的一点是“深度分布”这个设计。它没有让网络硬着头皮输出一个深度值而是输出一个分布保留了不确定性。在遮挡、光照不好、纹理缺失的情形下分布会变平相当于告诉下游“这个像素的深度我拿不准但大概率在这个区间”这种表达方式非常诚实。当然LSS也有硬伤。它对深度bin的离散粒度非常敏感bin太粗远处目标像被橡皮擦抹过bin太细训练收敛难度指数上升。而且“Splat”这一步如果实现得不高明会引入大量重复计算。后来工业界做了很多工程化修补但LSS奠定了“图像到BEV”的基本范式该提升的提升该栅格化的栅格化几何先验可以注入网络结构而不是全靠注意力硬学。2.2 BEVFormer注意力机制终于对BEV下了手在LSS之后基于几何投影的方法在相当长时间里是主流。但Transformer在视觉领域崛起后大家开始想能不能不用显式几何投影而是让网络自己学会“从图像特征到BEV特征”的对应关系BEVFormer提供了一个非常漂亮的答案。它先把BEV空间划分成一个个网格每个网格对应一个查询向量query。然后让这些查询向量通过可变形注意力Deformable Attention去与相机图像的特征交互——每个BEV网格会学习“该看哪几个图像区域”。关键它还引入了一个时域注意力机制将上一帧的BEV特征作为当前帧查询的额外输入这样模型能利用历史信息来恢复当前的动态目标甚至在目标被遮挡时也能根据上一帧的位置“猜”出当前的位置。我当时用开源的BEVFormer复现过一版和一个LSS基线对比最直观的感觉是远处小目标召回率上来了。为什么因为可变形注意力可以动态调整采样位置相当于模型自己去选“看哪里”而不是依赖几何投影的固定索引再加上时域信息的累积远处低分辨率目标靠多帧积累也能被“猜”出来。这里要提醒一个容易被忽略的细节BEVFormer收敛比LSS慢得多。LSS有明确的几何先验相当于给网络发了一张“地图”它只要学会填内容BEVFormer是让网络从零去学地图结构训练要出效果通常需要更长的周期和更大的batch size。如果你在小显卡上复现不要急着下结论说“Transformer没用”先确保训练预算够。2.3 从网格到查询三种BEV生成路线的对比这些年在BEV感知的论文里把“如何生成BEV特征”这条路分成三类比较清晰基于几何投影LSS是代表、基于空间注意力BEVFormer是代表、基于纯端到端学习比如直接输入多视角图像输出BEV分割的隐式映射。我整理了一个表格方便对照路线代表范式空间结构先验遮挡鲁棒性部署难度适用场景几何投影LSS系方法强依赖深度估计中等低算力受限、量产快速落地空间注意力BEVFormer系方法弱靠注意力学习高中等数据充足、追求性能上限端到端隐式学习各种“咬文嚼字”模型极弱高高研究探索、下一代架构三类方法没有绝对优劣。我见过不少量产项目最终选的是“几何投影可变形注意力微调”的混合路线先用LSS式深度监督把网络训稳再在BEV特征后接几个Deformable Attention层做精修效果往往比单一路线都稳。2.4 BEV带来的不只是感知一把打通检测、分割与预测BEV感知最有想象力的地方在于它的输出格式天然统一检测、语义分割、可行驶区域识别、车道线识别全都可以挂在同一个BEV特征图上用不同的头输出。本来你要维护三个独立的模型、三套数据集、三套部署流程现在变成一套主干网络、一张BEV特征、三个轻量头。后来又在这个基础上加上了轨迹预测头甚至运动规划头。BEV特征图上的每个栅格不仅表达“这里是什么”还可以表达“这里正在发生什么运动”下游直接根据BEV特征做多目标轨迹预测这就把感知和预测的边界彻底模糊了。3. BEV工程落地中最狠的几刀算力、数据与标定的三重考验3.1 算力优化车载芯片上把BEV模型“瘦身”的真实经验论文里的BEV模型动辄上百GFLOPs但量产车上能给的算力预算是固定的。以某量产车型项目为例整个感知模型跑在车规级芯片上BEV部分只能分到大约40毫秒的推理时间。在这个预算下做BEV感知最核心的三个字是稀疏化。第一刀砍在图像特征提取。对8路相机同时做高分辨率特征提取是奢侈的量产方案普遍做法是先检测相机视野内的“感兴趣区域”只对ROI区域做高分辨率特征或者干脆用一个轻量主干比如轻量化卷积网络提完特征再上采样。第二刀砍在BEV网格分辨率。BEV栅格从比如0.5米一格降到0.25米一格计算量是四倍差距很多场景高速巡航根本不需要那么精细但城市拥堵场景又需要精细于是出现了多分辨率BEV的设计——近处用细网格、远处用粗网格。第三刀是剪枝与蒸馏。我踩过最深的坑是“剪枝完精度暴跌还找不到原因”。后来定位到问题出在深度估计分支深度分布输出被剪枝过度导致远处目标的BEV投影位置发生漂移。解决方法是把深度分支设置成不可剪枝层并在蒸馏时让教师模型大模型多输出“深度分布软标签”而不是只输出最终检测框。3.2 数据困境BEV标注贵得离谱自动标注绕不开透视图视角下2D框标注一个人花几秒BEV视角下标注一个3D框需要看多视角图像、估计朝向、标出三维尺寸成本可能是前者的5到10倍。更麻烦的是车道线、可行驶区域、障碍物占据这类“面状标注”在BEV栅格上逐格标注人力成本不可想象。行业里普遍采用的解法是自动标注人工校验。先用高精度的多传感器融合模型离线跑一遍数据生成BEV标签再让人工只修正置信度低的区域。这里有一个工程细节校验员看BEV标签时最好把BEV俯视图和对应透视图像同步显示否则没有空间感的人很难判断“这个框偏了0.2米”是否真的偏了。我和某实验室合作过一个模拟项目里面用了一个很朴素但有效的“时间累积标注法”对静止障碍物把连续几十帧的检测结果累积起来做均值求出一个高置信度的位置对运动目标用插值拟合轨迹再反向投影到每一帧生成标签。这样生成的BEV标注质量在很多区域甚至超过了人工标注的一致性。3.3 标定问题外参误差在BEV空间里会被放大传统目标检测里外参标定稍微差一点2D框可能只偏移几个像素肉眼都看不出。但到了BEV感知外参误差会被放大到“分米级”因为一个像素的误差在50米外可能对应0.5米的空间偏移直接导致本车“以为”障碍物在车道内实际它在相邻车道。这带来的直接结论是BEV感知系统的标定不是“调一次就好”而是要持续监测、在线补偿。我见过比较成熟的量产方案会在行驶中用路面特征车道线、路沿反推外参漂移量做在线修正。哪怕你的模型训练时用了完美的标定数据上车后如果没有在线标定配合精度依然会崩。另一个细节内外参标定必须覆盖相机畸变尤其是鱼眼相机。鱼眼镜头的畸变非常大如果校正参数不准BEV投影远处直接扭曲。我建议在训练数据制作阶段就对图像做去畸变处理而不是让网络自己学习畸变规律后者既浪费参数又学不彻底。3.4 泛化能力换一个城市BEV模型还会不会玩透视图像模型过拟合场景大家很早就知道但BEV模型的过拟合有更隐蔽的表现。有一次我在模拟项目里训练了一个BEV模型在园区场景测试效果很好换到一个结构更宽的道路环境突然开始把路边的绿化带识别成“可行驶区域”。后来复盘发现问题出在数据构成训练数据里绿化带和可行驶区域的“纹理搭配”相对固定模型学到了“看起来像这种绿植纹理的区域就是可行驶的”而没有学到真正的空间几何约束。在BEV空间里网络理应能学会“路沿边界”这个强几何线索但如果数据里路沿总是被其他车挡住、标注又恰好缺了那一块模型就会偷懒学纹理捷径。解决这类问题的思路一是做场景数据增广时刻意打乱纹理与空间的关联性二是在BEV特征上强约束“路面几何一致性”比如加入LIDAR生成的路面高度监督迫使网络依赖空间结构而不是表面纹理。4. 从BEV走向占用网络垂直维度的必要性终于浮出水面4.1 BEV的“扁平化”傲慢让它看不见悬空物BEV把所有东西压到二维平面这在结构化道路上是够用的车辆、行人、路面障碍物都在地表附近。但现实世界是三维的立交桥、悬挂的树枝、伸出来的广告牌、侧翻的卡车它们的“占据空间”有一部分悬在空中。BEV栅格里找不到这些对象因为它们在地面上的投影可能只是一小块阴影。我做过一个纯BEV方案的低速园区项目遇到一个很头疼的问题路边伸出来的树枝在BEV特征里几乎不可见但车辆的传感器尤其是激光雷达明明能扫到。这说明BEV这种表达天生在垂直维度上丢信息不是模型能力不够而是表征空间的容量有限。4.2 占用网络对三维空间做“体素级”占据预测占用网络的基本思路是把自车周围的3D空间划分成一个个小立方体体素网络要预测每个体素是被占用、空闲还是未知。和BEV栅格相比它增加了垂直维度和3D目标检测相比它不强制区分“这是一个车”还是“这是一个树”只回答“这里能不能过”。这种表达对规划模块极其友好。规划要判断“这个路口能不能左转”直接查占用网格的前方区域有没有连续空闲通道就行不需要去猜“躲过那辆右转车之后路沿后面是不是有一个消防栓”。占用网络最早从激光雷达点云分割演化而来后来也出现了纯视觉的占用网络方案用相机图像直接预测三维占用——从原理上讲它其实是BEV感知在空间维度上的一次升维。4.3 视觉占用网络与BEV的协同而不是相互取代有不少人觉得占用网络会“干掉”BEV我的判断是短期内不会两者更多是共存关系。BEV的优势在于成熟、高效、下游友好——2D的检测/分割头可以直接用规划模块也习惯了BEV栅格。占用网络的优势在于空间完备性但算力开销和标注难度比BEV高一个量级。现实中的方案通常是级联的先用一个高效的BEV网络做快速的目标检测和可行驶区域分割再在特定危险区域比如近距离盲区、路口启用占用网络做精细3D建模。占用网络补足BEV的“垂直盲区”BEV用速度弥补占用网络的“计算赤字”。这套“粗BEV细占用”的组合在城市NOA和代客泊车场景里已经有落地雏形。5. 一位实践者的BEV感知项目复盘那些论文里没写的细节5.1 模拟项目背景与整体设计我在某高校实验室做过一个BEV感知Demo目标是用6路环视相机实现园区内行人和车辆的BEV检测与轨迹预测。因为当时实验室没有激光雷达可用所以核心路线选了纯视觉的BEV方案。整体设计是6路鱼眼相机做去畸变→轻量卷积主干提特征→Transformer的BEVFormer式注意力模块做BEV特征生成→检测头输出3D框并投影到BEV→一个轻量的LSTM层输出未来3秒轨迹。训练数据是自采的一段园区数据约2小时用高精度RTK与人工标注生成BEV标签。现在回头看这个设计最成功的一点是“分级复杂度”POC阶段先用最朴素的方法跑通全链路再逐步替换更复杂的模块而不是一上来就堆Transformer。5.2 排坑记录深度分布收敛慢、注意力过拟合与时序跳变第一部分是深度分布收敛极慢。起初模型在训练集上表现良好但验证集上一塌糊涂。后来发现是深度监督信号给得太晚早期训练全靠检测框回传的梯度来“教”深度分支而这个梯度经过多层反传后很弱。解决方法是添加辅助损失把激光雷达投影出来的稀疏深度图作为弱监督信号强制深度分支在训练早期就学会“大概的深度轮廓”。这个改动让收敛速度至少快了40%且最终精度更高。第二部分是注意力模块在小数据集上的过拟合。BEVFormer这类模型参数多、数据需求量大而我们只有2小时数据。我做了两件事一是把标准的可变形注意力替换成窗口化的局部注意力让每个BEV网格只看邻域内的相机区域相当于加了局部性先验二是给注意力权重加了一个“几何距离衰减”的偏置——离当前BEV网格越远的图像区域初始权重越低。这个偏置贴近物理直觉模型不需要从头学习“远处的像素偶尔也能影响近处位置”这种罕见模式。第三部分是时序跳变。用BEVFormer时会发现连续帧预测的同一辆车在BEV空间的位置会有高频抖动。问题出在时域注意力对上一帧特征过度依赖一旦上一帧预测有误差误差会像“回声”一样在后续帧里累加。我调整了时域注意力对“上一帧BEV特征”和“当前帧图像特征”的权重比例限制了历史特征的最大贡献比例抖动明显改善。这也是一个经验之谈时域融合不是越多越好要留出“当前观测纠正历史误差”的通道。5.3 选型建议你的场景到底适合哪种BEV方案很多人问我“新项目到底该用LSS还是BEVFormer”我的回答永远是反问三个问题你的算力预算是多少数据量够不够场景是高速还是城区预算少、数据中等、高速场景为主——无脑选LSS系方法。它稳定、易训、参数少速场景结构化程度高深度估计不需要特别精准也能出效果。资金和数据充足、场景以城区复杂路口为主——上BEVFormer或类似的注意力架构它能利用时序信息处理遮挡而且对远处目标的召回率有明显优势代价就是算力开销大、收敛慢。既没算力又没数据选择做2D检测几何投影到BEV不要强行学习。还有一类场景我觉得是纯视觉BEV目前最强的分野代客泊车。泊车场景速度低、结构固定、传感器近纯视觉BEV能在近距离提供非常精准的占用估计和车位检测成本远低于激光方案加上垂直维度其实变化不大都在一个平面层BEV和占用网络在这里可以打得很好。5.4 下一步演进的个人判断在写这篇复盘时我已经在关注两条BEV之外的新线索。一条是语义 occupancy——让网络不仅预测占据还预测每个体素“是什么类型”这样决策可以知道“前方悬空的是树枝还是广告牌”因为这两者带来的行为逻辑完全不同。另一条是端到端大模型对BEV的替代或融合——现在很多端到端方案直接把多视角图像输入一个巨大的Transformer隐式地输出轨迹彻底跳过了显式BEV环节。但我的观点是显式BEV不会立刻消失。端到端模型的问题是“不可解释性”和“故障定位困难”一旦在真实路上出了安全问题你甚至不知道该改哪一层。而BEV作为中间表征天然提供了一个“人可读”的接口——工程师看一眼BEV特征图就能判断模型到底“看见”了什么这是端到端黑盒短期无法替代的工程价值。最后再分享一条实操体会做BEV感知不要一上来就追新模型先把“坐标系”想清楚把你的传感器标定、数据标注、外参监测这三个基本功打扎实无论以后换LSS、BEVFormer还是占用网络你都能比别人更快落地。BEV这十年演进的本质也在这里——不是某几篇论文的胜利而是一代做感知的人慢慢学会了用“空间”而不是“图像”去思考自动驾驶问题。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。