OpenEMMA:德克萨斯开源端到端的自动驾驶多模态模型框架,基于预训练的 MLLMs,处理复杂的视觉数据,推理驾驶场景

336 阅读4分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 功能:OpenEMMA 提供端到端轨迹规划、多模态数据处理、链式思维推理等功能。
  2. 技术:基于预训练的多模态大型语言模型和链式思维推理过程,提升自动驾驶的决策能力。
  3. 应用:适用于城市道路、高速公路、停车和低速驾驶等复杂场景。

正文(附运行示例)

OpenEMMA 是什么

公众号: 蚝油菜花 - OpenEMMA

OpenEMMA 是德州农工大学、密歇根大学和多伦多大学共同开源的端到端自动驾驶多模态模型框架,基于预训练的多模态大型语言模型(MLLMs)处理视觉数据和复杂驾驶场景的推理。框架基于链式思维推理过程,显著提高模型在轨迹规划和感知任务中的性能,同时集成专门优化的 YOLO 模型提高 3D 边界框预测的准确性。

OpenEMMA 提供了一个平台,促进更广泛的研究和开发,推动自动驾驶技术的进步。它能够处理前向摄像头图像和文本历史 ego 车辆状态作为输入,将驾驶任务框架化为视觉问答(VQA)问题,并生成人类可读的输出。

OpenEMMA 的主要功能

  1. 端到端轨迹规划:直接从传感器输入学习驾驶动作,实现从感知到决策的端到端优化,无需符号化接口。
  2. 多模态数据处理:框架处理前向摄像头图像和文本历史 ego 车辆状态作为输入,将驾驶任务框架化为视觉问答(VQA)问题。
  3. 链式思维推理:采用链式思维推理过程,指导模型生成关键对象的详细描述、行为洞察和元驾驶决策。
  4. 3D 对象检测:集成微调的 YOLO 模型,OpenEMMA 能精确检测 3D 道路上的对象,提高对象检测的准确性。
  5. 人类可读输出:基于 MLLM 的预存世界知识,OpenEMMA 能为场景理解等感知任务产生可解释的、人类可读的输出。

OpenEMMA 的技术原理

  1. 预训练的 MLLMs:基于预训练的 MLLMs,处理复杂的视觉数据,推理驾驶场景。
  2. 链式思维推理过程:基于链式思维推理,模型能生成速度向量和曲率向量,向量用在计算车辆的未来轨迹。
  3. 速度和曲率向量:给定速度和曲率向量,模型首先整合每个时间步的航向角,然后计算速度的 x 和 y 分量,最终用积分速度分量计算最终轨迹。
  4. 对象检测增强:为克服 MLLMs 在空间推理上的局限,集成一个专门优化用在 3D 边界框预测的 YOLO 模型。
  5. 端到端规划与推理:OpenEMMA 遵循基于指令的方法,提示 MLLMs 产生人类可解释的知识,将轨迹生成任务分解为人类可解释的组成部分,反映驾驶过程。

如何运行 OpenEMMA

1. 环境设置

首先,创建一个 Conda 环境并激活它:

conda create -n openemma python=3.8
conda activate openemma
2. 克隆仓库

克隆 OpenEMMA 的 GitHub 仓库并进入项目目录:

git clone git@github.com:taco-group/OpenEMMA.git
cd OpenEMMA
3. 安装依赖

安装所需的依赖包:

pip install -r requirements.txt
4. 设置 GPT-4 API 访问

获取 OpenAI 的 API 密钥,并设置为环境变量:

export OPENAI_API_KEY="your_openai_api_key"
5. 运行 OpenEMMA

使用以下命令运行 OpenEMMA:

python main.py \
    --model-path qwen \
    --dataroot [dir-of-nuscnse-dataset] \
    --version [vesion-of-nuscnse-dataset] \
    --method openemma

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦