Ultralytics YOLO27:

Обзор датасетов для классификации изображений#

Структура датасета для задач классификации YOLO#

Для задач классификации Ultralytics YOLO набор данных должен быть организован в определенной структуре каталогов разделения в каталоге root. Эта структура включает каталог train и каталог val (каталоги valid и validation также принимаются), а также необязательный каталог test. Если каталог проверки отсутствует, для проверки используется каталог test.

Каждый из этих каталогов должен содержать по одному подкаталогу для каждого класса в датасете. Подкаталоги называются в соответствии с классами и содержат все изображения соответствующего класса. Убедись, что имена всех файлов изображений уникальны и что они сохранены в распространённом формате, например 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/ (optional)
|   |-- 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
|   |   |-- ...
|   |
|   |-- ...

Такой подход к структурированию позволяет модели эффективно обучаться на хорошо организованных классах во время обучения и точно оценивать производительность на этапах тестирования и валидации.

Использование#

Пример
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)
Совет

Большинство встроенных имён датасетов (например, cifar10, imagenette или mnist160) автоматически скачивают данные и кэшируют их при первом обращении. Указывай data как путь к каталогу только после подготовки собственного датасета.

Поддерживаемые наборы данных#

Ultralytics поддерживает следующие наборы данных с автоматической загрузкой. Большинство этих наборов данных также размещены на Ultralytics Platform, где ты можешь просматривать изображения и аннотации, просматривать статистику наборов данных и клонировать их для облачного обучения.

  • Caltech 101: датасет, содержащий изображения 101 категории объектов для задач классификации изображений.
  • Caltech 256: расширенная версия Caltech 101 с 256 категориями объектов и более сложными изображениями.
  • CIFAR-10: набор данных из 60 тыс. цветных изображений размером 32x32, разделённых на 10 классов, по 6 тыс. изображений на класс.
  • CIFAR-100: расширенная версия CIFAR-10 со 100 категориями объектов и 600 изображениями на класс.
  • Fashion-MNIST: набор данных из 70 000 изображений в градациях серого, относящихся к 10 категориям одежды, для задач классификации изображений.
  • ImageNet: крупномасштабный датасет для детектирования объектов и классификации изображений, содержащий более 14 миллионов изображений и 20 000 категорий.
  • ImageNet-10: уменьшенное подмножество ImageNet с 10 категориями для более быстрых экспериментов и тестирования.
  • Imagenette: уменьшенное подмножество ImageNet, содержащее 10 легко различимых классов для ускоренного обучения и тестирования.
  • Imagewoof: более сложное подмножество ImageNet, содержащее 10 категорий пород собак для задач классификации изображений.
  • MNIST: набор данных из 70 000 изображений рукописных цифр в градациях серого для задач классификации изображений.
  • MNIST160: первые 8 изображений каждой цифры (0–9) из обучающей и тестовой выборок MNIST. Всего набор данных содержит 160 изображений.

Добавление собственного набора данных#

Если у тебя есть собственный датасет и ты хочешь использовать его для обучения моделей классификации с помощью Ultralytics YOLO, убедись, что он соответствует формату, описанному выше в разделе «Структура датасета», а затем при инициализации скрипта обучения укажи в аргументе data каталог датасета.

Часто задаваемые вопросы#

  • Чтобы структурировать твой набор данных для задач классификации Ultralytics YOLO, тебе следует следовать определенному формату каталога разделения. Организуй твой набор данных в отдельные каталоги для train и val, а также дополнительно test. Каждый из этих каталогов должен содержать подкаталоги, названные в честь каждого класса, с соответствующими изображениями внутри. Это облегчает плавные процессы обучения и оценки. В качестве примера рассмотрим формат набора данных CIFAR-10:

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

    Подробнее см. в разделе Структура датасета для задач классификации YOLO.

  • Ultralytics YOLO поддерживает автоматическое скачивание нескольких датасетов для классификации изображений, включая Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof и MNIST. Эти датасеты структурированы таким образом, чтобы их было удобно использовать с YOLO. На странице каждого датасета приведены дополнительные сведения о его структуре и применении.

  • Чтобы использовать твой собственный набор данных с Ultralytics YOLO, убедись, что он соответствует указанному формату каталога, требуемому для задачи классификации, с отдельными каталогами train и val (и дополнительно test), а также подкаталогами для каждого класса, содержащими соответствующие изображения. Когда твой набор данных будет правильно структурирован, укажи аргумент 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)

    Подробнее см. в разделе Добавление собственного датасета.

  • Ultralytics YOLO предоставляет ряд преимуществ для классификации изображений, включая:

    • Предобученные модели: загружай предобученные модели, например yolo26n-cls.pt, чтобы быстро начать обучение.
    • Простота использования: простые команды API и CLI для обучения и оценки.
    • Высокая производительность: передовые точность и скорость, идеально подходящие для приложений реального времени.
    • Поддержка нескольких датасетов: удобная интеграция с различными популярными датасетами, такими как CIFAR-10, ImageNet и другими.
    • Сообщество и поддержка: доступ к обширной документации и активному сообществу для устранения проблем и улучшений.

    Чтобы узнать больше и ознакомиться с примерами применения в реальных условиях, изучи 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 любым из двух способов. Дополнительную информацию см. в разделе Использование и на странице Обучение для задач классификации.

Комментарии