自动驾驶感知:多模态融合与鸟瞰图表达
什么是自动驾驶感知?
感知系统是自动驾驶的“眼睛”和“大脑”,负责从传感器原始数据中理解车辆周围的动态世界。它需要回答三个核心问题:周围有什么?(目标检测与分类)、它们在哪里?(定位与追踪)、接下来可能发生什么?(行为预测)。在复杂城市环境中,单一传感器存在物理局限,因此多模态融合成为必然选择;而鸟瞰图(BEV)表达则是一种统一、直观的空间表示方式,正在重塑感知架构。
感知的核心任务
- 3D目标检测:在三维空间中定位车辆、行人、骑行者等,输出其类别、位置、尺寸和朝向。
- 语义分割:对每个测量点(像素或点云)赋予语义标签,如道路、人行道、建筑物。
- 多目标跟踪:在时间序列中维持同一目标的身份标识,形成运动轨迹。
- 在线建图:实时构建车道线、人行横道、交通标志等矢量化地图要素。
- 预测:基于历史轨迹和环境交互,推断其他交通参与者的未来意图。
为什么需要多模态融合?
单一传感器总有力不能及之处:摄像头在夜间和逆光下性能骤降,毫米波雷达缺乏语义信息,激光雷达成本高昂且在雨雾中产生噪点。多模态融合正是通过互补特性实现“1+1>2”的鲁棒感知。
常用车载传感器概览
| 传感器 | 优势 | 短板 | 输出数据 |
|---|---|---|---|
| 摄像头 | 纹理丰富,语义明确,成本低 | 无深度信息,受光照天气影响大 | 2D图像序列 |
| 激光雷达 (LiDAR) | 精确3D几何,直接提供距离 | 无色彩纹理,稀疏,成本高 | 3D点云 |
| 毫米波雷达 | 直接测速,全天候,低成本 | 分辨率低,噪声多 | 稀疏点或簇 |
| 高清地图 | 提供先验静态结构 | 不能动态更新,依赖定位 | 矢量化语义层 |
多模态融合的目标就是在不确定的环境下,将上述异源异构数据有机整合,输出比任何单一模态都更可靠的环境模型。
融合的三个层次
根据信息整合的阶段,融合可以分为:
- 数据级融合(前融合):在原始数据或特征提取早期进行拼接。如将点云投影到图像平面形成密集深度图,或将图像特征反投影到点云上。优势是保留细节,挑战是时空对齐与计算量。
- 特征级融合(中融合):各模态独立提取特征后,在某个特征空间中进行交互。比如用图像CNN特征增强点云体素特征,或者使用交叉注意力机制。这是当前主流范式,平衡了灵活性和性能。
- 决策级融合(后融合):各模态独立完成检测或分割,在后端通过卡尔曼滤波、贝叶斯规则或规则逻辑融合结果。工程实现简单,但对传感器失效敏感。
现代高性能系统倾向于特征级融合,借助深度学习端到端地学习跨模态交互。
主流融合架构:从“串行非对称”到“完全并行的Transformer”
早期经典模型如 MV3D 和 AVOD 使用两阶段检测头,先对鸟瞰图中的点云体素做区域提议,再融合图像和点云特征进行细化。这种流水线受限于各分支的独立性。随着 Transformer 引入,研究人员开始采用统一的后端。
一个典型的多模态Transformer融合流程:
- 传感器编码:将图像用ResNet/Swin Transformer提取多尺度特征,激光点云用 PointNet 或 VoxelNet 编码为体素特征。
- 坐标对齐:利用传感器标定参数,把不同模态的特征统一到共享的BEV空间(下一节详解)。
- 跨模态注意力:使用交叉注意力(Cross-Attention)让图像特征查询点云特征,或者反其道而行之,实现隐式对齐与补充。
- 时间融合:将当前帧的特征与历史BEV特征通过自注意力或时序卷积融合,获得动态速度估计和遮挡补偿。
- 多任务头:在统一的BEV特征图上并行执行检测、分割、轨迹预测。
这种设计让各模态不再是互为冗余,而是真正实现了互补:相机提供长距离语义,激光雷达精修几何结构,雷达则弥补速度与恶劣天气的薄弱环节。
鸟瞰图(BEV)表达:感知的统一表示空间
什么是BEV表达?
鸟瞰图(Bird’s-Eye View)是从正上方俯视的2D网格表示,每个网格单元编码了该位置的环境信息,如占据状态、语义类别、高度、速度等。它将不同传感器、不同视角的数据投影到同一个自车中心坐标系中,直接匹配下游的路径规划和决策模块。
BEV空间天然适合自动驾驶:
- 旋转平移等变性:卷积和Transformer在该网格上的操作对平移具有等变性,适合检测任意朝向的物体。
- 无遮挡推理:相比透视图像,BEV不存在尺度和遮挡歧义,尺寸恒定。
- 时序融合自然:自车运动在BEV下可简单建模为坐标平移与旋转,便于时序特征对齐。
BEV特征构建的主要方法
将传感器数据转化为BEV特征,是当前感知研究的核心攻坚战。主要有以下四大技术路线:
1. 基于几何投影的 “Lift-Splat-Shoot” 范式
以 Tesla 早期使用的 BEV 方案和学术界 BEVDet、CaDDN 为代表:
- Lift(提升):对图像的每个像素预测一个深度分布,将其“提升”为视锥状的点云。
- Splat(泼溅):根据预测的深度和相机内外参,把所有视锥点映射到全局3D网格,并做池化压缩成BEV平面。
- Shoot(拍摄):在BEV特征上运行任务头进行检测。 这种方式显式利用几何投影,可解释性强,但对深度预测误差敏感。
2. 基于Transformer的跨视角注意力
以 BEVFormer、PETR 为代表:
- 在BEV网格上定义一组可学习的查询(query)。
- 通过交叉注意力直接与多视角图像特征交互,让查询自适应地聚合对应的图像区域信息。
- 无需显式深度预测,网络自动学会关注正确的物体位置和尺度。 这成为当前最具竞争力的方案,其变体扩展到了多模态、多任务。
3. 基于点云体素的BEV
对于激光雷达,点云可被直接投影或稀疏卷积编码为BEV图。例如:
- 将点云分配给柱状体素(pillars),对每个柱使用 PointNet 提取特征,形成伪图像,再用2D卷积得到BEV特征。
- 结合雷达点云也可类似处理,弥补远距离激光点云稀疏的问题。
4. 基于隐式神经表示的BEV
最新的研究开始使用神经辐射场(NeRF)或可微渲染在BEV网格内采样,构建连续的场景表示。此类方法为传感器仿真和无标签自监督学习打开了新入口。
BEV多模态融合实践:一个简化的框架
我们以BEV空间内的特征级融合为例,描述技术实现关键步骤:
- 输入数据:6路环视图像(前视、后视、左前、右前、左后、右后)和1个顶装激光雷达点云帧。
- 视觉BEV编码:使用 BEVFormer 对每路图像提取多尺度特征,通过可变形注意力将6路图像聚合成一个视觉BEV特征图。
- 激光雷达BEV编码:将点云体素化,用稀疏3D卷积提取体素特征,沿高度维压缩得到激光雷达BEV特征图。
- 空间对齐:内外参保证两个BEV图在真实世界中的同一位置对应相同网格。
- 特征融合:将视觉BEV特征和激光雷达BEV特征拼接,送入一个带残差连接的卷积融合网络,或使用简单却高效的门控融合(Gated Fusion)来选择性地强调某一模态。
- 时序模块:利用自车位姿,将前若干帧的融合BEV特征变换到当前坐标系,与当前帧特征堆叠后,通过一个3D卷积或时空Transformer处理,输出时序增强的BEV特征。
- 多任务头并行:
- 检测头:使用中心点检测(CenterPoint)或稀疏查询检测头输出3D边界框。
- 在线建图头:使用矢量化输出(如MapTR)产生车道线和人行道。
- 运动预测头:利用时序BEV差分解算速度或直接预测未来轨迹。
- 输出整合:将检测、轨迹、地图等信号发送至预测和规划模块。
理解BEV的进阶挑战
- 查询设计的粒度:BEV网格的分辨率(典型为0.5m~1m)需权衡计算与精度。高分辨率对小物体有利但带来沉重负担。
- 传感器失效时的鲁棒性:当相机被遮挡或雷达噪声大时,网络可能学到虚假相关性。训练中加入模态随机丢弃(Modal Dropout)可提高单模态独立推理能力。
- 几何与学习的平衡:过于依赖几何投影会因标定误差导致性能骤降;完全依靠学习则可能泛化性差。混合方法通常更优。
- 长尾场景:BEV模型需要大量多样化数据来覆盖不常见的物体和道路结构。使用合成数据增强和多数据集预训练是关键。
总结:构建现代感知栈的思考
多模态融合与鸟瞰图表达并非孤立的两项技术,而是共同定义了感知的新范式:统一表示,融合互补,端到端优化。对于初学者,建议从以下几个模块逐步深入练习:
- 理解传感器模型和标定,掌握点云到图像、图像到BEV的投影数学。
- 从纯视觉BEV(如BEVFormer)入手,体验 view transformation 的魅力。
- 加入激光雷达点云,尝试简单的 pillar 编码和早期融合。
- 引入时间维度,理解时序融合如何提升速度估计和遮挡处理。
- 最终尝试多任务学习,体会一个共同BEV特征支持多个下游目标的能力。
自动驾驶感知正在从罗列独立组件向一体化模型演进,而BEV正是承载这一演进的理想舞台。掌握上述核心理念,你便掌握了打开下一代感知系统的钥匙。