Skip to content

图像分类数据集概述

YOLO分类任务的数据集结构

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

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

文件夹结构示例

以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/ (可选)
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

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

使用方法

Example

from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n-cls.pt")  # 加载预训练模型(推荐用于训练)

# 训练模型
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# 从预训练的*.pt模型开始训练
yolo detect train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640

支持的数据集

Ultralytics支持以下数据集,并提供自动下载:

  • Caltech 101: 包含101个对象类别的图像数据集,用于图像分类任务。
  • Caltech 256: Caltech 101的扩展版本,包含256个对象类别和更具挑战性的图像。
  • CIFAR-10: 包含60K张32x32彩色图像的数据集,分为10个类别,每类6K张图像。
  • 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数据集中每个类别的最初8张图像。数据集总共包含160张图像。

添加您自己的数据集

如果您有自己的数据集,并希望使用它来训练Ultralytics的分类模型,请确保它遵循上述“数据集格式”中指定的格式,然后将您的data参数指向数据集目录。

常见问题

如何为YOLO分类任务构建我的数据集?

为了构建适用于Ultralytics YOLO分类任务的数据集,您应遵循特定的分目录格式。将您的数据集组织成用于traintest以及可选的val的独立目录。每个目录应包含以每个类别命名的子目录,并在其中放置相应的图像。这有助于顺畅的训练和评估过程。例如,考虑CIFAR-10数据集的格式:

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

更多详情,请访问YOLO分类任务的数据集结构

Ultralytics YOLO支持哪些图像分类数据集?

Ultralytics YOLO支持自动下载多个图像分类数据集,包括:

这些数据集的结构使其易于与YOLO配合使用。每个数据集的页面提供了关于其结构和应用的更多详细信息。

如何为YOLO图像分类添加自己的数据集?

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

from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n-cls.pt")  # 加载预训练模型(推荐用于训练)

# 训练模型
results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

更多详情可在添加您自己的数据集部分找到。

为什么我应该使用Ultralytics YOLO进行图像分类?

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

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

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

如何使用Ultralytics YOLO训练模型?

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

Example

from ultralytics import YOLO

# 加载模型
model = YOLO("yolo11n-cls.pt")  # 加载预训练模型

# 训练模型
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# 从预训练的*.pt模型开始训练
yolo detect train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640

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


📅 Created 11 months ago ✏️ Updated 3 days ago

Comments