Встречай YOLO26: ИИ компьютерного зрения нового поколения.
Ultralytics
Интеграции

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

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

КОКоманда Ultralytics
5 min read
Отслеживание обучения модели Ultralytics YOLOv5 с помощью Comet

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

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

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

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

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

Интеграция Comet и YOLOv5 предлагает 3 основные функции:

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

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

Итак, готов отслеживать свои эксперименты в реальном времени? Давай начнем!

Link to this sectionНачало работы#

Link to this sectionУстанови Comet#

pip install comet_ml

Link to this sectionНастрой учетные данные Comet#

Существует два способа настройки Comet с YOLOv5.

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

Link to this sectionПеременные среды#

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

Link to this sectionФайл конфигурации Comet#

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

Link to this sectionЗапусти скрипт обучения#

# 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

Link to this sectionПопробуй сам!#

Ознакомься с примером завершенного запуска здесь.

Или, что еще лучше, попробуй сделать это самостоятельно в этом ноутбуке Colab.

Link to this sectionАвтоматическое логирование#

По умолчанию Comet будет логировать следующие элементы:

Link to this sectionМетрики#

  • Box Loss, Object Loss и Classification Loss для данных обучения и валидации
  • Метрики mAP_0.5 и mAP_0.5:0.95 для данных валидации
  • Precision и Recall для данных валидации

Link to this sectionПараметры#

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

Link to this sectionВизуализации#

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

Link to this sectionНастройка логирования 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

Link to this sectionЛогирование чекпоинтов в 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

Link to this sectionЛогирование прогнозов модели#

По умолчанию прогнозы модели (изображения, метки ground truth и ограничивающие рамки) будут логироваться в Comet. Ты можешь контролировать частоту логирования прогнозов и связанных с ними изображений, передав аргумент командной строки bbox_interval. Прогнозы можно визуализировать с помощью пользовательской панели Comet Object Detection. Эта частота соответствует каждому N-ному пакету (батчу) данных за эпоху. В примере ниже мы логируем каждый 2-й батч данных для каждой эпохи.

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

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

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

Link to this sectionКонтроль количества прогнозируемых изображений, залогированных в 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

Link to this sectionЛогирование метрик на уровне классов#

Используй переменную среды COMET_LOG_PER_CLASS_METRICS для логирования mAP, precision, recall и f1 для каждого класса.

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

Link to this sectionЗагрузка набора данных в Comet Artifacts#

Если ты хочешь хранить свои данные с помощью Comet Artifacts, ты можешь сделать это с помощью флага upload_dataset.

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

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

Ты можешь найти загруженный набор данных на вкладке Artifacts в твоем рабочем пространстве (Workspace) Comet.

Вкладка артефактов Comet, YOLOv5

Ты можешь просмотреть данные непосредственно в интерфейсе Comet.

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

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

Логирование метаданных из YAML-файла в Comet, YOLOv5

Link to this sectionИспользование сохраненного артефакта#

Если ты хочешь использовать набор данных из Comet Artifacts, установи переменную path в твоем YAML-файле набора данных, чтобы она указывала на следующий 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

Link to this sectionВозобновление обучения#

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

The Run Path has the following format comet://<your workspace name>/<your project name>/<experiment id>.

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

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

Link to this sectionПоиск гиперпараметров с помощью оптимизатора Comet#

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

Link to this sectionНастройка перебора оптимизатора#

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

Пример файла предоставлен в 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. Если ты хочешь передать дополнительные аргументы в свой перебор, просто добавь их после скрипта.

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

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

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

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

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

Link to this sectionБудем на связи#

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

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

Explore solutions

Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

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

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

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

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

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

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

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

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

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

Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

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

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

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

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

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

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

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

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

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

Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

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

Узнать больше
Real-time AI that works with your team

ИИ в логистике

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

Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

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

Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

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

Узнать больше
Real-time AI that works with your team

ИИ в производстве

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

Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

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

Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

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

Узнать больше

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

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