Meet YOLO26: next-gen vision AI.

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

Link to this sectionСтруктура набора данных для задач классификации YOLO#

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

Каждая из этих директорий должна содержать одну подпапку для каждого класса в наборе данных. Подпапки называются по имени соответствующего класса и содержат все изображения этого класса. Убедись, что каждый файл изображения имеет уникальное имя и сохранен в распространенном формате, таком как JPEG или PNG.

Link to this sectionПример структуры папок#

Рассмотрим набор данных 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
|   |   |-- ...
|   |
|   |-- ...

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

Link to this sectionИспользование#

Пример
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 только в том случае, если ты подготовил собственный набор данных.

Link to this sectionПоддерживаемые наборы данных#

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 изображений каждой цифры (0-9) из тренировочной и тестовой выборок MNIST. Набор данных содержит всего 160 изображений.

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

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

Link to this sectionFAQ#

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

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

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

Более подробную информацию можно найти в разделе Dataset Structure for YOLO Classification Tasks.

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

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

Link to this sectionКак добавить собственный набор данных для классификации изображений 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)

Более подробную информацию можно найти в разделе Adding your own dataset.

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

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

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

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

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

Комментарии