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]上夜间条件的泛化能力 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

call、apply、bind三者的区别

call、apply、bind都是可以改变函数 this 对象指向的方法,但它们也有各自的特点。 call() 写了就等于直接调用函数。写法如下: fun.call(obj,要传给函数的参数1,要传给函数的参数2...) call() 接收多个参数,第一个为函数上下文也就是this…

Bittensor怎么挖?手把手教你,使用bitget钱包

4月 Binance 上新 TheBittensorHub (TAO), 这个项目究竟做了什么可以令其在上大舞台前就已经在所有通证中排名前 30? 本文将深度解析。 该项目既不直接贡献数据,也不直接贡献算力。 而是通过区块链网络和激励机制,来对不同的算法进行调度和…

【HarmonyOS】综合应用-《校园通》

概念 本文结合之前的笔记文章知识点,做一个综合性的小应用。 创建一个ArkTS语言的鸿蒙项目,搭建首页面 其界面代码如下,该界面使用了垂直布局,相对布局,轮播布局,以及图片,文本等组件的综合运…

【CTF MISC】XCTF GFSJ0510 this_is_flag Writeup(信息收集)

this_is_flag Most flags are in the form flag{xxx}, for example:flag{th1s_!s_a_d4m0_4la9} 解法 大多数标志的形式都是flag{xxx},例如:flag{th1s_!s_a_d4m0_4la9} Flag flag{th1s_!s_a_d4m0_4la9}声明 本博客上发布的所有关于网络攻防技术的文章…

具身智能论文(一)

目录 1. PoSE: Suppressing Perceptual Noise in Embodied Agents for Enhanced Semantic Navigation2. Embodied Intelligence: Bionic Robot Controller Integrating Environment Perception, Autonomous Planning, and Motion Control3. Can an Embodied Agent Find Your “…

免费的国内版 GPT 推荐,5个国产ai工具

提起AI,大家第一个想到的就是GPT。 虽然它确实很厉害,但奈何于我们水土不服,使用门槛有些高。 不过随着GPT的爆火,现在AI智能工具已经遍布到各行各业了,随着时间的推移,国内的AI工具也已经“百花盛放”了…

Pencils Protocol 提供层次化的 Staking,品牌升级不断

Pencils Protocol 是一个 Scroll 生态中的一个综合应用平台,在全新的品牌升级后(原为 Penpad),其在原有的 LaunchPad 的基础上,进一步向收益聚合器、RWA 等板块进行全新的拓展。目前,Pencils Protocol 生态的整体功能板块包括 Lau…

人脸识别技术在访客管理中的应用

访客办理体系,能够使用于政府、戎行、企业、医院、写字楼等众多场所。在办理时,需求对来访人员身份进行精确认证,才能保证来访人员的进入对被访单位不被外来风险入侵。在核实身份时,比较好的方法就是选用人脸辨认技能,…

bat xcopy 解析

echo off set source_folder"C:\path\to\source" set destination_folder"C:\path\to\destination" set exclude_file"C:\path\to\excluded_folders.txt"REM 创建目标文件夹(如果不存在) mkdir %destination_folder% 2>…

【QEMU系统分析之实例篇(三十二)】

系列文章目录 第三十二章 QEMU系统仿真的机器创建分析实例 pcie.0 文章目录 系列文章目录第三十二章 QEMU系统仿真的机器创建分析实例pcie.0 前言一、QEMU是什么?二、QEMU系统仿真的机器创建分析实例1.系统仿真的命令行参数2. 将当前机器配置导出到文件qmp_x_exit…

JDK的串行收集器介绍与优化指南-01

JDK串行收集器概述 定义与背景 串行收集器(Serial Collector)是Java虚拟机(JVM)中的一种单线程垃圾收集器,它在垃圾收集过程中会暂停所有工作线程,直至收集完成。它适用于内存资源受限、对吞吐量要求不高…

探索Java的未来!

Java是一种成熟、稳定且广泛使用的编程语言,它在企业级应用、Android 应用开发和大数据处理等领域有着广泛的应用。虽然Java已经存在了30多年,但它依然在不断发展和进化。以下是一些可能会影响 Java 未来的因素: 新版本的发布:Jav…

【玄机平台】应急响应

前言: 感谢玄机平台靶机的提供,让我学到了不少东西 平台题解 : 第一章 应急响应-webshell查杀 1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx} ssh连接 下载/var/www/html源码(finsehll连直接下)压缩丢…

JavaWeb--15 tlias-web-management 黑马程序员 部门管理(修改部门信息)

tlias 1 需求分析和开发规范2 部门管理2.1 查询部门2.2 删除部门2.3 添加部门2.4 更新部门 1 需求分析和开发规范 需求说明–接口文档–思路分析–开发–测试–前后端联调 查看页面原型明确需求 根据页面原型和需求,进行表结构设计、编写接口文档(已提供) 阅读接口…

vue3专栏项目 -- 四、前后端结合(下)

一、async 和 await 1、使用async 和 await 改造异步请求 在接触后端API以后就遇到了越来越多的异步请求,现在我们就使用async 和 await 改造异步请求。 async function是把返回内容包裹成个Promise返回Promise await 它在async function里面才起作用&#xff0…

PHP 使用常量实现枚举类

PHP 使用常量实现枚举类 <?php abstract class Enum {private static $constCacheArray NULL;private static function getConstants() {if (self::$constCacheArray NULL) {self::$constCacheArray [];}$calledClass get_called_class();if (!array_key_exists($call…

ini配置文件怎么存取False

1、ini文件介绍 INI文件&#xff08;全称为Initialization File&#xff0c;初始化文件&#xff09;是一种简单的文本文件格式&#xff0c;用于存储配置数据。它广泛应用于操作系统和各种应用程序中&#xff0c;用来保存设置、参数或初始化信息。INI文件的基本结构包括节&…

服务器之间传输文件

服务器1传输到10.140.8.8里面&#xff0c;其中root账户 先-r参数递归压缩文件夹Dir为Dir.zip&#xff0c;然后传输Dir.zip会快一些&#xff0c;当然了&#xff0c;如果你scp递归传输也是可以用的 方法1&#xff1a;压缩后传输&#xff0c;非递归&#xff0c;推荐 zip -r Dir.z…

Office之Word应用(二)

一、页眉添加文件名称和页码 1、双击页眉&#xff0c;点击“页眉-空白&#xff08;三栏&#xff09;” 2、删掉第一处&#xff08;鼠标放在上面就会选中&#xff0c;Enter即可&#xff09;&#xff0c;第二处输入文档名称&#xff0c;第三处插入页码。 注&#xff1a;插入页码时…

Jmeter 性能-阶梯负载最终请求数

1、设置阶梯加压线程组请求参数 说明&#xff1a; 每隔2秒钟&#xff0c;会在1秒内启动5个线程 每次线程加载之后都会运行2s然后开始下一次线程加载 最终会加载50个线程并持续运行30s 50个线程持续运行30s后&#xff0c;会每隔2秒钟停止5个线程&#xff0c;剩余的线程继续负…