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

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

深入解析Java NIO在高并发场景下的性能优化实践指南

《深入解析JavaNIO在高并发场景下的性能优化实践指南》随着互联网业务不断演进,对高并发、低延时网络服务的需求日益增长,本文将深入解析JavaNIO在高并发场景下的性能优化方法,希望对大家有所帮助... 目录简介一、技术背景与应用场景二、核心原理深入分析2.1 Selector多路复用2.2 Buffer

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1