Ultralytics YOLO27:
Integraciones

Entrena y monitoriza Ultralytics YOLOv5 a distancia con ClearML

Explora nuestra colaboración con ClearML para disfrutar de una experiencia mejorada con Ultralytics YOLOv5, con integración fluida de ML, seguimiento de experimentos y mucho más.

NUNuvola Ladi7 min read
Entrenamiento y monitorización de YOLOv5 con ClearML

En Ultralytics colaboramos 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, y mantenerlas gratuitas para todo el mundo. Este artículo puede contener enlaces de afiliación a dichos socios.

ClearML es nuestro socio más reciente: una caja de herramientas de código abierto diseñada para ahorrarte tiempo.

Con la misión de acelerar la adopción del ML, ClearML facilita la integración del ML en cualquier producto de software y hardware.

Esta integración simplifica aún más el entrenamiento de un modelo YOLOv5 y el uso del gestor de experimentos de ClearML para realizar su seguimiento automáticamente. Puedes especificar fácilmente un ID de versión de un conjunto de datos de ClearML como entrada de datos, y se utilizará automáticamente para entrenar tu modelo.

Lleva el seguimiento de tus experimentos al siguiente nivel#

  • Realiza el seguimiento de cada ejecución de entrenamiento de YOLOv5 en el gestor de experimentos.
  • Crea versiones de tus datos de entrenamiento personalizados y accede a ellos fácilmente con la herramienta integrada de versionado de datos de ClearML.
  • Obtén el mejor mAP posible mediante la optimización de hiperparámetros de ClearML.
  • Convierte tu modelo YOLOv5 recién entrenado en una API con solo unos pocos comandos mediante ClearML Serving.

Tú decides cuántas de estas herramientas quieres utilizar: puedes limitarte al gestor de experimentos o encadenarlas todas en un pipeline impresionante.

Configuración#

Para realizar el seguimiento de tus experimentos y datos, ClearML necesita comunicarse con un servidor. Tienes dos opciones: registrarte gratis en el servicio alojado de ClearML o configurar tu propio servidor; consulta la documentación sobre el despliegue de ClearML Server.

Incluso el servidor es de código abierto, así que, si trabajas con datos sensibles, ¡no hay ningún problema!

  1. Instala el paquete de Python clearml: pip install clearml
  2. Conecta el SDK de ClearML al servidor creando credenciales (arriba a la derecha, ve a Settings → Workspace → Create new credentials), ejecuta el siguiente comando y sigue las instrucciones: clearml-init

¡Y voilà! Ya puedes empezar...

Entrenamiento de YOLOv5 con ClearML#

Para activar el seguimiento de experimentos de ClearML, solo tienes que instalar el paquete pip de ClearML.

pip install clearml

Esto permitirá integrar el script de entrenamiento de YOLOv5. A partir de ahora, el gestor de experimentos de ClearML capturará y almacenará cada ejecución de entrenamiento. Si quieres cambiar project_name o task_name, ve a nuestro registrador personalizado, donde puedes modificarlos: utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

Esto capturará:

  • Código fuente + cambios sin confirmar
  • Paquetes instalados
  • (Hiper)parámetros
  • Archivos del modelo (utiliza --save-period n para guardar un punto de control cada n épocas)
  • Salida de la consola
  • Escalares (mAP_0.5, mAP_0.5:0.95, precisión, exhaustividad, pérdidas, tasas de aprendizaje, ...)
  • Información general, como detalles de la máquina, tiempo de ejecución, fecha de creación, etc.
  • Todos los gráficos generados, como el correlograma de etiquetas y la matriz de confusión
  • Imágenes con BBox por época
  • Mosaico por época
  • Imágenes de validación por época

¡No está nada mal! Ahora podemos visualizar toda esta información en la interfaz de ClearML para obtener una visión general del progreso de nuestro entrenamiento. Añade columnas personalizadas a la vista de tabla (como, por ejemplo, mAP_0.5) para ordenar fácilmente los modelos con mejor rendimiento. ¡O selecciona varios experimentos y compáralos directamente!

Aún podemos hacer mucho más con toda esta información, como optimizar hiperparámetros y ejecutar tareas de forma remota, ¡así que sigue leyendo para descubrir cómo hacerlo!

Gestión de versiones de conjuntos de datos#

En general, es buena idea versionar los datos por separado del código, ya que también facilita la obtención de la versión más reciente. Este repositorio permite proporcionar un ID de versión de un conjunto de datos y se asegurará de obtener los datos si todavía no están disponibles. Además, este flujo de trabajo guarda el ID del conjunto de datos utilizado como parte de los parámetros de la tarea, por lo que siempre sabrás con certeza qué datos se utilizaron en cada experimento.

Prepara tu conjunto de datos#

El repositorio YOLOv5 admite varios conjuntos de datos mediante archivos YAML que contienen su información. De forma predeterminada, los conjuntos de datos se descargan en la carpeta ../datasets en relación con la carpeta raíz del repositorio. Por tanto, si has descargado el conjunto de datos coco128 mediante el enlace del YAML o con los scripts proporcionados por yolov5, obtendrás esta estructura de carpetas:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Pero puede ser cualquier conjunto de datos que quieras. No dudes en utilizar el tuyo, siempre que mantengas esta estructura de carpetas.

A continuación, ⚠️copia el archivo YAML correspondiente en la raíz de la carpeta del conjunto de datos⚠️. Estos archivos YAML contienen la información que ClearML necesita para utilizar correctamente el conjunto de datos. Por supuesto, también puedes crearlo tú mismo; solo tienes que seguir la estructura de los YAML de ejemplo.

Básicamente, necesitamos las siguientes claves: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

Sube tu conjunto de datos#

Para incorporar este conjunto de datos a ClearML como un conjunto de datos versionado, ve a la carpeta raíz del conjunto de datos y ejecuta el siguiente comando:

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

El comando clearml-data sync es, en realidad, un comando abreviado. También puedes ejecutar estos comandos uno tras otro:

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

Ejecuta el entrenamiento utilizando un conjunto de datos de ClearML#

Ahora que tienes un conjunto de datos de ClearML, puedes utilizarlo fácilmente para entrenar modelos YOLOv5 personalizados.

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

Optimización de hiperparámetros#

Ahora que tenemos nuestros experimentos y la versión de los datos, ¡es hora de echar un vistazo a lo que podemos construir sobre esta base!

Gracias a la información del código, los paquetes instalados y los detalles del entorno, el experimento es ahora completamente reproducible. De hecho, ClearML te permite clonar un experimento e incluso cambiar sus parámetros. Después, podemos volver a ejecutarlo automáticamente con estos nuevos parámetros; ¡básicamente, eso es lo que hace HPO!

Para ejecutar la optimización de hiperparámetros localmente, hemos incluido un script ya preparado. Solo tienes que asegurarte de que se haya ejecutado una tarea de entrenamiento al menos una vez, para que esté en el gestor de experimentos de ClearML; esencialmente, la clonaremos y cambiaremos sus hiperparámetros.

Tendrás que introducir el ID de esta tarea de plantilla en el script que se encuentra en utils/loggers/clearml/hpo.py y, después, ejecutarlo. Puedes cambiar task.execute_locally() por task.execute() para añadirla a una cola de ClearML y permitir que un agente remoto trabaje en ella.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

Ejecución remota (avanzado)#

Ejecutar HPO localmente resulta muy práctico, pero ¿qué ocurre si queremos ejecutar nuestros experimentos en una máquina remota? Puede que tengas acceso a una máquina GPU muy potente en tus instalaciones o que dispongas de presupuesto para utilizar GPU en la nube. Aquí es donde entra en juego ClearML Agent.

Descubre aquí lo que puede hacer el agente:

En resumen: cada experimento del que realiza un seguimiento el gestor de experimentos contiene suficiente información para reproducirlo en otra máquina (paquetes instalados, cambios sin confirmar, etc.). Por tanto, un agente de ClearML hace precisamente eso: escucha una cola en busca de tareas entrantes y, cuando encuentra una, recrea el entorno y la ejecuta, mientras sigue enviando los escalares, gráficos, etc. al gestor de experimentos.

Puedes convertir cualquier máquina (una máquina virtual en la nube, una máquina GPU local o tu propio portátil) en un agente de ClearML ejecutando simplemente:

clearml-agent daemon --queue [--docker]

Clonación, edición y puesta en cola#

Con nuestro agente en ejecución, podemos asignarle trabajo. ¿Recuerdas de la sección sobre HPO que podemos clonar una tarea y editar los hiperparámetros? ¡También podemos hacerlo desde la interfaz!

🪄 Clona el experimento haciendo clic derecho sobre él

🎯 Edita los hiperparámetros como quieras

⏳ Añade la tarea a cualquiera de las colas haciendo clic derecho sobre ella

Ejecución remota de una tarea#

Ahora puedes clonar una tarea como hemos explicado antes o simplemente marcar tu script actual añadiendo task.execute_remotely(); al ejecutarlo, se añadirá a una cola para que el agente empiece a trabajar en él.

Para ejecutar el script de entrenamiento de YOLOv5 de forma remota, solo tienes que añadir esta línea al script train.py después de haber inicializado el registrador de ClearML:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

¿Tienes alguna pregunta? Únete a nuestra comunidad y deja tu pregunta hoy mismo.

Explore solutions

Visión por computadora para imágenes aéreas

Visión por computadora para imágenes aéreas

Transforma imágenes de drones y aéreas en información en tiempo real para agricultura, acuicultura, supervisión ambiental, conservación y análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en la industria aeroespacial

Visión artificial en la industria aeroespacial

Lleva la IA de visión al monitoreo aéreo con los modelos Ultralytics YOLO. Potencia drones, flujos de trabajo aeroespaciales, conservación ambiental e industrias geoespaciales con soluciones de visión artificial.
Más información

Protege cada sitio con los modelos Ultralytics YOLO. La IA de visión potencia el monitoreo perimetral, la detección de amenazas, el reconocimiento de matrículas y la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Impulsa máquinas más inteligentes con los modelos de Ultralytics YOLO. La IA de visión en robótica permite la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La IA de visión permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad de los almacenes en tiempo real.
Más información
Visión artificial en comercio minorista

Visión artificial en comercio minorista

Reinventa el comercio minorista con los modelos de Ultralytics YOLO. La IA de visión impulsa el seguimiento del inventario, la supervisión de estanterías, la gestión de colas y un conocimiento más inteligente de los clientes.
Más información
Visión por computador en el sector sanitario

Visión por computador en el sector sanitario

Crea soluciones sanitarias con modelos de Ultralytics YOLO. La IA de visión en el sector sanitario permite obtener imágenes médicas más rápidamente, diagnósticos más inteligentes y supervisar a los pacientes.
Más información
Visión por computador en la fabricación

Visión por computador en la fabricación

Optimiza la fabricación con modelos de Ultralytics YOLO. La IA de visión impulsa el control de calidad, la detección de defectos, el cumplimiento del PPE y la automatización de las líneas de montaje.
Más información
Visión artificial en el sector automovilístico

Visión artificial en el sector automovilístico

Aplica visión artificial en el sector automovilístico con 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 conseguir carreteras más inteligentes.
Más información
Visión artificial en agricultura

Visión artificial en agricultura

Lleva la IA de visión a la agricultura inteligente con modelos de Ultralytics YOLO. Impulsa la supervisión de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas mayores e inteligentes.
Más información
Visión por computadora para imágenes aéreas

Visión por computadora para imágenes aéreas

Transforma imágenes de drones y aéreas en información en tiempo real para agricultura, acuicultura, supervisión ambiental, conservación y análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en la industria aeroespacial

Visión artificial en la industria aeroespacial

Lleva la IA de visión al monitoreo aéreo con los modelos Ultralytics YOLO. Potencia drones, flujos de trabajo aeroespaciales, conservación ambiental e industrias geoespaciales con soluciones de visión artificial.
Más información

Protege cada sitio con los modelos Ultralytics YOLO. La IA de visión potencia el monitoreo perimetral, la detección de amenazas, el reconocimiento de matrículas y la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Impulsa máquinas más inteligentes con los modelos de Ultralytics YOLO. La IA de visión en robótica permite la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La IA de visión permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad de los almacenes en tiempo real.
Más información
Visión artificial en comercio minorista

Visión artificial en comercio minorista

Reinventa el comercio minorista con los modelos de Ultralytics YOLO. La IA de visión impulsa el seguimiento del inventario, la supervisión de estanterías, la gestión de colas y un conocimiento más inteligente de los clientes.
Más información
Visión por computador en el sector sanitario

Visión por computador en el sector sanitario

Crea soluciones sanitarias con modelos de Ultralytics YOLO. La IA de visión en el sector sanitario permite obtener imágenes médicas más rápidamente, diagnósticos más inteligentes y supervisar a los pacientes.
Más información
Visión por computador en la fabricación

Visión por computador en la fabricación

Optimiza la fabricación con modelos de Ultralytics YOLO. La IA de visión impulsa el control de calidad, la detección de defectos, el cumplimiento del PPE y la automatización de las líneas de montaje.
Más información
Visión artificial en el sector automovilístico

Visión artificial en el sector automovilístico

Aplica visión artificial en el sector automovilístico con 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 conseguir carreteras más inteligentes.
Más información
Visión artificial en agricultura

Visión artificial en agricultura

Lleva la IA de visión a la agricultura inteligente con modelos de Ultralytics YOLO. Impulsa la supervisión de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas mayores e inteligentes.
Más información
Visión por computadora para imágenes aéreas

Visión por computadora para imágenes aéreas

Transforma imágenes de drones y aéreas en información en tiempo real para agricultura, acuicultura, supervisión ambiental, conservación y análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en la industria aeroespacial

Visión artificial en la industria aeroespacial

Lleva la IA de visión al monitoreo aéreo con los modelos Ultralytics YOLO. Potencia drones, flujos de trabajo aeroespaciales, conservación ambiental e industrias geoespaciales con soluciones de visión artificial.
Más información

Protege cada sitio con los modelos Ultralytics YOLO. La IA de visión potencia el monitoreo perimetral, la detección de amenazas, el reconocimiento de matrículas y la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Impulsa máquinas más inteligentes con los modelos de Ultralytics YOLO. La IA de visión en robótica permite la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Optimiza la logística con los modelos de Ultralytics YOLO. La IA de visión permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad de los almacenes en tiempo real.
Más información
Visión artificial en comercio minorista

Visión artificial en comercio minorista

Reinventa el comercio minorista con los modelos de Ultralytics YOLO. La IA de visión impulsa el seguimiento del inventario, la supervisión de estanterías, la gestión de colas y un conocimiento más inteligente de los clientes.
Más información
Visión por computador en el sector sanitario

Visión por computador en el sector sanitario

Crea soluciones sanitarias con modelos de Ultralytics YOLO. La IA de visión en el sector sanitario permite obtener imágenes médicas más rápidamente, diagnósticos más inteligentes y supervisar a los pacientes.
Más información
Visión por computador en la fabricación

Visión por computador en la fabricación

Optimiza la fabricación con modelos de Ultralytics YOLO. La IA de visión impulsa el control de calidad, la detección de defectos, el cumplimiento del PPE y la automatización de las líneas de montaje.
Más información
Visión artificial en el sector automovilístico

Visión artificial en el sector automovilístico

Aplica visión artificial en el sector automovilístico con 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 conseguir carreteras más inteligentes.
Más información
Visión artificial en agricultura

Visión artificial en agricultura

Lleva la IA de visión a la agricultura inteligente con modelos de Ultralytics YOLO. Impulsa la supervisión de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas mayores e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Comienza tu recorrido hacia el futuro del aprendizaje automático