Рекомендации по оценке и тонкой настройке модели#
После обучения модели YOLO следующий шаг — оценить, насколько хорошо она работает, и устранить её недостатки с помощью тонкой настройки. При оценке используются такие метрики, как mAP и IoU, чтобы количественно измерить точность. Тонкая настройка изменяет параметры обучения, помогая усилить слабые стороны модели и достичь цели проекта. В этом руководстве объясняется, какие метрики оценки важны, как их интерпретировать и как использовать полученные результаты.
Смотри: Оценка моделей и тонкая настройка | Советы по повышению средней точности
Оценка и тонкая настройка выполняются ближе к концу рабочего процесса проекта компьютерного зрения, когда обучение уже идёт и нужно убедиться, что модель точна, эффективна и готова к развёртыванию.
Основные метрики оценки#
Качество модели оценивают по разным метрикам. Эти метрики производительности дают чёткие числовые данные, которые помогают улучшить модель и убедиться, что она достигает поставленных целей.
Оценка уверенности#
Оценка уверенности показывает, насколько модель уверена, что обнаруженный объект принадлежит определённому классу. Она находится в диапазоне от 0 до 1: чем выше значение, тем выше уверенность. Оценка уверенности помогает фильтровать предсказания: достоверными считаются только обнаружения, оценка уверенности которых превышает заданный порог.
Если при инференсе ты не видишь предсказаний и уже проверил всё остальное, попробуй снизить порог уверенности. Иногда порог слишком высок, и модель игнорирует достоверные предсказания. Снижение порога позволяет модели рассматривать больше вариантов. Возможно, такой результат не соответствует целям твоего проекта, но это хороший способ понять возможности модели и решить, как её донастроить.
Пересечение над объединением#
Пересечение над объединением (IoU) — это метрика в задачах обнаружения объектов, которая показывает, насколько предсказанная ограничивающая рамка перекрывается с истинной ограничивающей рамкой. Значения IoU находятся в диапазоне от 0 до 1, где 1 означает идеальное совпадение. IoU важна, поскольку позволяет оценить, насколько точно предсказанные границы совпадают с фактическими границами объекта.
Средняя точность по всем классам#
Средняя точность по всем классам (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, которые оценивают точность обнаружения объектов разных размеров.
Оценка модели 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, выполни несколько шагов:
- Настройка гиперпараметров: Экспериментируй с разными скоростями обучения, размерами пакетов и аугментациями изображений.
- Аугментация данных: Используй такие методы, как Mosaic и MixUp, чтобы создавать разнообразные обучающие примеры.
- Разбиение изображений на фрагменты: Разделяй большие изображения на небольшие фрагменты, чтобы повысить точность обнаружения мелких объектов.
Аргументы обучения для шагов 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.