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

Проверка модели с помощью Ultralytics YOLO

Ultralytics YOLO Экосистема и интеграции

Введение

Валидация - важный этап в конвейере машинного обучения, позволяющий оценить качество обученных моделей. Режим Val в Ultralytics YOLOv8 предоставляет надежный набор инструментов и метрик для оценки эффективности твоих моделей обнаружения объектов. Это руководство служит полным источником информации о том, как эффективно использовать режим Val для обеспечения точности и надежности твоих моделей.



Смотри: Ultralytics Самоучитель по режимам: Валидация

Зачем проводить валидацию с помощью Ultralytics YOLO ?

Вот почему использование режима YOLOv8'Val является выгодным:

  • Точность: Получи такие точные метрики, как mAP50, mAP75 и mAP50-95, чтобы всесторонне оценить свою модель.
  • Удобство: Используй встроенные функции, которые запоминают настройки тренировки, упрощая процесс проверки.
  • Гибкость: Проверь свою модель с одинаковыми или разными наборами данных и размерами изображений.
  • Настройка гиперпараметров: Используй метрики валидации, чтобы точно настроить свою модель для лучшей производительности.

Ключевые особенности Val Mode

Вот такие примечательные функциональные возможности предлагает режим Val на сайте YOLOv8:

  • Автоматизированные настройки: Модели запоминают свои тренировочные конфигурации для простой проверки.
  • Мультиметрическая поддержка: Оценивай свою модель по целому ряду показателей точности.
  • CLI и Python API: Выбирай интерфейс командной строки или Python API в зависимости от того, что ты предпочитаешь для валидации.
  • Совместимость с данными: Работает без проблем с наборами данных, использованными на этапе обучения, а также с пользовательскими наборами данных.

Наконечник

  • YOLOv8 Модели автоматически запоминают настройки обучения, поэтому ты сможешь проверить модель на том же размере изображения и на оригинальном наборе данных, используя всего лишь yolo val model=yolov8n.pt или model('yolov8n.pt').val()

Примеры использования

Проверь точность обученной модели YOLOv8n на наборе данных COCO128. Не нужно передавать никаких аргументов в качестве model сохраняет тренировки data и аргументы в качестве атрибутов модели. Полный список аргументов экспорта смотри в разделе "Аргументы" ниже.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

Аргументы в пользу YOLO проверки моделей

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

Аргумент Тип По умолчанию Описание
data str None Указывает путь к файлу конфигурации набора данных (например, coco128.yaml). Этот файл содержит пути к данным проверки, названия классов и их количество.
imgsz int 640 Определяет размер входных изображений. Перед обработкой все изображения приводятся к этому размеру.
batch int 16 Устанавливает количество изображений в одной партии. Используй -1 для AutoBatch, который автоматически настраивается в зависимости от доступности памяти GPU.
save_json bool False Если True, сохраняет результаты в JSON-файл для дальнейшего анализа или интеграции с другими инструментами.
save_hybrid bool False Если True, сохраняет гибридную версию меток, которая сочетает в себе оригинальные аннотации с дополнительными предсказаниями модели.
conf float 0.001 Устанавливает минимальный порог доверия для обнаружения. Обнаружения с уверенностью ниже этого порога отбрасываются.
iou float 0.6 Устанавливает порог Intersection Over Union (IoU) для Non-Maximum Suppression (NMS). Помогает уменьшить количество дублирующих обнаружений.
max_det int 300 Ограничивает максимальное количество обнаружений на одном изображении. Полезно в плотных сценах, чтобы избежать чрезмерного количества обнаружений.
half bool True Обеспечивает вычисления с половинной точностью (FP16), уменьшая потребление памяти и потенциально увеличивая скорость с минимальным влиянием на точность.
device str None Указание устройства для проверки (cpu, cuda:0, и т.д.). Позволяет гибко использовать ресурсы CPU или GPU.
dnn bool False Если Trueиспользует модуль OpenCV DNN для вывода моделей ONNX , предлагая альтернативу методам вывода PyTorch .
plots bool False Если установить значение True, генерирует и сохраняет графики соотношения предсказаний и истины для визуальной оценки работы модели.
rect bool False Если TrueИспользует прямоугольный вывод для пакетной обработки, уменьшая количество набивки и потенциально увеличивая скорость и эффективность.
split str val Определяет разбиение набора данных, которое будет использоваться для проверки (val, test, или train). Позволяет гибко подходить к выбору сегмента данных для оценки производительности.

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

Пример проверки с помощью аргументов

В примерах ниже показана проверка модели YOLO с помощью пользовательских аргументов в Python и CLI.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')

# Customize validation settings
validation_results = model.val(data='coco8.yaml',
                               imgsz=640,
                               batch=16,
                               conf=0.25,
                               iou=0.6,
                               device='0')
yolo val model=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


Создано 2023-11-12, Обновлено 2024-03-03
Авторы: glenn-jocher (8), Burhan-Q (1), chr043416@gmail.com (1)

Комментарии