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

Структура набора данных для задач классификации 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/ (optional)
|   |-- 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 поддерживает следующие наборы данных с автоматической загрузкой:

  • 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 изображений каждой категории MNIST из набора данных MNIST. Набор данных содержит 160 изображений в общей сложности.

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

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

Часто задаваемые вопросы (FAQ)

Как мне структурировать свой набор данных для задач классификации YOLO?

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

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

Более подробную информацию можно найти в разделе Структура набора данных для задач классификации YOLO.

Какие наборы данных поддерживает Ultralytics YOLO для классификации изображений?

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

Как добавить собственный набор данных для классификации изображений YOLO?

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

Более подробную информацию можно найти в разделе Добавление собственного набора данных.

Почему стоит использовать Ultralytics YOLO для классификации изображений?

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

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

Для получения дополнительных сведений и ознакомления с практическими примерами использования посети Ultralytics YOLO.

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

Комментарии