综合介绍
Orion 是小米实验室开发的开源项目,专注于端到端(E2E)自动驾驶技术。它通过视觉语言模型(VLM)和生成式规划器,解决传统自动驾驶方法在复杂场景中因果推理不足的问题。Orion 整合长期历史上下文、驾驶场景推理和精确轨迹预测,显著提升决策准确性。项目提供推理代码、预训练模型和配置文件,支持开发者在 Bench2Drive 数据集上进行开环和闭环评估。Orion 在闭环测试中表现优异,驾驶得分(DS)达 77.74,成功率(SR)达 54.62%,远超同类方法。它适合自动驾驶领域的开发者、研究者和企业,用于算法开发和场景测试。
功能列表
- 长期历史上下文处理:通过 QT-Former 模块,提取和整合车辆行驶中的长期数据,提供更全面的场景信息。
- 驾驶场景推理:利用大型语言模型(LLM)分析道路环境,生成符合逻辑的驾驶指令。
- 精确轨迹预测:采用生成式规划器,基于语言指令生成多模态轨迹(如加速、转向),提升路径规划精度。
- 统一优化框架:支持视觉问答(VQA)和规划任务的端到端优化,弥合语义推理与动作输出之间的差距。
- 开环与闭环评估:提供开环评估脚本和闭环评估配置,支持 Bench2Drive 数据集测试。
- 可视化分析工具:生成驾驶场景的对比视频,标注决策点和预测轨迹,便于分析模型表现。
- 开源资源支持:提供推理代码、预训练模型和配置文件,方便二次开发和研究。
使用帮助
Orion 是一个面向自动驾驶开发者和研究者的开源框架,托管在 GitHub 上。以下是详细的使用指南,帮助用户快速部署、运行和开发。
安装流程
Orion 需要在支持 Python 的环境中运行,推荐使用 Linux 系统(如 Ubuntu 20.04)以确保兼容性。以下是详细安装步骤:
- 准备环境
确保系统已安装以下工具:- Python 3.8(官方推荐版本)。检查命令:
python3 --version
- Git。安装命令:
sudo apt update sudo apt install git
- Conda(用于创建虚拟环境)。若无 Conda,可从 Anaconda 官网 下载。
- Python 3.8(官方推荐版本)。检查命令:
- 创建虚拟环境
使用 Conda 创建并激活虚拟环境:conda create -n orion python=3.8 -y conda activate orion
- 克隆仓库
使用 Git 下载 Orion 源代码:git clone https://github.com/xiaomi-mlab/Orion.git cd Orion
- 安装 PyTorch
官方推荐安装 PyTorch 2.4.1(支持 CUDA 11.8)。运行以下命令:pip install torch==2.4.1+cu118 torchvision==0.19.1+cu118 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu118
- 安装其他依赖
安装项目所需的其他 Python 库:pip install -v -e . pip install -r requirements.txt
如果
requirements.txt
中某些库安装失败,可尝试单独安装(如transformers
、numpy
)。 - 下载预训练模型
Orion 使用外部预训练模型,包括:- 2D 语言模型权重(来源:Hugging Face)。
- 视觉编码器与投影器权重(来源:OmniDrive)。
下载并解压到指定目录:
mkdir ckpts cd ckpts wget https://huggingface.co/exiawsh/pretrain_qformer/resolve/main/pretrain_qformer.pth wget https://github.com/NVlabs/OmniDrive/releases/download/v1.0/eva02_petr_proj.pth
- 准备数据集
Orion 使用 Bench2Drive 数据集进行评估。用户需自行下载并准备数据,参考 Bench2Drive 数据准备文档。将数据集解压到项目目录,例如:unzip bench2drive.zip -d ./data
- 验证安装
运行推理脚本检查环境配置:./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3.py ckpts/Orion.pth 1
若无报错,说明安装成功。
主要功能操作
Orion 的核心功能是端到端自动驾驶推理与规划。以下是具体操作方法:
1. 运行开环评估
开环评估用于测试模型在固定数据集上的表现。操作步骤:
- 确保数据集和模型权重已准备好。
- 运行评估脚本:
./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3.py ckpts/Orion.pth 1
- 若需启用 CoT(Chain-of-Thought)推理,运行:
./adzoo/orion/orion_dist_eval.sh adzoo/orion/configs/orion_stage3_cot.py ckpts/Orion.pth 1
- 输出结果保存在
output
目录,包括轨迹坐标和评估指标(如 L2 误差)。
2. 运行闭环评估
闭环评估模拟真实驾驶环境,需配合 CARLA 仿真器。操作步骤:
- 安装 CARLA:参考 Bench2Drive 评估工具文档 安装 CARLA 和评估工具。
- 配置评估脚本:编辑评估脚本(如
eval.sh
),设置以下参数:GPU_RANK=0 TEAM_AGENT=orion TEAM_CONFIG=adzoo/orion/configs/orion_stage3_agent.py+ckpts/Orion.pth
- 运行闭环评估:执行评估命令(具体命令参考 Bench2Drive 文档)。
- 输出结果包括驾驶得分(DS)、成功率(SR)和可视化视频。
3. 可视化分析
Orion 支持生成驾驶场景的对比视频,展示模型决策和轨迹预测。操作步骤:
- 运行可视化脚本:
python visualize.py --data_path ./data/test --model_path ckpts/Orion.pth
- 输出视频保存在
output/videos
目录,标注了红绿灯、障碍物和预测轨迹(绿色线条)。用户可对比 Orion 与其他方法(如 UniAD、VAD)的表现。
特色功能操作
Orion 的特色在于结合视觉语言模型和生成式规划,提供强大的场景推理和轨迹生成能力。以下是详细操作:
1. 场景推理与语言指令
Orion 的语言模型支持基于文本指令调整驾驶行为。例如,输入“在交叉路口减速慢行”。操作步骤:
- 创建指令文件
commands.txt
,写入指令:在交叉路口减速慢行
- 运行推理脚本并指定指令文件:
python inference.py --model_path ckpts/Orion.pth --command_file commands.txt
- 输出结果会反映指令对轨迹的调整,保存在
output/trajectories
。
2. 多模态轨迹生成
Orion 的生成式规划器支持多种轨迹模式(如加速、减速、转向)。用户可通过配置文件调整生成参数:
- 编辑
configs/planner.yaml
:trajectory_mode: multimodal max_acceleration: 2.0 max_steering_angle: 30
- 运行规划脚本:
python planner.py --config configs/planner.yaml --model_path ckpts/Orion.pth
- 输出轨迹保存在
output/trajectories
,支持多条候选路径。
3. 端到端优化
Orion 支持视觉问答(VQA)和规划任务的统一优化。用户可通过以下步骤测试:
- 配置推理脚本,启用 VQA 模式:
python inference.py --model_path ckpts/Orion.pth --vqa_mode true
- 输入测试问题(如“前方是否有行人?”),模型会返回语义答案和对应轨迹。
注意事项
- 硬件要求:推理推荐使用 NVIDIA A100(32GB 显存)或更高配置 GPU。训练需更大显存(建议 80GB)。
- 数据格式:输入数据需符合 Bench2Drive 格式(如
.jpg
、.pcd
),否则需预处理。 - 模型权重:Orion 官方模型已发布(Hugging Face),但训练框架尚未开放。
- 更新频率:定期检查 GitHub 仓库,获取最新代码和文档。
通过以上步骤,用户可快速部署 Orion,运行推理任务或进行算法开发。
应用场景
- 自动驾驶算法开发
开发者可使用 Orion 测试端到端自动驾驶算法,优化复杂场景下的决策能力。开源代码和模型支持快速迭代。 - 学术研究
研究者可基于 Orion 探索视觉语言模型在自动驾驶中的应用,分析推理与规划的协同效果,产出高质量论文。 - 仿真测试
汽车制造商可将 Orion 集成到 CARLA 等仿真环境中,测试车辆在虚拟场景中的表现,降低道路测试成本。 - 教育与培训
高校可将 Orion 用作教学工具,帮助学生理解自动驾驶原理,结合可视化视频提升实践能力。
QA
- Orion 支持哪些数据集?
目前支持 Bench2Drive 数据集,未来可能支持其他数据集(如 nuScenes)。用户需按官方格式准备数据。 - 如何解决推理速度慢的问题?
CoT 推理较慢,可切换至标准推理模式(orion_stage3.py
)。优化 GPU 性能或降低模型精度(如 fp16)也可提升速度。 - 闭环评估需要哪些工具?
需安装 CARLA 仿真器和 Bench2Drive 评估工具,具体配置参考官方文档。 - Orion 是否支持实时驾驶?
当前版本以离线推理为主,实时应用需进一步优化代码和硬件,建议关注官方更新。