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

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

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

Введение

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



Смотреть: Ultralytics Самоучитель по режимам: Удостоверение

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

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

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

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

Таковы основные функциональные возможности режима Val на сайте YOLO11:

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

Наконечник

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

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

Проверка обученной модели YOLO11n точность на наборе данных COCO8. Аргументы не требуются, так как model сохраняет свою подготовку data и аргументы как атрибуты модели. Полный список аргументов проверки см. в разделе Аргументы ниже.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt      # val official model
yolo detect val model=path/to/best.pt # val custom model

Аргументы в пользу YOLO Валидация моделей

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

Аргумент Тип По умолчанию Описание
data str None Указывает путь к файлу конфигурации набора данных (например, coco8.yaml). Этот файл включает в себя пути к данные проверки, названия классов и их количество.
imgsz int 640 Определяет размер входных изображений. Перед обработкой все изображения приводятся к этому размеру. Большие размеры могут повысить точность для мелких объектов, но увеличивают время вычислений.
batch int 16 Устанавливает количество изображений в одной партии. При больших значениях память GPU используется более эффективно, но требуется больше VRAM. Настраивайте в зависимости от доступных аппаратных ресурсов.
save_json bool False Если True, сохраняет результаты в JSON-файл для дальнейшего анализа, интеграции с другими инструментами или отправки на серверы оценки, такие как COCO.
save_hybrid bool False Если TrueСохраняет гибридную версию меток, которая сочетает оригинальные аннотации с дополнительными предсказаниями модели. Полезно для полуконтрольного обучения и расширения наборов данных.
conf float 0.001 Устанавливает минимальный порог доверия для обнаружений. Более низкие значения увеличивают запоминание, но могут привести к увеличению числа ложных срабатываний. Используется во время проверки для вычисления кривых "точность-отзыв".
iou float 0.6 Устанавливает порог пересечения над объединением для не максимального подавления. Управляет устранением обнаружения дубликатов.
max_det int 300 Ограничивает максимальное количество обнаружений на одном изображении. Полезно в плотных сценах для предотвращения чрезмерного количества обнаружений и управления вычислительными ресурсами.
half bool True Обеспечивает вычисления с половинной точностью (FP16), уменьшая потребление памяти и потенциально увеличивая скорость с минимальным влиянием на точность.
device str None Указание устройства для проверки (cpu, cuda:0, и т.д.). Когда Noneавтоматически выбирает лучшее из доступных устройств. Несколько устройств CUDA можно указать через запятую.
dnn bool False Если True, использует OpenCV Модуль DNN для вывода моделей ONNX , предлагающий альтернативу PyTorch методы вывода.
plots bool False Если установлено значение TrueГенерирует и сохраняет графики зависимости предсказаний от истинности, матрицы путаницы и кривые PR для визуальной оценки эффективности модели.
rect bool True Если TrueВ нем используется прямоугольный вывод для пакетной обработки, что позволяет уменьшить количество набивки и потенциально повысить скорость и эффективность обработки изображений в их исходном соотношении сторон.
split str 'val' Определяет разбиение набора данных, используемое для проверки (val, test, или train). Позволяет гибко подходить к выбору сегмента данных для оценки производительности.
project str None Имя каталога проекта, в котором сохраняются результаты проверки. Помогает упорядочить результаты различных экспериментов или моделей.
name str None Имя прогона проверки. Используется для создания подкаталога в папке проекта, в котором хранятся журналы и результаты валидации.
verbose bool False Если Trueотображает подробную информацию о процессе проверки, включая метрики для каждого класса, ход выполнения пакета и дополнительную отладочную информацию.
save_txt bool False Если TrueРезультаты обнаружения сохраняются в текстовых файлах, по одному файлу на изображение, что удобно для дальнейшего анализа, пользовательской постобработки или интеграции с другими системами.
save_conf bool False Если Trueвключает доверительные значения в сохраненные текстовые файлы, когда save_txt включается, обеспечивая более подробный вывод для анализа и фильтрации.
save_crop bool False Если TrueСохраняет обрезанные изображения обнаруженных объектов, которые могут быть полезны для создания наборов данных, визуальной проверки или дальнейшего анализа отдельных обнаружений.
workers int 8 Количество рабочих потоков для загрузки данных. Большие значения могут ускорить предварительную обработку данных, но могут увеличить нагрузку на CPU . При установке значения 0 используется основной поток, который может быть более стабильным в некоторых средах.
augment bool False Позволяет увеличить время тестирования (TTA) во время проверки, потенциально повышая точность обнаружения за счет снижения скорости вывода путем выполнения вывода на преобразованных версиях входных данных.
agnostic_nms bool False Включает не зависящую от класса функцию Non-Maximum Suppression, которая объединяет перекрывающиеся ячейки независимо от их предсказанного класса. Полезно для приложений, ориентированных на экземпляр.
single_cls bool False При проверке все классы рассматриваются как один класс. Полезно для оценки производительности модели в задачах обнаружения бинарных классов или когда различия между классами не важны.

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

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

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

Пример

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

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

Как проверить модель YOLO11 с помощью Ultralytics?

Для проверки модели YOLO11 можно использовать режим Val, предоставляемый Ultralytics. Например, используя API Python , вы можете загрузить модель и запустить проверку с помощью:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

В качестве альтернативы можно использовать интерфейс командной строки (CLI):

yolo val model=yolo11n.pt

Для дальнейшей настройки вы можете задать различные аргументы, например imgsz, batch, и conf в режимах Python и CLI . Проверьте Аргументы в пользу YOLO Валидация моделей раздел для получения полного списка параметров.

Какие показатели можно получить при проверке модели YOLO11 ?

YOLO11 Валидация модели обеспечивает несколько ключевых показателей для оценки эффективности модели. К ним относятся:

  • mAP50 (средняя точность при пороге IoU 0,5)
  • mAP75 (средняя точность при пороге IoU 0,75)
  • mAP50-95 (среднее значение средней точности по нескольким пороговым значениям IoU от 0,5 до 0,95)

Используя Python API, вы можете получить доступ к этим метрикам следующим образом:

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category

Для полной оценки эффективности очень важно проанализировать все эти показатели. Для получения более подробной информации обратитесь к разделу " Ключевые особенности режима Val".

В чем преимущества использования Ultralytics YOLO для проверки?

Использование сайта Ultralytics YOLO для проверки дает несколько преимуществ:

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

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

Можно ли проверить модель YOLO11 с помощью пользовательского набора данных?

Да, вы можете проверить свою модель YOLO11 с помощью пользовательский набор данных. Укажите data аргумент с путем к файлу конфигурации набора данных. Этот файл должен содержать пути к данные проверки, названия классов и другие важные детали.

Пример на сайте Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

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

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

Дополнительные настраиваемые опции при проверке см. в разделе Пример проверки с аргументами.

Как сохранить результаты проверки в JSON-файл в YOLO11?

Чтобы сохранить результаты проверки в JSON-файле, вы можете установить параметр save_json аргумент в пользу True при выполнении валидации. Это можно сделать как в API Python , так и в CLI.

Пример на сайте Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

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

yolo val model=yolo11n.pt save_json=True

Эта функциональность особенно полезна для дальнейшего анализа или интеграции с другими инструментами. Более подробную информацию см. в разделе Аргументы для проверки модели YOLO .

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

Комментарии