Meet YOLO26: next-gen vision AI.

Link to this section图像分类数据集概述#

Link to this sectionYOLO 分类任务的数据集结构#

对于 Ultralytics YOLO 分类任务,数据集必须在 root 目录下按照特定的拆分目录结构进行组织,以促进适当的训练、测试和可选的验证过程。此结构包括用于训练 (train) 和验证 (val) 阶段的独立目录,以及一个可选的测试 (test) 目录。

这些目录中的每一个都应为数据集中的每个类别包含一个子目录。子目录以相应的类别命名,并包含该类别的所有图像。确保每个图像文件命名唯一并以 JPEG 或 PNG 等通用格式存储。

Link to this section文件夹结构示例#

CIFAR-10 数据集为例。文件夹结构应如下所示:

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/ (optional)
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

这种结构化方法确保模型能够在训练阶段从组织良好的类别中有效学习,并在测试和验证阶段准确评估性能。

Link to this section用法#

示例
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
提示

大多数内置数据集名称(例如 cifar10imagenettemnist160)会在你首次引用它们时自动下载并缓存数据。仅当你策划了自定义数据集时,才将 data 指向文件夹路径。

Link to this section支持的数据集#

Ultralytics 支持以下具有自动下载功能的数据集:

  • Caltech 101:一个包含 101 个对象类别图像的数据集,用于 图像分类 任务。
  • Caltech 256:Caltech 101 的扩展版本,包含 256 个对象类别和更具挑战性的图像。
  • CIFAR-10:一个包含 10 个类别、6 万张 32x32 彩色图像的数据集,每个类别 6 千张图像。
  • CIFAR-100:CIFAR-10 的扩展版本,包含 100 个对象类别,每个类别 600 张图像。
  • Fashion-MNIST:一个包含 70,000 张灰度图像的数据集,涵盖 10 个时尚类别,用于图像分类任务。
  • ImageNet:一个用于 目标检测 和图像分类的大规模数据集,拥有超过 1400 万张图像和 20,000 个类别。
  • ImageNet-10:ImageNet 的一个较小子集,包含 10 个类别,用于更快的实验和测试。
  • Imagenette:ImageNet 的一个较小子集,包含 10 个易于区分的类别,用于更快的训练和测试。
  • Imagewoof:ImageNet 的一个更具挑战性的子集,包含 10 个犬种类别,用于图像分类任务。
  • MNIST:一个包含 70,000 张手写数字灰度图像的数据集,用于图像分类任务。
  • MNIST160:来自 MNIST 训练集和测试集各数字(0-9)的前 8 张图像。该数据集总共包含 160 张图像。

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

如果你有自己的数据集并希望将其用于 Ultralytics YOLO 的分类模型训练,请确保其遵循上述“数据集结构”中指定的格式,并在初始化训练脚本时将 data 参数指向该数据集目录。

Link to this section常见问题解答#

Link to this section如何为 YOLO 分类任务构建数据集结构?#

要为 Ultralytics YOLO 分类任务构建数据集,你应遵循特定的拆分目录格式。将你的数据集组织成用于 traintest 和可选 val 的独立目录。这些目录中的每一个都应包含以每个类别命名的子目录,其中包含相应的图像。这有助于顺利完成训练和评估过程。有关示例,请参阅 CIFAR-10 数据集格式:

cifar-10-/
|-- train/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- test/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- val/ (optional)
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...

有关更多详细信息,请访问 YOLO 分类任务的数据集结构 部分。

Link to this sectionUltralytics YOLO 支持哪些用于图像分类的数据集?#

Ultralytics YOLO 支持自动下载多个用于图像分类的数据集,包括 Caltech 101Caltech 256CIFAR-10CIFAR-100Fashion-MNISTImageNetImageNet-10ImagenetteImagewoofMNIST。这些数据集的结构方式使其易于与 YOLO 一起使用。每个数据集页面都提供了关于其结构和应用的进一步详细信息。

Link to this section如何为 YOLO 图像分类添加我自己的数据集?#

要将你自己的数据集与 Ultralytics YOLO 一起使用,请确保其遵循分类任务所需的指定目录格式,包含独立的 traintest 和可选的 val 目录,以及每个类别包含相应图像的子目录。一旦你的数据集结构正确,请在初始化训练脚本时将 data 参数指向数据集的根目录。以下是 Python 中的一个示例:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

更多详细信息可以在 添加你自己的数据集 部分找到。

Link to this section为什么要使用 Ultralytics YOLO 进行图像分类?#

Ultralytics YOLO 为图像分类提供了多项好处,包括:

  • 预训练模型:加载诸如 yolo26n-cls.pt 之类的预训练模型以启动你的训练过程。
  • 易用性:用于训练和评估的简单 API 和 CLI 命令。
  • 高性能:最先进的 准确率 和速度,非常适合实时应用程序。
  • 对多个数据集的支持:与 CIFAR-10ImageNet 等各种流行数据集的无缝集成。
  • 社区与支持:访问广泛的文档以及活跃的社区以进行故障排除和改进。

欲了解更多见解和实际应用,你可以探索 Ultralytics YOLO

Link to this section如何使用 Ultralytics YOLO 训练模型?#

使用 Ultralytics YOLO 训练模型可以在 Python 和 CLI 中轻松完成。这是一个示例:

示例
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

这些示例展示了使用任一方法训练 YOLO 模型的简单过程。欲了解更多信息,请访问 用法 部分以及分类任务的 训练 页面。

评论