论文信息
题目:SimpleLLM4AD: An End-to-End Vision-Language Model with Graph Visual Question Answering for Autonomous Driving
作者:Peiru Zheng, Yun Zhao, Zhan Gong, Hong Zhu, Shaohua Wu
机构:IEIT Systems
原文链接:https://arxiv.org/html/2407.21293v1
内容速览
- 作者利用GVQA的逻辑依赖性,使用相关问题的答案作为当前问题的上下文信息,显著提高了LLMs在准确性(ACC)和语言得分方面的能力。
- 作者优化了提示语,以进一步提高LLMs的性能。作者简化了上下文的简单问答(Q+A)格式,使LLMs更容易、更高效地利用先前的知识。
- 作者将目标检测分支引入到LLM优化过程中,包括目标定位、颜色识别和分类。这些额外的分支为LLMs提供了更丰富的上下文线索,进一步提高了它们的性能。
摘要
在自动驾驶领域,大型语言模型(LLMs)的快速发展为端到端自动驾驶(e2eAD)带来了新的机遇。本文提出了一种名为SimpleLLM4AD的e2eAD方法,该方法利用视觉-语言模型(VLM)将自动驾驶任务划分为感知、预测、规划和行为四个阶段。每个阶段由多个视觉问答(VQA)对组成,这些VQA对相互连接,形成一个图结构,称为图视觉问答(GVQA)。通过VLM逐步推理GVQA中的每个VQA对,作者的方法能够实现用语言进行端到端驾驶。在感知阶段,系统从驾驶环境中识别和分类目标。预测阶段涉及预测这些目标的潜在运动。规划阶段利用收集到的信息制定驾驶策略,确保自动驾驶车辆的安全性和效率。最后,在行为阶段,将计划的行动转化为车辆可执行的命令。作者的实验表明,SimpleLLM4AD在复杂驾驶场景中取得了竞争性的性能。
1. 引言
自动驾驶技术近十年来受到了学术界和工业界的广泛关注。一个充满安全的道路、缓解交通拥堵以及为更多人提供出行便利的未来愿景,正推动着这一领域技术的迅猛发展。传统上,自动驾驶技术依赖于感知、预测、规划和控制等多个模块的串联处理流程。但这种串联的模块化方法可能会导致在复杂多变的交通环境中性能不佳,因为模块间的误差可能会累积放大。
随着大型语言模型(LLMs)的兴起,作者看到了重新定义自动驾驶方法的新机遇。特别是当这些模型与视觉-语言模型(VLMs)结合时,它们在理解视觉输入并生成类似人类的文本方面展现出了令人瞩目的能力。这些能力可以被用来构建更加连贯和一体化的自动驾驶系统,这些系统能够进行细致的推理和决策。
在本研究中,作者提出了SimpleLLM4AD,这是一种端到端的自动驾驶方法,它充分利用了VLMs的强大功能。作者的方法打破了传统的自动驾驶流程,将其重新构建为四个紧密相连的阶段:感知、预测、规划和行为。每个阶段都构建在一系列视觉问答(VQA)对上,这些VQA对通过形成图视觉问答(Graph VQA, GVQA)相互连接。这种基于图的结构使系统能够系统地推理每对VQA,确保从感知到行动的信息流和决策过程的连贯性。
在SimpleLLM4AD的感知阶段,ViT模型被用来处理原始的视觉数据,提取有意义的特征并识别驾驶环境中的物体。这些视觉洞察随后被转化为语言模型能够理解的格式,允许对场景进行更精细的分析。预测阶段中,系统将预测已识别物体的未来状态,考虑它们可能的运动和相互作用。这种预测能力对于预见潜在的危险和规划安全的驾驶策略至关重要。规划阶段涉及将前几个阶段收集的信息综合起来,制定一个旨在优化安全性和效率的驾驶策略,同时考虑到驾驶环境的动态性。最终,在行为阶段,计划中的行动被转化为车辆可执行的命令,确保精确的控制和响应。
作者的实验结果表明,SimpleLLM4AD在驾驶基准测试中不仅展现出了竞争性的性能,而且在复杂场景中也显示出了增强的鲁棒性。通过整合VLMs,系统能够做出更加上下文感知的决策,显著提升了其可靠性和安全性。作者的主要贡献可以总结如下:
- 作者利用GVQA的逻辑依赖性,将相关问题的答案作为当前问题的上下文信息,这种方法已被证明可以显著提高LLMs在准确性和语言得分方面的表现。
- 作者改进了提示语,以进一步提升LLMs的性能。作者优化了简单的问答格式,简化了上下文信息,使LLMs更容易、更高效地利用先前的知识。
- 最后,作者引入了目标检测分支到LLM优化过程中,包括目标定位、颜色识别和分类。这些额外的分支为LLMs提供了更丰富的上下文线索,从而进一步提高了它们的性能。
2. 方法
2.1 总体架构
作者的方法流程详见图1。整个系统由两大核心模块构成:一个负责图像处理的视觉编码器,以及一个专门处理问题的LLM解码器。
Figure 1. 整体架构图。展示了作者方法的流程图,包括视觉编码器处理图像和语言模型解码器处理问题的两个主要模块。
视觉编码器:作者选用了InternViT-6B作为视觉编码器。这款具有60亿参数的视觉变换器由Chen等人首次提出,并利用来自互联网的海量图像-文本数据进行了预训练,以与大型语言模型相匹配。查询模型充当视觉编码器与LLM解码器之间的桥梁,负责对齐视觉与文本两种模态。该视觉-文本对齐组件初始化时采用了增强多语言能力的LLaMA模型。
LLM解码器:作者采用了Vicuna-13B作为LLM解码器,这是一个开源的大型语言模型,基于从ShareGPT收集的用户共享对话数据对LLaMA模型进行了微调。尽管不同问题共用同一LLM解码器模型,作者设计了一种GVQA策略来增强语言模型的能力,并根据不同问题类型定制了专门的提示。
在本方法中,nuScenes数据集中的每一帧关键图像都会经历一系列问答对的处理。首先,利用InternViT-6B将关键帧中的六张图像编码成特征图。然后,在查询模块中,这些图像特征与问答对中的问题文本以及96个可学习查询进行互动。查询模块将InternViT-6B生成的图像标记转换成与LLMs对齐的表示形式。最终,查询模块的输出被送入Vicuna-13B以生成答案。值得注意的是,前一步生成的答案会与下一个问题结合,形成一个信息丰富的新问题。通过这种方式迭代,逐步完成端到端自动驾驶任务。
这种模块化的设计确保了从视觉编码到视觉-文本对齐,再到语言生成的每个处理阶段都针对其特定功能进行了优化,同时在整个流程中保持了无缝集成。这种架构不仅提升了系统处理复杂视觉和语言输入的能力,还确保了信息的连贯流动,使得在自动驾驶场景中的决策更为精确和具有上下文感知。
2.2 GVQA逻辑依赖性
SimpleLLM4AD方法涵盖了四个阶段的序列,每个阶段都由它们包含的问答对的逻辑依赖性紧密相连。如图2所示,GVQA的逻辑依赖性以图形化的方式呈现,揭示了整个过程中问答对之间相互连接的本质。图中包含两个主要元素:节点(N)和边(E)。节点(N)代表单独的问答对,而连接它们的边(E)则表示它们之间的逻辑依赖性。具体来说,前一个节点(NP)的答案作为后续节点(NS)的上下文信息。
Figure 2. GVQA逻辑依赖图。展示了自动驾驶过程中各个问答对(QA pairs)之间的逻辑依赖关系,其中节点(N)代表单独的问答对,边(E)表示它们之间的逻辑联系。
在自动驾驶的背景下,理解这些逻辑依赖性对于系统的决策过程至关重要。例如,在感知阶段,系统必须识别当前场景中的关键目标,这些目标将作为未来推理和驾驶决策的依据。这一初步识别为预测阶段奠定了基础,系统在该阶段评估目标的运动状态,并预测它们可能的未来状态。
规划阶段接着利用感知和预测阶段收集的信息,为自动驾驶车辆制定一个安全高效的行动方案。这包括考虑对已识别目标可能采取的行动,并预测这些行动的结果,如碰撞的可能性和所提议机动的安全性。
图2清晰地展示了从一个阶段到下一个阶段的逻辑流程,每个节点代表一个关键的决策点或信息里程碑。例如,节点(c1,CAM_FRONT,714.3,503.6)代表了由前摄像头捕获的目标的识别和初步评估。随后的节点则基于这一信息进一步提问,询问目标的运动状态以及它可能如何与场景中的其他目标,如节点(c3,CAM_FRONT,1300.8,531.7)所代表的另一辆车或显著障碍物,进行交互。
连接这些节点的边指示了逻辑流程和系统思维过程的进展。例如,关于目标'c1'是否会进入目标'c3'运动方向的问题,是基于前一节点得出的答案。同样,关于自动驾驶车辆行动的决策过程也取决于前几个阶段的预测和评估。
通过明确这些逻辑依赖性,SimpleLLM4AD方法确保了自动驾驶决策制定的连贯性和系统化,这不仅有助于开发更复杂的AI系统,还提高了这些系统决策的透明度和可靠性。
3 实验
3.1 数据集与评估指标
在本项研究中,作者采用了专为自动驾驶模型量身定制的DriveLM-nuScenes数据集,进行模型的微调和性能评估。该数据集包含4072帧的训练集和799帧的验证集,为模型的深入学习和精准评估提供了坚实的数据支撑。数据集精心设计,涵盖了从简单到复杂的各类驾驶场景,包括场景描述和细致的帧级问答对,这些问答对被划分为感知、预测和规划三个关键领域,以确保对驾驶环境的全面和深入理解。
感知领域的问题旨在对整个驾驶场景进行细致的审视,包括对场景中各目标的识别与分类。这些问题部分由人工精确标注,部分则基于场景中目标的特性,自动生成问题,同时借助nuScenes和OpenLane-V2数据集的真实信息进行辅助。
预测领域的问题专注于对关键目标在未来帧中的状态进行预测,包括它们可能的运动轨迹和行为变化。鉴于预测任务的复杂性,所有相关问题的答案均经过人工细致标注,以确保预测的准确性和可靠性。
规划领域的问题则涉及自动驾驶车辆在当前场景中的行动策略,包括对车辆接下来应采取的行动进行规划和决策。这些问题同样需要人工标注,以确保对规划过程的深入理解和准确表达。
在数据集中,每个关键目标都通过一个编码标签<c, CAM, x, y>来明确标识,其中c代表目标的唯一标识符,CAM指代摄像头的视角,而(x, y)则是目标在摄像头视野中的2D边界框坐标。此外,数据集为每个关键帧配备了一个字典,详细记录了各关键目标的基本信息,包括边界框的尺寸、类别、运动状态和视觉描述等。
为了全面评估模型在自动驾驶任务中的表现,作者选用了以下评估指标:
- VQA评估指标:包括BLEU、ROUGE_L、METEOR、CIDEr和SPICE等,这些指标综合考量了模型在视觉问答任务中的准确性和语言生成的质量。
- BLEU:衡量生成文本与参考文本之间n-gram重叠的程度。
- ROUGE_L:通过最长公共子序列计算模型输出和参考答案之间的相似度。
- METEOR:考虑同义词和句法结构,提供模型输出和参考之间的对齐。
- CIDEr:通过n-gram TF-IDF向量的余弦相似性计算语义一致性。
- SPICE:通过场景图的F-scores评估预测和参考场景图之间的对齐。
- GPT得分:由ChatGPT提供,根据模型的推理能力,对预测的质量进行0到100分的评分,以更细致地评估语义的准确性。
- 行为任务指标:专注于评估模型对自动驾驶车辆行为预测的准确性,包括行为分类的准确度、行为速度和转向的准确性。
分类准确性:评估行为预测的准确性,通过比较预测行为与真实情况的一致性。
这些评估指标共同构成了一个全面的评估体系,使作者能够从多个维度细致地评估和理解模型的性能,确保评估结果的准确性和全面性。
3.2 实施细节
在本项研究中,作者对SimpleLLM4AD模型进行了精细的微调,使用了DriveLM-nuScenes数据集来优化模型表现。作者沿用了InternViT-6B模型的预训练权重,并且在微调过程中将其固定,以保留其在大规模图像-文本数据预训练中获得的知识。进一步地,作者的模型中QLLaMA和96个可训练的查询组件在微调中被特别优化,以提升模型对问题的理解和回答能力。至于Vicuna13B这一大型语言模型,作者采取了两种策略:一是完全冻结其参数,保持其原始的通用语言理解能力;二是通过参数高效微调(PEFT)技术如LoRA对其进行微调,以适应特定的自动驾驶任务。在模型输入方面,作者将图像分辨率统一设置为224×224像素,以确保数据的一致性并适配模型的输入需求。微调操作是在NVIDIA GPU上执行的,作者选择了1e-4的学习率和16的全局批量大小,这样的参数配置旨在实现模型的稳定学习与有效收敛。
3.3 在DriveLM-nuScenes上的测试成果
在DriveLM-nuScenes数据集上的测试表明,经过精心微调的SimpleLLM4AD模型在自动驾驶的多项任务中均展现出了卓越的性能。作者的模型不仅在感知、预测和规划等关键环节上表现突出,更在复杂多变的交通场景中证明了其强大的应用潜力。
Table 1. DriveLM-nuScenes基准测试结果(测试集)。列出了不同方法在DriveLM-nuScenes数据集测试集上的表现,包括准确度、ChatGPT匹配度、BLEU1、ROUGEL、CIDEr得分和最终得分。
在与现有自动驾驶模型的对比测试中,SimpleLLM4AD在多个评估维度上均取得了显著的优势。相较于DriveLM baseline基线模型,SimpleLLM4AD在准确性和语言得分上的巨大提升,使得其在测试集上的综合得分高达52.7分,这一分数的显著提高充分展现了SimpleLLM4AD处理复杂驾驶情境的优越能力。
Figure 3. 结果展示。展示了SimpleLLM4AD方法在DriveLM-nuScenes基准测试中的部分结果。
3.4 消融研究分析
在本研究的探索阶段,作者对SimpleLLM4AD模型在多种不同配置下进行了训练与推理。这些不同方案的主要区别在于提示(prompt)的处理方式和关键目标的检测方法。表1所展示的基线性能是基于作者自行创建的验证集,使用LLaMA-Adapter-V2模型进行评估得出的。该验证集是通过从原始训练集中每六个场景中选取一个场景来构成的。
Table 2. DriveLM-nuScenes不同设置的结果(作者自行划分的验证集)。展示了SimpleLLM4AD在不同配置下的性能,包括准确度、匹配度、BLEU1、ROUGEL和CIDEr得分。
注意:表2中的“匹配度”仅指代边界框坐标的匹配程度;与表1不同,表1中的“匹配度”既包括边界框坐标匹配也包括ChatGPT得分。
思维链(Chain of Thought, CoT)的应用
思维链是一种在提示中包含推理中间步骤的方法,它不仅包括任务的输入和输出。文献显示,这种方法能显著提升大型语言模型解决问题的能力,而无需对模型进行任何更新。
在SimpleLLM4AD模型中,作者采用思维链的方式,使用前一个问题的答案(NP)作为后一个问题(NS)的上下文信息。NS始终是数据集中紧随NP之后的QA对。与DriveLM基线相比,采用CoT的版本A在准确度和语言得分上均有显著提升。
DriveLM-nuScenes数据集中的每个帧都以“当前场景中的重要目标是什么?”这个问题开始,作者称之为N0。在版本B中,作者将N0和NP的答案结合起来,作为每个NS的上下文。
思维图谱(Graph of Thought, GoT)的探索
与思维链不同,思维图谱允许当前任务利用任何先前的QA对作为上下文,并允许任何后续问题引用当前任务的结果。经过多种逻辑依赖图的尝试,作者发现图2所示的结构最为有效。采用GoT安排上下文的方式,使得版本C在性能上取得了显著提升。
提示的优化
精心设计的提示对于提升大型语言模型的性能至关重要。在DriveLM基线的解决方案中,传递给后续问题的上下文是前一个问题和答案的组合,这可能导致上下文冗余且难以理解。因此,作者优化了提示的格式,简化了上下文信息,使其更加易于LLMs处理和利用。
例如,原始的N0答案可能会这样描述:“自我车前有一辆红色汽车、一辆白色SUV、一辆白色轿车、一辆黑色轿车,以及前方的一个红色信号灯。这些目标的ID分别是...”。为了简化,作者将其改写为:“目标<c1,CAM_FRONT,714.3,503.6>是自我车前部的一辆红色汽车。”
如您所见,同一目标的颜色/类别信息和坐标信息在两个句子中分别描述,这可能会使LLMs感到困惑。因此,当将其用作后续问题的上下文时,作者将答案格式化为:“<c1,CAM_FRONT,714.3,503.6>是自我车前部的一辆红色汽车。”
作者只提供当前问题中提到的目标的信息,而不是N0中检测到的所有目标。
此外,作者将其他QA对修改为陈述句,当用作上下文时。例如,像“<c1,CAM_FRONT,714.3,503.6>是否会在自我车的移动方向上?否。”这样的QA对在用作上下文时将被修改为“<c1,CAM_FRONT,714.3,503.6>不会在自我车的移动方向上。”
通过重新格式化QA对,简洁且信息丰富的上下文在版本D中提供了语言得分的提高。
关键目标检测的改进
格式指令为“依次输入六张图片。前六张图片中的第一张是 <CAM_FRONT>,位于自我车前部。第二张是<CAM_FRONT_LEFT>,位于自我车前部左侧。第三张是<CAM_FRONT_RIGHT>,位于自我车前部右侧。第四张是<CAM_BACK>,位于自我车后部。第五张是<CAM_BACK_LEFT>,位于自我车后部左侧。第六张是<CAM_BACK_RIGHT>,位于自我车后部右侧。<数字,数字>是图片中目标框中心的坐标(1600*900)。”
为了提高模型性能,作者集成了格式指令来引导LLMs。利用现有的成熟检测网络,例如dino v2,作者获得了强大的目标检测输出。此外,作者还训练了一个专门的检测分类网络,它不仅能够检测目标,还能识别目标的颜色、精确位置甚至方向等关键属性。这使作者能够生成详细的描述,如:“自我车前有一辆红色汽车,其框中心坐标为[714.3,503.6]。”
通过将自我车环境中目标的位置、颜色和类别等详细信息整合起来,作者在版本E中的匹配得分有了显著提升。特别是,目标框中心的位置精度提高到了24.6%。
5. 结论
本文提出了SimpleLLM4AD,一个端到端的自动驾驶多模态语言模型,它在复杂驾驶环境中展现出了卓越的性能。通过融入视觉-语言模型(VLM),作者的系统能够在决策过程中实现更深层次的情境感知和连贯性,显著增强了自动驾驶系统的稳健性和可信度。此外,作者的研究还展示了大型语言模型(LLMs)在提升多模态人工智能应用方面的潜力,为自动驾驶领域未来的技术进步奠定了基础。