当前位置: 首页 > article >正文

端到端自动驾驶VLM模型:LMDrive: Closed-Loop End-to-End Driving with Large Language Models

论文地址:https://arxiv.org/pdf/2312.07488

代码地址:https://github.com/opendilab/LMDrive

1. 摘要

一方面,目前自动驾驶领域取得了显著进展,但在遇到长尾场景或复杂城市路况时,当前的自动驾驶方法仍容易失效甚至导致严重事故。另一方面,大语言模型(LLMs)展现出了接近“通用人工智能”的推理能力。因此,利用大语言模型所具备的“人类知识”帮助自动驾驶应对长尾问题,提升端到端模型的可解释性,并与导航和驾驶员进行互动成为端到端自动驾驶研究的热点。论文提出 LMDrive —— 一个新颖的、语言引导的、端到端、闭环自动驾驶框架。LMDrive 能够融合处理多模态传感器数据和自然语言指令,从而实现与人类乘客或导航系统的交互,在真实指令场景下进行驾驶。主要创新点:

  • 使用冻结的预训练 LLM 保持强推理能力;
  • 为其引入多视角的相机和 LiDAR 编码器,以及可学习的输入/输出适配器;
  • 在 CARLA 模拟器上构建支持语言指导的数据集,涵盖动态场景与复杂指令;
  • 构造挑战性评估集(LangAuto Benchmark)。

2. 方法

 LMDrive 框架由两个部分组成:视觉编码器(Vision Encoder),用于处理多视角、多模态的传感器数据(相机 + LiDAR),并生成视觉 token;大语言模型(LLM)及其辅助模块,包括 tokenizer、Q-Former、Adapters,用于处理视觉 token 和语言指令,进而预测控制信号与任务完成状态。

2.1 视觉编码器

没有使用预训练的 CLIP 模型,设计了一个多视角多模态视觉编码器来处理 RGB 图像和 LiDAR 数据,并融合成 Bird's Eye View(BEV)视图,以生成视觉 token 输入给 LLM。为了提高视觉编码器的理解力,增加了感知和预测任务项,这些预测头只用于视觉预训练阶段,在指令微调和推理时将被移除。

图像编码(2D):对每张图像使用 ResNet提取 2D 特征图,将特征图展平成 token 序列,来自不同视角的 token 使用一个 Transformer 编码器进行融合。

点云编码(3D):LiDAR 输入使用 PointPillars处理点云数据,形成以自车为中心的 LiDAR 特征图,每个“pillar”覆盖 0.25m × 0.25m 区域,使用 PointNet进一步聚合特征,输出维度为C×H×W,作为 BEV 查询向量。

解码器:生成traffic light和waypoint的query,结合激光点云的query,以视觉特征作为KV,使用标准 Transformer 解码器,生成BEV token、traffic light token和waypoint token。

预训练:BEV token 接入 CenterPoint,预测目标边界框与速度;Waypoint token + 导航点输入 GRU,预测 N 个未来轨迹点;Traffic light token 输入两层 MLP,预测红灯/绿灯状态。

2.2 指令跟随的LLM模型

LLM模型用于将输入的视觉token和导航任务翻译成驾驶指令,LLM模型选用开源模型,如LLaMA-2、Vicuna-1.5或者LLaVA-v1.5,训练过程中会冻结LLM的参数,只会训练输入输出头。

文本 Tokenizer:采用主流 LLM(如 LLaMA)中使用的标准分词器(tokenizer)将自然语言指令转化为 token,这些 token 构成文本输入部分。

Q-Former:将图像/点云提取出的视觉 token 输入给语言模型会带来显著计算负担(比如 BEV token 的数量通常很大),因此采用 BLIP-2提出的 Q-Former 模块来进行视觉 token 压缩。具体做法:

  • 输入:来自前一阶段的三类 token(BEV / Waypoint / Traffic Light);
  • 对每一类输入 token 分别使用一个 Transformer 模块(Q-Former);
  • 每个模块中引入一组可学习的 Query token(如 4 个),通过 Cross-Attention 选择性地关注输入 token;
  • 输出:每类 token压缩为固定长度的语义向量(每帧 3×4=12 个 token),作为视觉信息输入语言模型。

Token Adapters:由于视觉 token 的维度(如 256)通常不同于语言模型 token 的维度(如 4096),我们引入了一组 token adapter 模块(通常是一层线性映射)来完成维度对齐。此外,在每一帧数据后附加一个 [SEP] token,用于帮助语言模型学习帧间结构。

输出解码:直接将车辆行驶轨迹文本化,模型直接按照字符输出轨迹,然后再转成数字即可。以自回归地生成这些轨迹点,推理的时间会比较长。

3. 总结

后续探索方向:

  • 更强语言模型:引入更大规模、具备推理能力的语言模型;
  • 结构化输出:结合语言输出和向量回归,提升精度与控制稳定性;
  • 实际部署:将此框架推广到真实车辆或更高保真度的仿真环境中;
  • CoT(思维链)解释性:进一步研究 LLM 输出语言的推理链条,与行为之间的对应关系。

http://www.kler.cn/a/613083.html

相关文章:

  • 通过Bioconductor/BiocManager安装生物r包详解(问题汇总)
  • 01 相机标定与相机模型介绍
  • 25大唐杯赛道一本科B组大纲总结(上)
  • 【OCR】技术
  • 【新手初学】读取数据库数据
  • VMware 安装 Ubuntu 实战分享
  • 2025美国网络专线国内服务商推荐
  • Qt SQL-2
  • 陪伴就诊 APP 功能架构:如何通过特定模块筛选优秀陪诊师
  • vscode在使用 alt + tab 切换程序窗口时,输入法总是自动变为中文模式
  • 电脑切换不同WiFi时,ip地址会自动切换吗?‌
  • Spring Boot添加全局异常处理器捕捉异常 跳转登录页面
  • 多少双手套 - 小米机试真题题解
  • Leetcode 使用最小花费爬楼梯
  • 封装红黑树模拟实现map和set
  • beanie.exceptions.CollectionWasNotInitialized
  • 84.仪器初始化的异步处理:从复杂到简洁的探索 C#例子 WPF例子
  • 百度文库标题生成器 v2.0:高效创作,一键生成文章优质标题生成器
  • 3.28学习总结
  • 第 2 章 | 智能合约攻击图谱全景解析