AI个人学习
和实操指南
豆包Marscode1

Orion:小米开源的端到端自动驾驶推理与规划框架

综合介绍

Orion 是小米实验室开发的开源项目,专注于端到端(E2E)自动驾驶技术。它通过视觉语言模型(VLM)和生成式规划器,解决传统自动驾驶方法在复杂场景中因果推理不足的问题。Orion 整合长期历史上下文、驾驶场景推理和精确轨迹预测,显著提升决策准确性。项目提供推理代码、预训练模型和配置文件,支持开发者在 Bench2Drive 数据集上进行开环和闭环评估。Orion 在闭环测试中表现优异,驾驶得分(DS)达 77.74,成功率(SR)达 54.62%,远超同类方法。它适合自动驾驶领域的开发者、研究者和企业,用于算法开发和场景测试。

Orion:小米开源的端到端自动驾驶推理与规划框架-1


 

功能列表

  • 长期历史上下文处理:通过 QT-Former 模块,提取和整合车辆行驶中的长期数据,提供更全面的场景信息。
  • 驾驶场景推理:利用大型语言模型(LLM)分析道路环境,生成符合逻辑的驾驶指令。
  • 精确轨迹预测:采用生成式规划器,基于语言指令生成多模态轨迹(如加速、转向),提升路径规划精度。
  • 统一优化框架:支持视觉问答(VQA)和规划任务的端到端优化,弥合语义推理与动作输出之间的差距。
  • 开环与闭环评估:提供开环评估脚本和闭环评估配置,支持 Bench2Drive 数据集测试。
  • 可视化分析工具:生成驾驶场景的对比视频,标注决策点和预测轨迹,便于分析模型表现。
  • 开源资源支持:提供推理代码、预训练模型和配置文件,方便二次开发和研究。

 

使用帮助

Orion 是一个面向自动驾驶开发者和研究者的开源框架,托管在 GitHub 上。以下是详细的使用指南,帮助用户快速部署、运行和开发。

安装流程

Orion 需要在支持 Python 的环境中运行,推荐使用 Linux 系统(如 Ubuntu 20.04)以确保兼容性。以下是详细安装步骤:

  1. 准备环境
    确保系统已安装以下工具:

    • Python 3.8(官方推荐版本)。检查命令:
      python3 --version
      
    • Git。安装命令:
      sudo apt update
      sudo apt install git
      
    • Conda(用于创建虚拟环境)。若无 Conda,可从 Anaconda 官网 下载。
  2. 创建虚拟环境
    使用 Conda 创建并激活虚拟环境:

    conda create -n orion python=3.8 -y
    conda activate orion
    
  3. 克隆仓库
    使用 Git 下载 Orion 源代码:

    git clone https://github.com/xiaomi-mlab/Orion.git
    cd Orion
    
  4. 安装 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
    
  5. 安装其他依赖
    安装项目所需的其他 Python 库:

    pip install -v -e .
    pip install -r requirements.txt
    

    如果 requirements.txt 中某些库安装失败,可尝试单独安装(如 transformersnumpy)。

  6. 下载预训练模型
    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
    
  7. 准备数据集
    Orion 使用 Bench2Drive 数据集进行评估。用户需自行下载并准备数据,参考 Bench2Drive 数据准备文档。将数据集解压到项目目录,例如:

    unzip bench2drive.zip -d ./data
    
  8. 验证安装
    运行推理脚本检查环境配置:

    ./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,运行推理任务或进行算法开发。

 

应用场景

  1. 自动驾驶算法开发
    开发者可使用 Orion 测试端到端自动驾驶算法,优化复杂场景下的决策能力。开源代码和模型支持快速迭代。
  2. 学术研究
    研究者可基于 Orion 探索视觉语言模型在自动驾驶中的应用,分析推理与规划的协同效果,产出高质量论文。
  3. 仿真测试
    汽车制造商可将 Orion 集成到 CARLA 等仿真环境中,测试车辆在虚拟场景中的表现,降低道路测试成本。
  4. 教育与培训
    高校可将 Orion 用作教学工具,帮助学生理解自动驾驶原理,结合可视化视频提升实践能力。

 

QA

  1. Orion 支持哪些数据集?
    目前支持 Bench2Drive 数据集,未来可能支持其他数据集(如 nuScenes)。用户需按官方格式准备数据。
  2. 如何解决推理速度慢的问题?
    CoT 推理较慢,可切换至标准推理模式(orion_stage3.py)。优化 GPU 性能或降低模型精度(如 fp16)也可提升速度。
  3. 闭环评估需要哪些工具?
    需安装 CARLA 仿真器和 Bench2Drive 评估工具,具体配置参考官方文档。
  4. Orion 是否支持实时驾驶?
    当前版本以离线推理为主,实时应用需进一步优化代码和硬件,建议关注官方更新。
未经允许不得转载:首席AI分享圈 » Orion:小米开源的端到端自动驾驶推理与规划框架
zh_CN简体中文