Meet YOLO26: next-gen vision AI.

Link to this section目标检测数据集概述#

训练稳健且准确的 目标检测 模型需要一个全面的数据集。本指南介绍了与 Ultralytics YOLO 模型兼容的各种数据集格式,并提供了有关其结构、用法以及如何在不同格式之间进行转换的见解。

Link to this section支持的数据集格式#

Link to this sectionUltralytics YOLO 格式#

Ultralytics YOLO 格式是一种数据集配置格式,允许你定义数据集根目录、训练/验证/测试图像目录或包含图像路径的 *.txt 文件的相对路径,以及类名字典。以下是一个示例:

ultralytics/cfg/datasets/coco8.yaml
# 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

此格式的标签应导出为 YOLO 格式,每张图像对应一个 *.txt 文件。如果图像中没有对象,则不需要 *.txt 文件。*.txt 文件应按每行一个对象进行格式化,格式为 class x_center y_center width height。框坐标必须为 归一化 xywh 格式(从 0 到 1)。如果你的框是以像素为单位的,则应将 x_centerwidth 除以图像宽度,并将 y_centerheight 除以图像高度。类编号应从零开始索引(从 0 开始)。

YOLO labeled image with bounding boxes on persons and tie

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

YOLO format label file with normalized coordinates

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

YOLO dataset directory structure with train and val folders

Link to this section使用示例#

以下是如何使用 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)

Link to this sectionUltralytics NDJSON 格式#

NDJSON(换行符分隔的 JSON)格式为定义 Ultralytics YOLO 模型的数据集提供了另一种方式。此格式将数据集元数据和标注存储在单个文件中,其中每一行都包含一个单独的 JSON 对象。

NDJSON 数据集文件包含:

  1. 数据集记录(第一行):包含数据集元数据,包括任务类型、类名和常规信息
  2. 图像记录(后续行):包含单个图像数据,包括尺寸、标注和文件路径
NDJSON 示例
{
    "type": "dataset",
    "task": "detect",
    "name": "Example",
    "description": "COCO NDJSON example dataset",
    "url": "https://app.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"
}

Link to this section使用示例#

要将 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)

Link to this sectionNDJSON 格式的优势#

  • 单个文件:所有数据集信息包含在一个文件中
  • 流式处理:可以逐行处理大型数据集,而无需将所有内容加载到内存中
  • 云集成:支持用于云端训练的远程图像 URL
  • 可扩展:易于添加自定义元数据字段
  • 版本控制:单文件格式可以很好地与 git 和版本控制系统配合使用

Link to this section支持的数据集#

以下是支持的数据集列表及其简要说明:

  • African-wildlife:一个包含非洲野生动物图像的数据集,包括水牛、大象、犀牛和斑马。
  • Argoverse:一个包含来自城市环境的 3D 跟踪和运动预测数据以及丰富标注的数据集。
  • Brain-tumor:一个用于检测脑肿瘤的数据集,包含 MRI 或 CT 扫描图像,并带有关于肿瘤存在、位置和特征的详细信息。
  • COCO:Common Objects in Context (COCO) 是一个大规模 目标检测、分割和标题生成数据集,包含 80 个对象类别。
  • COCO8:来自 COCO 训练集和 COCO 验证集的前 4 张图像的较小子集,适用于快速测试。
  • COCO8-Grayscale:通过将 RGB 转换为灰度创建的 COCO8 灰度版本,适用于单通道模型评估。
  • COCO8-Multispectral:通过插值 RGB 波长创建的 10 通道多光谱版本的 COCO8,适用于光谱感知模型评估。
  • COCO12-Formats:一个包含 12 张图片且覆盖 12 种支持的图像格式(AVIF、BMP、DNG、HEIC、JP2、JPEG、JPG、MPO、PNG、TIF、TIFF、WebP)的测试数据集,用于验证图像加载流水线。
  • 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 个对象类别和超过 60 万张标注图像。
  • OpenImagesV7:由 Google 提供的综合数据集,拥有 170 万张训练图像和 4.2 万张验证图像。
  • Roboflow 100:一个多元化的目标检测基准,包含跨越七个图像领域的 100 个数据集,用于全面的模型评估。
  • Signature:一个具有各种带有签名标注的文档图像的数据集,支持文档验证和欺诈检测研究。
  • SKU-110K:一个具有零售环境中密集目标检测的数据集,包含超过 1.1 万张图像和 170 万个 边界框
  • TT100K:探索清华-腾讯 100K (TT100K) 交通标志数据集,包含 10 万张街景图像和 3 万多个标注交通标志,用于稳健的检测和分类。
  • VisDrone:一个包含来自无人机捕获图像的目标检测和多目标跟踪数据的数据集,拥有超过 1 万张图像和视频序列。
  • VOC:用于目标检测和分割的 Pascal Visual Object Classes (VOC) 数据集,包含 20 个对象类别和超过 1.1 万张图像。
  • xView:一个用于高空影像目标检测的数据集,包含 60 个对象类别和超过 100 万个标注对象。

Link to this section添加你自己的数据集#

如果你有自己的数据集并希望将其用于 Ultralytics YOLO 格式的检测模型训练,请确保它遵循上述“Ultralytics YOLO 格式”中指定的格式。将你的标注转换为所需的格式,并在 YAML 配置文件中指定路径、类数量和类名。

Link to this section移植或转换标签格式#

Link to this sectionCOCO 数据集格式转换为 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 模型 兼容。

请记得仔细检查你想要使用的数据集是否与你的模型兼容,并遵循必要的格式约定。正确格式化的数据集对于训练成功的目标检测模型至关重要。

Link to this section常见问题解答#

Link to this section什么是 Ultralytics YOLO 数据集格式以及如何组织它?#

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 数据集示例

Link to this section如何将 COCO 数据集转换为 YOLO 格式?#

你可以使用 Ultralytics 转换工具 将 COCO 数据集转换为 YOLO 格式。这是一种快速方法:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

此代码会将你的 COCO 标注转换为 YOLO 格式,从而实现与 Ultralytics YOLO 模型的无缝集成。有关更多详细信息,请访问 移植或转换标签格式 部分。

Link to this sectionUltralytics YOLO 支持哪些用于目标检测的数据集?#

Ultralytics YOLO 支持多种数据集,包括:

每个数据集页面都提供了针对高效 YOLO26 训练量身定制的详细结构和用法信息。在 支持的数据集 部分探索完整列表。

Link to this section如何开始使用我的数据集训练 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 命令)的更多详细信息,请参阅 用法 部分。

Link to this section在哪里可以找到使用 Ultralytics YOLO 进行目标检测的实践示例?#

Ultralytics 提供了大量关于在各种应用中使用 YOLO26 的示例和实践指南。如需全面概述,请访问 Ultralytics 博客,在那里你可以找到案例研究、详细教程和社区故事,展示了 YOLO26 在目标检测、分割等方面的应用。有关具体示例,请查看文档中的 用法 部分。

评论