第7章:BEV感知革命与占据网络
章节概述
本章深入剖析2020-2024年间自动驾驶感知领域的范式革命——从前视图(Front View)到鸟瞰图(Bird’s Eye View)的转变,以及从传统3D检测框到占据网络(Occupancy Network)的演进。这场革命不仅改变了感知算法的设计思路,更推动了整个自动驾驶系统架构的变革。
7.1 BEV感知范式革命
7.1.1 从前视图到鸟瞰图的必然性
前视图感知的局限性
传统前视图感知痛点:
┌─────────────────────────────────────────┐
│ 相机视角 (Front View) │
├─────────────────────────────────────────┤
│ 问题1: 多相机融合困难 │
│ • 不同视角特征难以对齐 │
│ • 重叠区域处理复杂 │
│ • 坐标系转换误差累积 │
│ │
│ 问题2: 后续模块接口不友好 │
│ • 规划需要俯视图 │
│ • 预测需要全局视野 │
│ • 控制需要车体坐标系 │
│ │
│ 问题3: 遮挡处理困难 │
│ • 深度估计不准 │
│ • 空间关系模糊 │
│ • 尺度变化剧烈 │
│ │
│ 问题4: 计算冗余 │
│ • 每个相机独立处理 │
│ • 重复特征提取 │
│ • 后处理NMS复杂 │
└─────────────────────────────────────────┘
前视图方法的历史演进
2016-2020 前视图感知演进:
2016: YOLO/SSD单目检测
↓
2017: 伪3D (Pseudo-3D)
• 2D框 + 深度估计
• MonoDepth单目深度
↓
2018: 多视图几何方法
• Multi-View Stereo
• 极线约束融合
↓
2019: Pseudo-LiDAR
• 深度图转点云
• 3D检测器处理
↓
2020: FCOS3D/SMOKE
• 直接3D回归
• 但仍是前视图
BEV统一表征的优势
BEV空间优势:
┌──────────────────────────┐
│ BEV统一空间 │
│ ┌──┐ ┌──┐ ┌──┐ │
│ │前│ │左│ │右│ │
│ └──┘ └──┘ └──┘ │
│ ↓ ↓ ↓ │
│ ┌──────────────┐ │
│ │ BEV Feature │ │
│ │ Grid │ │
│ └──────────────┘ │
│ ↓ │
│ 统一的空间表征 │
│ 便于多任务学习 │
│ 自然的融合接口 │
└──────────────────────────┘
具体优势分析:
1. 几何一致性
• 物体尺度不变
• 距离度量准确
• 空间关系清晰
2. 多传感器统一
• Camera/LiDAR/Radar同一空间
• 早期融合成为可能
• 互补信息充分利用
3. 下游任务友好
• 直接用于路径规划
• 便于碰撞检测
• 自然的地图对齐
BEV在自动驾驶中的必然性分析
为什么BEV是必然选择?
┌─────────────────────────────────────┐
│ 驾驶决策的本质需求 │
├─────────────────────────────────────┤
│ 1. 空间占用: 哪里能走? │
│ 2. 动态预测: 其他车会去哪? │
│ 3. 路径规划: 我该怎么走? │
└─────────────────────────────────────┘
↓
全部需要俯视图!
↓
┌─────────────────────────────────────┐
│ BEV天然满足需求 │
├─────────────────────────────────────┤
│ • 欧式空间,距离计算简单 │
│ • 规划算法可直接应用 │
│ • 与高精地图自然对齐 │
└─────────────────────────────────────┘
7.1.2 LSS: 开创性的视角转换方法
Lift-Splat-Shoot原理 (2020)
LSS核心流程:
1. Lift: 图像特征提升到3D
Image(H,W,C) -> Depth Distribution -> 3D Points
2. Splat: 3D点云投影到BEV
3D Points -> Voxel Space -> BEV Grid
3. Shoot: BEV特征用于下游任务
BEV Grid -> Detection/Segmentation
LSS详细技术实现
Lift阶段 - 深度分布学习:
┌──────────────────────────────────┐
│ 输入图像 I ∈ R^(H×W×3) │
└──────────────────────────────────┘
↓ CNN
┌──────────────────────────────────┐
│ 特征 F ∈ R^(H×W×C) │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ 深度分布 D ∈ R^(H×W×D) │
│ D维离散深度bins │
│ [dmin, dmax]均匀划分 │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ 3D点云生成: │
│ P = Σ(d·softmax(D)·F) │
│ 沿深度维度加权求和 │
└──────────────────────────────────┘
关键创新点
| 创新点 |
技术细节 |
影响 |
| 深度分布预测 |
预测深度概率分布而非单一值 |
处理深度不确定性 |
| 可微分投影 |
端到端训练的几何变换 |
联合优化 |
| 高效实现 |
CUDA加速的体素化 |
实时性能 |
| 外参感知 |
相机参数显式建模 |
泛化能力强 |
LSS的数学原理
深度提升公式:
给定像素(u,v),深度d,相机内参K,外参[R|t]
1. 像素到相机坐标系:
p_cam = K^(-1) · [u, v, 1]^T · d
2. 相机到世界坐标系:
p_world = R^T · (p_cam - t)
3. 世界到BEV网格:
(i, j) = discretize(p_world.x, p_world.y)
4. 特征聚合:
BEV[i,j] += Feature[u,v] · P(d|u,v)
LSS性能分析
计算复杂度分析:
┌──────────────────────────────┐
│ 输入尺寸: 6×224×480 │
│ 深度bins: 41 │
│ BEV尺寸: 200×200 │
├──────────────────────────────┤
│ Lift: O(HWD) │
│ Splat: O(HWDC) │
│ 总计算量: ~100M FLOPs │
│ 推理时间: ~50ms (2080Ti) │
└──────────────────────────────┘
7.1.3 BEVDet系列: 工程化落地
BEVDet (2021)架构
BEVDet Pipeline:
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Images │ --> │ Backbone │ --> │ View Trans │
└────────────┘ └────────────┘ └────────────┘
↓ ↓
ResNet50/101 LSS-based
+ FPN Transformation
↓
┌────────────┐ ┌────────────┐ ┌────────────┐
│ 3D Heads │ <-- │ BEV Encoder│ <-- │ BEV Grid │
└────────────┘ └────────────┘ └────────────┘
↓ ↓ ↓
CenterPoint 2D Conv Blocks 200×200×64
3D Detection for encoding
BEVDet核心改进
相比LSS的优化:
┌──────────────────────────────────────┐
│ 1. 数据增强策略 │
│ • 图像域: ColorJitter, Flip │
│ • BEV域: 旋转, 缩放 │
│ • 3D域: GT-Paste增强 │
├──────────────────────────────────────┤
│ 2. 多尺度特征 │
│ • FPN多层特征融合 │
│ • 不同深度范围不同分辨率 │
├──────────────────────────────────────┤
│ 3. 检测头优化 │
│ • CenterPoint头部 │
│ • Heatmap + 属性回归 │
└──────────────────────────────────────┘
BEVDet4D: 时序融合增强
时序融合详细架构:
┌─────────────────────────────────────┐
│ Historical BEV │
│ T-1: 200×200×64 │
└─────────────────────────────────────┘
↓
Ego Motion矩阵
[Δx, Δy, Δθ]
↓
┌─────────────────────────────────────┐
│ Spatial Transformer │
│ 根据自车运动warp历史BEV │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Feature Alignment │
│ Aligned_BEV = Warp(BEV_t-1, M) │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Concatenation │
│ [Current_BEV, Aligned_BEV] │
│ 200×200×128 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Temporal Fusion Conv │
│ 输出: Enhanced BEV 200×200×64 │
└─────────────────────────────────────┘
BEVDepth: 深度监督优化
深度监督架构:
┌──────────────────────────────────┐
│ LiDAR Point Cloud │
│ 投影到相机视角生成深度GT │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ Depth Correction Module │
│ 输入: Image Features + Camera │
│ Intrinsics/Extrinsics │
├──────────────────────────────────┤
│ SE-Net结构调制深度预测: │
│ • 内参编码: focal, principal │
│ • 外参编码: rotation, height │
│ • 自适应调整深度分布 │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ Depth Supervision Loss │
│ L_depth = BCE(D_pred, D_gt) │
│ 只在有LiDAR覆盖区域计算 │
└──────────────────────────────────┘
性能对比与分析
| 方法 |
NDS↑ |
mAP↑ |
深度监督 |
时序 |
FPS |
| LSS |
0.375 |
0.298 |
✗ |
✗ |
20 |
| BEVDet |
0.422 |
0.349 |
✗ |
✗ |
18 |
| BEVDet4D |
0.457 |
0.381 |
✗ |
✓ |
16 |
| BEVDepth |
0.475 |
0.412 |
✓ |
✗ |
15 |
| BEVDepth4D |
0.503 |
0.442 |
✓ |
✓ |
14 |
空间交叉注意力机制
BEVFormer核心设计:
┌─────────────────────────────────────┐
│ BEV Queries │
│ (H×W spatial positions) │
│ 200×200 learnable queries │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Spatial Cross-Attention │
│ • 可学习的3D参考点 │
│ • 多尺度特征聚合 │
│ • 相机感知的位置编码 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ Temporal Self-Attention │
│ • 历史BEV特征对齐 │
│ • 运动补偿 │
└─────────────────────────────────────┘
BEVFormer Layer结构:
┌──────────────────────────────────────┐
│ BEV Queries Q │
│ H×W×C │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ Temporal Self-Attention (TSA) │
│ Q' = TSA(Q, Q_prev) + Q │
│ • Q_prev: 上一帧的BEV特征 │
│ • Motion-aware alignment │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ Spatial Cross-Attention (SCA) │
│ Q'' = SCA(Q', F_multi) + Q' │
│ • F_multi: 多相机多尺度特征 │
│ • Deformable sampling │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ Feed Forward Network │
│ Q_out = FFN(Q'') + Q'' │
└──────────────────────────────────────┘
3D参考点生成机制
参考点计算流程:
1. BEV网格定义
Grid: [-51.2m, 51.2m] × [-51.2m, 51.2m]
Resolution: 0.512m
2. 垂直方向采样
Z轴: 4个高度层 [-1m, 0m, 1m, 2m]
3. 3D参考点生成
对每个BEV位置(i,j):
P_ref = [(i-100)×0.512, (j-100)×0.512, z_k]
其中k ∈ {1,2,3,4}
4. 投影到图像
对每个相机c:
p_2d = π_c(P_ref) // 相机投影
5. 特征采样
使用Deformable Attention
在p_2d周围采样K个点
关键技术突破
- 可学习的3D空间先验
BEV Query初始化:
• 位置编码: PE(x,y) = sin/cos encoding
• 可学习embedding: 随机初始化
• 组合: Q = PE + Learnable_Emb
- 多相机特征聚合
```
Deformable Cross-Attention:
输入: Query q, 参考点p_ref
- 计算采样偏移: Δp = MLP(q)
- 采样位置: p_sample = p_ref + Δp
- 双线性插值: F_sampled = bilinear(F, p_sample)
- 加权聚合: output = Σ(w_i × F_sampled_i)
```
- 时序信息利用
```
时序对齐机制:
-
- Warp历史BEV: BEV_prev_aligned = warp(BEV_prev, T)
- Self-attention融合当前和历史
```
工程优化策略:
┌──────────────────────────────────┐
│ 1. 稀疏化处理 │
│ • 只处理有效相机视野内的query │
│ • Mask掉无效区域 │
├──────────────────────────────────┤
│ 2. 多尺度特征 │
│ • 使用FPN的P2-P5层 │
│ • 不同尺度处理不同距离 │
├──────────────────────────────────┤
│ 3. 缓存优化 │
│ • 缓存历史BEV特征 │
│ • 避免重复计算 │
└──────────────────────────────────┘
7.1.5 工业界BEV实践
Tesla BEV架构:
Multi-Scale Features
┌────┐ ┌────┐ ┌────┐ ┌────┐
│Cam1│ │Cam2│ │...│ │Cam8│
└────┘ └────┘ └────┘ └────┘
↓ ↓ ↓ ↓
┌──────────────────────────┐
│ Transformer Encoder │
│ (Cross-View Attention) │
└──────────────────────────┘
↓
┌──────────────────────────┐
│ BEV Feature Map │
│ (200m × 200m × 256) │
└──────────────────────────┘
↓
┌──────────────────────────┐
│ Multi-Task Decoder │
│ • 3D Detection │
│ • Lane │
│ • Drivable Area │
└──────────────────────────┘
国内厂商BEV方案对比
| 厂商 |
方案特点 |
感知范围 |
特色技术 |
| 小鹏 |
BEVNet + 时序融合 |
200m |
多任务联合训练 |
| 华为 |
GOD (Grid Occupancy) |
150m |
通用障碍物检测 |
| 毫末 |
Transformer架构 |
150m |
自监督预训练 |
| 地平线 |
高效BEV (稀疏) |
100m |
INT8量化加速 |
7.1.6 BEV感知的挑战与优化
计算效率优化
优化策略:
1. 稀疏化处理
• Sparse BEV: 只处理有效区域
• Dynamic Voxelization: 自适应分辨率
2. 模型压缩
• 知识蒸馏: 大模型指导小模型
• 量化感知训练: INT8/INT4部署
3. 硬件加速
• CUDA kernel优化
• TensorRT部署
• 专用NPU设计
数据与标注挑战
- 3D标注成本高
- 解决方案: 自动标注 + 人工修正
- 伪标签生成: 利用LiDAR数据
- 多视角数据同步
- 长尾场景覆盖
7.2 占据网络与世界模型
7.2.1 从3D框到占据网络的进化
3D检测框的局限性
传统3D Box表示的问题:
┌─────────────────────────────────┐
│ 3D Bounding Box局限: │
│ │
│ 1. 无法表示不规则物体 │
│ • 施工区域 │
│ • 散落物体 │
│ │
│ 2. 缺少可行驶空间信息 │
│ • 只有物体,没有空闲空间 │
│ │
│ 3. 语义信息有限 │
│ • 类别固定 │
│ • 无法处理未知物体 │
└─────────────────────────────────┘
占据网络的概念与优势
Occupancy表示:
3D Voxel Grid
┌───┬───┬───┬───┐
│ 0 │ 1 │ 0 │ 0 │ ← Z
├───┼───┼───┼───┤
│ 0 │ 1 │ 1 │ 0 │
├───┼───┼───┼───┤
│ 0 │ 0 │ 1 │ 0 │
└───┴───┴───┴───┘
↑
X
每个体素: [占据概率, 语义类别]
优势: 通用表示一切物体和空间
7.2.2 Tesla Occupancy Network架构
2022 AI Day公开的架构
Tesla Occupancy Network:
┌──────────────────────────────────┐
│ Multi-Camera Images │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ Shared Feature Extractor │
│ (RegNet + FPN) │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ BEV Feature Volume │
│ (200m × 200m × 16 × 256) │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ 3D Deconvolution Network │
│ Upsample to target resolution │
└──────────────────────────────────┘
↓
┌──────────────────────────────────┐
│ Occupancy Predictions │
│ • Occupancy: 0.5m × 0.5m × 0.5m │
│ • Semantics: 8 classes │
│ • Flow: motion vectors │
└──────────────────────────────────┘
关键技术特点
- 高分辨率体素网格
- 多任务输出
- 自监督学习
7.2.3 国内占据网络实践
各厂商方案对比
| 公司 |
产品名称 |
分辨率 |
语义类别 |
特色 |
| 小鹏 |
XNet 2.0 |
0.2m |
20+ |
动静态分离 |
| 理想 |
占据网络 |
0.4m |
16 |
激光雷达真值 |
| 华为 |
GOD 2.0 |
0.3m |
通用 |
不限定类别 |
| 地平线 |
Sparse Occ |
自适应 |
12 |
稀疏表示 |
技术实现差异
实现路径对比:
纯视觉路线 (小鹏/特斯拉):
Camera -> BEV -> Occupancy
优势: 成本低,可扩展
挑战: 深度估计误差
融合路线 (理想/蔚来):
Camera + LiDAR -> Occupancy
优势: 精度高,鲁棒性好
挑战: 成本高,标定复杂
渐进式路线 (毫末/地平线):
3D Det -> Occupancy伪标签 -> 自监督
优势: 利用现有标注
挑战: 误差累积
7.2.4 占据流(Occupancy Flow)
动态占据预测
Occupancy Flow表示:
T=0 T=1 T=2
┌───┐ ┌───┐ ┌───┐
│ O │ --> │ O'│ --> │O''│
└───┘ └───┘ └───┘
↓ ↓ ↓
Static + Motion Predicted
Dynamic Vectors Future State
应用场景
- 轨迹预测增强
- 碰撞检测优化
- 场景理解深化
7.2.5 NeRF与神经渲染在占据中的应用
Neural Radiance Fields启发
NeRF -> Occupancy转换:
┌─────────────────────────┐
│ NeRF Volume Rendering │
│ Density σ(x,y,z) │
└─────────────────────────┘
↓
┌─────────────────────────┐
│ Occupancy Probability │
│ P = 1 - exp(-σ·δ) │
└─────────────────────────┘
神经渲染优势
- 连续空间表示
- 视角一致性
- 自监督训练
7.2.6 世界模型与占据网络的融合
世界模型概念
世界模型架构:
┌──────────────────────────────┐
│ Perception Module │
│ (Current Observation) │
└──────────────────────────────┘
↓
┌──────────────────────────────┐
│ World Model Core │
│ • State Representation │
│ • Dynamics Model │
│ • Prediction Module │
└──────────────────────────────┘
↓
┌──────────────────────────────┐
│ Future State Prediction │
│ (Occupancy at T+1, T+2...) │
└──────────────────────────────┘
占据作为世界模型的状态表示
- 完整性: 包含所有空间信息
- 通用性: 不依赖特定物体类别
- 可预测性: 便于物理建模
应用实例
基于占据的世界模型应用:
1. 场景补全
Input: Partial Observation
Output: Complete Occupancy
2. 未来预测
Input: Historical Occupancy
Output: Future Occupancy States
3. 反事实推理
Input: What-if Actions
Output: Predicted Outcomes
7.3 4D时序感知与预测
7.3.1 从3D到4D的必要性
静态感知的局限
3D静态感知问题:
┌────────────────────────────┐
│ 单帧感知局限: │
│ │
│ • 运动模糊 │
│ • 遮挡变化 │
│ • 速度估计不准 │
│ • 意图预测困难 │
└────────────────────────────┘
↓
┌────────────────────────────┐
│ 4D时序融合优势: │
│ │
│ • 运动轨迹平滑 │
│ • 遮挡物体追踪 │
│ • 精确速度估计 │
│ • 行为模式识别 │
└────────────────────────────┘
7.3.2 时序融合技术架构
早期融合 vs 晚期融合
融合策略对比:
早期融合 (Feature Level):
T-2 ─┐
T-1 ─┼─> Feature Fusion -> Processing
T ─┘
晚期融合 (Decision Level):
T-2 ─> Process ─┐
T-1 ─> Process ─┼─> Decision Fusion
T ─> Process ─┘
中期融合 (BEV Level):
T-2 ─> BEV ─┐
T-1 ─> BEV ─┼─> Temporal BEV -> Output
T ─> BEV ─┘
BEV空间的时序对齐
时序对齐流程:
1. 自车运动补偿
BEV_aligned = warp(BEV_prev, ego_motion)
2. 动态物体跟踪
Objects_tracked = associate(Det_prev, Det_curr)
3. 特征融合
BEV_fused = aggregate([BEV_curr, BEV_aligned])
7.3.3 视频BEV: StreamPETR与VideoOcc
StreamPETR架构
StreamPETR时序传播:
┌──────────────────────────────┐
│ Historical Object Queries │
│ (from T-1) │
└──────────────────────────────┘
↓
Motion Compensation
↓
┌──────────────────────────────┐
│ Propagated Queries │
│ + New Queries (T) │
└──────────────────────────────┘
↓
┌──────────────────────────────┐
│ Temporal Cross-Attention │
│ with Current Features │
└──────────────────────────────┘
关键创新
- 查询传播机制
- 在线推理优化
7.3.4 4D占据预测
时空占据表示
4D Occupancy Grid:
Time →
T=0 T=1 T=2
┌──┐ ┌──┐ ┌──┐
Z │██│ │█░│ │░░│ <- 物体运动
↑ │██│ │██│ │█░│
│ └──┘ └──┘ └──┘
└─> X
██: Occupied
░░: Free
━━: Unknown
预测网络架构
4D预测架构:
┌────────────────────────────────┐
│ Historical 3D Occupancy │
│ T-3, T-2, T-1, T │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ 3D ConvLSTM / Transformer │
│ Spatiotemporal Encoding │
└────────────────────────────────┘
↓
┌────────────────────────────────┐
│ Future Occupancy Decoder │
│ T+1, T+2, ... T+N │
└────────────────────────────────┘
7.3.5 运动预测与行为理解
基于占据流的轨迹预测
轨迹预测流程:
1. 历史占据序列提取
Occ_history = [O(t-n), ..., O(t)]
2. 运动模式学习
Motion_pattern = encode(Occ_history)
3. 未来轨迹生成
Trajectories = decode(Motion_pattern)
4. 占据一致性检查
Valid_traj = check_collision(Trajectories, Occ_future)
交互行为建模
多智能体交互:
┌─────────────────────────────┐
│ Agent A Occupancy Flow │
└─────────────────────────────┘
↓ ↑
Interaction Module
↓ ↑
┌─────────────────────────────┐
│ Agent B Occupancy Flow │
└─────────────────────────────┘
7.3.6 产业实践案例
Tesla FSD的4D感知
- HydraNets
- Video Training
国内厂商方案
| 厂商 |
时序长度 |
融合方式 |
特色 |
| 小鹏 |
1秒(10帧) |
BEV级融合 |
轻量级LSTM |
| 理想 |
2秒(20帧) |
特征级融合 |
多尺度时序 |
| 华为 |
1.5秒(15帧) |
混合融合 |
自适应帧率 |
7.3.7 挑战与未来方向
当前挑战
- 计算复杂度
- 长程依赖建模
- 实时性要求
发展趋势
未来技术方向:
┌──────────────────────────────┐
│ 1. 稀疏4D表示 │
│ • Event-based处理 │
│ • 关键帧机制 │
└──────────────────────────────┘
┌──────────────────────────────┐
│ 2. 神经ODE/SDE │
│ • 连续时间建模 │
│ • 不规则采样 │
└──────────────────────────────┘
┌──────────────────────────────┐
│ 3. 生成式预测 │
│ • Diffusion模型 │
│ • 多模态未来 │
└──────────────────────────────┘
本章小结
BEV感知革命标志着自动驾驶感知从”看得见”到”看得懂”的关键转变。通过统一的BEV空间表征,多相机感知的融合难题得到解决。占据网络进一步将感知从”检测已知物体”提升到”理解整个空间”,为真正的自主驾驶奠定基础。4D时序感知则增加了时间维度的理解,使系统能够预测和规划。
这场技术革命仍在继续,随着计算能力提升和算法优化,我们正在接近人类驾驶员的空间感知和预测能力。下一章将探讨这些感知能力如何与规划算法结合,实现从感知到决策的智能飞跃。