news 2026/4/23 6:36:47

YOLO11数据集制作全流程,简单易懂

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO11数据集制作全流程,简单易懂

YOLO11数据集制作全流程,简单易懂

你是不是也遇到过这样的问题:想用YOLO11做目标检测,却卡在第一步——数据集怎么准备?标注工具不会用、文件结构理不清、标签格式总出错、训练前还要手动划分训练集验证集……一堆步骤让人望而却步。

别担心。这篇文章不讲理论、不堆参数,只带你从零开始,亲手做出一个能直接喂给YOLO11训练的可用数据集。全程用最直白的语言、最贴近实际的操作顺序,连Labelme怎么画框、json怎么转txt、文件夹怎么建都手把手说明白。哪怕你没碰过标注工具,也能照着做完。

我们用的是真实可用的YOLO11镜像环境(ultralytics-8.3.9),所有路径、脚本、配置都来自镜像内预置结构,无需额外安装或修改路径。文末还会告诉你怎么把做好的数据集立刻跑起来训练——真正实现“做完就能用”。


1. 先搞清楚:YOLO11要什么样的数据

YOLO系列模型对数据格式有明确要求,不是随便放几张图+几个标签就行。它需要三样东西:

  • 图片文件:JPG或PNG格式,放在统一目录下
  • 标签文件:与图片同名的.txt文件,每行代表一个目标,格式为:
    类别序号 中心x坐标(归一化) 中心y坐标(归一化) 宽度(归一化) 高度(归一化)
  • 数据配置文件:一个YAML文件,告诉模型“图在哪”“标签在哪”“有几个类别”

这三者缺一不可,但别怕——我们接下来就一步步把它们全配齐。

小贴士:所谓“归一化”,就是把像素值除以图片宽高。比如一张640×480的图,目标框左上角是(100, 80),宽高是200×150,那么中心点就是(100+100, 80+75) = (200, 155),归一化后就是(200/640, 155/480) ≈ (0.3125, 0.3229),宽高归一化为(200/640, 150/480) ≈ (0.3125, 0.3125)。这些计算不用你手算,后面脚本自动完成。


2. 建立清晰的数据文件夹结构

先在项目里搭好“家”。YOLO11镜像中已预置了标准路径,我们只需按约定把文件放对位置。

进入项目根目录:

cd ultralytics-8.3.9/

然后创建以下层级(用mkdir -p一次性建好):

mkdir -p resources/images/det/json mkdir -p resources/images/det/datasets/images mkdir -p resources/images/det/datasets/labels mkdir -p resources/config/data

这个结构的意思是:

  • json/:存放你用Labelme标注生成的原始.json文件(含图片路径和框坐标)
  • datasets/images/:存放所有原始图片(训练+验证用的图都放这里)
  • datasets/labels/:存放转换后的.txt标签文件(YOLO11真正读的格式)
  • config/data/:存放数据集配置文件(告诉模型去哪里找图和标签)

关键提醒:所有原始图片必须同时放在json/datasets/images/两个文件夹里。因为Labelme需要读图来标注,而YOLO11训练时只认datasets/images/下的图。这是新手最容易漏的一步。


3. 用Labelme标出你的第一个目标框

Labelme是开源、免费、界面清爽的标注工具,YOLO11镜像里已预装,直接启动即可。

3.1 启动Labelme并加载图片

在终端中进入标注目录:

cd resources/images/det/json labelme

软件启动后,点击左上角Open Dir→ 选择resources/images/det/json文件夹 → 点击任意一张图开始标注。

3.2 画框 + 命名类别

  • 左键按住拖动,画一个矩形框圈住目标(比如一个人、一辆车)
  • 松开鼠标后,弹出对话框,在Label输入框里填类别名:personcar(注意大小写和拼写,必须和后续配置文件完全一致)
  • 点击OK,框就标好了
  • 继续标下一个目标,直到这张图上所有目标都框完

3.3 保存为JSON

标完一张图,点击顶部菜单Save→ 保存为同名.json文件(如img001.jpg对应img001.json)。
Labelme会自动把框的坐标、类别、图片路径等信息存进JSON里,我们不需要看内容,只要确保它存在就行。

实操建议:先拿5张图练手(人+车各几例),确保你会画框、会命名、会保存。不要一上来就标100张——先跑通流程更重要。


4. 把JSON转成YOLO11能读的TXT标签

Labelme生成的JSON包含丰富信息,但YOLO11只认简单的TXT格式。镜像里已提供转换脚本,一行命令搞定。

回到项目根目录,运行转换命令:

python tool/tool_json2label_det.py \ --json_dir resources/images/det/json \ --img_dir resources/images/det/datasets/images \ --save_dir resources/images/det/datasets/labels

执行后,你会看到:

  • resources/images/det/datasets/labels/下多出和图片同名的.txt文件(如img001.txt
  • 每个TXT里是若干行数字,格式正是YOLO要求的:类别序号 x_center y_center width height(全部归一化)

打开一个txt看看,内容类似这样:

0 0.423 0.615 0.210 0.382 1 0.785 0.521 0.320 0.215

表示:第1行是person(序号0),在图中居中位置偏右下;第2行是car(序号1),在右上区域。

验证是否成功:检查labels/里的txt数量是否和images/里的jpg数量一致;打开一个txt,确认行数是否等于这张图中标出的目标数。


5. 划分训练集和验证集(自动打乱+分比例)

YOLO11训练必须分开train/val/两组数据。镜像自带分配脚本,支持按比例随机划分,还能自动创建对应子文件夹。

运行命令:

python tool/tool_det2datasets.py \ --img_dir resources/images/det/datasets/images \ --label_dir resources/images/det/datasets/labels \ --save_dir resources/images/det/datasets \ --train_ratio 0.8

参数说明:

  • --train_ratio 0.8表示80%的图片进训练集,20%进验证集(你也可以改成0.7或0.9)
  • 脚本会自动在datasets/下新建train/val/两个文件夹,并把图片和对应标签分别复制进去

执行完成后,你的datasets/目录结构变成这样:

datasets/ ├── images/ │ ├── img001.jpg │ └── ... ├── labels/ │ ├── img001.txt │ └── ... ├── train/ │ ├── images/ ← 训练用图 │ └── labels/ ← 训练用标签 └── val/ ├── images/ ← 验证用图 └── labels/ ← 验证用标签

小技巧:脚本会跳过没有对应标签的图片(比如你标了一半就停了),所以不用担心误操作污染数据集。


6. 写好数据配置文件(YAML)

现在图片有了、标签有了、分组也有了,最后一步:写一个YAML文件,告诉YOLO11“我的数据长什么样”。

resources/config/data/下新建文件yolo11-det.yaml,内容如下:

# 数据集根路径(相对于该yaml文件的位置) path: ../ultralytics-8.3.9/resources/images/det/datasets # 训练集、验证集、测试集的子目录名(注意:这里填文件夹名,不是完整路径) train: train/images val: val/images test: val/images # 测试集可选,暂用验证集代替 # 类别名称,序号从0开始,顺序必须和标签中的序号严格对应 names: 0: person 1: car

特别注意两点:

  • path是相对路径,指向datasets/这一级,不是datasets/images/
  • train/val的值是train/images,不是train/—— 因为YOLO11默认在子目录下找images/labels/

保存后,这个文件就是你整个数据集的“身份证”,训练时会靠它定位所有资源。


7. 验证数据集是否真的可用

在你急着训练之前,先快速验证一下:数据集有没有路径错误?标签格式对不对?类别名拼错没?

YOLO11自带数据检查功能。运行这条命令:

python -c "from ultralytics.data.utils import check_det_dataset; check_det_dataset('resources/config/data/yolo11-det.yaml')"

如果一切正常,你会看到类似输出:

Found 40 images and 40 labels in train... Found 10 images and 10 labels in val... All labels checked successfully.

如果报错,常见原因有:

  • path路径写错 → 检查yolo11-det.yaml中的path是否能从该文件位置正确抵达datasets/
  • train:后面少了/images→ 必须是train/images,不是train
  • 类别名大小写不一致(如写了Person)→ 必须小写person

改完再运行一次,直到提示“successfully”。


8. 附:下一步——怎么立刻开始训练?

数据集做好了,训练就只剩一步。YOLO11镜像里已预置训练脚本,你只需确认两点:

  1. 模型配置文件存在:resources/config/model/yolo11-det.yaml(镜像自带)
  2. 预训练权重存在:weights/det/yolo11n.pt(镜像自带)

然后运行训练命令:

python train.py \ --data resources/config/data/yolo11-det.yaml \ --cfg resources/config/model/yolo11-det.yaml \ --weights weights/det/yolo11n.pt \ --epochs 100 \ --batch-size 4 \ --imgsz 640

训练日志会实时打印在终端,loss下降、mAP上升,说明你的数据集正在被模型“吃下去”。

提示:首次训练建议设--epochs 100,快速验证流程;效果满意后再调高到1000。--batch-size根据显存调整,镜像默认支持CPU训练,填4足够。


9. 总结:你刚刚完成了什么

回顾一下,你已经亲手走完了YOLO11数据集制作的全部核心环节

  • 搭建了符合规范的文件夹结构(json/images/labels/train/val/
  • 用Labelme完成了真实目标标注(画框+命名+保存)
  • 用一键脚本把JSON转成了YOLO标准TXT标签(自动归一化)
  • 用分配脚本自动打乱并划分训练/验证集(避免人为偏差)
  • 编写了准确的数据配置YAML(路径、目录、类别三者严丝合缝)
  • 用官方检查工具验证了数据集完整性(杜绝路径/格式错误)
  • 准备好了即刻训练的命令(数据→模型→启动,无缝衔接)

这不是纸上谈兵的教程,而是你在YOLO11镜像里真实可执行、可复现、可交付的工作流。以后换新数据,照着这个流程再来一遍,10分钟就能准备好一套新数据集。

真正的工程能力,不在于懂多少模型原理,而在于能把想法快速落地成可用的数据和结果。你现在,已经跨过了那道最难的门槛。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

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

ollama部署Phi-4-mini-reasoning详细步骤:支持Mac/Windows/Linux三端

ollama部署Phi-4-mini-reasoning详细步骤:支持Mac/Windows/Linux三端 你是不是也遇到过这样的问题:想试试最新的轻量级推理模型,但一看到“编译”“CUDA”“环境依赖”就头大?或者在不同电脑上反复折腾部署流程,Mac、…

作者头像 李华
网站建设 2026/4/18 7:39:13

pjsip上手实践:音频通话初始化教程

以下是对您提供的博文《pjsip上手实践:音频通话初始化技术深度解析》的 全面润色与重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、专业、有“人味”——像一位十年VoIP老兵在茶水间给你讲干货; ✅ 摒弃所有模板化标题(如“引言”“总结”“展…

作者头像 李华
网站建设 2026/4/15 7:25:09

新手必看:麦橘超然Flux控制台部署避坑指南与实操记录

新手必看:麦橘超然Flux控制台部署避坑指南与实操记录 1. 为什么你需要这份“避坑指南”而不是普通教程 你可能已经看过官方文档,也尝试过复制粘贴代码——结果是:端口打不开、显存爆满、模型加载失败、界面空白、生成黑图……这些不是你的错…

作者头像 李华
网站建设 2026/4/18 5:27:00

CogVideoX-2b实战:电商短视频自动生成全攻略

CogVideoX-2b实战:电商短视频自动生成全攻略 1. 为什么电商团队需要本地化视频生成工具? 你有没有遇到过这些场景? 新品上架前,运营同事凌晨三点还在等设计师出15秒主图视频; 大促期间,客服临时反馈“用户…

作者头像 李华
网站建设 2026/4/20 11:27:10

YOLOv12官镜像为何更快?Flash Attention揭秘

YOLOv12官镜像为何更快?Flash Attention揭秘 在边缘智能设备持续小型化、算力受限的现实约束下,一个目标检测模型能否在3毫秒内完成推理,往往直接决定整条产线能否稳定运行。当YOLOv11尚未完全落地,YOLOv12已悄然以“注意力原生”…

作者头像 李华
网站建设 2026/4/18 6:59:50

零门槛玩转开源IPTV播放器:IPTVnator轻松上手指南

零门槛玩转开源IPTV播放器:IPTVnator轻松上手指南 【免费下载链接】iptvnator 项目地址: https://gitcode.com/GitHub_Trending/ip/iptvnator 寻找一款真正简单易用的开源IPTV播放器?IPTVnator作为一款基于Electron和Angular构建的开源电视软件&…

作者头像 李华