小米 Orion 环境搭建
今年做硕士毕业论文,方向是「视觉-语言-动作(VLA)端到端轨迹规划」。调研了一圈开源方案:于是拍板:就用 Orion 当 baseline,结果环境搭建踩坑两周,差点劝退…… 今天把完整流程+踩坑笔记打包分享,帮大家把“两周”压缩到“半天”。表格复制英伟达 OmniDrive:只放论文没放完整代码;LMDrive:语言标注太简单,场景维度不足;小米 Orion:直接把 VLA 模块嵌进 MMDe
1. 背景:为什么选 Orion?
今年做硕士毕业论文,方向是「视觉-语言-动作(VLA)端到端轨迹规划」。调研了一圈开源方案:
于是拍板:就用 Orion 当 baseline,结果环境搭建踩坑两周,差点劝退…… 今天把完整流程+踩坑笔记打包分享,帮大家把“两周”压缩到“半天”。
2. 前置知识 30 秒速览
表格
复制
| 概念 | 一句话解释 |
|---|---|
| MMDetection | 目标检测界的“安卓”,所有 backbone/head/neck 都能插拔。Orion 只是加了 VLA 新 head。 |
| Bench2Drive | 带语言描述的大规模 Carla 闭环场景数据集,官方 200+ 场景,论文里用 20 个就能出曲线。 |
| VLA | Vision-Language-Action,把“语言指令”和“视觉观测”一起塞进 Transformer,直接输出未来轨迹。 |
3. 硬件 & 系统底线
-
-
英伟达 OmniDrive:只放论文没放完整代码;
-
LMDrive:语言标注太简单,场景维度不足;
-
小米 Orion:
-
直接把 VLA 模块嵌进 MMDetection,工业界友好;
-
配套 Bench2Drive 多场景+语言标注,天然适合写论文做消融;
-
代码仓完整,甚至给了 ChatB2D 语言标注模型。
-
-
Ubuntu 20.04/22.04 均可
-
GPU ≥ RTX3080(10 GB)显存,否则 batch-size=1 都会 OOM
-
CUDA 必须 11.8,作者 hard code 了 flash-attn 0.2.8,CUDA12 会直接炸。
-
Python 3.9(官方推荐),3.10 也能跑,再高会踩 torch 扩展编译坑。
-
4. 全流程 7 步走
4.1 拉取两级代码
# 1. Bench2DriveZoo 数据工具
git clone https://github.com/Thinklab-SJTU/Bench2DriveZoo.git
# 2. Orion 主仓
git clone https://github.com/xiaomi-mlab/Orion.git
# 3. Bench2Drive 数据工具
git clone https://github.com/Thinklab-SJTU/Bench2Drive.git
4.2 CUDA11.8 + PyTorch1.13.1 精准对齐
# 官网 runfile 安装,不要 apt 版,避免驱动冲突
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run --toolkit --silent --override
# 装好后再上 pytorch
pip install torch==1.13.1+cu118 torchvision==0.14.1+cu118 \
-f https://download.pytorch.org/whl/torch_stable.html
4.3 一键下载“迷你” Bench2Drive(官方 200G→自选 20G)
cd Bench2Drive
bash tools/download_mini.sh # 默认下 5 个场景,想多加改脚本循环即可
地图数据按需下:
# 假设你场景里出现 Town05、Town03
git-lfs clone https://huggingface.co/datasets/rethinklab/Bench2Drive-Map
cp -r Bench2Drive-Map/Town05 Bench2Drive-Map/Town03 /path/to/Bench2DriveZoo/data/
最终目录树:
Bench2DriveZoo/data
├─ v1
│ ├─ Accident_Town03_Route156_Weather0
│ └─ ConstructionObstacle_Town05_Route68_Weather8
└─ map
├─ Town03.pcd
└─ Town05.pcd
4.4 先改 json 白名单,再生成索引!
打开 Bench2DriveZoo/configs/_base_/dataset/bench2drive_base_train_val_split.json
只保留你已经下载的场景名(与 data/v1/ 文件夹名称完全一致)。例如:(train:训练集,val:测试集)
{
"train": [
"v1/Accident_Town03_Route156_Weather0",
"v1/ConstructionObstacle_Town05_Route68_Weather8"
],
"val": [
"v1/DynamicObjectCrossing_Town02_Route13_Weather6",
"v1/YieldToEmergencyVehicle_Town04_Route165_Weather7"
]
}
保存后,再运行数据打包脚本:
python tools/prepare_B2D.py
4.5 把数据“搬进” Orion
cp -r Bench2DriveZoo/data/* Orion/data/
4.6 下载 3 个预训练权重(缺一不可)
| 权重 | 地址 | 放哪里 |
|---|---|---|
| ChatB2D 语言标注 | https://huggingface.co/datasets/poleyzdk/Chat-B2D/tree/main | Orion/data/chat_b2d/ |
| Q-Former | https://huggingface.co/exiawsh/pretrain_qformer/ | Orion/data/pretrain_qformer/ |
| EVA02 PETR proj | https://github.com/NVlabs/OmniDrive/releases/download/v1.0/eva02_petr_proj.pth | Orion/data/eva02_petr_proj.pth |
4.7 安装 Orion 依赖 & 解决 flash-attn 0.2.8 地狱
cd Orion
pip install -r requirements.txt
坑来了:flash-attn==0.2.8 编译报 flash_attn_varlen_kvpacked_func 找不到。
解法:作者接口名写错,手动改一行:
# 先装完 0.2.8 轮子(会自动编)
pip install flash-attn==0.2.8
# 再改源码
vim orion/models/backbones/flash_attn_1.py
# 把 flash_attn_varlen_kvpacked_func → flash_attn_unpadded_kvpacked_func
# 保存后 pip install -e . 重新打包即可
5. 验证安装:跑通可视化 demo
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)