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.hqwc.cn/news/698441.html

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

相关文章

win10安装mysql8.0+汉化

一、官网安装 MySQL 1. 在mysql官网进行下载页面 2. 下滑页面,选择 MySQL community download 3.下载windows版本 4.选择第二个download 5.不用登陆,no thanks,just start my download. 6.下载 二、安装 1. 双击安装 2. 选 Full->next 3…

LeetCode---循环队列

循环队列就是只有固定的内存,存数据,出数据,但是也和队列一样,先进先出。如下图所示,这是他的样子 在head出,tail进,但是这个如果用数组解决的话,就有问题,力扣给我们的接…

AlertDialog

样式 步骤 xml 得到按钮 单击监听 弹框

GO—web程序中的请求缓存设置

背景 假设用户数据存在数据库,现在需要一个函数,通过用户名称返回用户信息。 期望:在一次web请求中,不过调用多少次这个函数,只请求一次数据库。 基本信息 type User struct {Name stringAge int }func GetALLUser…

react Effect副作用 - 避免滥用Effect

react Effect副作用 - 避免滥用Effect react Effect副作用基础概率什么是纯函数? 什么是副作用函数?纯函数副作用函数 什么时候使用Effect如何使用Effect 避免滥用Effect根据 props 或 state 来更新 state当 props 变化时重置所有 state将数据传递给父组件获取异步数据 react…

Android Activity因配置改变重建,ViewModel#onClear方法为什么不被调用?

1,问题 注意到切换语言或字体大小改变时,Activity会发生重建,但对应的ViewModel却不会被clear,甚至在重建的Activity,通过new ViewModelProvider(this).get(ViewModel.class)也是上一个Activity的实例,为什…

c++高级篇(一) —— 初识Linux下的进程控制

linux的信号 信号的概念 在Linux中,信号是一种用于进程间通信和处理异步事件的机制,用于进程之间相互传递消息和通知进程发生了事件,但是,它不能给进程传递任何数据。 信号产生的原因有很多种,在shell中&#xff0c…

C/C++ VScode: launch: program ...... dose not exist

VScode: launch: program … dose not exist 介绍 参考VS Code 配置 C/C 编程运行环境(保姆级教程)教程配置了VSCode。在配置launch.json适用多个.c 文件编译时,弹出下面错误。 原因和解决方法 是task.json 默认配置的问题。 默认的 cwd参…

Java数据类型:基本类型

Java是一种强类型语言,定义变量时,必须指定数据类型。 // 变量必须指定数据类型 private String username;初学者不免有个疑问:在实际编写代码的过程中,该如何选择数据类型呢? 回答这个问题之前,先来解决…

黑马点评项目总结及个人优化

怎么根据前端代码实现自己的后端业务,实现不同接口 查阅文档:如果有完善的接口文档,可以直接查阅文档来了解后端所有接口的业务逻辑和功能。 阅读后端代码:通过阅读后端代码,特别是控制器(Controller)层和服务(Service)层的代码,可以了解后端所有接口的具体实现逻辑。…

vscode主侧栏源代码管理(Source Control)不见了!!!

今天上班突然发现vscode中主侧栏中源代码管理(Source Control)不见了,项目又着急赶工,没时间找它,可真愁死我了。 以为这样代码没办法提交了??? 嘿嘿, 还好我用命令&a…

不限经验,专业,也能月薪2-3W,这个神仙副业今年太火了!

哈喽,大家好,我是醒醒团队电商花花。 一个月前,有朋友找我咨询视频号的问题,关于营业执照的问题,问我做视频号小店用什么营业执照,我就把视频号小店的营业执照问题给讲一下。 因为个体店执照在视频号上不…