Meet YOLO26: next-gen vision AI.

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

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



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

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

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

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

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

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

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

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

Link to this sectionIntersection over Union (IoU)#

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

Intersection over Union Overview

Link to this sectionСредняя точность (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

Link to this sectionОценка модели YOLO26#

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

Link to this sectionРабота с изображениями разного размера#

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

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

Link to this sectionДоступ к метрикам 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. Вместе они позволяют определить, с какими изображениями модель справляется хуже всего, и соответствующим образом провести донастройку.

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

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

Link to this sectionНачало с более высокого коэффициента обучения (Learning Rate)#

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

Установи аргумент обучения warmup_epochs в 0 внутри model.train(), чтобы отключить фазу разогрева. Тогда обучение продолжится с предобученных весов при настроенной базовой скорости обучения (lr0) вместо того, чтобы постепенно увеличивать её, адаптируясь к нюансам твоих новых данных.

Донастройка без разогрева скорости обучения
from ultralytics import YOLO

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

# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)

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

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

Link to this sectionЗаключение#

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

Link to this sectionFAQ#

Link to this sectionКаковы ключевые метрики для оценки производительности модели YOLO26?#

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

Link to this sectionКак я могу дообучить предобученную модель YOLO26 для моего конкретного набора данных?#

Донастройка предобученной модели YOLO26 включает в себя корректировку её параметров для улучшения производительности на конкретной задаче или наборе данных. Начни с оценки своей модели по метрикам, а затем установи аргумент обучения warmup_epochs в 0 внутри model.train(), чтобы скорость обучения начиналась сразу с настроенного базового значения вместо постепенного увеличения. Во время оценки такие параметры, как rect=true, помогают эффективно обрабатывать изображения разного размера. Для получения более подробных инструкций обратись к нашему разделу донастройки твоей модели.

Link to this sectionКак я могу работать с изображениями разного размера при оценке моей модели YOLO26?#

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

Link to this sectionКакие практические шаги я могу предпринять для улучшения mean average precision для моей модели YOLO26?#

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

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

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

Link to this sectionКак мне получить доступ к метрикам оценки модели YOLO26 в Python?#

Ты можешь получить доступ к метрикам оценки модели 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.

Комментарии