课程首页 › M2 感知与 BEV

模块总览

算法主线从这里开始。目标很明确:把 BEVFormer 真正训起来, 并能可视化出鸟瞰图。这一步跑通,你就超过了绝大多数只读论文的人。

课程 8 节 预计 5 周 难度 ★★★★☆ 产出 能出 BEV 图的模型
▸ 这个模块的成功标准

不是刷指标,是"跑通并看得见"。具体三条:

① 有一个自己采集、格式规范的 BEV 训练数据集
② BEVFormer 训练能启动、loss 稳定下降、能保存 checkpoint
③ 能把模型输出渲染成鸟瞰图,肉眼看出车辆位置大致正确

做到这三条,你在面试里就能说"我训过 BEV 模型"—— 而不是"我了解 BEV 原理"。这两句话的分量差很远。

八节课的逻辑链

2.1 数据采集 6 相机 + 雷达 + 3D 框真值 2.2 数据管线 Dataset / DataLoader 增强 · 归一化 2.3 BEVFormer 训练实战 ★ 本模块重头戏 L20 46GB 派上用场 2.4 占据网络 特斯拉核心表示 2.5 多传感器融合 相机 + 激光雷达 2.6 可视化 2.1-2.2 准备弹药 → 2.3 打通主线 → 2.4-2.5 扩展能力 → 2.6 让成果看得见 如果时间紧张,2.4 和 2.5 可以先跳过,直接从 2.3 到 2.6 但 2.6 不能跳 —— 没有可视化,你的项目在简历上是「不可见」的
图 · M2 的依赖关系。2.3 是主干,2.4/2.5 是分支能力,2.6 把成果变成可展示的东西。

本模块课程

▸ 关于三种传感器的分工(2.5 / 2.6 会详讲)
传感器独特优势致命短板谁在重度使用
相机 语义丰富、成本低、分辨率高 无直接深度、怕逆光与黑夜 特斯拉(纯视觉)
激光雷达 直接测距、精度厘米级 贵、雨雾衰减、无语义无速度 华为、小鹏、蔚来等
毫米波雷达 多普勒直接测速、全天候穿透 分辨率低、高度信息弱、多径干扰 几乎所有量产车(含特斯拉 HW4)

最关键的一条被很多教程忽略:毫米波是唯一能 直接测量径向速度的传感器——相机和激光雷达都只能靠前后帧位置差分推算速度, 在目标突然加减速时会有明显滞后。这就是为什么即使纯视觉路线的特斯拉, 在 HW4 上也重新加回了雷达。

你的 L20 在这个模块的作用

任务显存需求L20 46GB 的意义
数据采集(CARLA)2-4GB可与训练并行(但会抢算力)
BEVFormer-tiny 训练约 10-16GBbatch size 可开到 4-8,不用 grad checkpoint
BEVFormer-base 训练约 25-35GB单卡能跑,这在 24GB 卡上是做不到的
多组对比实验视情况可同时跑 2 组小实验做消融
▸ 但要注意算力是共享的

你的 GPU-Util 已经常在 72%-88%,说明别人的任务在持续占用算力。 显存够不等于速度快——你的训练可能比独占时慢一倍以上。

应对策略:先用小配置(tiny + 小分辨率)跑通全流程, 确认代码没问题后,再挑夜间或周末跑完整训练。不要一上来就开大配置—— 万一有 bug,浪费的是几小时而不是几分钟。

常见的挫败点,提前打预防针

"环境装了三天还没跑起来"

BEVFormer 依赖 mmcv/mmdet3d 这套 OpenMMLab 全家桶,版本组合极其挑剔。 2.3 节会给你一套经过验证的版本组合,照抄就行,不要自己试新版本。

"loss 不下降,肯定是我哪里错了"

先别急着改模型。90% 的情况是数据问题——标注坐标系搞错、 归一化没做、真值和预测的定义不一致。2.6 节的可视化工具就是用来定位这类问题的。

"训出来的 mAP 比论文低很多"

这是正常的,不用焦虑。论文用的是完整 nuScenes(1000 场景)训 24 epoch, 你用自采数据训几个 epoch,指标当然差距大。你的目标是跑通流程,不是刷榜。

"训练太慢,一个 epoch 要好几小时"

正常。BEV 模型本来就重,加上 GPU 共享。用 tmux 挂后台,睡觉时训, 白天看 TensorBoard 曲线。不要盯着终端等。

开始之前

  • 确认 M1 全部完成——特别是 1.2 CARLA 和 1.4 标定, 这两节的知识 2.1 会直接用到
  • 预留足够磁盘:自采数据集约 20-50GB(取决于采多少帧)
  • 心态上:本模块的目标是"跑通",不是"跑赢论文"