Co-Driver:基于 VLM 的自动驾驶助手,具有类人行为并能理解复杂的道路场景

本文主要是介绍Co-Driver:基于 VLM 的自动驾驶助手,具有类人行为并能理解复杂的道路场景,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

24年5月来自俄罗斯莫斯科研究机构的论文“Co-driver: VLM-based Autonomous Driving Assistant with Human-like Behavior and Understanding for Complex Road Scenes”。

关于基于大语言模型的自动驾驶解决方案的最新研究,显示了规划和控制领域的前景。 然而,大量的计算资源和大语言模型的幻觉继续阻碍预测精确轨迹和指示控制信号的任务。 为了解决这个问题,本文提出了Co-driver,这是一种自动驾驶辅助系统,能够根据对道路场景的理解,使自动驾驶车辆能够调整驾驶行为。 提出一个涉及 CARLA 模拟器和ROS2的流水线,验证系统的有效性,利用单个 Nvidia 4090 24G GPU,同时利用视觉-语言模型的文本输出能力。 此外,还提供一个包含图像集和相应提示集的数据集,用于微调系统的视觉-语言模型模块。 Co-driver 数据集将在 https://github.com/ZionGo6/Co-driver 发布。

如图所示:视觉语言模型模块接收图像输入和系统提示,以行为树格式发布环境分析和指令结果。 然后根据对环境的分析,将指令结果的行为树映射到智体行为。

请添加图片描述
系统的主要任务是分析来自自车前置摄像头的视觉输入,并得出有关天气、光线、路面、地点等环境信息的结论,以及控制参数,例如最大速度、最大制动、最大油门等。基于视觉数据确定自动驾驶汽车的驾驶行为对于视觉语言模型来说是一项复杂的任务。 然而,将任务分解为两步过程,它就变得易于管理。

该任务被分解为将图像数据集中专门定义的场景提供给模型去识别图像中的环境信息,并根据所描述的环境数据来预测控制和行为参数的水平。 这两项任务对微调的视觉语言模型都没有构成重大挑战,这确保了提出的系统实际实施流程。

在上述任务的第一步中,视觉语言模型模块接收包含任务描述和目的地的系统提示,以及来自自车前置摄像头的图像。 在此阶段,该模块会识别位置、照明和天气条件以及前方的潜在危险。 然后,模块在第一步确定的环境参数的指导下继续生成控制和驾驶行为参数的级别。 最后,基于视觉语言模型模块的图像输入,所有获得的参数都被映射为一组智体行为,改变和影响 CARLA 模拟器中自车的驾驶风格。
图像数据集是在 CARLA 模拟器中从自车的前置摄像头视图中收集的,在定义的天气(晴朗、下雨、有雾)、光线(明亮、阴暗、黑暗)、地点(城市、城镇、高速公路)条件下, 关于前方潜在障碍物的安全和不安全距离的分类[18]。

在提示数据集中,系统提示是从驾驶员的角度作为完成驾驶任务的请求和环境信息的通知而给出的。 然后,将定义的环境信息以及关于控制类型、最大速度、最大制动、最大油门、最大加速度和最大转向速度的车辆控制和驾驶行为建议作为行为树格式的输出提示。 如图所示数据集的一点示例。

请添加图片描述
系统的视觉-语言模型(VLM)是在 Qwen-VL 架构的基础上利用QLoRA方法 [22] 进行训练的,是一个参数高效微调(PEFT)的一种形式 [23]。在训练过程中,视觉编码器的权重保持冻结,专注于优化模型的语言方面。

训练在单个 Nvidia RTX 4090 GPU 上进行,该 GPU 提供 24 GB 视频内存用于处理。该数据集总共包含 221,228 个样本,被分为每批 6 个样本,以保持高效的训练吞吐量。此外,梯度累积步骤设置为 8,导致一个epoch包含大约 4,600 个步骤。

在学习率为 1e-4 的情况下,模型快速适应目标突发能力并响应所需的格式。这一过程只需要一个 epoch 的训练,大约需要 25 个小时才能完成。尽管训练时间相对较短,但该方法被证明是有效的,在模型性能和输出质量方面产生了令人满意的结果。

训练过程的进展如图所示的训练曲线所示,其展示了损失随时间的变化,并提供了对模型学习动态的深入了解。

请添加图片描述

为了验证系统的有效性,进行两种类型的实验。首先,在 CARLA 中,使用可调整的天气、地图和交通设置创建了测试场景。在测试模拟运行期间,视觉语言模型模块处于打开状态,读取自车的前方图像并执行场景理解和行为指令。记录带有车辆轨迹和车辆状态信息(例如速度、加速度等)的驾驶场景。其次,用暗光的真实驾驶场景验证系统的视觉-语言模型模块在HawkDrive数据集[24]上夜间条件的泛化能力 。

这篇关于Co-Driver:基于 VLM 的自动驾驶助手,具有类人行为并能理解复杂的道路场景的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/988441

相关文章

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析