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

news2024/12/26 21:28:22

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.coloradmin.cn/o/1673025.html

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

相关文章

智能组网实施步骤?

随着信息技术的快速发展,智能组网正在逐渐成为各个行业的关注焦点。智能组网通过将各种设备、终端和系统连接起来,实现信息的传输和共享,从而提升工作效率和运营效益。本文将介绍智能组网的实施步骤,以及一家名为【天联】的智能组…

台式电脑屏幕亮度怎么调节?让你的眼睛更舒适!

在日常使用台式电脑时,调节屏幕亮度是一项常见的需求。不同的环境和个人偏好可能需要不同的亮度设置。因此,了解台式电脑屏幕亮度怎么调节是非常重要的。本文将介绍三种常见的方法,帮助您轻松调节台式电脑屏幕亮度,以满足您的需求…

【C++初阶】第十一站:list的介绍及使用

目录 list的介绍及使用 1.list的含义 2.list的介绍 3.list的使用 1.list的构造 2.list iterator的使用 3.list capacity 4.list element access 5 list modifiers 尾插尾删 和 头插头删 insert 和 erase resize swap clear 6.list sort and reverse 7.list copy vector copy li…

数字化转型:超越信息化,构建数字化营销体系!

在数字化的浪潮中,企业仅仅做好信息化数字能力基础已远远不够!那么,还需要什么呢?没错,就是在数字化经营思维的指导下,建立起数字化营销体系和执行方案!这是企业在数字时代中立于不败之地的关键…

在cmd中,如何使用cd进入指定文件目录

在cmd中,如何使用cd进入指定文件目录 1.要进入的磁盘与当前磁盘一致 例如: cd C:\Program Files (x86)\Google\Chrome\Application 2.进入到其他磁盘, 例如 cd /d D:\JAVA\codes\01\1.4 或者下面的方式(直接输入磁盘F:和文件名…

11.php-fpm模板(监控页面取值)

php-fpm模板(监控页面取值) 开启监控页面配置 #修改php配置文件 vim /etc/php-fpm.d/www.conf pm.status_path /php_status#修改nginx配置文件,添加到nginx配置文件中 vim /etc/nginx/conf.d/default.conflocation /php_status {root html;fastcgi_pass 127.0.…

使用单片机的IO引脚直接驱动段码屏

使用单片机的IO引脚直接驱动段码屏,目的是为了降低成本。这种古老的应用,在低功耗产品中比较多见。 如:水表,燃气表等需要电池供电的产品。 下面纯属个人理解,未经测试。 1/3Duty表示LCD共有3个COM引脚,分别占显示周期的1/3 1/2BIAS表示电压0和VCC 1、…

想半天憋不出几个字?试试AI扩写

大家在写文章时是否也经常这样?想了半天,结果只能写出几个字,但是要求往往又是几百多个字,那么有没有啥工具可以帮我们在原文的基础上扩写一下文章字数,让我们达到字数要求呢? 下面给大家介绍一下如何扩写文…

Rpcx (二):传输

一、Transport 传输 rpcx 可以通过 TCP、HTTP、UnixDomain、QUIC和KCP通信。你也可以使用http客户端通过网关或者http调用来访问rpcx服务。 TCP 这是最常用的通信方式。高性能易上手。可以使用TLS加密TCP流量。 Example: 101basic 服务端使用 tcp 做为网络名并且在注册中心…

什么是Data Lakehouse Architecture(DLA)?企业为何要创建DLA

公司捕获和存储的数据比以往任何时候都多,因为它们依赖数据来做出关键的业务决策、改进服务或产品,或为最终用户(客户)提供更好的服务。了解各种大数据存储技术对于为商业智能(BI)、数据分析和机器学习&…

山西教育杂志山西教育杂志社山西教育编辑部2024年第4期目录

课题研究 小学语文随堂小练笔策略研究 陈立固; 3-4 儿童戏剧工作坊载体下小学语文戏剧课堂的建构 郭黎明; 5-6《山西教育》投稿:cn7kantougao163.com 文化生态视域下小学英语教学的传统文化融入 周慧娟; 7-8 基于“主题语境”的初中英语课堂教学研究…

PCIe总线-PCIe简介

一、前言 PCIe总线是由PCI/PCI-X发展而来,但是两者之间有很大的不同。PCI/PCI-X采用的是并行总线,最大支持的频率为PCI-X2.0 的133MHz,传输速率最大仅为4262MB/s。同时使用并行总线,在PCB上也会造成布线资源紧张,线与…

MyBatis——动态 SQL

一、if 标签 <mapper namespace"com.powernode.mybatis.mapper.CarMapper"><select id"selectByMultiCondition" resultType"car">select * from t_car where<if test"brand ! null and brand ! ">brand like #{br…

ARM架构安全特性之标准安全 API

安全之安全(security)博客目录导读 目录 一、机密计算软件 二、Arm机密计算固件架构 三、认证校验 四、Veraison项目 五、独立于语言的安全API 六、平台抽象安全项目&#xff08;Platform AbstRaction for SECurity project&#xff09; 七、可移植平台安全API 八、…

(undone) 什么是马尔可夫链?Markov Chain

参考视频1&#xff1a;https://www.bilibili.com/video/BV1ko4y1P7Zv/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 参考视频2&#xff1a;https://www.bilibili.com/video/BV1xg4y1K7z4/?spm_id_from333.788&vd_source7a…

Vue3实战笔记(19)—封装菜单组件

文章目录 前言一、封装左侧菜单导航组件二、使用步骤三、小彩蛋总结 前言 在Vue 3中封装一个左侧导航菜单组件是一项提升项目结构清晰度和代码可复用性的关键任务。这个过程不仅涉及组件的设计与实现&#xff0c;还需考虑其灵活性、易用性以及与Vue 3新特性的紧密结合。以下是…

Golang | Leetcode Golang题解之第88题合并两个有序数组

题目&#xff1a; 题解&#xff1a; func merge(nums1 []int, m int, nums2 []int, n int) {for p1, p2, tail : m-1, n-1, mn-1; p1 > 0 || p2 > 0; tail-- {var cur intif p1 -1 {cur nums2[p2]p2--} else if p2 -1 {cur nums1[p1]p1--} else if nums1[p1] > n…

AXI Interconnect IP核用法

本文描述了如何使用Xilinx的Vivado Design Suite环境中的工具来定制和生成AXI Interconnect IP 核。Vivado Design Suite是一个强大的FPGA设计和开发环境&#xff0c;它允许用户定制和配置各种IP核以适应他们的特定设计需求。 以下是针对如何定制IP核的步骤的简要概述&#xf…

FullCalendar日历组件集成实战(2)

背景 有一些应用系统或应用功能&#xff0c;如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件&#xff0c;但功能比较简单&#xff0c;用来做数据展现勉强可用。但如果需要进行复杂的数据展示&#xff0c;以及互动操作如通过点击添加事件&#xff0…

光数据传送器|光通讯传感器极速版OPT系列尺寸与安装步骤

光数据传送器|光通讯传感器极速版OPT系列是利用可见光及不可见光作为信息载体&#xff0c;无需光纤、网线等有线介质&#xff0c;在空中直接进行信息传输的无线方式通信。驱动光源以可见光及不可见光的高速明暗变化来传输数字信号&#xff0c;以极高光频率双向发射接收光信号&a…