当前位置: 首页 > news >正文

LMDrive数据集构建完全指南:从零开始创建自动驾驶训练数据

LMDrive数据集构建完全指南:从零开始创建自动驾驶训练数据

【免费下载链接】LMDrive[CVPR 2024] LMDrive: Closed-Loop End-to-End Driving with Large Language Models项目地址: https://gitcode.com/gh_mirrors/lm/LMDrive

LMDrive是一个基于大型语言模型的闭环端到端自动驾驶系统,其核心在于利用高质量的自动驾驶训练数据来训练模型。本指南将详细介绍如何从零开始构建LMDrive数据集,包括数据收集、预处理、标注和验证等关键步骤,帮助你快速掌握自动驾驶训练数据的构建流程。

1. 环境准备与项目搭建

在开始数据集构建之前,首先需要准备好相关的环境和工具。LMDrive项目提供了完整的数据集构建工具链,你可以通过以下步骤获取项目代码并配置环境:

  1. 克隆LMDrive项目仓库:

    git clone https://gitcode.com/gh_mirrors/lm/LMDrive
  2. 进入项目目录并安装依赖:

    cd LMDrive pip install -r requirements.txt
  3. 初始化数据集目录结构:

    python dataset/init_dir.py

    该脚本会创建sub-0sub-3四个子目录,每个子目录下包含results文件夹,用于存储不同批次的采集数据。

2. 数据采集:生成自动驾驶场景

LMDrive使用CARLA模拟器进行自动驾驶数据采集,通过预设的路线和场景配置来生成多样化的驾驶数据。数据采集的核心步骤如下:

2.1 配置采集路线与场景

项目提供了data_collection/generate_bashs.py脚本,用于生成不同城镇和场景的采集脚本。该脚本定义了多种训练路线(如routes_town01_short.xmlroutes_town02_tiny.xml等)和对应的场景配置文件(如town01_all_scenarios.json)。

你可以通过修改该脚本来自定义采集路线和场景,例如添加新的城镇路线或调整场景复杂度。

2.2 批量生成采集脚本

运行以下命令生成批量采集脚本:

python data_collection/generate_batch_collect.py

该脚本会在batch_run目录下生成针对每个路线的采集脚本,如run_route_routes_town01_short.sh,用于并行执行多个采集任务。

2.3 执行数据采集

通过以下命令启动数据采集:

bash batch_run/run_route_routes_town01_short.sh

采集过程中,系统会在CARLA模拟器中自动运行预设的驾驶场景,并记录多视角RGB图像、LiDAR数据、车辆状态等信息。

3. 数据预处理:整合与清洗

采集到的原始数据需要经过预处理才能用于模型训练。LMDrive提供了tools/data_preprocessing目录下的多种脚本,用于数据整合、清洗和格式转换。

3.1 多视角图像拼接

batch_merge_data.py脚本用于将不同视角(前视、左视、右视、后视)的图像拼接成一张完整的全景图像,并整合对应的传感器数据和场景信息:

# 关键代码片段(tools/data_preprocessing/batch_merge_data.py) new = Image.new(img_front.mode, (800, 2400)) new.paste(img_front, (0, 0)) new.paste(img_left, (0, 600)) new.paste(img_right, (0, 1200)) new.paste(img_rear, (0, 1800)) new.save(os.path.join(route, "rgb_full", "%04d.jpg" % i))

3.2 数据清洗与过滤

batch_rm_blocked_data.pybatch_stat_blocked_data.py脚本用于检测和移除无效或异常数据,确保数据集的质量。例如,移除被遮挡的图像或传感器故障导致的数据。

4. 数据标注:添加语义信息

高质量的标注数据是训练自动驾驶模型的关键。LMDrive提供了多种工具用于数据标注,包括交通标志识别、车道线检测和场景理解等。

4.1 自动标注工具

tools/data_parsing目录下的脚本(如parse_instruction.pyfollow_rules.py)可用于自动解析驾驶指令和交通规则,为数据添加语义标签。例如,识别"左转"、"停车"等导航指令,并关联对应的图像和传感器数据。

4.2 标注数据格式

标注数据以JSON格式存储,包含车辆状态、环境信息、交通参与者等详细信息。以下是一个标注数据的示例:

{ "timestamp": 1620000000, "position": {"x": 100.0, "y": 200.0, "z": 0.0}, "velocity": {"x": 10.0, "y": 0.0, "z": 0.0}, "actors_data": [ {"id": 1, "type": "car", "position": {"x": 110.0, "y": 200.0, "z": 0.0}} ], "stop_sign": true }

5. 数据集验证与优化

数据集构建完成后,需要进行验证和优化,确保数据的质量和多样性。

5.1 数据质量检查

通过可视化工具检查数据的完整性和标注的准确性。例如,使用LAVIS/app/dataset_browser.py查看数据集样本,确保图像拼接正确、标注信息完整。

5.2 数据集多样性分析

分析数据集的场景分布、天气条件、交通状况等,确保覆盖各种驾驶场景。LMDrive提供了多种路线和场景配置,可通过调整data_collection/generate_bashs.py中的参数来增加数据集的多样性。

6. 数据集使用:训练自动驾驶模型

构建好的数据集可用于训练LMDrive的自动驾驶模型。以下是使用数据集进行模型训练的基本步骤:

  1. 配置训练参数:修改lavis/projects/lmdrive/drivegpt.yaml文件,设置数据集路径、模型参数等。

  2. 启动训练:

    python train.py --cfg lavis/projects/lmdrive/drivegpt.yaml
  3. 评估模型性能:

    python evaluate.py --cfg lavis/projects/lmdrive/drivegpt.yaml

总结

LMDrive数据集构建是一个涵盖数据采集、预处理、标注和验证的完整流程。通过本指南,你可以从零开始创建高质量的自动驾驶训练数据,为训练高性能的自动驾驶模型奠定基础。无论是调整采集场景、优化数据预处理,还是扩展标注维度,LMDrive提供的工具链都能满足你的需求,帮助你构建定制化的自动驾驶数据集。

LMDrive数据处理流程图:展示了从多视角RGB和LiDAR数据到控制信号的完整处理流程,集成了视觉编码器和大型语言模型

【免费下载链接】LMDrive[CVPR 2024] LMDrive: Closed-Loop End-to-End Driving with Large Language Models项目地址: https://gitcode.com/gh_mirrors/lm/LMDrive

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/2851712.html

相关文章:

  • EldenRingSaveCopier:如何精准迁移《艾尔登法环》中的单个游戏角色?
  • UVa 434 Matty‘s Blocks
  • torch_cluster 点云聚类
  • 【硬核】1000道2026秋招Java高频面试题(附答案),覆盖各大厂考点
  • 如何使用Tailwind-Styled-Component告别冗长classNames?5分钟上手教程
  • 终极指南:如何使用Minecraft聊天类型与伤害类型生成器自定义游戏交互体验 [特殊字符]
  • Bandcamp 下载器终极指南:3步轻松备份你的音乐收藏
  • KeymouseGo终极指南:三步掌握免费开源鼠标键盘自动化工具
  • MailCore SMTP完全指南:简单快速发送带附件的电子邮件
  • Diablo Edit2终极指南:暗黑破坏神2角色存档编辑器完整教程
  • Mac Mouse Fix终极指南:3个技巧让你的普通鼠标在Mac上超越苹果触控板体验
  • ansys 求解过程中出现未知错误。检查“求解信息”对象上的“求解器输出”,查找可能的原因。-静力学分析遇到的,这是什么原因——An unknown error occurred ——未找到解决方法
  • 普元EOS平台深度体验:除了‘面向构件’,它的RichWeb控件和Ajax框架到底香不香?
  • InnoCMS v0.4.2 发布:轻量级企业官网 CMS 多方面升级,新增访客追踪等功能
  • MiUnlockTool实战教程:10步完成小米设备引导程序解锁
  • 本科毕设可用的网络流量分类Python项目:含训练好的CNN/VGG模型、论文文档和答辩PPT
  • 4步配置bilibili-downloader:实现B站视频高效下载与管理
  • 为什么选择LearnVIORB?10个理由让你放弃传统SLAM框架
  • Dislocker:如何在Linux系统上实现BitLocker加密卷的跨平台访问
  • 微信小程序计算机毕设之nodejs基于微信小程序印象台院大学资讯新闻设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • i.MX 6硬件设计核心:PLL时钟、I/O电气特性与系统时序深度解析
  • Pytest接口自动化测试脚手架:YAML用例管理+MySQL断言+Allure报告+钉钉/企微通知
  • 微信插件终极使用指南:解锁Mac微信隐藏功能
  • 从‘毛坯’到‘精装’:聊聊我们团队在机器人抓取项目中优化RealSense D435i深度数据的那些事儿
  • 网盘直链解析技术实践指南:如何构建多平台文件下载加速服务
  • 如何在Windows电脑上直接安装安卓应用?APK安装器终极指南
  • 开源三国杀网页版:零安装跨平台,让经典桌游随时随地开战
  • 2026年AI编程软件哪个好?主流工具深度横评
  • 5分钟快速上手:通义千问CLI命令行AI助手的终极完整指南
  • 告别MIF配置恐惧症:手把手教你用OOMMF 2.1格式定义复杂磁化结构与场