Перейти к содержимому

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

Структура набора данных для задач классификации 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('yolov8n-cls.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='path/to/dataset', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

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

Ultralytics Поддерживает следующие наборы данных с автоматической загрузкой:

  • Caltech 101: набор данных, содержащий изображения 101 категории объектов для задач классификации изображений.
  • Caltech 256: Расширенная версия Caltech 101 с 256 категориями объектов и более сложными изображениями.
  • CIFAR-10: набор данных из 60 тысяч цветных изображений 32х32 в 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 полутоновых изображений рукописных цифр для задач классификации изображений.

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

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



Создано 2023-11-12, Обновлено 2024-04-10
Авторы: stormsson (1), glenn-jocher (4), GreatV (1)

Комментарии