Проверка модели с помощью 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 Валидация моделей
При проверке моделей 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.
Пример
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Как проверить модель 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):
Для дальнейшей настройки вы можете задать различные аргументы, например 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:
Дополнительные настраиваемые опции при проверке см. в разделе Пример проверки с аргументами.
Как сохранить результаты проверки в 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 .