Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Интеграции

Как использовать Ultralytics YOLOv5 с Comet

Узнай, как Ultralytics сотрудничает с Comet для оптимизации моделей Ultralytics YOLOv5: отслеживание в реальном времени, эффективная совместная работа и повышенная воспроизводимость.

Nuvola LadiNuvola Ladi5 мин. чтения
Отслеживание обучения моделей Ultralytics YOLOv5 с помощью Comet

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

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

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

Кроме того, Comet помогает не терять результаты работы, легко делиться ими и сотрудничать с командами любого размера!

YOLOv5 — отличная отправная точка в мире компьютерного зрения. Чтобы повысить производительность модели и подготовить её к использованию в production, нужно записывать результаты в инструмент отслеживания экспериментов, например Comet.

Интеграция Comet и YOLOv5 предлагает 3 основные возможности:

  • Автоматическое журналирование и возможность настраивать журналирование
  • Сохранение наборов данных и моделей в виде артефактов для отладки и обеспечения воспроизводимости
  • Настройка представления с помощью пользовательских панелей Comet

В этом руководстве рассказывается, как использовать YOLOv5 с Comet.

Готов отслеживать эксперименты в реальном времени? Начнём!

Начало работы#

1. Установи Comet#

pip install comet_ml

2. Настрой учётные данные Comet#

Настроить Comet для работы с YOLOv5 можно двумя способами.

Можно указать учётные данные в переменных среды или создать файл .comet.config в рабочем каталоге и указать их в нём.

Переменные среды#

export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

Файл конфигурации Comet#

[comet]
api_key=<Your API Key>
project_name=<Your Comet Project Name> # This will default to 'yolov5'

3. Запусти скрипт обучения#

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

Вот и всё!

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

Эксперименты с YOLOv5 на панели Comet

Попробуй сам!#

Посмотри пример завершённого запуска.

А ещё лучше — попробуй сам в блокноте YOLOv5 для Colab.

Автоматическое журналирование#

По умолчанию Comet записывает следующие данные:

Метрики#

  • Потери для BBox, объектов и классификации на обучающих и валидационных данных
  • Метрики mAP50, mAP50-95 для проверочных данных
  • Точность и полнота для валидационных данных

Параметры#

  • Гиперпараметры модели
  • Все параметры, переданные через параметры командной строки

Визуализации#

  • Матрица ошибок для предсказаний модели на валидационных данных
  • Графики кривых PR и F1 для всех классов
  • Коррелограмма меток классов

Настройка журналирования Comet#

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

export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictions

Журналирование контрольных точек с помощью Comet#

По умолчанию журналирование моделей в Comet отключено. Чтобы включить его, передай скрипту обучения аргумент save-period. Контрольные точки будут сохраняться в Comet с интервалом, заданным значением save-period.

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --save-period 1

Журналирование предсказаний модели#

По умолчанию предсказания модели (изображения, метки эталонной разметки и ограничивающие рамки) записываются в Comet. Частоту записи предсказаний и связанных с ними изображений можно задать с помощью аргумента командной строки bbox_interval. Предсказания можно визуализировать в пользовательской панели Comet для обнаружения объектов. Частота задаёт, какой по счёту пакет данных записывается в каждой эпохе. В примере ниже записывается каждый второй пакет данных каждой эпохи.

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

Вот пример проекта с использованием панели.

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 2

Настройка количества изображений с предсказаниями, записываемых в Comet#

При журналировании предсказаний YOLOv5 Comet записывает изображения, связанные с каждым набором предсказаний. По умолчанию записывается не более 100 изображений для валидации. Это число можно увеличить или уменьшить с помощью переменной среды COMET_MAX_IMAGE_UPLOADS.

env COMET_MAX_IMAGE_UPLOADS=200 python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --bbox_interval 1

Журналирование метрик по классам#

Используй переменную среды COMET_LOG_PER_CLASS_METRICS, чтобы записывать mAP, точность, полноту и F1 для каждого класса.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt

Загрузка набора данных в артефакты Comet#

Чтобы хранить данные с помощью артефактов Comet, используй флаг upload_dataset.

Набор данных организован так, как описано в документации YOLOv5. Файл конфигурации набора данных YAML должен иметь тот же формат, что и файл coco128.yaml.

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data coco128.yaml \
  --weights yolov5s.pt \
  --upload_dataset

Загруженный набор данных можно найти на вкладке Artifacts в рабочей области Comet.

Вкладка Artifacts в Comet, YOLOv5

Предварительно просмотреть данные можно прямо в интерфейсе Comet.

Предварительный просмотр данных в Comet, YOLOv5

Версии артефактов отслеживаются; к ним также можно добавлять метаданные о наборе данных. Comet автоматически запишет метаданные из YAML-файла набора данных.

Запись метаданных из YAML-файла в Comet, YOLOv5

Использование сохранённого артефакта#

Если хочешь использовать набор данных из Comet Artifacts, укажи в YAML-файле набора данных переменную path, содержащую URL следующего ресурса Artifact.

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

Затем передай этот файл скрипту обучения следующим образом:

python train.py \
  --img 640 \
  --batch 16 \
  --epochs 5 \
  --data artifact.yaml \
  --weights yolov5s.pt

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

Рабочий процесс экспериментов в Comet, YOLOv5

Возобновление обучения#

Если обучение прервалось по какой-либо причине, например из-за проблем с интернет-соединением, его можно возобновить с помощью флага resume и пути запуска Comet.

Путь запуска имеет следующий формат: comet://<your workspace name>/<your project name>/<experiment id>.

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

python train.py \
  --resume "comet://<your run path>"

Поиск гиперпараметров с помощью Comet Optimizer#

YOLOv5 также интегрирован с Comet Optimizer, поэтому визуализировать перебор гиперпараметров в интерфейсе Comet очень просто.

Настройка перебора с помощью оптимизатора#

Чтобы настроить Comet Optimizer, нужно создать JSON-файл с информацией о переборе.

Пример файла находится в utils/loggers/comet/optimizer_config.json.

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

Скрипт hpo.py принимает те же аргументы, что и train.py. Чтобы передать дополнительные аргументы в sweep, просто добавь их после скрипта.

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \
  --save-period 1 \
  --bbox_interval 1

Параллельный запуск перебора#

comet optimizer -j <num_workers> utils/loggers/comet/hpo.py \
  utils/loggers/comet/optimizer_config.json

Comet предлагает множество способов визуализировать результаты sweep. Посмотри на проект с завершённым sweep:

Визуализация результатов перебора в Comet, YOLOv5

Оставайся на связи#

Начни использовать нашу интеграцию с Comet, чтобы управлять моделями YOLOv5, визуализировать их и оптимизировать — от запусков обучения до мониторинга в эксплуатации.

И, конечно, присоединяйся к сообществу Ultralytics — здесь можно задавать вопросы и делиться советами по обучению, валидации и развёртыванию YOLOv5.

Автор

Nuvola Ladi
Nuvola Ladi

Менеджер по цифровому контенту · Ultralytics

Nuvola Ladi — менеджер по цифровому контенту в Ultralytics. Она создает материалы о Vision AI и Ultralytics YOLO, а также представляет компанию на отраслевых мероприятиях, таких как PyTorch Conference 2025. Она живет в Испании и получила степень магистра визуальных и цифровых медиа в IE University. До прихода в Ultralytics она работала в таких организациях, как XVA Gallery & Hotel и Rolex.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

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

Компьютерное зрение в здравоохранении

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

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения