Ultralytics YOLO27:
Get Started

Рекомендации по оценке и тонкой настройке модели#

После обучения модели YOLO следующий шаг — оценить, насколько хорошо она работает, и устранить её недостатки с помощью тонкой настройки. При оценке используются такие метрики, как mAP и IoU, чтобы количественно измерить точность. Тонкая настройка изменяет параметры обучения, помогая усилить слабые стороны модели и достичь цели проекта. В этом руководстве объясняется, какие метрики оценки важны, как их интерпретировать и как использовать полученные результаты.



Смотри: Оценка моделей и тонкая настройка | Советы по повышению средней точности

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

Основные метрики оценки#

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

Оценка уверенности#

Оценка уверенности показывает, насколько модель уверена, что обнаруженный объект принадлежит определённому классу. Она находится в диапазоне от 0 до 1: чем выше значение, тем выше уверенность. Оценка уверенности помогает фильтровать предсказания: достоверными считаются только обнаружения, оценка уверенности которых превышает заданный порог.

Нет предсказаний?

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

Пересечение над объединением#

Пересечение над объединением (IoU) — это метрика в задачах обнаружения объектов, которая показывает, насколько предсказанная ограничивающая рамка перекрывается с истинной ограничивающей рамкой. Значения IoU находятся в диапазоне от 0 до 1, где 1 означает идеальное совпадение. IoU важна, поскольку позволяет оценить, насколько точно предсказанные границы совпадают с фактическими границами объекта.

Intersection over Union Overview

Средняя точность по всем классам#

Средняя точность по всем классам (mAP) показывает общее качество модели обнаружения объектов. Метрика учитывает точность обнаружения объектов каждого класса, усредняет значения и выдаёт одно число, которое показывает, насколько точно модель умеет обнаруживать и классифицировать объекты.

Чаще всего приводят две метрики mAP:

  • mAP@.5: Средняя точность при единственном пороге IoU, равном 0.5. Эта метрика показывает, может ли модель правильно находить объекты при менее строгих требованиях к точности. Она оценивает, находится ли объект примерно в нужном месте, без требования идеального расположения, и помогает понять, насколько хорошо модель в целом обнаруживает объекты.
  • mAP@.5:.95: Среднее значение mAP, рассчитанное для нескольких порогов IoU от 0.5 до 0.95 с шагом 0.05. Эта метрика более подробная и строгая. Она даёт более полное представление о том, насколько точно модель находит объекты при разных уровнях строгости, и особенно полезна для приложений, требующих точного обнаружения объектов.

К другим метрикам mAP относятся mAP@0.75, использующая более строгий порог IoU 0.75, и mAP@small, medium и large, которые оценивают точность обнаружения объектов разных размеров.

Mean average precision mAP metric

Оценка модели YOLO26#

Оценить обученную модель YOLO26 можно с помощью режима валидации. Подробное описание расчёта и интерпретации каждой метрики смотри в руководстве Метрики производительности YOLO26.

Обработка изображений разных размеров#

Оценка модели на изображениях разных размеров помогает понять, как она работает на разнообразных наборах данных. По умолчанию при валидации используется формирование прямоугольных батчей (rect=True в model.val()): изображения группируются по соотношению сторон, а каждый батч дополняется до минимального подходящего размера. Поэтому прямоугольные изображения оцениваются без принудительного преобразования в квадрат.

Параметр imgsz задаёт размер изображения, используемый при валидации, и применяется как размер квадратного изображения. Если не указать его явно, YOLO26 повторно использует значение, сохранённое в настройках модели: 640 для официальных предварительно обученных моделей или размер, на котором обучали пользовательскую контрольную точку. При использовании rect=true YOLO26 ограничивает длинную сторону значением imgsz, а короткую дополняет до кратного шагу значения, сохраняя соотношение сторон. Настрой imgsz с учётом размеров набора данных и доступной памяти GPU.

Доступ к метрикам YOLO26#

Чтобы подробно оценить качество модели, можно получить конкретные метрики несколькими строками кода на Python. Приведённый ниже фрагмент загружает модель, запускает валидацию и выводит наиболее полезные метрики.

Использование
from ultralytics import YOLO

# Загрузить модель
model = YOLO("yolo26n.pt")

# Запусти валидацию на своём датасете
results = model.val(data="coco8.yaml")

# Общие метрики
print("mAP50-95:", results.box.map)  # mAP при IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP при IoU 0.50
print("mAP75:", results.box.map75)  # mAP при IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # взвешенная оценка для выбора модели

# Метрики по классам
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Точность, полнота, F1, TP, FP и FN для каждого изображения
print("Per-image metrics:", results.box.image_metrics)

# Разбивка времени по этапам в миллисекундах на изображение
print("Timing breakdown (ms/image):", results.speed)

Обрати внимание: fitness() — это метод, и его нужно вызывать со скобками, а такие метрики, как map, map50 и mp, — свойства, к которым обращаются напрямую.

Атрибут results.box.image_metrics — это словарь с данными для каждого изображения, ключами в котором служат имена файлов изображений. Для каждого изображения в нём хранятся precision, recall, f1, tp, fp и fn при IoU 0.5. Время предобработки, инференса, вычисления потерь и постобработки указано отдельно в словаре results.speed. Эти данные помогут определить, с какими изображениями у модели возникают трудности, и соответствующим образом её дообучить.

Дообучение модели#

При дообучении берут предварительно обученную модель и корректируют её параметры, чтобы повысить качество работы с конкретной задачей или набором данных. Этот процесс также называют повторным обучением модели: он позволяет модели лучше понимать данные, с которыми она столкнётся в реальных приложениях, и точнее предсказывать результаты. Изучив результаты оценки, ты повторно обучаешь модель на собственных данных, корректируя аргументы обучения, описанные в руководстве по дообучению.

Разбиение изображений на фрагменты для обнаружения мелких объектов#

Разбиение изображений на фрагменты может повысить точность обнаружения мелких объектов. Разделяя большие изображения на небольшие фрагменты — например, разбивая изображения размером 1280x1280 на несколько фрагментов размером 640x640, — ты сохраняешь исходное разрешение и позволяешь модели обучаться на фрагментах с высоким разрешением. Ultralytics поддерживает эту возможность во время инференса с помощью инференса по фрагментам через SAHI. При обучении на разбитых на фрагменты изображениях правильно скорректируй разметку для каждого нового фрагмента.

Заключение#

Оценка и дообучение превращают обученную модель в надёжную модель, готовую к развёртыванию: такие метрики, как mAP и IoU, выявляют слабые места, а целенаправленная корректировка параметров помогает их устранить. Начни с режима валидации, чтобы оценить качество работы модели, затем переобучи её с аргументами из руководства по дообучению и продолжай экспериментировать с новыми параметрами, методами и наборами данных. Если по ходу работы возникнут вопросы, задай их сообществу в репозитории Ultralytics на GitHub или на сервере Ultralytics в Discord.

Часто задаваемые вопросы#

  • Для оценки качества работы модели YOLO26 важны такие метрики, как оценка уверенности, пересечение над объединением (IoU) и средняя точность (mAP). Оценка уверенности показывает, насколько модель уверена в принадлежности каждого обнаруженного объекта к определённому классу. IoU оценивает степень перекрытия предсказанной ограничивающей рамки с эталонной. Средняя точность (mAP) объединяет значения точности по классам; mAP@.5 и mAP@.5:.95 — два распространённых варианта для разных порогов IoU. Подробнее об этих метриках читай в нашем руководстве по метрикам качества YOLO26.

  • Дообучение предварительно обученной модели YOLO26 предполагает корректировку её параметров для повышения качества работы с конкретной задачей или набором данных. Сначала оцени модель с помощью метрик, затем переобучи её на собственном наборе данных, используя предварительно обученные веса. При оценке такие параметры, как rect=true, помогают эффективно работать с изображениями разных размеров. Аргументы обучения, которые можно корректировать, описаны в руководстве по дообучению.

  • Чтобы работать с изображениями разных размеров при оценке, используй валидацию с прямоугольными изображениями (rect=True, значение по умолчанию для model.val()): она группирует изображения по соотношению сторон и дополняет каждый пакет, а не приводит все изображения к квадрату. Параметр imgsz задаёт размер изображения для валидации; если не переопределить его, YOLO26 использует сохранённое значение модели (640 для официальных предварительно обученных моделей). Подбери значение imgsz с учётом набора данных и объёма памяти GPU. Подробнее см. в разделе о работе с изображениями разных размеров.

  • Чтобы повысить среднюю точность (mAP) модели YOLO26, выполни несколько шагов:

    1. Настройка гиперпараметров: Экспериментируй с разными скоростями обучения, размерами пакетов и аугментациями изображений.
    2. Аугментация данных: Используй такие методы, как Mosaic и MixUp, чтобы создавать разнообразные обучающие примеры.
    3. Разбиение изображений на фрагменты: Разделяй большие изображения на небольшие фрагменты, чтобы повысить точность обнаружения мелких объектов.

    Аргументы обучения для шагов 1 и 2 описаны в руководстве по дообучению, а шаг 3 — в разделе о разбиении изображений на фрагменты.

  • После запуска валидации получить доступ к метрикам оценки модели YOLO26 можно с помощью Python:

    Использование
    from ultralytics import YOLO
    
    # Загрузить модель
    model = YOLO("yolo26n.pt")
    
    # Запусти валидацию
    results = model.val(data="coco8.yaml")
    
    # Получи доступ к основным метрикам
    print("Mean average precision at IoU=0.50:", results.box.map50)
    print("Mean average precision at IoU=0.50:0.95:", results.box.map)
    print("Mean recall:", results.box.mr)
    print("Class indices evaluated:", results.box.ap_class_index)

    Анализ этих метрик поможет тебе дообучить и оптимизировать модель YOLO26. Подробнее читай в нашем руководстве по метрикам качества YOLO.

Комментарии