Conoce YOLO26: IA de visión de nueva generación.
Ultralytics
Integraciones

Cómo usar YOLOv5 de Ultralytics con Comet

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

EQEquipo de Ultralytics
5 min read
Seguimiento del entrenamiento del modelo YOLOv5 de Ultralytics con Comet

En Ultralytics nos asociamos comercialmente con otras startups para ayudarnos a financiar la investigación y el desarrollo de nuestras increíbles herramientas de código abierto, como YOLOv5, para mantenerlas gratuitas para todos. Este artículo puede contener enlaces de afiliados a esos socios.

Nuestro nuevo socio, Comet, crea herramientas que ayudan a científicos de datos, ingenieros y jefes de equipo a acelerar y optimizar modelos de machine learning y deep learning.

Comet es una herramienta potente para realizar un seguimiento de tus modelos, datasets y métricas. Incluso registra las variables de tu sistema y entorno para garantizar la reproducibilidad y una depuración fluida de cada ejecución. Es como tener un asistente virtual que sabe mágicamente qué notas guardar. ¡Haz un seguimiento y visualiza las métricas del modelo en tiempo real, guarda tus hiperparámetros, datasets y puntos de control (checkpoints) del modelo, y visualiza las predicciones de tu modelo con los Comet Custom Panels!

Además, ¡Comet se asegura de que nunca pierdas de vista tu trabajo y facilita compartir los resultados y colaborar en equipos de todos los tamaños!

YOLOv5 es un excelente punto de partida para tu viaje en la visión artificial. Para mejorar el rendimiento de tu modelo y prepararlo para producción, deberás registrar los resultados en una herramienta de seguimiento de experimentos como Comet.

La integración entre Comet y YOLOv5 ofrece 3 características principales:

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

Esta guía cubrirá cómo usar YOLOv5 con Comet.

Entonces, ¿listo para hacer un seguimiento de tus experimentos en tiempo real? ¡Empecemos!

Link to this sectionPrimeros pasos#

Link to this section1. Instala Comet#

pip install comet_ml

Link to this section2. Configura las credenciales de Comet#

Hay dos formas de configurar Comet con YOLOv5.

Puedes configurar tus credenciales a través de variables de entorno o crear un archivo .comet.config en tu directorio de trabajo y establecer ahí tus credenciales.

Link to this sectionVariables de entorno#

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

Link to this sectionArchivo de configuración de Comet#

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

Link to this section3. Ejecuta el script de entrenamiento#

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

¡Eso es todo!

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

Experimentos con YOLOv5 en el panel de control de Comet

Link to this section¡Pruébalo tú mismo!#

Echa un vistazo a un ejemplo de una ejecución completada aquí.

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

Link to this sectionRegistro automático#

Por defecto, Comet registrará los siguientes elementos:

Link to this sectionMétricas#

  • Box Loss, Object Loss y Classification Loss para los datos de entrenamiento y validación
  • Métricas mAP_0.5, mAP_0.5:0.95 para los datos de validación
  • Precisión y Recall para los datos de validación

Link to this sectionParámetros#

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

Link to this sectionVisualizaciones#

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

Link to this sectionConfigurar el registro de Comet#

Comet se puede configurar para registrar datos adicionales a través de indicadores de línea de comandos pasados al script de entrenamiento o mediante variables de entorno.

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 sectionRegistro de checkpoints con Comet#

El registro de modelos en Comet está desactivado por defecto. Para activarlo, pasa el argumento save-period al script de entrenamiento. Esto guardará los checkpoints registrados en Comet según el valor de intervalo proporcionado por save-period.

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

Link to this sectionRegistro de predicciones del modelo#

Por defecto, las predicciones del modelo (imágenes, etiquetas de verdad terrestre 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 se pueden visualizar usando el panel personalizado de detección de objetos de Comet. Esta frecuencia corresponde a cada N-ésimo lote de datos por época. En el ejemplo siguiente, estamos registrando cada segundo lote de datos por cada época.

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

Aquí tienes un ejemplo de proyecto usando el panel.

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

Link to this sectionControlar el número de imágenes de predicción registradas en Comet#

Al registrar predicciones desde YOLOv5, Comet registrará las imágenes asociadas con 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 usando la variable de entorno 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 sectionRegistro de métricas a nivel de clase#

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

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 sectionSubir un dataset a los artefactos de Comet#

Si deseas almacenar tus datos usando Comet Artifacts, puedes hacerlo usando la bandera upload_dataset.

El dataset se organiza de la manera descrita en la documentación de YOLOv5. El archivo yaml de configuración del dataset 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 dataset subido en la pestaña Artifacts en tu espacio de trabajo de Comet

Pestaña de artefactos de Comet, YOLOv5

Puedes previsualizar los datos directamente en la interfaz de usuario de Comet.

Previsualizar datos en Comet, YOLOv5

Los artefactos tienen versiones y también admiten añadir metadatos sobre el dataset. Comet registrará automáticamente los metadatos de tu archivo yaml del dataset.

Registrar metadatos desde un archivo YAML en Comet, YOLOv5

Link to this sectionUsar un artefacto guardado#

Si quieres usar un dataset de Comet Artifacts, configura la variable path en tu archivo yaml del dataset para que apunte a la siguiente URL de recurso de artefacto.

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

Luego 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 realizar un seguimiento del 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 dataset subido.

Flujo de trabajo de experimentación de Comet, YOLOv5

Link to this sectionReanudar una ejecución de entrenamiento#

Si tu ejecución de entrenamiento se interrumpe por cualquier motivo, p. ej. conexión a internet interrumpida, puedes reanudar la ejecución usando la bandera resume y la ruta de ejecución de Comet (Run Path).

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

Esto restaurará la ejecución a su estado anterior a la interrupción, lo cual incluye restaurar el modelo desde un checkpoint, restaurar todos los hiperparámetros y argumentos de entrenamiento, y descargar los artefactos del dataset de Comet si se usaron en la ejecución original. La ejecución reanudada continuará registrando en el experimento existente en la interfaz de usuario de Comet.

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

Link to this sectionBúsqueda de hiperparámetros con el optimizador de Comet#

YOLOv5 también está integrado con el optimizador de Comet, lo que facilita visualizar las búsquedas de hiperparámetros en la interfaz de usuario de Comet.

Link to this sectionConfigurar una búsqueda de optimizador#

Para configurar el optimizador de Comet, tendrás que crear un archivo JSON con la información sobre la búsqueda.

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 búsqueda, simplemente añádelos 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

Link to this sectionEjecutar una búsqueda en paralelo#

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

Comet ofrece muchas formas de visualizar los resultados de tu búsqueda. Echa un vistazo a un proyecto con una búsqueda completada aquí:

Visualizar resultados de barrido en Comet, YOLOv5

Link to this sectionMantente en contacto#

Empieza a usar nuestra integración con Comet para gestionar, visualizar y optimizar tus modelos YOLOv5, desde las ejecuciones de entrenamiento hasta el monitoreo en producción.

Y, por supuesto, únete a la comunidad de Ultralytics, un lugar para hacer preguntas y compartir consejos sobre el entrenamiento, validación y despliegue de YOLOv5.

Explore solutions

Real-time AI that works with your team

IA en robótica

Potencia máquinas más inteligentes con modelos Ultralytics YOLO. La IA de visión en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.

Más información
Real-time AI that works with your team

IA en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La visión artificial por IA permite la inspección de paquetes, clasificación, seguimiento de vehículos y monitoreo de seguridad en almacenes en tiempo real.

Más información
Real-time AI that works with your team

IA en el sector minorista

Reimagina el comercio minorista con los modelos de Ultralytics YOLO. La visión artificial por IA potencia el seguimiento de inventario, el monitoreo de estantes, la gestión de colas y mejores perspectivas sobre los clientes.

Más información
Real-time AI that works with your team

IA en la atención sanitaria

Crea soluciones de salud con los modelos de Ultralytics YOLO. La IA de visión en la sanidad potencia imágenes médicas más rápidas, diagnósticos más inteligentes y supervisión de pacientes.

Más información
Real-time AI that works with your team

IA en la fabricación

Optimiza la fabricación con los modelos de Ultralytics YOLO. La visión artificial por IA impulsa el control de calidad, la detección de defectos, el cumplimiento del uso de PPE y la automatización de la línea de montaje.

Más información
Real-time AI that works with your operation

IA en automoción

Aplica la visión artificial en el sector automotriz con los modelos de Ultralytics YOLO. La IA de visión mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para carreteras más inteligentes.

Más información
Real-time AI tailored to your operation

IA en agricultura

Lleva la visión artificial a la agricultura inteligente con los modelos de Ultralytics YOLO. Potencia el seguimiento de cultivos, el control del ganado y la agricultura de precisión para obtener rendimientos mayores y más inteligentes.

Más información
Real-time AI that works with your team

IA en robótica

Potencia máquinas más inteligentes con modelos Ultralytics YOLO. La IA de visión en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.

Más información
Real-time AI that works with your team

IA en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La visión artificial por IA permite la inspección de paquetes, clasificación, seguimiento de vehículos y monitoreo de seguridad en almacenes en tiempo real.

Más información
Real-time AI that works with your team

IA en el sector minorista

Reimagina el comercio minorista con los modelos de Ultralytics YOLO. La visión artificial por IA potencia el seguimiento de inventario, el monitoreo de estantes, la gestión de colas y mejores perspectivas sobre los clientes.

Más información
Real-time AI that works with your team

IA en la atención sanitaria

Crea soluciones de salud con los modelos de Ultralytics YOLO. La IA de visión en la sanidad potencia imágenes médicas más rápidas, diagnósticos más inteligentes y supervisión de pacientes.

Más información
Real-time AI that works with your team

IA en la fabricación

Optimiza la fabricación con los modelos de Ultralytics YOLO. La visión artificial por IA impulsa el control de calidad, la detección de defectos, el cumplimiento del uso de PPE y la automatización de la línea de montaje.

Más información
Real-time AI that works with your operation

IA en automoción

Aplica la visión artificial en el sector automotriz con los modelos de Ultralytics YOLO. La IA de visión mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para carreteras más inteligentes.

Más información
Real-time AI tailored to your operation

IA en agricultura

Lleva la visión artificial a la agricultura inteligente con los modelos de Ultralytics YOLO. Potencia el seguimiento de cultivos, el control del ganado y la agricultura de precisión para obtener rendimientos mayores y más inteligentes.

Más información
Real-time AI that works with your team

IA en robótica

Potencia máquinas más inteligentes con modelos Ultralytics YOLO. La IA de visión en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.

Más información
Real-time AI that works with your team

IA en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La visión artificial por IA permite la inspección de paquetes, clasificación, seguimiento de vehículos y monitoreo de seguridad en almacenes en tiempo real.

Más información
Real-time AI that works with your team

IA en el sector minorista

Reimagina el comercio minorista con los modelos de Ultralytics YOLO. La visión artificial por IA potencia el seguimiento de inventario, el monitoreo de estantes, la gestión de colas y mejores perspectivas sobre los clientes.

Más información
Real-time AI that works with your team

IA en la atención sanitaria

Crea soluciones de salud con los modelos de Ultralytics YOLO. La IA de visión en la sanidad potencia imágenes médicas más rápidas, diagnósticos más inteligentes y supervisión de pacientes.

Más información
Real-time AI that works with your team

IA en la fabricación

Optimiza la fabricación con los modelos de Ultralytics YOLO. La visión artificial por IA impulsa el control de calidad, la detección de defectos, el cumplimiento del uso de PPE y la automatización de la línea de montaje.

Más información
Real-time AI that works with your operation

IA en automoción

Aplica la visión artificial en el sector automotriz con los modelos de Ultralytics YOLO. La IA de visión mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para carreteras más inteligentes.

Más información
Real-time AI tailored to your operation

IA en agricultura

Lleva la visión artificial a la agricultura inteligente con los modelos de Ultralytics YOLO. Potencia el seguimiento de cultivos, el control del ganado y la agricultura de precisión para obtener rendimientos mayores y más inteligentes.

Más información

¡Construyamos juntos el futuro de la IA!

Comienza tu viaje con el futuro del aprendizaje automático