Инсайты по оценке и дообучению моделей
Введение
Как только ты обучил свою модель компьютерного зрения, ее оценка и доработка для достижения оптимальной производительности становятся необходимыми. Простого обучения модели недостаточно. Тебе нужно убедиться, что модель точна, эффективна и выполняет задачу твоего проекта по компьютерному зрению. Оценивая и дообучая модель, ты сможешь выявить слабые места, повысить точность и улучшить общую производительность.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
В этом руководстве мы делимся инсайтами по оценке и дообучению моделей, чтобы сделать этот этап проекта компьютерного зрения более доступным. Мы обсудим, как понимать метрики оценки и применять методы дообучения, давая тебе знания для повышения возможностей твоей модели.
Оценка производительности модели с использованием метрик
Оценка того, насколько хорошо работает модель, помогает нам понять эффективность ее функционирования. Для измерения производительности используются различные метрики. Эти метрики производительности предоставляют четкие числовые данные, которые помогут направить усилия на улучшение, чтобы модель соответствовала поставленным целям. Давай подробнее рассмотрим несколько ключевых метрик.
Оценка уверенности (Confidence Score)
Оценка уверенности отражает степень уверенности модели в том, что обнаруженный объект принадлежит к конкретному классу. Она варьируется от 0 до 1, причем более высокие баллы указывают на большую уверенность. Оценка уверенности помогает фильтровать предсказания: действительными считаются только те обнаружения, оценка уверенности которых выше заданного порога.
Краткий совет: Если при выполнении инференса ты не видишь никаких предсказаний, а все остальное уже проверил, попробуй снизить порог оценки уверенности. Иногда порог слишком высок, из-за чего модель игнорирует верные предсказания. Снижение порога позволяет модели учитывать больше возможностей. Возможно, это не соответствует целям твоего проекта, но это хороший способ увидеть, на что способна модель, и решить, как ее дообучить.
Пересечение по объединению (Intersection over Union)
Intersection over Union (IoU) — это метрика в обнаружении объектов, которая измеряет, насколько хорошо предсказанная ограничивающая рамка перекрывается с истинной ограничивающей рамкой (ground truth). Значения IoU варьируются от 0 до 1, где единица означает идеальное совпадение. IoU важна, потому что она измеряет, насколько точно предсказанные границы соответствуют реальным границам объекта.
Средняя точность (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, которые оценивают точность для объектов разных размеров.
Оценка производительности модели YOLO26
Что касается YOLO26, ты можешь использовать режим валидации для оценки модели. Также обязательно ознакомься с нашим руководством, в котором подробно разбираются метрики производительности YOLO26 и способы их интерпретации.
Частые вопросы сообщества
При оценке своей модели YOLO26 ты можешь столкнуться с некоторыми трудностями. Основываясь на частых вопросах сообщества, вот несколько советов, которые помогут тебе получить максимум от твоей модели YOLO26:
Работа с изображениями разных размеров
Оценка твоей модели YOLO26 с использованием изображений разных размеров поможет тебе понять ее производительность на разнообразных наборах данных. Используя параметр валидации rect=true, YOLO26 настраивает шаг сети для каждого батча в зависимости от размеров изображений, что позволяет модели работать с прямоугольными изображениями, не приводя их к единому размеру.
Параметр валидации imgsz задает максимальный размер для изменения масштаба изображений, по умолчанию он равен 640. Ты можешь настроить его в зависимости от максимальных размеров твоего датасета и доступной видеопамяти GPU. Даже с заданным imgsz, параметр rect=true позволяет модели эффективно управлять изображениями разного размера за счет динамической настройки шага (stride).
Доступ к метрикам YOLO26
Если ты хочешь глубже понять производительность своей модели YOLO26, ты можешь легко получить доступ к конкретным метрикам оценки с помощью нескольких строк кода на Python. Фрагмент кода ниже позволит тебе загрузить модель, запустить оценку и вывести различные метрики, показывающие, насколько хорошо справляется твоя модель.
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Per-image metrics:", results.box.image_metrics)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)Объект результатов также включает image_metrics, словарь для каждого изображения, где ключом является имя файла, с показателями precision, recall, f1, tp, fp и fn, а также метриками скорости, такими как время препроцессинга, время инференса, потери и время постпроцессинга. Анализируя эти метрики, ты можешь дообучить и оптимизировать свою модель YOLO26 для достижения лучшей производительности, делая ее более эффективной для твоего конкретного случая использования.
Как работает дообучение?
Дообучение (fine-tuning) включает в себя взятие предобученной модели и настройку ее параметров для улучшения производительности при выполнении конкретной задачи или на определенном наборе данных. Этот процесс, также известный как переобучение модели, позволяет модели лучше понимать и прогнозировать результаты для конкретных данных, с которыми она столкнется в реальных приложениях. Ты можешь дообучить свою модель на основе результатов ее оценки для достижения оптимальных результатов.
Советы по дообучению твоей модели
Дообучение модели означает уделение пристального внимания нескольким важным параметрам и методам для достижения оптимальной производительности. Вот несколько существенных советов, которые помогут тебе в этом процессе.
Начало с более высокого темпа обучения
Обычно во время начальных эпох обучения темп обучения (learning rate) начинается с низкого значения и постепенно увеличивается для стабилизации процесса обучения. Однако, поскольку твоя модель уже изучила некоторые признаки из предыдущего набора данных, начало сразу с более высокого темпа обучения может быть более выгодным.
При оценке своей модели YOLO26 ты можешь установить параметр валидации warmup_epochs в warmup_epochs=0, чтобы предотвратить старт темпа обучения с слишком низкого значения. Следуя этому процессу, обучение продолжится с использованием предоставленных весов, адаптируясь к нюансам твоих новых данных.
Тайлинг (нарезка) изображений для мелких объектов
Тайлинг изображений может повысить точность обнаружения мелких объектов. Разбивая большие изображения на более мелкие сегменты, например, разделяя изображения 1280x1280 на несколько фрагментов 640x640, ты сохраняешь исходное разрешение, и модель может обучаться на высококачественных фрагментах. При использовании YOLO26 убедись, что правильно настроил разметку для этих новых сегментов.
Взаимодействуй с сообществом
Делясь своими идеями и вопросами с другими энтузиастами компьютерного зрения, ты можешь найти творческие решения для препятствий в своих проектах. Вот несколько отличных способов учиться, устранять неполадки и общаться.
Поиск помощи и поддержки
- GitHub Issues: Изучи репозиторий YOLO26 на GitHub и используй вкладку Issues, чтобы задавать вопросы, сообщать о багах и предлагать новые функции. Сообщество и мейнтейнеры готовы помочь с любыми проблемами, с которыми ты столкнешься.
- Сервер Ultralytics в Discord: Присоединяйся к серверу Ultralytics в Discord, чтобы связаться с другими пользователями и разработчиками, получить поддержку, обменяться знаниями и обсудить идеи.
Официальная документация
- Документация Ultralytics YOLO26: Ознакомься с официальной документацией YOLO26, чтобы найти подробные руководства и ценные инсайты по различным задачам и проектам в области компьютерного зрения.
Заключительные мысли
Оценка и дообучение твоей модели компьютерного зрения — важные этапы для успешного развертывания модели. Эти шаги помогают убедиться, что твоя модель точна, эффективна и подходит для твоего приложения в целом. Ключ к обучению лучшей модели — это постоянные эксперименты и обучение. Не стесняйся настраивать параметры, пробовать новые методы и исследовать разные наборы данных. Продолжай экспериментировать и расширять границы возможного!
Часто задаваемые вопросы (FAQ)
Каковы ключевые метрики для оценки производительности модели YOLO26?
Для оценки производительности модели YOLO26 важны такие метрики, как оценка уверенности (Confidence Score), Intersection over Union (IoU) и средняя точность (mAP). Оценка уверенности измеряет уверенность модели для каждого обнаруженного класса объекта. IoU оценивает, насколько хорошо предсказанная ограничивающая рамка перекрывается с эталонной. Средняя точность (mAP) объединяет показатели точности по классам, при этом mAP@.5 и mAP@.5:.95 являются двумя распространенными типами для различных порогов IoU. Узнай больше об этих метриках в нашем руководстве по метрикам производительности YOLO26.
Как я могу дообучить предобученную модель YOLO26 для моего набора данных?
Дообучение предобученной модели YOLO26 включает настройку ее параметров для повышения производительности на конкретной задаче или датасете. Начни с оценки своей модели с помощью метрик, затем установи более высокий начальный темп обучения, настроив параметр warmup_epochs на 0 для немедленной стабильности. Используй такие параметры, как rect=true, для эффективной работы с изображениями разных размеров. Более подробные инструкции см. в нашем разделе о дообучении моделей YOLO26.
Как работать с изображениями разных размеров при оценке моей модели YOLO26?
Чтобы работать с изображениями разных размеров во время оценки, используй параметр rect=true в YOLO26, который настраивает шаг сети для каждого батча в зависимости от размеров изображений. Параметр imgsz устанавливает максимальный размер для изменения масштаба, по умолчанию он равен 640. Настрой imgsz в соответствии с твоим набором данных и доступной видеопамятью GPU. Для получения подробной информации посети наш раздел о работе с изображениями разных размеров.
Какие практические шаги я могу предпринять, чтобы улучшить среднюю точность (mAP) моей модели YOLO26?
Улучшение средней точности (mAP) для модели YOLO26 включает несколько шагов:
- Настройка гиперпараметров: Экспериментируй с разными темпами обучения, размерами батчей и аугментациями изображений.
- Аугментация данных: Используй методы, такие как Mosaic и MixUp, для создания разнообразных примеров обучения.
- Тайлинг изображений: Разбивай большие изображения на более мелкие тайлы, чтобы повысить точность обнаружения мелких объектов. Обратись к нашему подробному руководству по дообучению моделей для конкретных стратегий.
Как получить доступ к метрикам оценки модели YOLO26 на Python?
Ты можешь получить доступ к метрикам оценки модели YOLO26, используя Python, выполнив следующие шаги:
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)Анализ этих метрик помогает дообучить и оптимизировать твою модель YOLO26. Чтобы погрузиться глубже, ознакомься с нашим руководством по метрикам YOLO26.