Ultralytics YOLO27:
Интеграции

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

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

NUNuvola Ladi5 min read
Отслеживание обучения модели Ultralytics YOLOv5 с Comet

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

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

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

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

YOLOv5 — отличная отправная точка для изучения компьютерного зрения. Чтобы повысить производительность модели и подготовить её к работе в продакшене, тебе потребуется записывать результаты в инструменте отслеживания экспериментов, таком как 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

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

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

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

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

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

Метрики#

  • Потери на ограничивающих рамках, потери на объектах и потери классификации для обучающих и валидационных данных
  • Метрики mAP_0.5 и mAP_0.5:0.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 Object Detection. Эта частота соответствует каждому N-му пакету данных в эпохе. В примере ниже мы записываем каждый второй пакет данных для каждой эпохи.

Примечание: загрузчик валидационных данных 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 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 в твоём рабочем пространстве Comet.

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

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 предлагает множество способов визуализации результатов перебора. Посмотри проект с завершённым перебором здесь:

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

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

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

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

Explore solutions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

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

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

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

Добавь Vision AI в умное сельское хозяйство с моделями Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание поголовья и точное земледелие для более высоких и эффективных урожаев.
Узнать больше

Давай вместе создавать будущее AI!

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