Yolo Vision Shenzhen
Shenzhen
Únete ahora

Cómo utilizar Ultralytics YOLOv5 con Comet

Equipo Ultralytics

5 minutos de lectura

11 de octubre de 2022

Descubra cómo Ultralytics se asocia con Comet para la optimización del modelo 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 dichos 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 el seguimiento de sus modelos, conjuntos de datos y métricas. Incluso registra las variables del sistema y del entorno para garantizar la reproducibilidad y la 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. Siga y visualice las métricas del modelo en tiempo real, guarde sus hiperparámetros, conjuntos de datos y puntos de control del modelo, y visualice las predicciones de su modelo con los paneles personalizados deComet .

Además, Comet le garantiza que nunca perderá track de su trabajo y facilita el intercambio de resultados y la colaboración entre equipos de todos los tamaños.

YOLOv5 es un buen punto de partida para tu viaje por la visión computerizada. Para mejorar el rendimiento de tu modelo y prepararlo 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 características principales:

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


Esta guía explica cómo utilizar YOLOv5 con Comet.

¿Listo para track tus experimentos en tiempo real? Empecemos.

Empezando

1. Instalar Comet

Pip install comet

2. Configurar las credenciales Comet

Hay dos formas de configurar Comet con YOLOv5.

Puedes establecer tus credenciales a través de variables de entorno o crear un archivocomet.config en tu directorio de trabajo y establecer allí tus credenciales.


Variables de entorno

COMET COMET# Por defecto seráyolov5'


Archivo de configuración de Comet

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

3. Ejecutar el script de entrenamiento

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

¡Eso es todo!

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

Experimentos con YOLOv5 en Comet Dashboard

¡Pruébelo usted mismo!

Consulte un ejemplo de una ejecución completa aquí.

O mejor aún, pruébelo usted mismo en este Colab Notebook.

Registro automático

Por defecto, Comet registrará los siguientes elementos:

Métricas

  • Pérdida de caja (Box Loss), pérdida de objeto (Object Loss) y pérdida de clasificación (Classification Loss) para los datos de entrenamiento y validación
  • mAP.5, mAP.5:0.95 métrica para los datos de validación
  • Precisión (Precision) y Exhaustividad (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 en los datos de validación
  • Gráficos de las curvas PR y F1 para todas las clases
  • Correlograma de las etiquetas de clase

Configurar Comet Logging

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

export COMET# Establece si Comet se ejecuta en modo 'online' u 'offline'. Por defecto es onlineexport COMET#Determina el nombre del modelo guardado. Por defecto es yolov5export COMET#Desactiva el registro de la matriz de confusión Comet . Por defecto es trueexport COMET# Controla cuántas predicciones de imagen totales se registrarán en Comet. Por defecto es 100.export COMET# Establece el registro de métricas de evaluación para cada clase detectada al final del entrenamiento. Por defecto falseexport COMET# Establézcalo si desea reanudar el entrenamiento desde un punto de control diferente. Por defecto es 'last.pt'export COMET# Establécelo si quieres registrar las métricas de entrenamiento a nivel de lote. Por defecto es false.export COMET# Establézcalo en false para desactivar el registro de predicciones del modelo.

Registro de puntos de control con Comet

El registro de modelos en Comet está desactivado por defecto. Para activarlo, pase el argumento save-period al script de entrenamiento. Esto guardará los puntos de control registrados en Comet basándose en el valor del intervalo proporcionado por save-period.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128yaml \

--weights yolov5s.pt \

--save-period 1

Registrando las predicciones del modelo

Por defecto, las predicciones del modelo (imágenes, etiquetas de la verdad sobre el terreno y cuadros delimitadores) se registrarán en Comet. Puede controlar la frecuencia de las predicciones registradas y las imágenes asociadas pasando el argumento de línea de comandos bbox. 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 deberá configurar la frecuencia de registro en consecuencia.

Aquí hay un proyecto de ejemplo usando el Panel.

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

Control del número de imágenes de predicción registradas en Comet

Al registrar 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. Puede aumentar o disminuir este número utilizando la variable de entorno COMET.

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

Registrando métricas a nivel de clase

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

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

Cargar un conjunto de datos en Comet Artifacts

Si desea almacenar sus datos utilizando Comet Artifacts, puede hacerlo utilizando la bandera upload_dataset.

El conjunto de datos se organiza de la forma descrita en la documentaciónYOLOv5 . El archivo dataset config yaml debe seguir el mismo formato que el archivo coco128yaml .

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

Puede encontrar el conjunto de datos cargado en la pestaña Artefactos de su espacio de trabajo Comet

Ficha Comet Artifacts, YOLOv5

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

Previsualizar datos en Comet, YOLOv5

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

Registro de metadatos de archivos YAML en Comet, YOLOv5

Usando un artefacto guardado

Si desea utilizar un conjunto de datos de Comet Artifacts, establezca la variable de ruta en el archivo yaml del conjunto de datos para que apunte a la siguiente URL de recursos de artefactos.

# contenido del archivo artifactyaml ruta:comet:///:"

Luego, pase este archivo a su script de entrenamiento de la siguiente manera:

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

Los artefactos también le permiten track el linaje de los datos a medida que fluyen a través de su flujo de trabajo de experimentación. Aquí puede ver un gráfico que muestra todos los experimentos que han utilizado el conjunto de datos cargado.

Flujo de trabajo de experimentación Comet , YOLOv5

Reanudando una ejecución de entrenamiento

Si tu carrera de entrenamiento se interrumpe por cualquier motivo, por ejemplo, si se interrumpe la conexión a Internet, puedes reanudarla utilizando el indicador de reanudación y la Comet Run Path.

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 Comet .

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

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 Comet .

Configuración de un barrido del optimizador

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

Se ha proporcionado un archivo de ejemplo en:

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

El script hpo.py acepta los mismos argumentos que train.py. Si desea pasar argumentos adicionales a su barrido, simplemente agréguelos después del script.

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

Ejecutar un barrido en paralelo

comet optimizer -j comet.py comet.json"

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

Visualice los resultados del barrido en Comet, YOLOv5

Manténgase en contacto

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

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

¡Construyamos juntos el futuro
de la IA!

Comience su viaje con el futuro del aprendizaje automático

Comienza gratis