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

【YOLO实战系列 5/17】从0到1制作YOLO数据集:LabelImg标注→格式转换→增强

# 从0到1制作YOLO数据集:LabelImg标注→格式转换→增强(附脚本)

训练一个自定义YOLO模型,80%的时间都花在数据上。
今天手把手带你走完完整流程:标注 → 格式转换 → 数据增强 → 一键划分
跟着做,你也能做出“喂给YOLO吃”的高质量数据集!

哈喽,这里是【YOLO模型仓库】。

这周开始真正动手:做一个属于你自己的数据集

不管你是想做安全帽检测车辆识别还是水果分类,流程都一样。
我直接把标注工具 + 转换脚本 + 增强脚本全打包给你,文末免费领👇

🧭 今天你将学会

1️⃣ 用LabelImg打标签(附操作动图)
2️⃣ YOLO标签格式长什么样(一看就懂)
3️⃣ 数据集目录结构 & 自动划分脚本
4️⃣ 数据增强:让模型更鲁棒(附代码)
5️⃣ 生成data.yaml,直接喂给YOLO训练

🏷️ 一、LabelImg:图形化标注工具

安装(一行命令)

pipinstalllabelimg

启动

labelimg

界面操作(超简单)

  1. 点击Open Dir打开你的图片文件夹
  2. 点击Change Save Dir选择标签保存位置
  3. 重要:在菜单栏选择YOLO格式(默认是PascalVOC)
  4. W开始画框 → 框住物体 → 输入类别 → 按Ctrl+S保存
  5. D下一张,重复以上步骤

🖼️(此处插入LabelImg界面截图,标注一个安全帽)

💡 小技巧:按A上一张,Ctrl+Z撤销,效率翻倍。

YOLO标签长这样(.txt文件)

0 0.523 0.412 0.156 0.083
  • 0= 类别ID(从0开始)
  • 0.523= 框中心x坐标(归一化,0~1)
  • 0.412= 框中心y坐标
  • 0.156= 框宽度(相对原图比例)
  • 0.083= 框高度

别怕,LabelImg自动帮你算好了,你只管画框。

📁 二、标准数据集目录结构

YOLO要求固定的文件夹组织:

my_dataset/ ├── images/ │ ├── train/ │ │ ├── img1.jpg │ │ └── img2.jpg │ └── val/ │ ├── img3.jpg │ └── img4.jpg └── labels/ ├── train/ │ ├── img1.txt │ └── img2.txt └── val/ ├── img3.txt └── img4.txt

⚠️ 注意:图片和标签一一对应,文件名相同,后缀不同。

一键划分训练/验证集(Python脚本)

把下面脚本保存为split_dataset.py,放在图片和标签同级目录运行:

importosimportrandomimportshutil# 设置路径img_dir="images"# 所有原始图片label_dir="labels"# 所有原始标签train_ratio=0.8# 80%训练,20%验证# 获取所有图片名(无后缀)names=[f.split('.')[0]forfinos.listdir(img_dir)iff.endswith('.jpg')]random.shuffle(names)split_idx=int(len(names)*train_ratio)train_names=names[:split_idx]val_names=names[split_idx:]# 创建目标文件夹fordin["images/train","images/val","labels/train","labels/val"]:os.makedirs(d,exist_ok=True)# 拷贝文件fornameintrain_names:shutil.copy(f"{img_dir}/{name}.jpg",f"images/train/{name}.jpg")shutil.copy(f"{label_dir}/{name}.txt",f"labels/train/{name}.txt")fornameinval_names:shutil.copy(f"{img_dir}/{name}.jpg",f"images/val/{name}.jpg")shutil.copy(f"{label_dir}/{name}.txt",f"labels/val/{name}.txt")print(f"Done! Train:{len(train_names)}, Val:{len(val_names)}")

运行后自动划分好,省时省力。

🔄 三、数据增强:让模型见过更多“世面”

为什么要增强?
因为真实世界光线、角度千变万化,增强后的模型更鲁棒,mAP能涨2~5个点。

安装albumentations库

pipinstallalbumentations

增强脚本(对图片和标签同步处理)

importalbumentationsasAimportcv2# 定义增强流水线transform=A.Compose([A.HorizontalFlip(p=0.5),# 水平翻转A.RandomBrightnessContrast(p=0.2),# 随机亮度对比度A.Rotate(limit=10,p=0.3),# 小角度旋转A.Blur(blur_limit=3,p=0.1),# 轻微模糊],bbox_params=A.BboxParams(format='yolo'))# 读取图片和对应标签(yolo格式)image=cv2.imread("img1.jpg")withopen("img1.txt")asf:bboxes=[list(map(float,line.strip().split()))forlineinf]# 应用增强augmented=transform(image=image,bboxes=bboxes)aug_img=augmented['image']aug_bboxes=augmented['bboxes']# 保存增强后的图片和标签cv2.imwrite("img1_aug.jpg",aug_img)withopen("img1_aug.txt",'w')asf:forbinaug_bboxes:f.write(f"{int(b[4])}{b[0]:.6f}{b[1]:.6f}{b[2]:.6f}{b[3]:.6f}\n")

🖼️(此处插入原图 vs 增强后对比图)

你可以运行多次,把数据集扩大2~3倍。

📄 四、生成data.yaml(YOLO训练配置文件)

在数据集根目录创建data.yaml

# 训练集和验证集路径(相对于data.yaml的位置)train:images/trainval:images/val# 类别数nc:2# 类别名称(顺序必须与标注时的ID一致)names:['helmet','head']

搞定!现在这个文件夹可以直接丢给YOLO训练了。


配套资源:本文涉及的完整代码、数据集和配置文件已整理归档,感兴趣的朋友可以在我的 CSDN 主页简介中找到获取方式。

如果觉得有帮助,欢迎点赞收藏,有问题欢迎评论区交流!

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

相关文章:

  • OpenClaw集成Hugging Face Inference API:构建多模型AI智能体实战指南
  • 玉泉营网站建设怎么做?揭秘本地企业如何用互联网撬动百万流量与品牌升级
  • 服装流水线乱序分拣 AI 检测:基于扫码与视觉双重校验的完整解决方案
  • 从前端到AI大模型工程师的真实踩坑经历,附避坑指南+4个高含金项目实战(小白也能看懂)
  • UE5 PaperCharacter.h源码解析:2D角色系统核心架构与实战应用
  • JVS-AI套件视角:AI智能体落地929个场景?制造业AI落地的门槛到底在哪
  • AI合同审查从试点到规模化落地:企业法务团队的三阶段推进框架
  • 自动化高阶实战:马维斯marvis、龙虾openclaw与Hermes保姆级教程与血泪避坑指南
  • 有域名怎么建设网站:从零基础到上线的保姆级实操指南,小白也能轻松搞定
  • 给浏览器装上“魔法滤镜“:Resource Override如何让你重新定义网页体验 [特殊字符]
  • Python模块导入错误全解析:从sys.path到虚拟环境的完整解决方案
  • 西宁手机网站建设:中小企业如何在移动端流量红利中突围与生存
  • 终极高效抖音下载器:douyin-downloader完整实战指南
  • 济宁网站建设招聘:寻找懂技术更懂人心的团队伙伴,一起打造鲁西南数字名片
  • 双系统卸载指南:安全移除Ubuntu并修复Windows引导
  • 仅剩17%产能冗余的今天,如何用AI数字车间把换型时间压缩至83秒?——博世苏州工厂密档解密
  • Flutter与鸿蒙融合:dolphinsr_dart跨平台记忆算法实战
  • UE4SS Lua表嵌套难题:从内存原理到安全遍历的实战指南
  • Linux系统安装与使用7-Zip:跨平台压缩解压的终极指南
  • 网站业务建设是什么:从0到1打造企业数字化的核心引擎与长期价值
  • Windows Server与Windows客户端的本质区别:从设计哲学到应用场景的深度解析
  • 网站集群建设方案:从单点突破到生态协同的系统化落地指南
  • 机器视觉与PLC职业发展对比:技术本质、市场需求与学习路径全解析
  • SAP PI/PO 消息级安全配置实战解读,别只盯着 HTTPS,真正的安全边界在消息本身
  • PostgreSQL时间函数实战技巧与优化指南
  • 在 SAP PI 双栈系统里创建数据依赖授权用户,别只会给 SAP_XI_DEVELOPER
  • Appium自动化抓取抖音粉丝数据:UI交互式数据采集实战指南
  • 福田商城网站建设:从0到1打造高转化电商平台的实战避坑指南与深度解析
  • 多智能体协同办公:从概念到落地的工程实践指南
  • 危险化学品安全法数据合规解读法律要求到备案数据安全