Перейти к содержанию

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

Структура набора данных для задач классификации 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("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640

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

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. Всего в наборе содержится 160 изображений.

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

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

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

Чтобы структурировать набор данных для задач классификации Ultralytics YOLO , необходимо следовать определенному формату разделения каталогов. Организуйте набор данных в отдельные каталоги для train, test, и дополнительно val. Каждый из этих каталогов должен содержать подкаталоги, названные в честь каждого класса, с соответствующими изображениями внутри. Это облегчает процесс обучения и оценки. Для примера рассмотрим каталог СИФАР-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("yolo11n-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 обладает рядом преимуществ для классификации изображений, в том числе:

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

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

Как обучить модель с помощью Ultralytics YOLO ?

Обучение модели, использующей Ultralytics YOLO , может быть легко выполнено как на Python , так и на CLI. Вот пример:

Пример

from ultralytics import YOLO

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

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

Эти примеры демонстрируют несложный процесс обучения модели YOLO с использованием любого из подходов. Для получения дополнительной информации посетите раздел "Использование" и страницу "Обучение" для задач классификации.

📅 Создано 1 год назад ✏️ Обновлено 8 дней назад

Комментарии