CVPR 2024 | LMDrive:使用大语言模型的闭环端到端自动驾驶 Pipeline详解

文摘   2024-07-24 09:06   上海  
arxiv:https://arxiv.org/abs/2312.07488
projection:https://github.com/opendilab/LMDrive
本期概述
还记得昨天分享的实用多模态大语言模型进行任务识别的论文吗?空降来的朋友可以点击:CVPR 2024 | 华为诺亚:注入BEV视角的多模态大模型。本期分享的工作将多模态大模型嵌入到了端到端自动驾驶中!LMDrive是一个语言引导、端到端的闭环自动驾驶框架。LMDrive处理并集成多模态传感器数据与自然语言指令,在现实指令设置中与人类和导航软件进行交互。方便基于语言的闭环自动驾驶的进一步研究,作者公开发布相应的数据集,包括大约64K的指令跟从数据片段,以及LangAuto基准,其测试系统处理复杂指令和具有挑战性驾驶场景的能力。其主要贡献如下:
1.新的自动驾驶框架:提出了一种新的端到端、闭环、基于语言的自动驾驶框架LMDrive,它通过多模态多视图传感器数据和自然语言指令与动态环境进行交互。
2.新的数据集:提供了一个包含约64K个数据剪辑的数据集,其中每个剪辑包括一个导航指令、几个通知指令、一系列多模态多视图传感器数据和控制信号。剪辑的持续时间从2秒到20秒。
3.新的测试基准:提供了基准的LangAuto,用于评估以语言指令作为导航输入的自主代理,其中包括误导性/长指令和具有挑战性的对抗性驾驶场景
这张图片展示了基于大语言模型(LLM)的自动驾驶系统的工作流程。图片左上角显示了从导航系统或者驾驶员获得的指令;中间的蓝色芯片代表了大语言模型,它负责处理和理解输入的指令,同步将其转化为控制命令;环境反馈的信息被发送回LLM,形成一个闭环系统,使得系统能够实时调整和优化车辆的行为。蓝色实线表示数据流,显示了指令、环境信息等在系统中的流动。蓝色虚线表示梯度流,表示控制命令和反馈在系统中的流动。
Pipeline
LMDrive模型的结构包括两个主要组件:1) 视觉编码器,用于处理多视角多模态传感器数据(摄像头和激光雷达),以实现场景理解并生成视觉标记;2) 大型语言模型及其相关组件(标记器、Q-Former和适配器),处理所有历史视觉标记和语言指令(导航指令和可选通知指令),以预测控制信号并判断指令是否完成。视觉编码器负责将传感器数据转换为视觉标记,大型语言模型则结合历史数据和当前指令,生成控制信号并检测指令完成情况。
1.视觉编码器Vision encoder):多视角视觉编码部分上篇文章已经分享过!请同学自行查阅!CVPR 2024 | 华为诺亚:注入BEV视角的多模态大模型
2.大型语言模型及其相关组件():LLM(大型语言模型)作为整个驾驶过程的“大脑”,处理由冻结的视觉编码器生成的传感器tokens,理解自然语言指令,生成必要的控制信号,并预测指令是否完成。具体而言,选择LLaMA作为语言骨干,并使用三个相关组件将LLM与指令、视觉信息输入和动作预测相连接:标记器(tokenizer)、Q-Former和两个适配器(adapters)。
标记器(tokenizer)&Q-Former指令标记:使用LLaMA tokenizer将导航指令和可选的通知指令转换为文本tokens。为了减小累积误差并提高模型的时间一致性,在每一帧中利用所有历史传感器信息(最大限制为Tmax)。视觉标记:利用预训练的视觉编码器生成视觉tokens(H×W的BEV tokens、N个路径点tokens和一个交通灯token)。由于每一帧的视觉tokens数量快速增长,采用Q-Former来减少视觉tokens的数量。每一帧使用M个可学习的查询通过交叉注意力层关注视觉tokens,将每一帧的视觉tokens数量减少到M。然后使用一个2层的MLP adapter将Q-Former提取的tokens转换为与语言token相同的维度,再输入LLM。
Q:为啥Q-Former能够减少视觉tokens的数量?
A:Q-Former使用M个可学习的查询,通过交叉注意力层来关注这些视觉tokens。这种方法允许系统在每一帧中仅使用M个查询来提取最重要的视觉信息,从而显著减少了视觉tokens的数量。

动作预测(Action prediction):接收一系列指令和视觉tokens后,LLM预测动作tokens。另一个2层MLP adapter用于预测未来路径点以及是否完成指令的标志。为增强监督信号,训练时对每个历史帧进行预测,推理时仅执行最新帧的预测。最终控制信号包括制动、油门和转向,通过两个PID控制器分别跟踪预测路径点的航向和速度。

训练目标(Training objectives):在微调LLM及其相关组件时,考虑两个损失项:1)l1路径点损失,2)分类损失(交叉熵),用于判断当前帧是否完成给定指令。

Training
LMDrive的训练分为两个阶段:1)视觉编码器预训练阶段( Vision encoder pre-training stage);2)指令微调阶段(Instruction-finetuning stage),目的是对齐指令/视觉和控制信号。
视觉编码器预训练阶段( Vision encoder pre-training stage):视觉编码器以单帧传感器数据为输入。由于指令注释过程中会丢弃一些帧,因此在视觉编码器预训练中使用的是指令注释前的原始数据集,该数据集包含约300万帧的数据。预训练仅针对视觉编码器(Vision encoder),主要进行场景理解的感知任务。
指令微调阶段(Instruction-finetuning stage)整个系统在指令的指导下进行端到端的自动驾驶训练,其中Q-Former和适配器是可训练的,其他组件保持冻结状态。虽然LMDrive以帧序列为输入,但在训练过程中,设置了固定的序列长度来构建批数据。由于数据集是以高频率(约10Hz)收集的,相邻帧的数据非常相似。为了提高训练效率,参考视频预测方法,我们在固定间隔内采样训练帧,并应用时间增强,随机向前或向后移动训练帧,随机移动的距离小于固定间隔。
新的指标?LangAuto
LangAuto的设计旨在全面测试自动驾驶代理在多样且真实的驾驶条件下,处理复杂语言指令的能力。
 LangAuto (Language-guided Autonomous Driving) CARLA指标:是首个在语言指令下评估闭环驾驶性能的基准测试。
该基准测试包括三个轨道:
1.LangAuto:评估不同路线长度下的导航,分为LangAuto(超过500米)、LangAuto-Short(150-500米)和LangAuto-Tiny(少于150米)。
2.LangAuto-Notice:在LangAuto轨道的基础上,增加了通知指令,模拟乘客或系统的实时指导。
3.LangAuto-Sequential:合并连续指令,模拟来自乘客或导航软件的多句指令。
误导性指令(5%)会间歇性地给出,驾驶代理需拒绝这些指令,以保持安全驾驶。
性能指标路线完成度 (RC):完成的路线长度百分比。违规评分(IS):衡量违规行为,根据严重程度递减。驾驶评分(DS):RC和IS的乘积,被认为是主要排名指标。
Experiments

实验设置:LMDrive在开源的CARLA模拟器(版本0.9.10.1)上实现和评估。视觉编码器的2D骨干网络使用预训练的ResNet-50,3D骨干网络使用从头训练的PointPillars。设置C、H、W、N分别为256、50、50和5。Q-Former的token数量M设置为4。在指令微调阶段,训练帧以固定间隔2进行采样。为了避免模型过度拟合于通知指令并生成过于保守的行为,训练过程中随机移除75%的通知指令片段,确保剩余片段中最多包含一个通知。

LLM骨干网络:评估了使用7B参数的不同预训练或随机初始化的LLM模型:LLaMA、LLaMA2、Vicuna和LLaVA-v1.5。结果显示,预训练的多模态LLM(如LLaVA-v1.5)表现优于其他模型,证明了预训练多模态LLM的重要性。用指令数据微调的模型表现更好(Vicuna-v1.5 > LLaMA2 ≈ Vicuna > LLaMA)。随机初始化的模型表现较差,强调了微调预训练LLM的必要性。
模块设计:进行了不同组件的消融研究。结果表明,使用Q-Former减少BEV tokens的数量比直接将BEV特征下采样到4×4效果更好(平均驾驶得分从36.2下降到31.7)。不使用BEV tokens输入到LLM解码器中,会导致违反规则得分下降(从0.81下降到0.72),说明BEV tokens对于检测和推理周围障碍物和道路结构的重要性。移除视觉编码器的预训练阶段并直接在指令微调阶段训练,驾驶得分下降到16.9,证明了视觉编码器预训练的重要性。
LangAuto-Notice基准:在LangAuto-Notice基准上,当发生对抗性事件时,代理可以有效利用通知信息,显著减少碰撞和交通规则违反。
LangAuto-Sequential基准:LangAuto-Sequential基准测试了在合并的长且复杂的指令下代理的表现。LLaVA和Vicuna模型在驾驶得分和路线完成率上都有所下降,表明这种设置需要agent能够在时间上识别已完成和未完成的指令。
如果对你的开发、科研有帮助,拜托拜托关注我们,我们将持续奉上优秀的端到端自动驾驶领域研究的分享干货!


下期预告:
CVPR 2024 | LMDrive:使用大语言模型的闭环端到端自动驾驶 模块实现
温馨提示:点赞=学会,收藏=精通,点击在看,我们一起充电!



端到端自动驾驶
关注AD(Autonomous Driving)行业最前沿的人工智能解决方案,致力于打造为一个自动驾驶从业者及相关科研学者们的课外充电,技术分享,以及社区交流的服务平台!
 最新文章