目标检测数据集概览#
训练稳健且准确的目标检测模型需要全面的数据集。本指南介绍与 Ultralytics YOLO 模型兼容的各种数据集格式,并深入讲解其结构、用法以及不同格式之间的转换方法。
支持的数据集格式#
Ultralytics YOLO 格式#
Ultralytics YOLO 格式是一种数据集配置格式,可用于定义数据集根目录、训练/验证/测试图像目录的相对路径,或包含图像路径的 *.txt 文件,以及类别名称字典。下面是一个示例:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco8 ← downloads here (1 MB)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.ziptrain、val 和 test 均可接受目录、目录列表,或列出图像路径的 *.txt 文件(以 ./ 开头的路径将相对于 *.txt 文件解析)。使用 *.txt 文件可以在目录的子集上训练、跳过未标注图像,或将来自多个来源的图像合并到一个数据划分中。
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: person此格式的标签应导出为 YOLO 格式,每张图像对应一个 *.txt 文件。如果图像中没有目标,则无需创建 *.txt 文件。*.txt 文件应按 class x_center y_center width height 格式编写,每行对应一个目标。框坐标必须采用归一化 xywh格式(范围为 0 到 1)。如果框坐标以像素表示,则应将 x_center 和 width 除以图像宽度,将 y_center 和 height 除以图像高度。类别编号应从 0 开始索引。

与上述图像对应的标签文件包含 2 个人(类别 0)和 1 条领带(类别 27):

使用 Ultralytics YOLO 格式时,请按照下面COCO8 数据集示例所示,组织训练和验证图像及标签。

使用示例#
下面介绍如何使用 YOLO 格式数据集训练模型:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Ultralytics NDJSON 格式#
NDJSON(换行分隔 JSON)格式为定义 Ultralytics YOLO 模型的数据集提供了另一种方式。此格式将数据集元数据和标注存储在单个文件中,每行包含一个独立的 JSON 对象。
NDJSON 数据集文件包含:
- 数据集记录(第 1 行):包含任务类型、类别名称和一般信息等数据集元数据
- 图像记录(后续各行):包含单张图像的数据,包括尺寸、标注和文件路径
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.ultralytics.com/user/datasets/example",
"class_names": { "0": "person", "1": "bicycle", "2": "car" },
"bytes": 426342,
"version": 0,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z"
}自定义图像元数据#
每条图像记录都可以包含一个 metadata JSON 对象,用于存储拍摄条件、设备标识符或审核状态等特定于应用的上下文信息。支持嵌套值。导入 Ultralytics Platform 后,元数据会与图像一起存储,并可从全屏信息面板中查看或编辑。
{
"type": "image",
"file": "airbus-wing.jpg",
"url": "https://example.com/airbus-wing.jpg",
"split": "train",
"metadata": {
"aircraft": { "family": "A350", "section": "wing" },
"inspectionStatus": "reviewed"
}
}Platform 将顶层元数据键限制为 128 个字符,将每张图像序列化后的元数据对象限制为 500,000 个字符,并将一次 NDJSON 导入中的有效元数据总量限制为 500,000 个字符。
使用示例#
要将 NDJSON 数据集用于 YOLO26,只需指定 .ndjson 文件的路径:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)NDJSON 格式的优势#
- 单文件:所有数据集信息都包含在一个文件中
- 流式处理:无需将大型数据集全部加载到内存中,即可逐行处理
- 云集成:支持远程图像 URL,适用于基于云的训练
- 可扩展:可以轻松添加自定义元数据字段
- 版本控制:单文件格式非常适合 git 和版本控制系统
支持的数据集#
这里是支持的数据集列表以及每个数据集的简短描述。这些数据集大多托管在 Ultralytics Platform 上,你可以在 Ultralytics Platform 上浏览图像和标注、查看数据集统计信息,以及克隆数据集以进行云端训练。
- African-wildlife:包含非洲野生动物图像的数据集,包括水牛、大象、犀牛和斑马。
- Argoverse:包含城市环境中 3D 跟踪和运动预测数据的数据集,具有丰富的标注。
- Brain-tumor:用于检测脑部肿瘤的数据集,包含 MRI 或 CT 扫描图像,以及肿瘤是否存在、位置和特征等详细信息。
- COCO:场景中的常见物体(COCO)是一个大规模的目标检测、分割和图像描述数据集,包含 80 个物体类别。
- COCO8:来自 COCO train2017 的前 8 张图像的较小子集,其中 4 张用于训练,4 张用于验证,适用于快速测试。
- COCO8-Grayscale:将 RGB 转换为灰度后创建的 COCO8 灰度版本,适用于单通道模型评估。
- COCO8-Multispectral:通过插值 RGB 波长创建的 COCO8 10 通道多光谱版本,适用于光谱感知模型评估。
- COCO12-Formats:包含 12 张图像的测试数据集,覆盖 12 种受支持的图像格式(AVIF、BMP、DNG、HEIC、JP2、JPEG、JPG、MPO、PNG、TIF、TIFF、WebP),用于验证图像加载流程。
- COCO16:取自 COCO train2017 前 16 张图像的子集(8 张训练图像 + 8 张验证图像),适合快速测试。
- COCO32:取自 COCO train2017 前 32 张图像的子集(16 张训练图像 + 16 张验证图像),适合快速测试。
- COCO64:取自 COCO train2017 前 64 张图像的子集(32 张训练图像 + 32 张验证图像),适合快速测试。
- COCO128:从 COCO train2017 的前 128 张图像中提取的较小子集,适合测试。
- Construction-PPE:包含建筑工地工人图像的数据集,标注了头盔、背心、手套、靴子和护目镜等安全装备,也包含 no_helmet、no_goggle 等缺失装备标注,适用于现实世界的合规监控。
- Global Wheat 2020:包含 2020 全球小麦挑战赛所用麦穗图像的数据集。
- HomeObjects-3K:包含床、椅子、电视等室内家居物品的数据集,非常适合智能家居自动化、机器人、增强现实和房间布局分析等应用。
- KITTI:包含真实驾驶场景以及立体视觉、LiDAR 和 GPS/IMU 数据的数据集,此处用于2D 目标检测任务,例如在城市、乡村和高速公路环境中识别汽车、行人和骑行者。
- LVIS:一个大规模目标检测、分割和图像描述数据集,包含 1203 个对象类别。
- Medical-pills:包含药片图像的数据集,已针对药品质量保证、药片分拣和法规合规等应用进行标注。
- Objects365:用于目标检测的高质量大规模数据集,包含 365 个对象类别和超过 600K 张标注图像。
- OpenImagesV7:由 Google 提供的综合数据集,包含 1.7M 张训练图像和 42k 张验证图像。
- Roboflow 100:多样化的目标检测基准,包含涵盖七个图像领域的 100 个数据集,用于全面评估模型。
- Signature:包含各种文档及其标注签名图像的数据集,支持文档验证和欺诈检测研究。
- SKU-110K:包含零售环境中密集目标检测场景的数据集,拥有超过 11K 张图像和 170 万个边界框。
- TT100K:探索清华-腾讯 100K(TT100K)交通标志数据集,其中包含 16,817 张街景图像,涵盖 221 个标志类别,可用于稳健的检测和分类。
- VisDrone:包含无人机拍摄图像中的目标检测和多目标跟踪数据的数据集,拥有超过 10K 张图像和视频序列。
- VOC:用于目标检测和分割的 Pascal 视觉对象类别(VOC)数据集,包含 20 个对象类别和超过 11K 张图像。
- xView:用于俯视图像目标检测的数据集,包含 60 个对象类别和超过 100 万个标注对象。
添加你自己的数据集#
如果你拥有自己的数据集,并希望使用 Ultralytics YOLO 格式训练检测模型,请确保其遵循上文“Ultralytics YOLO 格式”中规定的格式。将标注转换为所需格式,并在 YAML 配置文件中指定路径、类别数量和类别名称。
迁移或转换标签格式#
COCO 数据集格式转换为 YOLO 格式#
你可以使用以下代码片段,轻松将常用的COCO 数据集格式标签转换为 YOLO 格式:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/")此转换工具可用于将 COCO 数据集或任何采用 COCO 格式的数据集转换为 Ultralytics YOLO 格式。该过程会将基于 JSON 的 COCO 标注转换为更简洁的基于文本的 YOLO 格式,使其兼容Ultralytics YOLO 模型。如需了解完整流程——包括类别 ID 映射、目录布局以及分割或姿态标注——请参阅将 COCO 标注转换为 YOLO。
请务必仔细检查你要使用的数据集是否与你的模型兼容,并遵循必要的格式规范。格式正确的数据集对于成功训练目标检测模型至关重要。
接下来做什么#
数据集格式准备就绪后,开始训练模型。不知道应该从哪个预训练模型开始?在YOLO26 模型系列中比较不同选项。
常见问题#
Ultralytics YOLO 格式是一种结构化配置,用于在训练项目中定义数据集。你需要设置训练、验证和测试图像及其对应标签的路径。例如:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license # COCO8 dataset (first 8 images from COCO train2017) by Ultralytics # Documentation: https://docs.ultralytics.com/datasets/detect/coco8 # Example usage: yolo train data=coco8.yaml # parent # ├── ultralytics # └── datasets # └── coco8 ← downloads here (1 MB) # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..] path: coco8 # dataset root dir train: images/train # train images (relative to 'path') 4 images val: images/val # val images (relative to 'path') 4 images test: # test images (optional) # Classes names: 0: person 1: bicycle 2: car 3: motorcycle 4: airplane 5: bus 6: train 7: truck 8: boat 9: traffic light 10: fire hydrant 11: stop sign 12: parking meter 13: bench 14: bird 15: cat 16: dog 17: horse 18: sheep 19: cow 20: elephant 21: bear 22: zebra 23: giraffe 24: backpack 25: umbrella 26: handbag 27: tie 28: suitcase 29: frisbee 30: skis 31: snowboard 32: sports ball 33: kite 34: baseball bat 35: baseball glove 36: skateboard 37: surfboard 38: tennis racket 39: bottle 40: wine glass 41: cup 42: fork 43: knife 44: spoon 45: bowl 46: banana 47: apple 48: sandwich 49: orange 50: broccoli 51: carrot 52: hot dog 53: pizza 54: donut 55: cake 56: chair 57: couch 58: potted plant 59: bed 60: dining table 61: toilet 62: tv 63: laptop 64: mouse 65: remote 66: keyboard 67: cell phone 68: microwave 69: oven 70: toaster 71: sink 72: refrigerator 73: book 74: clock 75: vase 76: scissors 77: teddy bear 78: hair drier 79: toothbrush # Download script/URL (optional) download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip标签以
*.txt文件保存,每张图像对应一个文件,并以带归一化坐标的class x_center y_center width height格式编写。如需详细指南,请参阅COCO8 数据集示例。你可以使用Ultralytics 转换工具将 COCO 数据集转换为 YOLO 格式。下面介绍一种快速方法:
from ultralytics.data.converter import convert_coco convert_coco(labels_dir="path/to/coco/annotations/")此代码会将 COCO 标注转换为 YOLO 格式,从而实现与 Ultralytics YOLO 模型的无缝集成。如需更多详细信息,请访问迁移或转换标签格式部分。
Ultralytics YOLO 支持各种数据集,包括:
每个数据集页面都提供了详细的结构和使用信息,专为高效 YOLO26 训练而设计。请在支持的数据集部分查看完整列表。
要开始训练 YOLO26 模型,请确保数据集格式正确,并已在 YAML 文件中定义路径。使用以下脚本开始训练:
示例from ultralytics import YOLO model = YOLO("yolo26n.pt") # Load a pretrained model results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)请参阅使用部分,详细了解如何使用不同模式,包括 CLI 命令。
Ultralytics 提供了大量使用 YOLO26 的示例和实用指南,涵盖多种应用。若要全面了解相关内容,请访问Ultralytics 博客,其中包含案例研究、详细教程和社区故事,展示 YOLO26 在目标检测、分割等方面的应用。如需查看具体示例,请参阅文档中的使用部分。