news 2026/7/7 2:13:08

YOLO实战第二篇:数据集从零制作完整教程(标注、划分、清洗、生成yaml,零基础零报错)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO实战第二篇:数据集从零制作完整教程(标注、划分、清洗、生成yaml,零基础零报错)

前言

上一篇我们已经搭建好了100%可用的YOLOv8训练环境,正式进入实战阶段。

做YOLO目标检测项目,环境只占20%,数据集占80%。模型精度高不高、会不会漏检、会不会误检、现场稳不稳定,全部取决于数据集质量

很多新手训练模型效果差,不是参数不对,而是:

  • 数据集杂乱

  • 标注不规范

  • 没有划分训练集/验证集

  • 图片标签不对应

  • yaml配置错误直接训练报错

本篇给大家一套工业级、标准化、零踩坑的YOLO数据集制作全流程,从原始图片 → 清洗 → 标注 → 自动划分 → 生成完整数据集结构,全程手把手。

一、YOLO数据集标准结构(必须严格遵守)

YOLOv8 只认这一套结构,文件夹错一个字母就跑不起来

dataset ├── images │ ├── train │ └── val ├── labels │ ├── train │ └── val └── data.yaml

images 放图片,labels 放对应txt标签。

二、采集图片规范(工业检测专用)

以你的氢化服、安全帽、人员检测场景举例:

  • 分辨率推荐:1280×720 / 960×544(你之前训练的最优尺寸)

  • 包含:正常穿戴、未穿戴、遮挡、光线亮/暗、远近角度

  • 图片清晰、不要模糊、不要过度压缩

  • 图片名无中文、无空格、无特殊符号

三、数据集清洗(必做)

拿到原始图片先清洗,避免脏数据影响模型:

  • 删除模糊、黑屏、反光严重图片

  • 删除重复、高度相似图片

  • 删除没有目标的无效图

可用上一篇教的Python批量文件处理代码统一筛选、改名、整理。

四、标注工具推荐(新手首选)

工业项目通用:LabelImg

优点:免费、轻量、支持YOLO txt格式、上手简单。

标注输出格式选择:YOLO (.txt)

五、标准标注规范(决定模型精度)

新手90%标错的地方:

  • 框不要留太大空白

  • 不要框不全、不要只框一半身体

  • 遮挡目标能看见主体就标

  • 小目标尽量精细标注

标注越精细,mAP、召回率越高,你的模型能达到0.99就是标注规范。

六、自动划分训练集/验证集(代码一键完成)

手动分文件夹太慢,我给你新手万能划分代码:

自动按 8:2 划分 train/val,图片标签自动对应、不乱序。

import os import random import shutil # 配置路径 img_path = "./all_images" label_path = "./all_labels" train_img = "./dataset/images/train" val_img = "./dataset/images/val" train_label = "./dataset/labels/train" val_label = "./dataset/labels/val" # 创建文件夹 os.makedirs(train_img, exist_ok=True) os.makedirs(val_img, exist_ok=True) os.makedirs(train_label, exist_ok=True) os.makedirs(val_label, exist_ok=True) # 获取所有图片 imgs = [f for f in os.listdir(img_path) if f.endswith((".jpg",".png"))] random.shuffle(imgs) # 8:2划分 split = int(len(imgs)*0.8) train_set = imgs[:split] val_set = imgs[split:] # 复制文件 for img in train_set: shutil.copy(os.path.join(img_path,img), os.path.join(train_img,img)) txt = img.replace(".jpg",".txt").replace(".png",".txt") shutil.copy(os.path.join(label_path,txt), os.path.join(train_label,txt)) for img in val_set: shutil.copy(os.path.join(img_path,img), os.path.join(val_img,img)) txt = img.replace(".jpg",".txt").replace(".png",".txt") shutil.copy(os.path.join(label_path,txt), os.path.join(val_label,txt)) print("数据集划分完成!")

七、生成标准 data.yaml(训练核心文件)

yaml 是 YOLO 读取类别、路径的唯一配置文件。

直接复制修改即可:

path: ./dataset train: images/train val: images/val nc: 2 names: ["person","hydrogen_suit"]

nc:代表类别数量

names:对应你的标签名称

八、数据集最终自检清单(训练前必看)

满足以下条件,训练必稳、精度必高:

  • 图片、标签数量完全对应,无缺失

  • 无中文、无乱码、无重名文件

  • 训练集80%、验证集20%

  • yaml路径、类别数完全正确

  • 图片分辨率统一 1280/960 高清格式

九、结尾

到这里,你已经掌握了工业级YOLO数据集完整制作流程

图片采集 → 数据清洗 → 规范标注 → 自动划分 → 生成yaml配置

数据集是模型的底子,底子打好,后面训练出来的模型精度高、不翻车、可落地

下一篇:YOLO高清数据集专属训练教程(1280/960分辨率最优参数、防过拟合、收敛稳、精度拉满)

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

PyTorch 2.x 模型量化实战:3种PTQ方法精度对比与部署指南

PyTorch 2.x 模型量化实战:3种PTQ方法精度对比与部署决策树在边缘计算和移动端部署场景中,模型量化已成为降低计算资源消耗、提升推理速度的关键技术。PyTorch 2.x 对量化工具链进行了全面升级,本文将深入解析三种训练后量化(PTQ&…

作者头像 李华
网站建设 2026/7/7 2:02:37

如何快速解锁中兴光猫权限:3步完成设备管理终极指南

如何快速解锁中兴光猫权限:3步完成设备管理终极指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾因光猫设备权限限制而感到困扰?无法深度配置网络&a…

作者头像 李华
网站建设 2026/7/7 2:00:42

WebODM:从无人机图像到专业级三维地理数据的完整解决方案

WebODM:从无人机图像到专业级三维地理数据的完整解决方案 【免费下载链接】WebODM User-friendly, commercial-grade software for processing aerial imagery. ✈️ Download it for free! 项目地址: https://gitcode.com/gh_mirrors/we/WebODM 你是否曾面临…

作者头像 李华