OpenEMMA: 打破Waymo闭源,首个开源端到端多模态模型

server/2024/12/27 10:08:27/

导读:

OpenEMMA,它是首个基于多模态大型语言模型的开源端到端框架。通过结合思维链推理过程,它在利用多种多模态大型语言模型时,相较于基线取得了显著改进。此外,它在各种具有挑战性的驾驶场景中展示了有效性、泛化能力和鲁棒性,提供了一种更高效、更有效的自动驾驶方法。

©️【深蓝AI】编译

本文由paper一作——Shuo Xing 授权【深蓝AI】编译发布!

论⽂题目:OpenEMMA: Open-Source Multimodal Model for End-to-End Autonomous Driving

论文作者:Aohan Zeng, Zhengxiao Du, Mingdao Liu, Lei Zhang, Shengmin Jiang, Yuxiao Dong, Jie Tang

论文地址:https://arxiv.org/pdf/2412.15208 

论文源码:https://github.com/taco-group/OpenEMMA

1、背景介绍

自动驾驶(AD)技术的迅速发展得益于人工智能、传感器技术和高性能计算的进步。然而,现实世界中不可预测的道路使用者、动态交通模式和多样化环境条件给AD带来很多的挑战。应对这些复杂性需要复杂的推理能力,使自动驾驶系统能够理解上下文信息、预测用户意图并做出准确的实时决策。传统上,自动驾驶架构采用模块化方法,专门组件处理感知、地图绘制、预测和规划等不同方面。但是,尽管这种分隔有助于调试和优化各个模块,但由于模块间通信错误和僵化的预定义接口,往往导致可扩展性问题,这些接口难以适应新的或不可预见的条件。

另一方面,端到端系统直接从传感器输入中学习驾驶动作,绕过符号接口的需求,进行整体优化。然而,这些系统通常高度专业化,并在狭窄的数据集上训练,难以在多样和复杂的现实场景中有效泛化。同时,多模态大型语言模型(MLLMs)可以解决此类问题。它们通过在广泛数据集上的广泛训练,提供了新颖的方法,包括全面的世界知识和通过思维链推理等机制的高级推理能力。Waymo发布的EMMA模型就是这一趋势的典范,展示了在感知、决策和导航整合方面的重大进展。然而,EMMA是非开源的。

为了解决像EMMA这样的封闭源模型的局限性,作者推出了OpenEMMA,它是一个开源的端到端自动驾驶框架,旨在使用公开可用的工具和模型复制EMMA的核心功能。与EMMA类似,OpenEMMA处理前置摄像头图像和文本历史自我车辆状态作为输入。驾驶任务被框定为视觉问答(VQA)问题,采用思维链推理引导模型生成关键对象的详细描述、行为洞察和元驾驶决策。这些决策由模型本身直接推断,提供了生成路径点所需的重要上下文。为了缓解多模态大型语言模型在物体检测任务中的已知局限性,OpenEMMA还成了一个专门优化用于自动驾驶场景的3D边界框预测的YOLO微调版本,显著提高了检测准确性。此外,通过利用多模态大型语言模型的现有世界知识,OpenEMMA能够生成可解释的人类可读输出,用于场景理解等感知任务,从而提高透明度和可用性。完整的管道和支持的任务如图1所示。

▲图1 | OpenEMMA 框架概览©️【深蓝AI】编译

主要贡献如下:

  • 本文提出OpenEMMA,它是一个开源的端到端多模态模型,用于自动驾驶,利用现有的开源模块和预训练的多模态大型语言模型,复制EMMA在轨迹规划和感知方面的功能。
  • 它在nuScenes数据集的验证集上进行了广泛实验,评估OpenEMMA在端到端轨迹规划中的表现,展示了其有效性和适应性。
  • 还发布了在OpenEMMA中使用的代码库、数据集和模型权重,供研究社区利用、改进和扩展该框架,推动自动驾驶技术的进一步进展。

2、方法精析 

OpenEMMA是一个计算高效的端到端自动驾驶(AD)系统,基于预训练的多模态大语言模型(MLLMs)\mathcal L,如图1所示,利用历史驾驶状态T和视觉驾驶场景I作为输入,预测未来轨迹P,并检测交通参与者。

2.1 CoT用于端到端轨迹规划

借助预训练的MLLMs的强大能力,本文将链式思维(Chain-of-Thought: CoT)推理过程整合到端到端的轨迹规划过程中。由于MLLMs是通过人类可解释的知识进行训练的,本文的MLLMs也生成人类可解释的知识。与之前直接在局部坐标中生成轨迹的方法不同,本文生成两个中间表示:速度向量S = {s_t},表示车辆速度的大小,以及曲率向量K = {k_t},表示车辆的转向速率。这些表示旨在反映人类驾驶的方式:速度表示油门应该踩多大,而曲率表示方向盘应该转动多少。

给定速度和曲率向量,首先通过速度和曲率的乘积在每个时间步整合航向角\theta_t
\theta_t = \theta_{t-1} + \int_{t-1}^{t} k(\tau)s(\tau)d\tau,


然后,可以计算x和y方向的速度分量:
v_x(t) = s_t \cos(\theta_t),\ \ v_y(t) = s_t \sin(\theta_t).


因此,最终在自我坐标系中的轨迹通过整合速度分量计算得出:
$x_t = x_{t-1} + \int_{t-1}^t v_x(\tau) d\tau, y_t = y_{t-1} + \int_{t-1}^t v_y(\tau) d\tau,$


初始位置(x0, y0)作为输入提供。此外,对于数值积分,应用以下累积梯形规则:

其中\Delta_t是时间步长。这种方法通过将轨迹生成任务分解为人类可解释的组件,反映驾驶过程,提供了一条稳健且易于解释的规划路径。

阶段1:推理:过程使用驾驶场景的前摄像头图像和自我车辆过去5秒的历史数据(速度和曲率)作为输入,输入到预训练的MLLMs中。随后,设计特定任务的提示,引导MLLMs生成对当前自我驾驶场景的全面推理,涵盖以下几个方面:

意图命令:清晰阐述自我车辆在当前场景下的预期动作,例如是否会继续沿着车道左转、右转或直行。此外,还要说明车辆是否应保持当前速度、减速或加速。

场景描述:根据交通信号灯、其他车辆或行人的运动以及车道标记,对驾驶场景进行简要描述

主要物体:识别自我驾驶者需要关注的道路使用者,指定他们在驾驶场景图像中的位置。对于每个道路使用者,提供其当前行为的简要描述,并解释其存在对自我车辆决策过程的重要性。

阶段2:预测:通过结合链式思维推理过程和历史自我状态,促使MLLMs生成未来T秒内的速度S = \{s_t\}_{t=0}^{T}和曲率C = \{c_t\}_{t=0}^T(2T个轨迹点)。然后将这些预测整合以计算最终轨迹T = \{x_t, y_t\}_{t=0}^T

2.2 目标检测增强

自动驾驶(AD)中的一项关键任务是为道路上的物体检测3D边界框。然而,现有的预训练多模态大语言模型(MLLMs)在空间推理方面存在局限性,难以提供高质量的检测。为了解决这一挑战,并在不额外微调MLLM的情况下实现高检测精度,作者将一个外部的视觉模型集成到OpenEMMA中,有效地解决了检测任务。

OpenEMMA专注于使用前置摄像头进行物体检测,并处理来自单帧的数据,而不是一系列连续帧。这使得该任务属于基于单目相机的3D物体检测的范围。该领域的研究通常分为两类:深度辅助方法和仅基于图像的方法。深度辅助方法预测深度信息以辅助检测,而仅基于图像的方法完全依赖RGB数据进行直接预测。在这些方法中,我们选择了YOLO3D,因为它结合了可靠的准确性、高质量的开源实现和轻量化架构,便于高效的微调和实际集成。

YOLO3D是一种两阶段的3D物体检测方法,强制实施2D-3D边界框一致性约束。具体而言,它假设每个3D边界框都紧密包含在其对应的2D边界框内。该方法首先预测2D边界框,然后估计每个检测到的物体的3D尺寸和局部方向。3D边界框的七个参数——中心位置t_x,t_y,t_z,尺寸d_x,d_y,d_z以及偏航角\theta——是基于2D边界框和3D估计共同计算得出的。

3、实验分析

在本节中,我们首先展示了用于端到端轨迹规划的实验,利用多种多模态大型语言模型(MLLMs)来展示OpenEMMA的有效性。此外,我们详细介绍了YOLO11n在自动驾驶(AD)场景中的实施和适应,强调其在OpenEMMA框架内的无缝集成。最后,我们展示了视觉结果,突显OpenEMMA在应对具有挑战性的自动驾驶场景中的能力,展示其在多种条件下的稳健性和有效性。

3.1 端到端轨迹规划

实验设置

实验在nuScenes数据集的验证集上进行,测试的模型包括GPT-4o,LLaVA-1.6-Mistral-7B(简称为LLaVA-1.6),Llama-3.2-11B-Vision-Instruct(简称为Llama-3.2)和Qwen2-VL-7B-Instruct(简称为Qwen2-VL)。为了比较,使用零-shot方法作为基线,仅依赖历史自我状态和驾驶场景图像,而不结合任何推理过程。此外,设置T=5,提示MLLM预测未来5秒内的轨迹。由于预算限制和可重复性的需要,GPT-4o的结果仅在有限的场景集上进行。

结果

表1总结了OpenEMMA在nuScenes数据集验证集的150个场景中的表现,具体以L2范数误差相对于真实轨迹进行评估。此外,如果未来轨迹的L2范数在第一秒内超过10,则预测被视为失败,失败率也包含在表中。

表 1 | 端到端轨迹规划实验结果

结果如下: 未经过微调的MLLMs在端到端轨迹规划中的整体表现不如基于微调的方法。OpenEMMA在L2范数误差和失败率方面均持续优于零-shot基线,证明了Chain-of-Thought推理过程在理解和分析复杂真实驾驶场景中的有效性。值得注意的是,当使用LLaVA-1.6-Mistral-7B作为主干时,OpenEMMA相较于零-shot基线表现出显著改善,而当使用Llama3.2-11B-Vision-Instruct作为主干时,在L2范数和失败率方面也有适度但明显的提升。然而,使用Qwen2-VL-7B-Instruct时,OpenEMMA的L2范数误差高于零-shot基线。这是因为OpenEMMA成功生成了许多零-shot基线失败的情况下的预测。尽管如此,它在这些具有挑战性的场景中仍然难以生成高质量的轨迹,导致L2范数误差总体上增加。此外,失败率的显著降低突显了OpenEMMA在处理困难情况下的稳健性和能力。

3.2 3D目标检测

作者将2D检测网络替换为YOLO11n。YOLO11n在nuImages数据集上进行了微调,图像下采样至640 × 360,并在COCO数据集上预训练的权重,并在单个RTX 4060Ti上训练网络300个周期。批量大小选择为50,使用SGD优化器,学习率为0.01,动量为0.937,权重衰减为0.0005。学习率在训练结束时线性下降至0.0001。最佳结果在第290个周期达到,mAP50为0.60316。3D估计网络的权重保持不变,使用Yolo3D库中的权重。图2展示了微调后的YOLO11n网络的2D边界框检测结果。3D边界框检测结果包含在主要演示视频中。

图 2 | YOLO 3D目标检测结果

3.3 可视化

图3展示了来自多种具有挑战性的驾驶场景的三个视觉示例,突显了OpenEMMA在多种条件下的稳健性和有效性。在这些场景中,GPT-4o被用作主干,不仅处理当前驾驶场景,还处理过去5秒(10帧)的视觉输入。所有其他设置与第3.1节中描述的一致。

图 3 | OpenEMMA预测可视化结果

图3a展示了OpenEMMA在自我车辆在指定车道内右转时的表现。OpenEMMA展示了其准确检测道路物体、规划平滑精确轨迹和遵守驾驶规则的能力,确保安全高效地通过转弯。

图3b展示了OpenEMMA在一个潜在不安全驾驶场景中的可视化,其中一辆车突然从急转弯进入当前车道。OpenEMMA迅速检测到风险因素并做出适当决策——刹车并保持安全距离,有效防止潜在碰撞。这个例子突显了OpenEMMA处理复杂驾驶情况的能力,展示了其强大的推理能力和在动态不可预测环境中确保安全的能力。

图3c展示了OpenEMMA在低光夜间条件下的表现。虽然OpenEMMA在这种具有挑战性的环境中可能偶尔会漏检某些物体,但它成功识别和检测出对安全导航至关重要的关键物体。此外,它准确理解自我车辆正在向左车道转移,并生成精确的轨迹规划以有效适应这一动作。这展示了OpenEMMA在处理能见度降低的复杂驾驶场景中的稳健性。

4、相关研究

4.1 端到端自动驾驶 

自动驾驶领域的一个重要趋势是端到端系统的出现,这些系统通过无缝地在系统组件之间传递特征表示,从而提高了效率。这与传统方法形成对比,因为整个系统针对驾驶任务进行优化,从而通过共享主干提高了计算效率和一致性。这些端到端方法大致可以分为模仿学习和强化学习。在强化学习中,像Latent DRL、Roach和ASAPRL等模型优先增强决策能力。此外,像ScenarioNet和TrafficGen等模型专注于生成多样的驾驶场景,以提高系统在测试过程中的鲁棒性。

最近,多模态大型语言模型(MLLMs)已被整合到自动驾驶系统中。例如,LMDrive促进了自然语言交互和高级推理,使人车沟通更加直观。Senna更进一步,将MLLM与端到端系统结合,解耦高层规划与低层轨迹预测。在这些发展的基础上,由Gemini驱动的EMMA代表了一个重要的进步。这个视觉-语言模型将原始摄像头传感器数据转化为多样的驾驶特定输出,包括规划轨迹、感知物体和道路图元素,展示了MLLM集成在自动驾驶中增强功能和效率的潜力。

4.2 用于自动驾驶的MLLM 

多模态大型语言模型(MLLMs)将大型语言模型(LLMs)的能力扩展到视觉领域。LLMs以其泛化能力、推理能力和上下文理解而闻名,提供了MLLMs构建的基础。使MLLM能够无缝处理文本和视觉信息的关键在于对齐视觉和文本嵌入。这是通过使用视觉编码器(如CLIP)将图像块转换为与文本令牌空间对齐的视觉令牌来实现的,从而为综合多模态理解开启了新的可能性。

MLLMs已广泛应用于现实场景,特别是在自动驾驶领域。GPT-Driver将规划输入和输出转化为语言令牌。通过利用GPT-3.5,它生成通过自然语言表示的坐标位置描述的驾驶轨迹。DriveVLM利用Chain-of-Thought(CoT)进行高级空间推理和实时轨迹规划。RAG-Driver引入了一种基于检索增强生成的新的上下文学习方法,以提高自动驾驶系统的泛化能力和可解释性。Driving-with-LLMs引入了一种新的范式,将对象级向量化数值模态与LLMs融合,采用两阶段的预训练和微调方法。DriveLM通过利用图结构的视觉问答(VQA)开发了一种端到端的MLLM在自动驾驶中的应用,涵盖感知、预测和规划等任务。

5、总结展望

总之,本文提出的OpenEMMA,它是一个基于多模态大型语言模型的开源、高效的端到端自动驾驶框架。OpenEMMA利用历史自我车辆数据和前置摄像头捕获的图像,采用Chain-of-Thought推理过程来预测自我车辆的未来速度和曲率,然后将其整合到轨迹规划过程中。此外,通过结合微调的外部视觉专家模型,OpenEMMA实现了对3D路面物体的精确检测。此外,所提出的OpenEMMA框架在零-shot基线之上显示出显著的改进,展示了其在各种具有挑战性驾驶场景中的有效性、泛化能力和鲁棒性。

作为基于现成预训练模型开发端到端自动驾驶框架的初步步骤,在推理过程中仅集成了基本的Chain-of-Thought推理。虽然这作为基础方法,但通过将更高级的推理技术(如CoTSC和ToT集成到框架中,仍有巨大的潜力可以提升框架的实用性,这可能为自动驾驶提供更有效的方法。

此外,由于当前MLLM的对象定位能力有限,在OpenEMMA中集成了微调的YOLO模型来处理对象检测任务,而不是仅依赖MLLM本身的能力。尽管这种方法提供了实际解决方案,但它突显了未来在MLLM方面的进步需求,以弥补空间推理和定位精度的差距。解决这些局限性对于实现一个真正统一的框架至关重要,该框架利用MLLM进行自动驾驶中的所有关键感知和推理任务。


http://www.ppmy.cn/server/153596.html

相关文章

Cesium材质——Material

简介: Cesium.Material对象的目的,就是生成一段名称为czm_getMaterial的函数(示例代码如下), 这个czm_getMaterial函数,是shader代码,会被放到片元着色器中使用。 czm_material czm_getMater…

【seatunnel】数据同步软件安装

【seatunnel】数据同步软件安装 下载 wget https://dlcdn.apache.org/seatunnel/2.3.8/apache-seatunnel-2.3.8-bin.tar.gz wget https://dlcdn.apache.org/seatunnel/seatunnel-web/1.0.2/apache-seatunnel-web-1.0.2-bin.tar.gz1、安装seatunnel Server 解压 tar zxvf ap…

前后端分离(前端删除数据库数据)

1.实现思路前端把用户Id用axios请求发送给后端,后端获取id,把用户数据删除并返回给前端一个删除成功响应 2.编写axios请求代码 const deleteEmployee async (empNo) > {try {const response await axios.delete(http://localhost:8080/api/delEmp,…

爬虫代理服务要怎么挑选?

在数据采集的世界里,爬虫代理服务不仅帮助我们高效地收集信息,还能在保护数据安全方面发挥重要作用。但面对市场上琳琅满目的代理服务,我们该如何挑选呢?本文将为你提供一些实用的建议,帮助你找到最适合你的爬虫代理服…

条款14 如果函数不抛出异常请使用noexcept

C11中 内存释放函数 和 析构函数 都是隐式noexcept,除非手动声明noexcept(flase),但如果是一个对象的析构函数可能被标准库使用,且析构函数有可能抛出异常,那么程序的行为是未定义的std::vector添加新元素如果容量不够,那么vector…

音视频入门知识(四):封装篇

⭐四、封装篇 H264封装成mp4、flv等格式,那为什么需要封装? ​ h264也能播放,但是按照帧率进行播放,可能不准 ★FLV **FLV(Flash Video)**是一种用于传输和播放视频的容器文件格式。FLV 格式广泛应用于流媒…

Virtualbox安装ubuntu20虚拟机无法打开终端

用Virtualbox安装ubuntu20系统,安装好之后,无法打开终端; 原因:语言设置导致的问题; 修改方法:将/etc/default/locale里LANG这行的值修改为:en_US.UTF-8即可; 步骤:先在…

Flutter开发HarmonyOS 鸿蒙App的好处、能力以及把Flutter项目打包成鸿蒙应用

Flutter开发HarmonyOS的好处: Flutter是谷歌公司开发的一款开源、免费的UI框架,可以让我们快速的在Android和iOS上构建高质量App。它最大的特点就是跨平台、以及高性能。 目前 Flutter 已经支持 iOS、Android、Web、Windows、macOS、Linux 的跨平台开发…