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

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

В Ultralytics мы на коммерческой основе сотрудничаем с другими стартапами, которые помогают нам финансировать исследования и разработку наших замечательных инструментов с открытым исходным кодом, таких как YOLOv5, чтобы они оставались бесплатными для всех. Эта статья может содержать партнерские ссылки на этих партнеров.
Наш новый партнер, Cometсоздает инструменты, которые помогают ученым, инженерам и руководителям групп ускорить и оптимизировать модели машинного обучения и глубокого обучения.
Comet - это мощный инструмент для отслеживания ваших моделей, наборов данных и метрик. Он даже регистрирует системные переменные и переменные окружения, чтобы обеспечить воспроизводимость и отладку каждого запуска. Это как виртуальный помощник, который волшебным образом знает, какие заметки нужно сохранить. Отслеживайте и визуализируйте показатели модели в реальном времени, сохраняйте гиперпараметры, наборы данных и контрольные точки модели, а также визуализируйте предсказания модели с помощью пользовательских панелейComet !
Кроме того, Comet гарантирует, что вы никогда не потеряете track над своей работой, и позволяет легко обмениваться результатами и сотрудничать с командами любого размера!
YOLOv5 это отличная отправная точка в вашем путешествии по компьютерному зрению. Чтобы улучшить производительность модели и сделать ее готовой к производству, вам нужно будет регистрировать результаты в инструменте для отслеживания экспериментов, таком как Comet.
Интеграция Comet и YOLOv5 предлагает 3 основные функции:
В этом руководстве мы расскажем о том, как использовать YOLOv5 с Comet.
Ну что, готовы track свои эксперименты в режиме реального времени? Давайте начнем!
Pip install comet
Существует два способа конфигурирования Comet с помощью YOLOv5.
Вы можете задать свои учетные данные через переменные окружения или создать файлcomet.config в рабочем каталоге и задать их там.
export COMET COMET# По умолчанию это будетyolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Обучение YOLOv5s на COCO128 для 5 эпохspython train.py --img 640 --batch 16 --epochs 5 --data coco128yaml --weights yolov5s.pt
Вот и все!
Comet автоматически регистрирует гиперпараметры, аргументы командной строки, метрики обучения и проверки. Вы можете визуализировать и анализировать свои прогоны в пользовательском интерфейсе Comet .

Посмотрите пример завершенного запуска здесь.
Или, что еще лучше, попробуйте сами в этом блокноте Colab.
По умолчанию 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 отключена. Чтобы включить ее, передайте аргумент 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
При регистрации прогнозов из 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 , вы можете сделать это с помощью флага upload_dataset.
Набор данных организован так, как описано в документацииYOLOv5 . Конфигурационный yaml набора данных должен иметь тот же формат, что и файл coco128yaml .
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128yaml \--weights yolov5s.pt \--upload_dataset
Загруженный набор данных можно найти на вкладке "Артефакты" в рабочей области Comet .

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

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

Если вы хотите использовать набор данных из 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 Run Path.
Путь выполнения имеет следующий формат comet:////.
Это восстановит выполнение до состояния, предшествовавшего прерыванию, включая восстановление модели из контрольной точки, восстановление всех гиперпараметров и аргументов обучения, а также загрузку артефактов набора данных Comet , если они использовались в исходном выполнении. Возобновленный запуск продолжит регистрироваться в существующем эксперименте в пользовательском интерфейсе Comet .
python train.py \--resumecomet://"
YOLOv5 также интегрирован с оптимизатором Comet, что упрощает визуализацию разверток гиперпараметров в пользовательском интерфейсе Comet .
Чтобы настроить 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
comet optimizer -j comet.py comet.json"
Comet предоставляет множество способов визуализации результатов зачистки. Взгляните на проект с завершенной зачисткой здесь:

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