DRIVEGPT4: 通过大语言模型实现可解释的端到端自动驾驶

23年10月来自香港大学、浙江大学、华为和悉尼大学的论文“DRIVEGPT4: INTERPRETABLE END-TO-END AUTONOMOUS DRIVING VIA LARGE LANGUAGE MODEL“。

过去的十年自动驾驶在学术界和工业界都得到了快速发展。然而,其有限的可解释性仍然是一个悬而未决的重大问题,严重阻碍了自动驾驶汽车的商业化和进一步发展。以前用小语言模型的方法,由于缺乏灵活性、泛化能力和鲁棒性而未能解决这个问题。最近,多模态大语言模型(LLM)因其通过文本处理和推理非文本数据(如图像和视频)的能力而受到研究界的极大关注。本文介绍DriveGPT4,一个利用LLM可解释的端到端自动驾驶系统。DriveGPT4能够解释车辆动作并提供相应的推理,以及回答人类用户提出的各种问题,增强交互。此外,DriveGPT4以端到端的方式预测车辆低级控制信号。这些功能源于专门为自动驾驶设计定制的视觉指令调整数据集。DriveGPT4可以以零样本的方式进行推广,适应更多未见的场景。

视频和标签是从BDD-X数据集(Kim 2018)中收集的,该数据集包含约20000个样本,包括16803个用于训练的片段和2123个用于测试的片段。每个剪辑被采样为8个图像。此外,它还提供每帧的控制信号数据(例如,车辆速度和车辆转弯角度)。BDD-X为每个视频剪辑提供了关于车辆动作描述和动作理由的文本注释。如图是DriveGPT4概述:DriveGPT4是一个综合的多模态语言模型,能够处理包括视频、文本和控制信号在内的输入。视频序列使用专用视频token化模块进行token化,而文本和控制信号共享一个token化模块。在token化之后,高级语言模型可以同时生成对人类查询的响应,并预测下一步的控制信号。

添加图片注释,不超过 140 字(可选)

在以前的工作中,ADAPT(Jin 2023)训练字幕网络来预测描述和理由。但是,提供的描述和正确标签是固定的和刚性的。如果人类用户希望了解更多关于车辆的信息并提出日常问题,那么过去的工作可能会功亏一篑。因此,仅BDD-X不足以满足可解释自动驾驶的要求。

由ChatGPT/GPT4生成的指令调优数据已被证明在自然语言处理(Peng 2023)、图像理解(Liu 2021)和视频理解(Li 2020 3c;Zhang 2023)中对性能增强是有效的。ChatGPT/GPT4可以访问特许信息(例如,图像标记的字幕、真实边框),并被提示生成对话、描述和推理。目前,还没有为自动驾驶定制的视觉指令听从数据集。作者在ChatGPT的辅助下,基于BDD-X创建了自己的数据集。

由于BDD-X为每个视频片段提供了车辆动作描述、动作理由和控制信号序列标签,因此直接用ChatGPT基于这些标签生成一组三轮问答(QA)。

首先,创建三个问题集:Qa、Qj和Qc。

Qa包含相当于“该车当前的行动是什么?”的问题。随机选择的问题qa与动作描述标签形成qa对。
Qj包含相当于“为什么车会有这种行为?”的问题。一个随机选择的问题qj与动作正确标签形成一个QA对。
Qc包含相当于“预测下一帧车的速度和转弯角度”的问题。随机选择的问题Qc与控制信号标签形成QA对。

LLM可以学习同时预测和解释车辆动作。但是,如前所述,这些QA对,具有固定和严格的格式。由于缺乏多样性,仅对这些QA进行训练会降低LLM的推理能力,会无法回答其他形式的问题。

为了解决上述问题,ChatGPT被用作教师,产生更多关于自车的对话。提示通常遵循LLaVA中使用的提示设计。为了使ChatGPT能够“看到”视频,采用YOLOv8(Reis2023)检测视频每帧中常见的目标(例如,车辆、行人)。所获得的边框坐标被标准化并作为特许信息发送到ChatGPT。除了目标检测结果外,ChatGPT还可以访问视频剪辑的真值控制信号序列和字幕。基于这些特许信息,ChatGPT会被提示生成关于自车、红绿灯、转弯方向、变道、周围目标、目标之间的空间关系等多轮多类型的对话。

最后,收集了28K的视频文本指令如下样本,包括由ChatGPT生成的16K固定QA和12K对话。生成的示例如表所示:上半部展示了YOLOv8获得的输入信息,包括视频字幕、控制信号和目标检测结果。下半部显示生成的固定QA和ChatGPT生成的对话。

添加图片注释,不超过 140 字(可选)

DriveGPT4是一款多功能多模态LLM,能够处理各种输入类型,包括视频、文本和控制信号。视频被均匀地采样到固定数量的图像中,并用基于Valley的视频token化模块(Luo 2023)将视频帧转换为文本域token。从RT-2(Brohan2023)中汲取灵感,文本和控制信号使用相同的文本token化模块,这意味着控制信号可以被解释为一种语言,并被LLM有效地理解和处理。所有生成的tokens都被连接起来并输入到LLM中。本文采用LLaMA 2(Touvron2023b)作为LLM。在生成预测的token后,去token化模块对其进行解码恢复人类语言。解码文本包含固定格式的预测信号。

对于每个视频帧Ii,用预训练的CLIP视觉编码器(Radford 2021)提取其特征Fi。Fi的第一个通道表示视频帧Ii的全局特征,而其他256个通道对应于Ii的图像补丁特征。为了简洁地表示,Ii的全局特征表示为Fi-G,而Ii的局部补丁特征表示为Fi-P。最终,一个投影器将视频的时间特征T和空间特征S都投影到文本域中。如图所示是视频token化模块的架构:

添加图片注释,不超过 140 字(可选)

受RT-2(Brohan2023)的启发,控制信号的处理类似于文本,因为它们属于同一域空间。控制信号直接嵌入文本中进行提示,并使用默认的LLaMAtoken化模块。本研究中自车的速度v=[v1,v2,…,vN]和转向角∆=[∆1,∆2,…,∆N]被视为目标控制信号。转向角度表示当前帧和初始帧之间的相对角度。在获得预测的token后,LLaMAtoken化模块将token解码回文本。DriveGPT4预测后续步骤的控制信号,即(vN+1,∆N+1)。预测的控制信号使用一个固定格式嵌入输出文本中,通过简单的后处理可以轻松提取。如表给出了DriveGPT4的输入和输出示例。

添加图片注释,不超过 140 字(可选)

与以往LLM相关研究一致,DriveGPT4的训练包括两个阶段:(1)预训练阶段,重点是视频文本对齐;以及(2)微调阶段,旨在训练LLM回答与端到端可解释自动驾驶相关的问题。

与LLaVA(Liu e2023)和Valley(Luo 2021)一致,该模型对来自CC3M数据集的593K个图像-文本对和来自WebVid-10M数据集的100K个视频-文本对进行了预训练(Bain2021)。预训练图像和视频包含各种主题,并不是专门为自动驾驶应用设计的。在此阶段,CLIP编码器和LLM权重保持固定。只有视频token化模块被训练将视频与文本对齐。

在微调阶段,DriveGPT4中的LLM与可解释的端到端自动驾驶的视觉token化模块一起进行训练。为了使DriveGPT4能够理解和处理域知识,用前面生成的28K视频文本指令进行训练。为了保持DriveGPT4回答日常问题的能力,还用了LLaVA生成的80K指令服从数据。因此,在微调阶段,DriveGPT4用28K视频文本指令服从数据以及80K图像文本指令服从数据进行训练。前者确保DriveGPT4可以应用于可解释的端到端自动驾驶,而后者增强了数据灵活性,有助于保持DriveGPT4的一般问答能力。

### 关于端到端驾驶的深度学习应用 #### 研究论文概述 近年来,随着大型语言模型(LLMs)的发展及其在自动驾驶中的应用,一系列创新性的研究成果涌现出来。例如,《DriveGPT4: 基于LLM的可解释端到端自动驾驶》探讨了如何利用LLM来构建更加透明且易于理解的自动驾驶系统[^1]。另一篇重要文献《Driving with LLMs: 融合目标级矢量模态实现可解释自动驾驶》则进一步深入讨论了通过融合视觉和其他感知信息的方式提升系统的决策能力。 除了上述提到的研究之外,《GPT-DRIVER: 使用GPT学习驾驶》展示了将自然语言处理技术应用于实际道路环境的可能性;而《DrivingDiffusion: 基于扩散模型引导多视图驾驶场景视频生成》提出了新颖的方法用于模拟复杂交通状况下的行为预测。这些工作共同推动了领域向前发展,并为未来研究提供了宝贵的方向指引。 #### 实现方法介绍 对于想要深入了解并尝试开发自己的端到端自动驾驶项目的开发者来说,可以从以下几个方面入手: 1. **数据收集与标注** 数据集的质量直接影响最终模型的表现效果。因此,在项目初期应当重视高质量多样化样本库建设。这包括但不限于不同天气条件、时间段以及地理区域内的行车记录等素材采集[^4]。 2. **算法选择** 当前主流框架如TensorFlow, PyTorch均可支持搭建此类任务所需的神经网络结构。具体而言,卷积神经网络(CNN),循环神经网络(RNN)及其变体LSTM/GRU常被用来提取图像特征序列化表示;而对于更复杂的时空关系建模,则可以考虑采用Transformer架构或者其改进版本ViT (Vision Transformer)。 3. **训练策略优化** 为了提高泛化能力和鲁棒性,建议采取混合精度浮点运算(FP16/BF16), 动态调整超参数(learning rate schedule)等方式加快收敛速度的同时保持良好性能表现。此外,迁移学习也是快速迭代原型的有效手段之一——即先在一个大规模公开可用的数据源上预训练基础权重,再针对特定应用场景微调至最优状态。 4. **评估体系建立** 定义合理的KPI(Key Performance Indicators)至关重要。比如自动化持续驾驶时间占比、平均接管间隔里程数(Mean Time Between Interventions, MTBI)都是衡量系统稳定性和可靠性的重要维度。值得注意的是,真实环境中的人机交互体验同样不可忽视,需综合考量安全性、舒适度等多个因素来进行全方位评测。 ```python import torch from torchvision import models, transforms from PIL import Image def preprocess_image(image_path): transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) img = Image.open(image_path).convert('RGB') tensor_img = transform(img) return tensor_img.unsqueeze_(0) model = models.resnet50(pretrained=True) model.eval() image_tensor = preprocess_image("path_to_your_image.jpg") output = model(image_tensor) predicted_class_idx = output.argmax().item() print(f"The predicted class index is {predicted_class_idx}") ``` 此代码片段仅作为示例说明如何加载预训练ResNet50模型并对单张图片执行分类操作。实际部署过程中还需根据具体需求定制相应组件和服务接口设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值