在自动驾驶的 BEV 特征(Bird's Eye View Feature) 中,核心思想是:把来自相机或激光雷达的输入,统一投影到一个鸟瞰坐标系(X-Y 平面),然后在这个平面上编码出道路、车道线、障碍物等空间结构。这样,模型就能在一个与车辆坐标系对齐的空间里进行规划。
🧩 BEV 特征是什么
- 定义:BEV 特征是一个二维特征图(feature map),坐标轴对应车辆前方的空间(X 向右,Y 向前)。
- 本质:它是一个空间网格,每个单元格包含该位置的语义或几何信息。
- 来源:通过 BEV Encoder,把 2D 图像或 3D 点云投影到地平面,再编码成特征。
🖼️ BEV 特征长什么样子
- 形式:类似一张鸟瞰图,车辆在中心,周围是道路和环境的空间表示。
- 内容 :
- 道路边界和车道线 → 在 BEV 特征图上形成连续的线状结构。
- 障碍物(车辆、行人) → 在 BEV 特征图上形成局部块状或点状区域。
- 动态信息(其他车辆轨迹) → 在 BEV 特征图上表现为随时间变化的路径。
- 表现:通常是一个多通道的二维张量,每个通道编码不同类型的语义(例如车道、交通灯、障碍物)。
📊 公式化表示
- 投影后的 BEV 特征:
- (H, W):BEV 平面的网格大小(空间分辨率)
- (C):通道数(语义维度)
- 每个 cell 表示某个空间位置的语义/几何特征
🚗 关键点
- BEV 特征是空间结构的核心表示:它把复杂的 2D/3D输入转化为统一的鸟瞰空间。
- 直观性强:车辆规划时可以直接在 BEV 平面上"看见"道路和障碍物。
- 可扩展性:不同通道可以编码不同语义,适合多任务(检测、规划、预测)。
BEV Encoder 工作原理
BEV Encoder 的工作原理就是把原始的视觉/点云数据投影到鸟瞰坐标系(Bird's Eye View),再在这个平面上进行特征编码,从而得到道路结构、障碍物分布和动态交互的空间表示。我们可以把它拆解成几个关键模块:
🧩 BEV Encoder 的主要模块与作用
1. Projection Module(投影模块)
- 作用:将 2D 图像或 3D 点云转换到鸟瞰坐标系。
- 原理:利用相机几何参数或点云坐标,把输入数据映射到 X-Y 平面。
- 结果:得到初步的 BEV 网格表示。
2. Voxelization / Feature Aggregation(体素化与特征聚合)
- 作用:把投影后的数据划分为规则网格(occupancy grid)。
- 原理:每个网格单元聚合该区域的点云或图像特征。
- 结果 :形成一个二维张量 (
)。
3. Spatial Encoder(空间编码器)
- 作用:在 BEV 平面上提取空间结构关系。
- 原理 :
- CNN:卷积操作捕捉局部模式(车道线、路口形状)。
- Transformer:自注意力机制建模全局依赖(远处弯道、车辆交互)。
- 结果 :得到增强的空间特征 (
)。
4. Semantic Head(语义头)
- 作用:在 BEV 特征上预测语义标签(车道、障碍物、交通标志)。
- 原理:分类或分割任务,输出语义地图。
- 结果:提供场景理解能力。
5. Planning Head(规划头)
- 作用:利用 BEV 特征生成轨迹或动作。
- 原理:自回归预测未来路径,或强化学习输出控制指令。
- 结果:得到驾驶动作 (A)。
📊 总结逻辑
- Projection:把输入投影到鸟瞰坐标系。
- Voxelization:形成 BEV 网格特征。
- Spatial Encoding:提取局部和全局空间结构。
- Semantic Head:理解场景语义。
- Planning Head:生成轨迹与动作。
换句话说,BEV Encoder 的核心是"投影 + 聚合 + 编码",它把复杂的 2D/3D输入转化为一个统一的鸟瞰空间特征图,既能表达道路几何结构,又能支持轨迹规划。