不是刷指标,是"跑通并看得见"。具体三条:
① 有一个自己采集、格式规范的 BEV 训练数据集
② BEVFormer 训练能启动、loss 稳定下降、能保存 checkpoint
③ 能把模型输出渲染成鸟瞰图,肉眼看出车辆位置大致正确
做到这三条,你在面试里就能说"我训过 BEV 模型"—— 而不是"我了解 BEV 原理"。这两句话的分量差很远。
八节课的逻辑链
本模块课程
| 传感器 | 独特优势 | 致命短板 | 谁在重度使用 |
|---|---|---|---|
| 相机 | 语义丰富、成本低、分辨率高 | 无直接深度、怕逆光与黑夜 | 特斯拉(纯视觉) |
| 激光雷达 | 直接测距、精度厘米级 | 贵、雨雾衰减、无语义无速度 | 华为、小鹏、蔚来等 |
| 毫米波雷达 | 多普勒直接测速、全天候穿透 | 分辨率低、高度信息弱、多径干扰 | 几乎所有量产车(含特斯拉 HW4) |
最关键的一条被很多教程忽略:毫米波是唯一能 直接测量径向速度的传感器——相机和激光雷达都只能靠前后帧位置差分推算速度, 在目标突然加减速时会有明显滞后。这就是为什么即使纯视觉路线的特斯拉, 在 HW4 上也重新加回了雷达。
你的 L20 在这个模块的作用
| 任务 | 显存需求 | L20 46GB 的意义 |
|---|---|---|
| 数据采集(CARLA) | 2-4GB | 可与训练并行(但会抢算力) |
| BEVFormer-tiny 训练 | 约 10-16GB | batch 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(取决于采多少帧)
- 心态上:本模块的目标是"跑通",不是"跑赢论文"