由于今年以来,一直在不断深挖具身智能机器人相关,而自动驾驶其实和机器人有着无比密切的联系,甚至可以认为,汽车就是一个带着4个轮子的机器人
加之个人认为,目前大模型落地潜力最大的两个方向,一个是机器人,另一个便是自动驾驶,于此,本文来了
本文主要涉及以下4篇paper的解读(按发表的时间顺序排列)
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.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的数据多样性和视觉理解能力
目前,除了 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 未能正确理解一些车辆动作,特别是动态动作(例如,转弯、加速等)
最近的研究[13,16,39,43,56,68,72]通过引入LLM用于驾驶规划,算是开启了一个新的方向
- 作为早期探索,一些研究[56,68]使用ChatGPT和GPT-4来预测驾驶决策。后续研究微调LLM模型以预测驾驶信号[13]、轨迹[43]或设计的决策空间[39]——仅以语言作为输入
- DriveGPT4[72]微调多模态LLM以预测控制信号。然而,DriveGPT4受到单目相机输入的限制,限制了其构建全面场景信息的能力
且上述所有基于LLM的工作都没有在封闭环路驾驶的真实模拟器中进行评估,因为无论是语言学的大型语言模型(LLM)的决策很难转化为真正可靠的控制信号,或者由LLM直接预测控制信号与实时闭环驾驶之间仍存在很大差距
23年12月,来自1上海人工智能实验室OpenGVLab、2香港中文大学、3商汤科技研究院、4斯坦福大学、5南京大学、6清华大学的研究者通过提出了DriveMLM,其对应的论文为《》
2.1.0 系统概述
DriveMLM框架将大型语言模型(LLMs)的世界知识和推理能力整合到自动驾驶(AD)系统中,实现了在真实模拟器中的闭环驾驶
如下图图3所示,该框架有三个关键设计:
- 行为规划状态对齐(Behavioral Planning States Alignment)
这部分将LLM的语言决策输出与像Apollo [3]这样的成熟模块化AD系统的行为规划模块对齐。通过这种方式,LLM的输出可以轻松转换为车辆控制信号 - MLLM规划器(MLLM Planner)
它是多模态分词器和多模态LLM(MLLM)解码器的结合
多模态分词器将多视角图像、LiDAR、交通规则和用户需求等多样化输入转化为统一的token,MLLM解码器基于统一token做出决策
The multi-modal tokenizer transforms diverse inputs like multi-view images, LiDAR, traffic rules,and user requirements into unified tokens, and the MLLM decoder makes decisions based on the unified tokens
在推理过程中,DriveMLM框架利用多模态数据进行驾驶决策,这些数据包括:
多视图图像,其中表示时间长度,表示视图数量,和表示图像的高度和宽度
来自LiDAR点云的点云,其中代表点的数量
系统消息,其中表示系统消息标记的数量。系统消息是任务定义、交通规则和决策状态定义的集合
用户指令,其中代表用户指令token的数量
这些输入通过多模态tokenizer进行tokenization,结果为:,分别代表多视图图像、LiDAR点云、交通规则和用户指令的token嵌入。这里,表示由QFormer [32]的查询数量决定的输出token数量,每个token嵌入具有维度
接下来,这些token被输入到MLLM解码器中,生成决策状态token以及相应的解释
最后,决策状态S被输入到运动规划和控制模块中。该模块计算用于车辆控制的最终轨迹 - 高效数据收集策略
它为基于LLM的自动驾驶引入了一种量身定制的数据收集方法,确保了涵盖决策状态、决策解释和用户命令的全面数据集
2.1.1 行为规划状态对齐
将大型语言模型(LLM)的语言选择转化为可操作的控制信号对于车辆控制至关重要
为实现这一目标,作者将LLM的输出与流行的Apollo系统中的行为规划模块的决策阶段对齐
- 按照常见做法[3],作者将决策过程分为两类:速度决策和路径决策
具体来说,速度决策状态包括[保持,加速,减速,停止]
而路径决策状态包括[跟随,左变道,右变道,左借道,右借道] - 为了使语言模型能够在这些状态之间进行精确预测,作者在语言描述和决策状态之间建立了一个全面的关联,如下表表1中的系统消息所示「用户与DriveMLM系统之间的系统消息和交互示例。系统消息包括驾驶任务的描述、交通规则和决策状态的定义。给定驾驶场景,例如图像和用户提示,驾驶系统可以推断图像标题、路径和速度决策,以及附加说明。完整的系统消息和提示在补充材料中提供」 此关联用作系统消息的一部分,并集成到MLLM规划器中。因此,一旦LLM描述某些情况,预测将在决策空间内收敛到一个明确的决策。在每个时刻,一个速度决策和一个路径决策相互推断并发送到运动规划框架中。决策状态的更详细定义可以在补充材料中找到
2.1.2 MLLM 规划器
DriveMLM 的 MLLM 规划器由两个组件组成:多模态分词器和 MLLM 解码器。这两个组件密切合作,处理各种输入,以准确确定驾驶决策并为这些决策提供解释
- 多模态分词器
该分词器被设计用于高效处理各种形式的输入:
1) 对于时间序列多视图图像:使用一个时间序列QFormer来处理从时间戳−T到0(当前时间戳)的多视图图像
首先,它获取时间戳时的每个视图,并将其输入到ViT-g和QFormer中,使用个随机初始化的维查询,这生成了图像token嵌入
然后,使用图像token嵌入作为QFormer的查询,作者通过再次执行第一步获得下一个时间戳的图像token嵌入
如此,重复上面这两个步骤,直到获得当前时间戳的图像token嵌入,这汇集了从到0的所有时间信息。这种方法避免了随着时间长度的增加而线性增加的处理时间序列数据所需的资源
2) 对于LiDAR数据,作者首先将点云作为稀疏金字塔transformer(SPT)主干[74]的输入,以提取LiDAR特征
然后使用Qformer和M个随机初始化的D维查询来获取点云token嵌入。作者将其与图像token嵌入进行连接
3) 对于系统消息和用户指令,作者简单地将它们视为普通文本数据,并使用LLM的token嵌入层来提取其嵌入, - MLLM解码器
解码器是将tokenized输入翻译为决策状态和决策解释的核心
为此,作者为基于LLM的AD设计了一个系统消息模板,如表1所示。可以看到系统消息包含AD任务的描述、交通规则、决策状态的定义,以及指示每种模态信息整合位置的占位符。这种方法确保了来自各种模态和来源的输入能够无缝整合 输出被格式化为提供决策状态(见上表表1的Q2)和决策解释(见表1的Q3),为决策过程提供透明性和清晰性
关于监督方法,作者的框架使用带有下一个token预测的交叉熵损失(算是遵循常见做法)。通过这种方式,MLLM规划器可以对来自不同传感器和来源的数据进行详细理解和处理,并将其转化为适当的决策和解释
// 待更
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/28146.html