Ultralytics YOLO27:

Анализ оценки и дообучения модели#

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



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

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

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

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

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

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

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

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

Пересечение по объединению#

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

Параметр 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 для каждого изображения. Время предварительной обработки, инференса, вычисления потерь и постобработки отдельно указывается в словаре 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 в YOLO26: он группирует изображения по соотношению сторон и дополняет каждый пакет, не преобразуя все изображения в квадрат. Параметр imgsz задаёт размер изображения для валидации; если не переопределить его, YOLO26 повторно использует сохранённое в модели значение — 640 для официальных предварительно обученных моделей. Настрой imgsz с учётом набора данных и доступной памяти GPU. Подробнее смотри в нашем разделе об обработке изображений разных размеров.

  • Повышение средней точности по классам (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.

Комментарии