logoPonyTechLab

马兆鑫的AI与深度学习博客

关于自动驾驶项目开发过程中的一些资料记录【BEV相关知识点】


🚗 一、首先:成熟厂商的 BEV 和传统“环视鸟瞰 BEV”完全不是一回事

算法类型 环视 BEV(4–6 路环视拼接) 自动驾驶 BEV(BEV 感知)
目的 给人看的 3D 环视 给算法看的世界统一表达
输入 鱼眼相机图像 前向感知相机、环视相机、毫米波雷达、激光雷达(部分)
依赖 几何映射 + LUT 端到端深度学习网络
输出 静态鸟瞰图 BEV 语义地图、目标框、占用网络、运动预测、道路拓扑结构
在自动驾驶中的地位 UI 辅助 整个自动驾驶的核心信息结构(中间体)

现代自动驾驶厂商的 BEV,本质是:

一个统一的世界表达结构(Bird-Eye-View World Model / Occupancy Grid),
是整个感知、预测、规划的核心接口。


🚀 二、成熟自动驾驶架构中 BEV 的位置(顶层结构)

成熟厂商(如 Tesla 2023+、Waymo、Cruise)采用如下整体结构:

传感器输入    ↓
多模态前端(图像 backbone / 雷达 encoder / 激光特征)
    ↓
多相机+多模态融合到 BEV 空间(BEV Encoder)
    ↓
BEV 表示(占用/深度/语义/动态物体)
    ↓
预测模块(Trajectory Prediction)
    ↓
规划模块(Behavior + Motion Planning)
    ↓
控制

其中 BEV 是承上启下的核心表达,相当于自动驾驶系统内部的“世界坐标系”。


🌐 三、成熟厂商的 BEV 感知是怎么做的(技术核心)

现代 BEV 感知系统一般分为 4 个层次:


① 多相机几何投影 + 深度估计(Lift / Projection)

例如 Tesla、XPeng、华为、小鹏使用:

🔸 Lift-Splat-Shoot(LSS)

  • 相机特征 map 通过 深度分布 转换成 3D voxel 或者 BEV 特征。

  • 核心思想:
    每个相机像素不是直接投到 BEV,而是先估深度,再投射到 3D 空间。

🔸 Tesla Occupancy Network(2023+)

  • 完全不用传统检测框,而输出 分布式 occupancy(可占用概率)

  • 预测 静态环境 + 动态物体 的三维占用。

🔸 BEVFormer / BEVFusion

  • Transformer 结构,通过 attention 从多个相机获取特征。

成熟自动驾驶基本都从 LSS-like 演化而来。


② 多相机融合(Multi-View Fusion)

多摄像头视角不连续,因此 BEV 空间需要融合。

融合机制:

  • 空间对齐(基于外参)

  • 特征拼接/求和

  • Transformer 全局融合(BEVFormer 风格)

  • 或者 CNN 跨尺度融合(简单高效)


③ 输出 BEV-level 世界模型(统一表达)

输出内容包括:

📦 Occupancy Grid(占用栅格)——核心

  • 0~1 概率 grid:该位置是否被占用
    (Tesla、Waymo、华为、高阶厂商都使用)

🛣️ 车道线、道路边界、可行驶区域(BEV semantic)

  • 替代传统分割

  • 是规划的直接输入

🚘 动态目标(3D Box 或 occupancy flow)

  • 物体位置

  • 速度、加速度

  • 轨迹分布

↔ 运动流场(Flow)

  • Tesla 使用 Occupancy Flow

  • 直接预测所有点未来 3 秒的运动趋势

成熟自动驾驶厂商的 BEV 是 完整的世界模型,不是简单地图。


④ 时序融合(Tracking + Motion)

关键是:

BEV 是世界坐标,因此不同时间帧的 BEV 可以直接做对齐。

成熟厂商做法:

  • Ego-motion 估计把上一帧 BEV warp 到当前帧

  • 多帧 BEV 融合,提升稳定性

  • Transformer 输出连续时间的动态空间预测


🏗 四、在整个自动驾驶系统中 BEV 的集成方式

下面从系统架构角度说清楚 BEV 在自动驾驶软件中的地位。


1. 感知层(BEV 是核心输出)

早期自动驾驶架构:

检测 → 跟踪 → 预测 → 规划

现在(成熟厂商):

原始传感器 → 统一 BEV 表示                ↓
           (检测、跟踪、分割、语义、占用)

也就是说:

感知直接输出 BEV 世界模型,而不是一个个物体框。

这简化了下游模块,也提升鲁棒性。


2. 预测层(基于 BEV 世界模型)

预测模块接收 BEV:

  • Occupancy Grid

  • 物体轨迹分布

  • 语义道路拓扑

  • 车辆动态状态

预测模块输出:

  • 多目标多轨迹分布

  • 目标未来 3–6s 的行为意图(切换车道、转向)

  • 占用未来演化(flow)

规划模块依赖预测结果。


3. 规划层(将 BEV 转为决策输入)

BEV → Planning:

  • 栅格可行驶区域 → 约束地图

  • 动态目标占用/位置 → 安全约束(collision check)

  • 道路几何(lane boundary)→ 决策状态机

规划通常分两层:

(1) 行为决策(Behavior Planning)

如:

  • 是否变道

  • 是否超车

  • 是否跟车

  • 是否等待行人

(2) 运动规划(Motion Planning)

如:

  • 产生轨迹(优化器 + RRT + sampling)

  • 避障

  • 速度规划

规划并不直接使用图像,而是使用 BEV 栅格化世界模型——非常简洁。


4. 控制层(执行规划轨迹)

BEV → planning → control → 方向盘/油门/刹车。

BEV 不直接进入控制。


🔧 五、总结成熟厂商 BEV 在架构中的角色(最重要)

自动驾驶系统内部的世界统一表示(World Model)

全系统共享一个世界坐标 BEV。

感知、预测、规划全部围绕 BEV 组织

从 pipeline 变成 graph-based 世界模型。

BEV 是 “AI 地图” 或 “动态 HD 地图”

提供实时更新的道路结构。

BEV 消灭了大量传统模块

  • 不再需要 2D 分割

  • 不再需要单独 3D 检测器

  • 不再需要复杂规则融合

取而代之的是:

一个统一 BEV 网络输出全部信息,成为自动驾驶核心。

avatar

Pony

深度学习爱好者和技术研究者。专注于人工智能、边缘计算及计算机视觉领域的开发与应用。

现居地:陕西省-西安市

Email:zhaoxin.ma@chd.edu.cn

Categories