Cheque verde
Enlace copiado en el portapapeles

Cómo utilizar Ultralytics YOLOv5 Con Comet

Descubre cómo Ultralytics se asocia con Comet para la optimización de modelos Ultralytics YOLOv5 : seguimiento en tiempo real, colaboración racionalizada y reproducibilidad mejorada.

En Ultralytics nos asociamos comercialmente con otras startups para que nos ayuden a financiar la investigación y el desarrollo de nuestras increíbles herramientas de código abierto, como YOLOv5, para que sigan siendo gratuitas para todo el mundo. Este artículo puede contener enlaces de afiliación a esos socios.

Nuestro socio más reciente, Cometcrea herramientas que ayudan a los científicos de datos, ingenieros y jefes de equipo a acelerar y optimizar el aprendizaje automático y los modelos de aprendizaje profundo.

Comet es una potente herramienta para hacer un seguimiento de tus modelos, conjuntos de datos y métricas. Incluso registra tus variables de sistema y de entorno para garantizar la reproducibilidad y una depuración sin problemas de todas y cada una de las ejecuciones. Es como tener un asistente virtual que mágicamente sabe qué notas tomar. Sigue y visualiza las métricas del modelo en tiempo real, guarda tus hiperparámetros, conjuntos de datos y puntos de control del modelo, y visualiza las predicciones de tu modelo con los paneles personalizados deComet .

Además, Comet se asegura de que nunca pierdas la pista de tu trabajo y facilita compartir resultados y colaborar entre equipos de todos los tamaños.

YOLOv5 es un gran punto de partida para tu viaje por la visión computerizada. Para mejorar el rendimiento de tu modelo y tenerlo listo para la producción, tendrás que registrar los resultados en una herramienta de seguimiento de experimentos como Comet.

La integración de Comet y YOLOv5 ofrece 3 funciones principales:

  • Funciones de registro automático y personalizado
  • Guardar conjuntos de datos y modelos como artefactos para depuración y reproducibilidad
  • Organizar tu vista con los paneles personalizados de Comet


En esta guía se explica cómo utilizar YOLOv5 con Comet.

¿Listo para seguir tus experimentos en tiempo real? ¡Vamos a empezar!

Cómo empezar

1. Instala Comet

Pip install comet_ml

2. Configura las credenciales de Comet

Hay dos formas de configurar Comet con YOLOv5.

Puedes establecer tus credenciales mediante variables de entorno o crear un archivo .comet.config en tu directorio de trabajo y establecer allí tus credenciales.


Variables de entorno

export COMET_API_KEY=export COMET_PROJECT_NAME= # Por defecto será 'yolov5'


Comet Archivo de configuración

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

3. Ejecuta el script de entrenamiento

# Entrena YOLOv5s en COCO128 durante 5 épocasspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

Eso es.

Comet registrará automáticamente tus hiperparámetros, los argumentos de la línea de comandos y las métricas de entrenamiento y validación. Puedes visualizar y analizar tus ejecuciones en la interfaz de usuario Comet .

Experimentos con YOLOv5 en Comet Dashboard

¡Pruébalo tú mismo!

Echa un vistazo a un ejemplo de una carrera completada aquí.

O mejor aún, pruébalo tú mismo en este Cuaderno Colab.

Registrar automáticamente

Por defecto, Comet registrará los siguientes elementos:

Métricas

  • Pérdida de caja, pérdida de objeto y pérdida de clasificación para los datos de entrenamiento y validación
  • métrica mAP_0,5, mAP_0,5:0,95 para los datos de validación
  • Precisión y Recall para los datos de validación

Parámetros

  • Hiperparámetros del modelo
  • Todos los parámetros pasados a través de las opciones de la línea de comandos

Visualizaciones

  • Matriz de confusión de las predicciones del modelo sobre los datos de validación
  • Gráficos de las curvas PR y F1 de todas las clases
  • Correlograma de las etiquetas de clase

Configura Comet Registro

Comet puede configurarse para registrar datos adicionales mediante indicadores de línea de comandos pasados al script de entrenamiento o variables de entorno.

exportar COMET_MODE=online # Establece si quieres ejecutar Comet en modo "online" u "offline". Por defecto, onlineexport COMET_MODEL_NAME= #Determina el nombre del modelo guardado. Por defecto es yolov5export COMET_LOG_CONFUSION_MATRIX=false #Ajustado para desactivar el registro de una Matriz de Confusión Comet . Por defecto es trueexport COMET_MAX_IMAGE_UPLOADS= # Controla cuántas predicciones de imagen totales se registrarán en Comet. Por defecto 100.export COMET_LOG_PER_CLASS_METRICS=true # Establece que se registren las métricas de evaluación de cada clase detectada al final del entrenamiento. Por defecto es falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Establécelo si quieres reanudar el entrenamiento desde un punto de control diferente. Por defecto es 'ultimo.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Establécelo si quieres registrar las métricas de entrenamiento a nivel de lote. Por defecto es false.export COMET_LOG_PREDICTIONS=true # Establécelo en false para desactivar el registro de las predicciones del modelo.

Registro de puntos de control con Comet

El registro de modelos en Comet está desactivado por defecto. Para activarlo, pasa el argumento guardar-periodo al script de entrenamiento. Esto guardará los puntos de control registrados en Comet en función del valor del intervalo proporcionado por guardar-periodo.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

Predicciones del modelo de registro

Por defecto, las predicciones del modelo (imágenes, etiquetas de la verdad sobre el terreno y cuadros delimitadores) se registrarán en Comet. Puedes controlar la frecuencia de las predicciones registradas y las imágenes asociadas pasando el argumento de línea de comandos bbox_interval. Las predicciones pueden visualizarse utilizando el Panel Personalizado de Detección de Objetos de Comet. Esta frecuencia corresponde a cada N lotes de datos por época. En el ejemplo siguiente, estamos registrando uno de cada dos lotes de datos por cada época.

Nota: El cargador de datos de validación de YOLOv5 utilizará por defecto un tamaño de lote de 32, por lo que tendrás que configurar la frecuencia de registro en consecuencia.

Aquí tienes un proyecto de ejemplo que utiliza el Panel.

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

Controlar el número de imágenes de predicción registradas en Comet

Al registrar las predicciones de YOLOv5, Comet registrará las imágenes asociadas a cada conjunto de predicciones. Por defecto, se registra un máximo de 100 imágenes de validación. Puedes aumentar o disminuir este número utilizando la variable de entorno COMET_MAX_IMAGE_UPLOADS.

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

Registro de métricas de nivel de clase

Utiliza la variable de entorno COMET_LOG_PER_CLASS_METRICS para registrar mAP, precisión, recall y f1 de cada clase.

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

Cargar un conjunto de datos en Comet Artifacts

Si quieres almacenar tus datos utilizando Comet Artifacts, puedes hacerlo utilizando la bandera upload_dataset.

El conjunto de datos se organiza de la forma descrita en la documentación deYOLOv5 . El archivo yaml de configuración del conjunto de datos debe seguir el mismo formato que el archivo coco128.yaml.

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

Puedes encontrar el conjunto de datos cargado en la pestaña Artefactos de tu espacio de trabajo Comet .

Comet Pestaña Artefactos, YOLOv5

Puedes previsualizar los datos directamente en la IU de Comet .

Previsualiza los datos en Comet, YOLOv5

Los artefactos se versionan y también permiten añadir metadatos sobre el conjunto de datos. Comet registrará automáticamente los metadatos de tu archivo yaml del conjunto de datos.

Registra los metadatos del archivo YAML en Comet, YOLOv5

Utilizar un artefacto guardado

Si quieres utilizar un conjunto de datos de Comet Artifacts, establece la variable de ruta en tu archivo yaml del conjunto de datos para que apunte a la siguiente URL del recurso Artifact.

# contenido del archivo artifact.yaml ruta: "comet:///:"

A continuación, pasa este archivo a tu script de entrenamiento de la siguiente manera:

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

Los artefactos también te permiten seguir el linaje de los datos a medida que fluyen a través de tu flujo de trabajo de Experimentación. Aquí puedes ver un gráfico que te muestra todos los experimentos que han utilizado tu conjunto de datos cargado.

Comet flujo de trabajo de experimentación, YOLOv5

Reanudar una carrera de entrenamiento

Si tu carrera de entrenamiento se interrumpe por cualquier motivo, por ejemplo, si se interrumpe la conexión a Internet, puedes reanudar la carrera utilizando la bandera de reanudación y la ruta de carrera Comet .

La ruta de ejecución tiene el siguiente formato comet:////.

Esto restaurará la ejecución a su estado anterior a la interrupción, lo que incluye restaurar el modelo desde un punto de control, restaurar todos los hiperparámetros y argumentos de entrenamiento, y descargar los artefactos del conjunto de datos Comet si se utilizaron en la ejecución original. La ejecución reanudada continuará registrándose en el Experimento existente en la interfaz de usuario de Comet .

python train.py \--resume "comet://"

Búsqueda de hiperparámetros con el optimizador Comet

YOLOv5 también está integrado con el Optimizador de Comet, lo que facilita la visualización de los barridos de hiperparámetros en la interfaz de usuario de Comet .

Configurar un barrido del optimizador

Para configurar el Optimizador Comet , tendrás que crear un archivo JSON con la información sobre el barrido.

Se ha proporcionado un archivo de ejemplo en:

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

El script hpo.py acepta los mismos argumentos que train.py. Si deseas pasar argumentos adicionales a tu barrido, sólo tienes que añadirlos después del script.

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

Ejecutar un barrido en paralelo

comet optimizer -j utils/loggers/comet/hpo.py \utils/loggers/comet/optimizer_config.json"

Comet ofrece muchas formas de visualizar los resultados de tu barrido. Echa un vistazo a un proyecto con un barrido completado aquí:

Visualiza los resultados del barrido en Comet, YOLOv5

Mantente en contacto

Empieza a utilizar nuestra integración con Comet para gestionar, visualizar y optimizar tus modelos YOLOv5 , desde las ejecuciones de entrenamiento hasta la supervisión de la producción.

Y, por supuesto, únete a la ComunidadUltralytics , un lugar para hacer preguntas y compartir consejos sobre la formación, validación e implantación de YOLOv5 .

Logotipo de FacebookLogotipo de TwitterLogotipo de LinkedInSímbolo de enlace de copia

Leer más en esta categoría

¡Construyamos juntos el futuro
de la IA!

Comienza tu viaje con el futuro del aprendizaje automático