十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

LMDrive数据集构建实战指南:从零开始一次搞定自动驾驶训练数据

LMDrive数据集构建实战指南:从零开始一次搞定自动驾驶训练数据 LMDrive数据集构建实战指南从零开始一次搞定自动驾驶训练数据【免费下载链接】LMDrive[CVPR 2024] LMDrive: Closed-Loop End-to-End Driving with Large Language Models项目地址: https://gitcode.com/gh_mirrors/lm/LMDrive你是否也经历过这样的循环环境装了两天模拟器终于跑起来了可打开数据目录却是空的好不容易采到一批数据拼接时又报一堆错。LMDrive 是一个基于大语言模型的闭环端到端自动驾驶框架CVPR 2024它要跑起来前提就是手里有一份高质量的自动驾驶数据集。这篇文章不给你铺理论直接带你把采集→清洗→标注整条流水线亲手跑一遍——每个里程碑都配了可复现的命令和可验证的成功标志照着做就能拿到能直接喂给模型训练的数据。出发前先看清整张地图动手之前先建立全局预期。LMDrive 的数据流水线其实只有四个动作定目录、开采集、做整合、打标签。图上这条从多视角RGBLiDAR到控制信号的闭环就是你采到的每一帧数据最终要走进的模型而你今天要做的就是给这张图供料。四个动作对应仓库里四个目录记住这条对应关系后面就不会迷路流水线动作工具位置产出定目录dataset/init_dir.pysub-0~sub-3 数据骨架开采集data_collection/各路线原始传感器数据做整合tools/data_preprocessing/全景图 完整标注 JSON打标签tools/data_parsing/导航指令标注文件接下来我们以三个里程碑依次攻破。每个里程碑都回答三个问题为什么需要这一步具体怎么操作怎么确认做对了里程碑一让数据有个家——初始化目录骨架为什么需要这一步采集脚本会把数据写进固定的子目录sub-0 到 sub-3目录结构不先建好后面所有脚本都会因为找不到文件夹而直接罢工。先搭架子等于给数据流修好管道。具体怎么操作拿到代码后装依赖并初始化git clone https://gitcode.com/gh_mirrors/lm/LMDrive cd LMDrive pip install -r requirements.txt python dataset/init_dir.py怎么确认做对了执行ls dataset看到sub-0、sub-1、sub-2、sub-3四个目录且每个里面都有results文件夹就说明管道已就位。顺带一提这个仓库把采集器也拆成了三块视觉编码器vision_encoder/、大模型框架LAVIS/和数据工具data_collection/、tools/它们各自独立后续升级互不干扰。里程碑二让车跑起来——批量采集驾驶数据为什么需要这一步模型要看懂真实路况就得有海量带驾驶行为的多视角数据。这一步相当于派一群代驾在 CARLA 模拟器里按固定路线反复跑顺手把前视、左视、右视、后视的 RGB 图、LiDAR 点云和车辆状态全部录下来。具体怎么操作采集脚本是自动生成的你只需两步python data_collection/generate_bashs.py # 为每条路线生成子脚本 python data_collection/generate_batch_collect.py # 汇总出批量执行脚本 bash batch_run/run_route_routes_town01_short.sh # 启动 town01 短路线的采集generate_bashs.py的核心逻辑是把路线文件和场景文件配对再注入端口、种子等环境变量。你只需要知道一条路线配一个场景比如training_routes/routes_town01_short.xml对应scenarios/town01_all_scenarios.json。想换城镇或加路线改这个脚本里的字典即可。每个子脚本最终会调用leaderboard/leaderboard_evaluator.py通过auto_pilot.py这个自动驾驶代理完成闭环驾驶。怎么确认做对了采集开始后进入dataset/sub-0/下的路线目录应能看到measurements/、rgb_front/、rgb_left/、rgb_right/、rgb_rear/、actors_data/、affordances/等文件夹且每帧都有对应文件ls dataset/sub-0/routes_town01_short/measurements/ | head # 应看到 0000.json、0001.json……逐帧递增里程碑三把毛坯变成成品——整合、清洗与标注为什么需要这一步采集得到的是毛坯四路图像是分开存的交通参与者、交通灯等关键信息散落在不同文件里根本没法直接训练。这里要做三件事拼图、去杂、打标——就好比把拍摄的零散素材剪辑成一条有剧本的成片。具体怎么操作先建立数据集索引再逐条处理python tools/data_preprocessing/get_list_file.py dataset python tools/data_preprocessing/batch_merge_data.py dataset拼接的核心是batch_merge_data.py把四路视角按固定坐标贴进一张 800×2400 的全景图同时把车辆状态、参与者数据、停车标志合并进一份完整 JSON# 每帧图像四路视角拼成全景 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)) # 合并标注参与者 停车标志并入测量数据 measurements[actors_data] actors_data measurements[stop_sign] affordances.item()[stop_sign]接着清洗卡死数据、解析导航指令python tools/data_preprocessing/batch_stat_blocked_data.py dataset python tools/data_parsing/parse_instruction.py datasetbatch_stat_blocked_data.py会检测长时间停车但前方无灯的异常片段并输出blocked_stat.txtparse_instruction.py则把左转、跟车、礼让这类驾驶规则在tools/data_parsing/下有turn_rules.py、follow_rules.py、notice_rules.py等规则类自动翻译成带instruction_id的结构化标注写进navigation_instruction_list.txt。怎么确认做对了处理完应同时满足三点路线目录下出现rgb_full/和measurements_full/存在blocked_stat.txtnavigation_instruction_list.txt每行是一条含instruction和instruction_id的 JSON 记录。至此数据已经是可以送进LAVIS/lavis/projects/drivegpt.yaml训练配置的成品了。避坑锦囊新手最易忽略的四个细节问题对策模拟器启动后采集器连不上核对 CARLA 版本0.9.10与 Python 版本3.7/3.8是否匹配base_script.sh里硬编码了对应的.egg路径多个采集任务互相抢端口仓库默认把端口 2000~2007 分配给 4 个子目录自定义时保证端口和 TM 端口不重叠采集到一半崩溃进度全丢不要慌——base_script.sh里RESUMETrue支持断点续跑重跑同一脚本即可接续拼接时报错导致整条路线被删这是项目有意为之batch_merge_data.py会移除损坏路线所以采完先别动原始数据备份一份再跑预处理进阶优化想更上一层楼按需取用入门版扩大采集规模。在generate_bashs.py的 routes 字典里追加additional_routes/下的长路线一次脚本生成直接获得更多里程数据。进阶级增加场景与天气多样性。训练配置drivegpt.yaml中towns和weathers列表支持你指定城镇1~10与天气编号0~11不同天气下的数据能显著提升模型的泛化能力。高手版调整标注规则粒度。parse_instruction.py中processing_rules列表决定跑哪些规则turn_rules.py等文件里的距离阈值如disTrue表示带距离信息都可以按你的任务需求定制。写在最后回头看整条流水线其实只有四句话init_dir 建骨架batch 脚本开采集merge 拼图加清洗parse 规则打标签。把这一趟跑通你手里的就不再是零散图片而是一套带导航指令、车辆状态、交通参与者标注的完整自动驾驶数据集——这正是 LMDrive 训练闭环所需的全部燃料。数据不会自己产生但你可以让它批量产生。从今天起把第一个里程碑跑起来吧剩下的路车会自动开。想深挖某个环节数据采集参数在data_collection/预处理脚本在tools/data_preprocessing/指令解析规则在tools/data_parsing/训练入口配置在LAVIS/lavis/projects/drivegpt.yaml按需查阅即可。【免费下载链接】LMDrive[CVPR 2024] LMDrive: Closed-Loop End-to-End Driving with Large Language Models项目地址: https://gitcode.com/gh_mirrors/lm/LMDrive创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表