从零搭建 LMDrive 自动驾驶数据集:采集、清洗与标注四步实战
从零搭建 LMDrive 自动驾驶数据集采集、清洗与标注四步实战【免费下载链接】LMDrive[CVPR 2024] LMDrive: Closed-Loop End-to-End Driving with Large Language Models项目地址: https://gitcode.com/gh_mirrors/lm/LMDrive训练一个能听懂前方路口左转注意右侧来车这类自然语言指令的自动驾驶大模型你遇到的第一个拦路虎往往是数据——真实道路数据买不起、版权不清、标注成本极高。而 CVPR 2024 的 LMDrive 项目恰好把整条语言引导端到端驾驶的数据生产链路完整开源了从 CARLA 模拟器里的规则专家车采集多视角传感器数据到拼接、清洗、打上导航与提示指令再到直接喂给视觉编码器和语言模型做两阶段训练。本文将这套链路拆解为四个可独立上手的模块手把手带你跑通一次完整的 LMDrive 数据集构建流程。一、先搞懂它怎么运作三个输入、一套闭环LMDrive 的核心思路可以概括为一句话把驾驶当作看得见的对话。它同时接收三类信息来生成方向盘、油门、刹车控制信号多视角传感器流前、左、右、后四路相机画面外加 360° 激光雷达点云让模型看清当前场景导航指令来自导航软件或人类的自然语言如第二个出口驶出环岛人类提示指令notice针对突发与长尾场景的提醒如前方有车辆切入请注意减速。项目把这三类信号组织成约 6.4 万条数据片段每段持续 2~20 秒采集频率约 10Hz。每条片段由一段导航指令、若干提示指令、一组多模态多视角传感器帧和对应的控制真值组成。训练分两步走先用视觉编码器把传感器数据压缩成视觉 token对应vision_encoder目录再在 LAVIS 框架下做指令微调对齐语言 视觉 → 控制的映射关系。了解了这个闭环下面四个模块的操作你就能明白每一步到底在为模型准备什么。二、模块一搭好采集流水线让 4 台 CARLA 并行产数据数据采集是整套流程的地基目标是让规则专家车leaderboard/team_code/auto_pilot.py在 8 个城镇、随机天气与随机交通场景下反复跑路线把每一帧的多模态数据落盘。项目默认用 4 台并行的 CARLA 服务器提速端口分别占用 2000/2002/2004/2006。第 1 步克隆并初始化目录结构git clone https://gitcode.com/gh_mirrors/lm/LMDrive cd LMDrive python dataset/init_dir.pyinit_dir.py会自动创建sub-0到sub-3四个采集槽位每个槽位下再生成一个results文件夹用于存放对应服务器的运行结果与检查点。执行后你可以用ls dataset/确认四个子目录是否就位。第 2 步生成采集脚本先编辑data_collection/generate_bashs.py它内部维护了一张路线 → 场景映射表例如routes_town01_short.xml对应town01_all_scenarios.json。你可以按需增删路线或把ip_ports列表从 4 台扩展到更多服务器。随后依次运行cd data_collection python generate_bashs.py # 为每个槽位生成带端口/种子参数的脚本 python generate_batch_collect.py # 生成一键并行执行的聚合脚本执行后你会看到bashs/sub-0/等目录下出现了大量形如routes_town01_short.sh的单路线脚本以及batch_run/下的聚合入口。单个脚本内部由base_script.sh拼装而成核心是调用leaderboard_evaluator.py并把SAVE_PATH指向dataset/sub-N/data。这里值得留意auto_agent.yaml中的两个参数save_skip_frames: 2控制抽帧间隔waypoint_disturb: 0.2给专家车的目标点加随机扰动让同一条路线每次跑出的轨迹略有差异从而提升数据多样性。第 3 步启动服务器并开跑先在 CARLA 根目录分别用不同 GPU 启动 4 个实例也可改用 Docker 拉取carlasim/carla:0.9.10.1CUDA_VISIBLE_DEVICES0 ./CarlaUE4.sh --world-port2000 -opengl CUDA_VISIBLE_DEVICES1 ./CarlaUE4.sh --world-port2002 -opengl CUDA_VISIBLE_DEVICES2 ./CarlaUE4.sh --world-port2004 -opengl CUDA_VISIBLE_DEVICES3 ./CarlaUE4.sh --world-port2006 -opengl 然后挑一条路线开始采集bash data_collection/batch_run/run_route_routes_town01_short.sh每个跑完的路线会在dataset/sub-N/data/下生成一个以城镇_路线长度_天气_时间戳命名的文件夹内部按帧存放rgb_front/left/right/rear、lidar、measurements、actors_data、affordances等子目录。这一步是整个流程中最耗时的环节建议先用tiny路线验证全链路通畅再大规模铺开。三、模块二预处理五连招把原始帧整理成可训练样本采集得到的原始数据散落在大量小文件中直接训练会让 IO 成为瓶颈。tools/data_preprocessing下的脚本按固定顺序完成整合与清洗务必依次执行# 1. 生成索引文件 dataset_index.txt python get_list_file.py $DATASET_ROOT # 2. 合并多视角图像与测量数据可选强烈建议 python batch_merge_data.py $DATASET_ROOT # 3. 删除合并后冗余的原始文件可选 python batch_rm_rgb_data.py $DATASET_ROOT # 4. 统计长时间被堵住的帧 python batch_stat_blocked_data.py $DATASET_ROOT # 5. 删除被堵帧并重排帧号 python batch_rm_blocked_data.py $DATASET_ROOT python batch_recollect_data.py $DATASET_ROOT # 6. 把全部帧的测量数据合并为单个文件 python batch_merge_measurements.py $DATASET_ROOT几个关键细节值得单独说明get_list_file.py会统计每个路线文件夹的帧数不足 32 帧的路线会被直接剔除——太短的片段对训练毫无价值只会在索引里制造噪声batch_merge_data.py是拼图 整合二合一它把四路相机帧按固定偏移粘成一张 800×2400 的大图存入rgb_full同时把measurements、actors_data和停车标志信息合并成measurements_full训练时只需按帧号读取一次显著减少 IO 次数batch_stat_blocked_data.py通过一组启发式条件判断堵车帧当车速低于 0.1、前方无红灯但车辆仍长时间刹停超过 10 帧时判定该路段数据无效统计结果写入blocked_stat.txt供下一步删除。预处理完成后每个路线文件夹就规范成了rgb_full、lidar、measurements_full、affordances等标准结构顶层索引文件形如routes_town06_long_w7_11_28_18_28_35/ 1062 routes_town01_short_w2_11_16_08_27_10/ 1785每行是相对路径 帧数训练代码会用它拼接出完整的读取路径。四、模块三规则引擎标注指令让每一帧都有台词这一步是把普通传感器数据变成语言驾驶数据的魔法时刻。tools/data_parsing下四个规则文件定义了四类标注器turn_rules.py转向类指令如 Turn-01 到 Turn-06覆盖单左转、单右转、直行、环岛出口、连续变道等组合follow_rules.py跟车类指令按跟车风格与方向细分notice_rules.py提示类指令对应 CARLA 官方场景库里的 Scenario1~Scenario9例如前方车辆切入、行人穿行等other_rules.py兜底规则覆盖前两类覆盖不到的杂项场景。运行解析脚本即可批量产出三种标注文件python3 parse_instruction.py $DATASET_ROOT # 输出 navigation_instruction_list.txt python3 parse_notice.py $DATASET_ROOT # 输出 notice_instruction_list.txt python3 parse_misleading.py $DATASET_ROOT # 输出 misleading_data.txt每种规则都会从一整段路线里掐出对应的时间窗口输出一条 JSON 记录包含帧号区间、指令文本、指令 ID、城镇编号、天气编号、路线路径等字段。例如一条右转指令会被解析为带有frame_id、instruction、town_id、route_path的完整样本训练时直接按这些字段切取对应的视觉帧。misleading_data.txt记录的是带误导性的片段用来训练模型在错误指令下保持安全的鲁棒性——这个设计在多数同类数据集中是少见的值得你在复现时重点验证。五、模块四两阶段训练闭环验证数据质量数据是否合格最终要看模型能不能学会。LMDrive 的训练分为两阶段用你刚构建的数据即可完整跑通阶段一视觉编码器预训练cd vision_encoder bash scripts/train.sh此阶段把多视角图像与点云编码成视觉 token产出预训练 checkpoint默认保存在output/目录。脚本里可配置 GPU 数量、DATASET_ROOT路径、模型结构如memfuser_baseline_e1d3_r26以及--train-towns、--val-towns这类数据过滤选项——你可以刻意让训练集与验证集使用不同的城镇组合检验泛化能力。阶段二指令微调cd LAVIS bash run.sh 8 lavis/projects/lmdrive/notice_llava15_visual_encoder_r50_seq40.yaml微调阶段对齐指令文本 视觉 token → 控制信号训练配置里要注意preception_model_ckpt指向阶段一的输出storage指向你的数据集根目录token_max_length控制最多输入多少帧、sample_interval控制抽帧步长。use_notice_prompt开关决定是否把提示指令混入训练——在 LangAuto-Notice 基准上验证模型对人类提示的响应能力时这个开关必须打开。闭环评估启动 CARLA 服务器后设置leaderboard/scripts/run_evaluation.sh中的TEAM_AGENT为leaderboard/team_code/lmdrive_agent.py、ROUTES指向langauto/下的benchmark_long.xml短/微小基准则换成 short/tiny 版本再运行脚本即可得到驾驶分数。官方报告中长基准约 36.2、短基准约 50.6 的成绩可以作为你数据集质量的对照基准。六、避坑指南新手最容易翻车的 5 个细节端口与种子不一致generate_bashs.py里每个槽位的PORT必须和实际启动的 CARLA 端口一一对应否则采集脚本会连上错误的模拟器甚至静默失败。建议改完脚本后先抽查一个生成文件里的export PORT是否与预期一致。漏装 CARLA Python APIbase_script.sh中硬编码了carla-0.9.10-py3.7的 egg 路径如果你的 Python 版本或 CARLA 小版本不同必须同步修改这行PYTHONPATH这是报ModuleNotFoundError: carla的头号来源。跳步执行预处理batch_merge_data.py依赖dataset_index.txt已生成batch_rm_blocked_data.py依赖统计结果顺序颠倒会得到空索引或误删数据。建议把七条命令写成一行串联每次执行前先确认上一步的输出文件存在。忽视 32 帧过滤get_list_file.py会静默丢弃短路线若你发现索引里的路线数远少于采集数先别怀疑脚本去检查是否大量路线因异常中断只有个位数帧。微调配置与阶段一产物不匹配preception_model_ckpt路径写错或模型结构不一致会在加载权重时抛出形状不匹配错误。建议训练前用一行 Python 脚本torch.load检查 checkpoint 的键结构是否与配置文件中的模型定义一致。七、提速技巧让采集与清洗快 3 倍并行度拉满所有预处理脚本底层都用了multiprocessing.Pool(8)如果机器核数更多直接把process调用处的进程数改到 CPU 核数附近多路线处理近乎线性加速。按需裁剪路线验证链路时只保留routes_town01_tiny.xml这类短路线一条几十秒就能跑完确认无误后再启用 long 路线全量采集能省下大量试错时间。多机联合采集generate_bashs.py的ip_ports列表不仅支持 localhost也可以填局域网内其他机器的 IP——把 4 台 CARLA 分布到多台 GPU 机器上采集吞吐可以成倍放大。先复用官方数据再自建官方已在公开渠道发布了约 6.4 万条数据片段想先验证训练流程正确性可以直接下载官方数据跑通两阶段训练再回头用自建数据替换避免数据采完才发现代码有问题的尴尬。总结与下一步至此你已完整走通 LMDrive 数据集的四条主线用规则专家车在 CARLA 里并行采集多视角数据、按固定顺序做整合与清洗、用规则引擎自动标注导航与提示指令、再通过两阶段训练完成闭环验证。这套流水线的价值在于它把语言驾驶数据的生产成本压到了极低——不需要人工标注不依赖真实路采一台 GPU 服务器就能按需生成海量多样化数据。如果你打算更进一步可以从三个方向深入一是修改tools/data_parsing下的规则类为数据集注入自定义场景语义二是调整auto_agent.yaml的扰动参数与天气组合系统性提升数据分布覆盖率三是把采集的天气、城镇、场景类型做成分布统计表作为论文或技术报告中的数据多样性论证。数据是你训练的第一个动作也是决定模型上限的那块地基值得多花时间打磨。【免费下载链接】LMDrive[CVPR 2024] LMDrive: Closed-Loop End-to-End Driving with Large Language Models项目地址: https://gitcode.com/gh_mirrors/lm/LMDrive创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

HyperNetX 聚类实战:模块度与拉普拉斯谱聚类算法深度解析

HyperNetX 聚类实战:模块度与拉普拉斯谱聚类算法深度解析

HyperNetX 聚类实战:模块度与拉普拉斯谱聚类算法深度解析 【免费下载链接】HyperNetX Python package for hypergraph analysis and visualization. 项目地址: https://gitcode.com/gh_mirrors/hy/HyperNetX 超图聚类是复杂网络分析中极具价值的工具&#xf…

2026/8/17 23:16:08 阅读更多 →
凌晨三点,我终于用 RPG Maker Decrypter 拆开了那包加密的游戏资源

凌晨三点,我终于用 RPG Maker Decrypter 拆开了那包加密的游戏资源

凌晨三点,我终于用 RPG Maker Decrypter 拆开了那包加密的游戏资源 【免费下载链接】RPGMakerDecrypter Tool for decrypting and extracting RPG Maker XP, VX and VX Ace encrypted archives and MV and MZ encrypted files. 项目地址: https://gitcode.com/gh_…

2026/8/16 19:18:59 阅读更多 →
从榜样故事中提取成长元件:三层滤网分析法与个性化行动设计

从榜样故事中提取成长元件:三层滤网分析法与个性化行动设计

1. 项目概述:当“奋斗”成为集体叙事,我们如何定义自己的“榜样”?又到了一年中的某个特定节点,无论是年初的规划季、年中的冲刺期,还是年末的复盘时,我们总能在各种场合——公司的内网、团队的群聊、行业的…

2026/8/18 1:57:12 阅读更多 →

最新新闻

OSPF实战指南:从原理到配置,解决大规模网络动态路由难题

OSPF实战指南:从原理到配置,解决大规模网络动态路由难题

如果你在项目中遇到过这样的场景:一个简单的网络拓扑调整,却导致全网路由震荡,业务中断半小时;或者新增一个分支机构,配置静态路由的工作量让你怀疑人生;又或者网络规模稍大一点,路由表就变得臃…

2026/8/18 3:20:08 阅读更多 →
道奇Ram 1500 Rebel深度解析:硬核越野与豪华舒适如何兼得?

道奇Ram 1500 Rebel深度解析:硬核越野与豪华舒适如何兼得?

1. 从“叛逆者”到“全能战士”:道奇Ram 1500 Rebel的定位解析当“皮卡”这个词出现在脑海中,很多人会立刻联想到两种极端形象:要么是工地上尘土飞扬的工具车,要么是镀铬闪亮、价格高昂的豪华玩具。而道奇Ram 1500 Rebel&#xff…

2026/8/18 3:20:08 阅读更多 →
Qwen 3.8 27B本地部署与实测指南:从环境配置到进阶应用

Qwen 3.8 27B本地部署与实测指南:从环境配置到进阶应用

这类大模型新版本发布,最值得关注的往往不是参数规模,而是它在普通开发者环境下的“可用性”和“易用性”到底提升了多少。Qwen 3.8 27B 的发布,核心看点在于它提供了一个在 27B 参数量级上,对代码、数学、推理和长上下文支持更均…

2026/8/18 3:20:08 阅读更多 →
C++面向对象编程:从构造函数到移动语义的完整生命周期管理实践

C++面向对象编程:从构造函数到移动语义的完整生命周期管理实践

1. 项目概述:面向对象编程中的经典关系建模在C的面向对象编程学习路上,几乎每个开发者都会遇到“老师与学生”这个经典的建模问题。它远不止是一个简单的课堂练习,而是理解类与类之间关系、掌握构造函数与析构函数生命周期管理、以及实践拷贝…

2026/8/18 3:20:08 阅读更多 →
IGBT失效分析实战指南:从六大失效模式到系统化诊断流程

IGBT失效分析实战指南:从六大失效模式到系统化诊断流程

1. 从一次深夜炸管说起:为什么失效分析是IGBT应用的必修课凌晨两点,实验室里弥漫着一股淡淡的焦糊味,示波器的屏幕上只剩下一条绝望的直线。我盯着眼前这块刚上电就宣告“阵亡”的逆变器板子,心里五味杂陈——又一颗IGBT模块炸了。…

2026/8/18 3:20:08 阅读更多 →
Nginx HTTPS证书更换全流程:从原理到实战的运维指南

Nginx HTTPS证书更换全流程:从原理到实战的运维指南

1. 项目概述:为什么SSL证书更换是运维的必修课做Web运维或者后端开发的朋友,对Nginx一定不陌生。它就像我们线上服务的“门卫”,负责把用户的请求引导到正确的后端服务。而HTTPS,则是这个“门卫”与访客之间进行加密通话的“安全信…

2026/8/18 3:19:08 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →