news 2026/8/21 16:16:00

如何为 BMW-YOLOv4-Training-Automation 准备数据集:YOLO 标注格式完整指南(附示例数据集解析)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何为 BMW-YOLOv4-Training-Automation 准备数据集:YOLO 标注格式完整指南(附示例数据集解析)

如何为 BMW-YOLOv4-Training-Automation 准备数据集:YOLO 标注格式完整指南(附示例数据集解析)

【免费下载链接】BMW-YOLOv4-Training-AutomationThis repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.项目地址: https://gitcode.com/gh_mirrors/bm/BMW-YOLOv4-Training-Automation

BMW-YOLOv4-Training-Automation 是一个几乎"零配置"的 YOLOv4 / YOLOv3 训练自动化项目:你只要提供一份符合YOLO 标注格式的数据集,就能立刻启动训练,并通过 TensorBoard、REST API 和 Web 界面随时监控。对新手来说,最容易卡住的环节恰恰是数据集准备。本文将以项目自带的 sample_dataset 示例数据集为例,手把手讲解 YOLO 数据集标注格式、目录结构、配置文件写法,帮你快速迈出 YOLOv4 训练的第一步。

什么是 YOLO 标注格式?一文看懂 txt 标签文件

YOLO 标注格式把每个目标写成一行纯文本,一条记录包含 5 个数值:

类别ID 中心点X 中心点Y 宽度 高度

  • 类别ID:从 0 开始计数的整数,对应 classes 列表中的顺序
  • 中心点X / 中心点Y:目标框中心点的归一化坐标(范围 0~1)
  • 宽度 / 高度:目标框的归一化宽高(范围 0~1)

所谓"归一化",就是除以图片的实际宽高。例如图片宽 1280 像素、目标中心在 x=640 处,那么中心点X 记为 0.5。这样设计的好处是:无论图片分辨率怎么变,标注都无需改动,这也是 darknet 系 YOLO 训练的标准输入。

官方示例数据集深度解析:从 txt 标注看懂图像内容

打开示例数据集中的标签文件sample_dataset/labels/yolo/training_images_take_7_279.txt,会看到 5 行标注:

1 0.4097656 0.5451389 0.03046875 0.08194444 1 0.3789062 0.5444444 0.0234375 0.07222223 1 0.5632812 0.5416667 0.021875 0.06666667 1 0.6183594 0.5388889 0.03359375 0.075 0 0.4953125 0.4166667 0.334375 0.3555556

结合sample_dataset/train_config.json中定义的类别列表["Dolly", "Wheels"],含义立刻清晰:

  • 类别 0 = Dolly(红色平板推车),类别 1 = Wheels(轮子)
  • 前 4 行是 4 个轮子的小目标框,归一化宽高只有 0.02~0.08,属于典型的小目标
  • 最后一行是整车的大目标框,宽高约 0.33 x 0.35,覆盖画面主体

对照上面的示例图片,你会发现标注与画面完全吻合——这正是验证数据集是否合格的最佳方式:用眼睛抽查标签和图片的对应关系

数据集目录结构:图片与标签文件如何一一对应

YOLO 数据集准备的核心规则只有一条:标签文件与图片同名同前缀,仅扩展名不同。示例数据集的结构如下:

sample_dataset/ ├── images/ 📁 所有训练图片(PNG / JPG) │ └── training_images_take_7_279.png ├── labels/ │ └── yolo/ 📁 所有 YOLO 标注 │ └── training_images_take_7_279.txt └── train_config.json ⚙️ 训练配置文件
  • 图片 279 的标注,就是同名的training_images_take_7_279.txt
  • 每张图片必须有对应 txt;没有目标的图片也要放一个空 txt
  • 图片支持 .png / .jpg / .jpeg 等常见格式(扩展名大小写均可)

train_config.json 数据集配置要点:classes 与 train_ratio

准备好图片和标注后,还需要一份训练配置。项目提供了现成模板config/train_config.json.template,复制一份并去掉.template后缀即可使用,重点修改三个数据集相关字段:

  • data.name:数据集名称,例如 "obj",会用作生成的配置文件名
  • data.classes:类别列表,顺序必须与 txt 里的类别 ID 一一对应
  • data.train_ratio:训练集占比,默认 0.8(即 80% 训练、20% 测试)

如果使用 YOLOv4,记得在model.model_name中选择yolov4;YOLOv4 专属的mosaicblur数据增强开关也在这里配置。字段的完整合法性校验规则可参考config/train_config_schema.json

训练集与测试集自动划分:train.txt 与 test.txt 的秘密

在 BMW-YOLOv4-Training-Automation 中,你甚至不需要手动准备 train.txt 和 test.txt:

  • 提供了 train.txt / test.txt:训练脚本会读取并自动把其中的图片路径改写为绝对路径
  • 未提供这两个文件:脚本依据 train_ratio 自动按类别均衡划分,先从数量最少的类别开始切分,确保每个类别在训练集和测试集中都有分布(核心逻辑位于src/train_utils.py的 split_train_test 函数,流程编排在src/train_darknet.py

划分完成后,脚本还会自动生成 obj.names、obj.data 等 darknet 配套文件,并从测试集中挑一张图绘制 ground truth,方便你直观检查标注是否正确。

数据集准备自检清单 ✅

提交训练前,快速检查以下 5 项:

  1. ✅ 每张图片都有同名 .txt 标注,且放在 labels/yolo 目录下
  2. ✅ 所有坐标都是归一化后的 0~1 小数,没有越界值
  3. ✅ 类别 ID 从 0 开始,顺序与 train_config.json 的 classes 完全一致
  4. ✅ train_ratio 设置在 0.7~0.9 之间,并已确认数据总量
  5. ✅ 每个类别的图片数量充足,避免某个类别只有一两张图

小结:从数据集到训练只差一步

只要遵循 YOLO 标注格式准备好图片与标签,再配置好 train_config.json,就能让 BMW-YOLOv4-Training-Automation 自动完成剩余工作——划分数据集、生成配置文件、启动训练,并通过 TensorBoard 和 Web 界面实时监控。现在就去用项目自带的 sample_dataset 跑通你的第一次 YOLOv4 训练吧!🚀

【免费下载链接】BMW-YOLOv4-Training-AutomationThis repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.项目地址: https://gitcode.com/gh_mirrors/bm/BMW-YOLOv4-Training-Automation

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 16:14:43

Seraphine:英雄联盟战绩查询与自动 BP 工具

Seraphine:英雄联盟战绩查询与自动 BP 工具 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine Seraphine 是一款基于 LCU API(英雄联盟客户端本地接口)的英雄联盟战绩查询工具…

作者头像 李华
网站建设 2026/8/21 16:14:11

IDM下载加速不失效:开源脚本冻结试用期的完整实战指南

IDM下载加速不失效:开源脚本冻结试用期的完整实战指南 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 你的Internet Download Manager(ID…

作者头像 李华
网站建设 2026/8/21 16:13:18

【单片机毕设案例分享】基于 STM32 的人体心率血氧体温采集终端系统开发 基于 STM32 的便携式智能健康预警监测器设计(013204)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机,STM32单片机,51单片机,J…

作者头像 李华
网站建设 2026/8/21 16:07:10

从“振兴杯”云计算运维赛看企业级云平台实战技能体系构建

1. 赛项回顾与核心价值剖析去年年底,我有幸作为参赛选手,亲身参与了第十七届“振兴杯”全国青年职业技能大赛中“计算机程序设计员(云计算平台与运维)”赛项的角逐。对于很多圈内朋友来说,“振兴杯”这个名字可能既熟悉…

作者头像 李华