Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас

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

Команда Ultralytics

5 мин чтения

11 октября 2022 г.

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

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

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

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

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

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

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

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


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

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

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

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

Pip install comet

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

Существует два способа конфигурирования Comet с помощью YOLOv5.

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


Переменные окружения

export COMET COMET# По умолчанию это будетyolov5'


Конфигурационный файл Comet

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

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

# Обучение YOLOv5s на COCO128 для 5 эпохspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt

Вот и все!

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

Эксперименты с YOLOv5 в Comet Dashboard

Попробуйте сами!

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

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

Автоматическое протоколирование

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

Метрики

  • Box Loss, Object Loss и Classification Loss для данных обучения и валидации
  • метрики mAP.5, mAP.5:0.95 для валидационных данных
  • Точность и полнота для данных валидации

Параметры

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

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

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

Настройте ведение журнала Comet

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

export COMET# Установите, в каком режиме запускать Comet - 'online' или 'offline'. По умолчанию onlineexport COMET# Задайте имя для сохраненной модели. По умолчанию yolov5export COMET# Установка отключения регистрации матрицы запутанности Comet . По умолчанию trueexport COMET# Контролирует, сколько всего предсказаний изображений нужно регистрировать в Comet. По умолчанию 100.export COMET# Устанавливается для регистрации метрик оценки для каждого обнаруженного класса в конце обучения. По умолчанию falseexport COMET# Установите это значение, если вы хотите возобновить обучение с другой контрольной точки. По умолчанию 'last.pt'export COMET# Установите это значение, если вы хотите регистрировать метрики тренировки на уровне партии. По умолчанию false.export COMET# Установите значение false, чтобы отключить журналирование предсказаний модели.

Регистрация контрольных точек с помощью Comet

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

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128yaml \

--weights yolov5s.pt \

--save-period 1

Протоколирование предсказаний модели

По умолчанию предсказания модели (изображения, метки истинности и ограничительные рамки) будут регистрироваться в Comet. Вы можете управлять частотой регистрации прогнозов и связанных с ними изображений, передавая аргумент командной строки bbox. Прогнозы можно визуализировать с помощью пользовательской панели Comet"Обнаружение объектов". Эта частота соответствует каждому N-му пакету данных за эпоху. В примере ниже мы регистрируем каждую вторую партию данных для каждой эпохи.

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

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

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 2

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

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

env COMET train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt bbox 1

Протоколирование метрик на уровне классов

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

env COMET python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt

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

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

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

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

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

Вкладка "Артефакты Comet ", YOLOv5

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

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

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

Метаданные журнала из YAML-файла в Comet, YOLOv5

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

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

# содержимое файла artifactyaml Путь:comet:///:"

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

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

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

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

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

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

Путь выполнения имеет следующий формат comet:////.

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

python train.py \--resumecomet://"

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

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

Настройка оптимизации Sweep

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

Пример файла был предоставлен в:

comet.json python comet.py comet"comet.json"

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

python comet.py comet"comet.json" \--save-period 1 bbox 1

Параллельный запуск Sweep

comet optimizer -j comet.py comet.json"

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

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

Оставайтесь на связи

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

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

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

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

Начать бесплатно