YOLO Vision 2026:

Идеи по оценке и дообучению моделей#

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



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

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

Ключевые метрики оценки#

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

Оценка достоверности (Confidence Score)#

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

Не видишь предсказаний?

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

Intersection over Union (IoU)#

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

Intersection over Union Overview

Средняя точность (Mean Average Precision)#

Mean Average Precision (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 группирует изображения по соотношению сторон и дополняет (падит) каждый батч до минимального подходящего размера, поэтому прямоугольные изображения оцениваются без принудительного приведения к квадрату.

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

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

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

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

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

# Run validation on your dataset
results = model.val(data="coco8.yaml")

# Overall metrics
print("mAP50-95:", results.box.map)  # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP at IoU 0.50
print("mAP75:", results.box.map75)  # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # weighted score used for model selection

# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)

# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)

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

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

Донастройка твоей модели#

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

Тайлинг изображений для маленьких объектов#

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

Заключение#

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

FAQ#

  • Для оценки производительности модели YOLO26 важными метриками являются оценка уверенности (Confidence Score), Intersection over Union (IoU) и Mean Average Precision (mAP). Оценка уверенности измеряет степень уверенности модели для каждого обнаруженного класса объектов. IoU оценивает, насколько хорошо предсказанный ограничивающий прямоугольник пересекается с истинным. Mean Average Precision (mAP) объединяет оценки точности по классам, причем mAP@.5 и mAP@.5:.95 являются двумя распространенными типами для различных порогов IoU. Узнай больше об этих метриках в нашем руководстве по метрикам производительности YOLO26.

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

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

  • Улучшение mean average precision (mAP) для модели YOLO26 включает в себя несколько шагов:

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

    Информацию об аргументах обучения для шагов 1 и 2 см. в руководстве по дообучению; шаг 3 описан в разделе тайлинг изображений.

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

    Использование
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n.pt")
    
    # Run validation
    results = model.val(data="coco8.yaml")
    
    # Access key metrics
    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.

Комментарии