Обзор наборов данных для классификации изображений
Структура набора данных для задач классификации 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
| | |-- ...
| |
| |-- ...
Такой структурированный подход обеспечивает эффективное обучение модели на основе хорошо организованных классов на этапе обучения и точную оценку производительности на этапах тестирования и проверки.
Использование
Пример
Поддерживаемые наборы данных
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. Вот пример:
Пример
Эти примеры демонстрируют несложный процесс обучения модели YOLO с использованием любого из подходов. Для получения дополнительной информации посетите раздел "Использование" и страницу "Обучение" для задач классификации.