news 2026/3/6 5:29:32

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/3/5 0:29:51

OBS虚拟摄像头配置与视频会议优化完全指南

OBS虚拟摄像头配置与视频会议优化完全指南 【免费下载链接】obs-virtual-cam obs-studio plugin to simulate a directshow webcam 项目地址: https://gitcode.com/gh_mirrors/ob/obs-virtual-cam OBS虚拟摄像头(OBS VirtualCam)是一款免费开源的…

作者头像 李华
网站建设 2026/3/5 0:29:48

解锁6大场景:IPTVnator让电视观看体验升维的开源解决方案

解锁6大场景:IPTVnator让电视观看体验升维的开源解决方案 【免费下载链接】iptvnator 项目地址: https://gitcode.com/GitHub_Trending/ip/iptvnator IPTVnator是一款基于Electron和Angular构建的开源IPTV播放器,它以极简设计和强大功能的完美结…

作者头像 李华
网站建设 2026/3/5 0:29:46

Blender USD全流程破局指南:游戏/影视/AR资产跨平台流转解决方案

Blender USD全流程破局指南:游戏/影视/AR资产跨平台流转解决方案 【免费下载链接】maya-glTF glTF 2.0 exporter for Autodesk Maya 项目地址: https://gitcode.com/gh_mirrors/ma/maya-glTF 在3D内容创作领域,资产跨平台流转始终是困扰创作者的核…

作者头像 李华
网站建设 2026/3/5 0:29:44

EagleEye企业应用指南:高并发视觉分析系统在生产环境的部署实践

EagleEye企业应用指南:高并发视觉分析系统在生产环境的部署实践 1. 系统定位与技术本质 EagleEye不是又一个通用目标检测Demo,而是一套为真实产线、安防监控、仓储分拣等高压力场景打磨出来的视觉分析引擎。它的名字里藏着两个关键信息:“E…

作者头像 李华
网站建设 2026/3/5 0:29:42

为什么选MGeo?中文地址领域专用模型优势解析

为什么选MGeo?中文地址领域专用模型优势解析 1. 引言:地址匹配不是“文字比对”,而是“空间理解” 你有没有遇到过这样的情况—— 系统里存着“上海市浦东新区张江路100号”和“上海浦东张江路100号”,明明是同一个地方&#xf…

作者头像 李华