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

发布时间:2026/10/3 8:36:03

【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界面操作超简单点击Open Dir打开你的图片文件夹点击Change Save Dir选择标签保存位置重要在菜单栏选择YOLO格式默认是PascalVOC按W开始画框 → 框住物体 → 输入类别 → 按CtrlS保存按D下一张重复以上步骤️此处插入LabelImg界面截图标注一个安全帽 小技巧按A上一张CtrlZ撤销效率翻倍。YOLO标签长这样.txt文件0 0.523 0.412 0.156 0.0830 类别ID从0开始0.523 框中心x坐标归一化0~10.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_dirimages# 所有原始图片label_dirlabels# 所有原始标签train_ratio0.8# 80%训练20%验证# 获取所有图片名无后缀names[f.split(.)[0]forfinos.listdir(img_dir)iff.endswith(.jpg)]random.shuffle(names)split_idxint(len(names)*train_ratio)train_namesnames[:split_idx]val_namesnames[split_idx:]# 创建目标文件夹fordin[images/train,images/val,labels/train,labels/val]:os.makedirs(d,exist_okTrue)# 拷贝文件fornameintrain_names:shutil.copy(f{img_dir}/{name}.jpg,fimages/train/{name}.jpg)shutil.copy(f{label_dir}/{name}.txt,flabels/train/{name}.txt)fornameinval_names:shutil.copy(f{img_dir}/{name}.jpg,fimages/val/{name}.jpg)shutil.copy(f{label_dir}/{name}.txt,flabels/val/{name}.txt)print(fDone! Train:{len(train_names)}, Val:{len(val_names)})运行后自动划分好省时省力。 三、数据增强让模型见过更多“世面”为什么要增强因为真实世界光线、角度千变万化增强后的模型更鲁棒mAP能涨2~5个点。安装albumentations库pipinstallalbumentations增强脚本对图片和标签同步处理importalbumentationsasAimportcv2# 定义增强流水线transformA.Compose([A.HorizontalFlip(p0.5),# 水平翻转A.RandomBrightnessContrast(p0.2),# 随机亮度对比度A.Rotate(limit10,p0.3),# 小角度旋转A.Blur(blur_limit3,p0.1),# 轻微模糊],bbox_paramsA.BboxParams(formatyolo))# 读取图片和对应标签yolo格式imagecv2.imread(img1.jpg)withopen(img1.txt)asf:bboxes[list(map(float,line.strip().split()))forlineinf]# 应用增强augmentedtransform(imageimage,bboxesbboxes)aug_imgaugmented[image]aug_bboxesaugmented[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.yamlYOLO训练配置文件在数据集根目录创建data.yaml# 训练集和验证集路径相对于data.yaml的位置train:images/trainval:images/val# 类别数nc:2# 类别名称顺序必须与标注时的ID一致names:[helmet,head]搞定现在这个文件夹可以直接丢给YOLO训练了。配套资源本文涉及的完整代码、数据集和配置文件已整理归档感兴趣的朋友可以在我的 CSDN 主页简介中找到获取方式。如果觉得有帮助欢迎点赞收藏有问题欢迎评论区交流

相关新闻

Bifrost三星固件管理工具:跨平台固件下载与解密终极指南

Bifrost三星固件管理工具:跨平台固件下载与解密终极指南

2026/8/20 19:05:07

Bifrost三星固件管理工具:跨平台固件下载与解密终极指南 【免费下载链接】Bifrost Cross-platform tool for downloading Samsung mobile device firmware. 项目地址: https://gitcode.com/gh_mirrors/sa/Bifrost 三星设备用户常常面临固件下载和解密的难题&…

音乐歌词获取终极指南:163MusicLyrics高效歌词管理工具完整解析

音乐歌词获取终极指南:163MusicLyrics高效歌词管理工具完整解析

2026/8/13 4:46:36

音乐歌词获取终极指南:163MusicLyrics高效歌词管理工具完整解析 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到心爱歌曲的歌词而烦恼吗&#xf…

深度解析New API:3步构建企业级AI模型网关,解决多模型管理难题

深度解析New API:3步构建企业级AI模型网关,解决多模型管理难题

2026/8/22 0:33:07

深度解析New API:3步构建企业级AI模型网关,解决多模型管理难题 【免费下载链接】new-api A unified AI model hub for aggregation & distribution. It supports cross-converting various LLMs into OpenAI-compatible, Claude-compatible, or Gemi…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/29 22:00:59

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/10/2 14:34:27

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/30 20:35:38

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/10/2 4:43:07

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/10/2 4:42:51

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/30 8:20:32

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…