作者 | 穆世义 来源 | 自动驾驶之心
原文链接:https://zhuanlan.zhihu.com/p/672856952
点击下方卡片,关注“自动驾驶之心”公众号
>>点击进入→自动驾驶之心『多模态大模型』技术交流群
本文只做学术分享,如有侵权,联系删文
今天推荐一篇多模态大模型用于自动驾驶的论文,实验中展示了很好可解释性,并且在CARLA仿真器上实现SOTA的驾驶得分。
原文题目:《DriveMLM: Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous Driving》
原作者 :上海AILab OpenGVLab 港中文 王文海大佬团队
开源地址:https://github.com/OpenGVLab/DriveMLM
摘要:
这是一个基于LLM的自动驾驶框架,能够在仿真器中实现闭环自动驾驶。可以在百度Apollo上即插即用。
介绍
作者给出三个框图表示自动驾驶算法的演进过程,图a表示基于规则需要专家系统知识,b图端到端框架由数据驱动,这些算法难以处理corner case。图c则是本文基于大语言模型的设计,大语言模型具备广泛的知识、稳健的逻辑和高级的认知能力。(extensive world knowledge, robust logical reasoning, and advanced cognitive capabilities)。
作者罗列了近期的一些将LLM融合进AD的工作:
[1]Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving
[2]Drivelm: Drive on language.https://github.com/OpenDriveLab/DriveLM
[3]MetaGPT: Meta Programming for Multi-Agent Collaborative Framework
[4]MTD-GPT: A Multi-Task Decision-Making GPT Model for Autonomous Driving at Unsignalized Intersections
[5]LanguageMPC: Large Language Models as Decision Makers for Autonomous Driving
[6]DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models
[7]DRIVEGPT4: INTERPRETABLE END-TO-END AUTONOMOUS DRIVING VIA LARGE LANGUAGE MODEL
这些现有方法重点在于生成基于语言的决策,不能直接用于车辆控制。高级别的决策和低级别的控制操作之间存在gap,在传统的模块化方案中,决策和控制之间由规划planning模块连接。因此作者通过将规划和决策对齐来实现基于LLM的AD闭环系统DriveMLM。进行了如下三个设计:
[1]研究Apollo的决策规划部分,转换为可以被LLM轻松处理的形式;
[2]设计多模态LLM规划器,接受多视角RGB、激光雷达点云、交通规则、系统消息、用户指令来预测决策状态;
[3]从CARLA中搜集280h的数据,设计数据引擎转换为决策状态和解释标注;
这样做可以达到了三个优点:
[1]轻松插入到Apollo,实现闭环驾驶;
[2]支持语言指令输入,更加灵活;
[3]行为决策可解释;
方法
模型整体框图如下:
系统输入包含四个部分:多视角RGB、激光雷达点云、系统消息(交通规则、决策状态定义)和用户指令;
多模态大语言模型MLLM的输入是四个输入量的Embeding X;
MLLM的输出是决策状态 S和解释E;
决策状态S会输入到规划和控制模块,预测用于控制的轨迹;
行为规划状态对齐
如何将LLM输出的结果转化为车辆的控制信号。按照常规做法,决策部分可以分为两个阶段:速度决策和路径决策。速度决策有加减速或保持 [KEEP、ACCELERATE、DECELERATE、STOP],路径决策状态包括跟随和转向 [FOLLOW、LEFT CHANGE、RIGHT CHANGE、LEFT BORROW、RIGHT BORROW]。
作者通过如下的系统消息System Message来进行约束对齐,告知LLM一些模板和答案的选项,(让LLM做选择题来输出有限选项中的答案?妙啊):
“你是驾驶汽车的驾驶助手。你需要遵循导航命令和交通规则。
交通规则是xxxxx。
路径决策包括 [FOLLOW,LEFT CHANGE...]。路径决策定义如下:
FOLLOW表示保持当前车道,
LEFT CHANGE表示xxxx。
xxxx表示xxx
速度决策包括 [KEEP,...]。速度决策定义如下:
KEEP表示保持
xxxx表示xxx
给定从相机或 LiDAR 获得的导航命令和驾驶场景,
你应该从预定义的选项中选择路径决策和速度决策,
并解释您的决策。”
相应的文中MLLM应对提问的回答示例如下:
人类提问: 描述当前驾驶环境。
DriveMLM答:现在是白天的。一辆红色的汽车在自我前面行驶。
人类提问: 右转,请选择路径决策和速度决策。
DriveMLM答:RIGHT CHANGE, KEEP。
人类提问: 请解释为什么选择这些决定?
DriveMLM答:由于右转弯需要提前而不是右转弯车道,因此更改为右车道。
人类提问: 我很急。你能超车吗?
DriveMLM答:LEFT CHANGE, ACCELERATE。
人类提问: 为什么选择这些决定?
DriveMLM答:由于左车道上没有车辆,为了超过前车,需要相左变道并加速。
MLLM规划器
两个部分组成:多模块tokenizer和MLLM解码器。
多模块tokenizer的设计如下:
对于多视角RGB:使用VIT-g 提取特征,结合temporal QFormer构建时序内容;
对于激光雷达:使用稀疏金字塔变压器Transformer(Sparse Pyramid Transformer, SPT)提取特征,使用Qformer获得Embedding;
对于系统消息和用户指令:当作常规文本使用LLM的oken embedding层即可;
MLLM解码器:构造了系统消息模板,回答被格式化到决策状态。使用交叉熵损失监督。
高效的数据引擎
在CARLA中构造决策状态和解释的标签,流程如下:
构造具有挑战的场景challenging scenarios;
让专家系统(人类或代理)驾驶通过,安全到达才会记录数据;
根据安全的专家轨迹生成速度决策和路径决策标签;
根据场景生成行为解释的标签;
人工对解释标签进行修正,并用GPT3.5扩展多样性;
实验分析
数据分析
作者采集了280h的训练样本,5万条路线,30个scenarios,不同的光照和天气条件,8个小镇地图(Town01, Town02, Town03, Town04, Town06, Town07, Town10HD, Town12),每个场景在每张地图中有200个随机触发点。场景包括常见和罕见的案例,具体信息可以看论文附录。
与现有的驾驶理解的数据集对比:
本文的数据有两个独特的特征。第一个是行为规划状态的对齐。这使能够将 MLLM 规划器的输出转换为控制信号,以便在闭环驾驶中控制车辆。第二个是人机交互注释。它的特点是人类给出的自然语言指令以及响应决策和解释。目标是提高理解人类指令并相应地响应的能力。
闭环测试
测试效果要好于现有的算法:
Roach(ICCV 2021,ETH,强化学习教练监督模仿学习的agent,TCP的训练数据就是以它为agent)
Interfuser(CoRL2022,商汤,carla leaderboard1.0 排名第二)
Think Twice(CVPR2023,上海AILab,不在leaderboard1.0,但是在Town05上优于Interfuser那也是前三吧)。
leaderboard1.0目前榜单第一是ReasonNet,CVPR2023,商汤。
闭环测试的评价指标有:驾驶分数 (DS)、路线完成 (RC) 和违规分数 (IS),DS是RC和IS的乘积。还使用 Miles Per Intervention (MPI) 评估驾驶性能,这是工业中广泛使用的指标,MPI = (Total Autonomous Miles) / (Total Interventions)。表中的DD表示data driven,FSM是有限状态机Finite State Machine。
消融实验:
MV 表示多视图图像,CT 表示连接时间标记,TQ 表示时间 QFormer,PC 表示点云。MV + TQ 表现出最佳决策性能,CT 在准确性方面带来了小幅改进,但会导致更大的计算消耗。PC对DriveMLM影响不大。这可能是由于稀疏金字塔transformer和 MLLM 解码器之间的巨大表示差距造成的。
案例分析和可视化
案例a,人类要求超车且条件允许超车。LLM给出左转和加速指令,解释说“前车较慢且左车道空,我会超车”。
案例b,下图人类要求超车但是不具备超车条件。LLM给出保持车道、减速的指令。解释为“左车道有车、右车道不允许超车,我不能超车”。(确实还挺合理,但是为啥要减速)
零样本案例1,下图在nuScens上测试,人类要求保持车道,LLM输出保持停车,LLM给出的解释是“交通灯是红色,我们该停车”。(我还以为理由会是前车太近,并亮起刹车灯,我甚至没注意到红灯/狗头)
零样本案例2,人类要求保持车道,LLM输出保持、并减速,理由是前方为左转路口应该减速。
总结
DriverMLM提出了基于多模态到决策控制的框架设计,让AD系统更加透明可信。代码即将开源,很漂亮的工作,其中大模型部分用的是LLaMA-7B,有能力的实验室可以复现测试。港中文MMLab的另一新篇工作LMDrive也是LLM驱动的闭环自动驾驶(LMDrive: Closed-Loop End-to-End Driving with Large Language Models)已开源!https://github.com/opendilab/LMDrive。可以对比看一看。
这里梳理一下最近的相似命名,防止混淆:DriveMLM、DriveLM、DriveLLM、LMDrive
DriveLLM: Charting The Path Toward Full Autonomous Driving with Large Language Models(TIV 2023)
DriveLM:Drive on Language: https://github.com/OpenDriveLab/DriveLM
DriveMLM: Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous Driving(本篇)
LMDrive: Closed-Loop End-to-End Driving with Large Language Models(港中文)
另外,商汤和上海AILab真的开源了很多优秀的端到端自驾算法,榜单上这些TOP算法多数都是来自于商汤和上海AILab。
自动驾驶之心
论文辅导来啦
知识星球交流社区
近4000人的交流社区,近300+自动驾驶公司与科研结构加入!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(大模型、端到端自动驾驶、世界模型、仿真闭环、3D检测、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎加入。
独家专业课程
端到端自动驾驶、大模型、VLA、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频
学习官网:www.zdjszx.com