Meet YOLO26: next-gen vision AI.

Link to this sectionSolución de problemas comunes de YOLO#

YOLO common training and deployment issues

Link to this sectionIntroducción#

Esta guía sirve como una ayuda integral para solucionar problemas comunes encontrados al trabajar con YOLO26 en tus proyectos de Ultralytics. Navegar a través de estos problemas puede ser muy sencillo con la guía adecuada, lo que garantiza que tus proyectos se mantengan en marcha sin retrasos innecesarios.



Watch: Ultralytics YOLO26 Common Issues | Installation Errors, Model Training Issues

Link to this sectionProblemas comunes#

Link to this sectionErrores de instalación#

Los errores de instalación pueden surgir debido a varias razones, como versiones incompatibles, dependencias faltantes o configuraciones de entorno incorrectas. Primero, asegúrate de comprobar lo siguiente:

  • Estás usando Python 3.8 o una versión posterior, tal como se recomienda.
  • Asegúrate de tener instalada la versión correcta de PyTorch (1.8 o posterior).
  • Considera el uso de entornos virtuales para evitar conflictos.
  • Sigue la guía oficial de instalación paso a paso.

Además, aquí tienes algunos problemas de instalación comunes que los usuarios han encontrado, junto con sus respectivas soluciones:

  • Errores de importación o problemas de dependencia - Si recibes errores durante la importación de YOLO26 o tienes problemas relacionados con las dependencias, considera los siguientes pasos de resolución:

    • Instalación limpia: A veces, comenzar con una instalación limpia puede resolver problemas inesperados. Especialmente con bibliotecas como Ultralytics, donde las actualizaciones pueden introducir cambios en la estructura del árbol de archivos o en las funcionalidades.

    • Actualiza regularmente: Asegúrate de estar usando la versión más reciente de la biblioteca. Es posible que las versiones anteriores no sean compatibles con las actualizaciones recientes, lo que genera posibles conflictos o problemas.

    • Comprueba las dependencias: Verifica que todas las dependencias requeridas estén instaladas correctamente y que sean de las versiones compatibles.

    • Revisa los cambios: Si inicialmente clonaste o instalaste una versión anterior, ten en cuenta que las actualizaciones significativas pueden afectar la estructura o las funcionalidades de la biblioteca. Consulta siempre la documentación oficial o los registros de cambios para comprender cualquier cambio importante.

    • Recuerda que mantener tus bibliotecas y dependencias actualizadas es crucial para una experiencia fluida y sin errores.

  • Ejecutar YOLO26 en GPU - Si tienes problemas para ejecutar YOLO26 en la GPU, considera los siguientes pasos de resolución:

    • Verifica la compatibilidad e instalación de CUDA: Asegúrate de que tu GPU sea compatible con CUDA y de que CUDA esté instalado correctamente. Usa el comando nvidia-smi para comprobar el estado de tu GPU NVIDIA y la versión de CUDA.

    • Comprueba la integración de PyTorch y CUDA: Asegúrate de que PyTorch pueda utilizar CUDA ejecutando import torch; print(torch.cuda.is_available()) en un terminal de Python. Si devuelve 'True', PyTorch está configurado para usar CUDA.

    • Comprueba la compatibilidad de la GPU: El soporte para arquitecturas de GPU anteriores a Turing y con capacidad de cómputo (SM) < 7.5 se abandonó desde cuDNN 9.11.0. Por lo tanto, si tienes una GPU más antigua, como una 1080Ti, es posible que debas usar una versión de PyTorch compilada con una versión anterior de CUDA/cuDNN. Puedes comprobar esto ejecutando import torch; cap = torch.cuda.get_device_capability(0) if torch.cuda.is_available() else (0, 0); cudnn = torch.backends.cudnn.version() or 0; ok = "not compatible" if cudnn >= 91100 and (cap[0] < 7 or (cap[0] == 7 and cap[1] < 5)) else "should be ok"; print(f"Compute capability: SM {cap[0]}.{cap[1]}, cuDNN: {cudnn} => {ok}")

    • Activación del entorno: Asegúrate de estar en el entorno correcto donde están instalados todos los paquetes necesarios.

    • Actualiza tus paquetes: Los paquetes desactualizados podrían no ser compatibles con tu GPU. Mantenlos actualizados.

    • Configuración del programa: Comprueba si el programa o el código especifica el uso de la GPU. En YOLO26, esto podría estar en los ajustes o en la configuración.

Link to this sectionProblemas de entrenamiento del modelo#

Esta sección abordará los problemas comunes encontrados durante el entrenamiento y sus respectivas explicaciones y soluciones.

Link to this sectionVerificación de los ajustes de configuración#

Problema: No estás seguro de si los ajustes de configuración en el archivo .yaml se están aplicando correctamente durante el entrenamiento del modelo.

Solución: Los ajustes de configuración en el archivo .yaml deben aplicarse al usar la función model.train(). Para asegurarte de que estos ajustes se apliquen correctamente, sigue estos pasos:

  • Confirma que la ruta a tu archivo de configuración .yaml sea correcta.

  • Asegúrate de pasar la ruta a tu archivo .yaml como el argumento data al llamar a model.train(), como se muestra a continuación:

    model.train(data="/path/to/your/data.yaml", batch=4)

Link to this sectionAcelerar el entrenamiento con múltiples GPU#

Problema: El entrenamiento es lento en una sola GPU y quieres acelerar el proceso utilizando múltiples GPU.

Solución: Aumentar el batch size puede acelerar el entrenamiento, pero es esencial considerar la capacidad de memoria de la GPU. Para acelerar el entrenamiento con múltiples GPU, sigue estos pasos:

  • Asegúrate de tener múltiples GPU disponibles.

  • Establece el argumento device como una lista de índices de GPU, p. ej., device=[0,1,2,3].

  • Aumenta el tamaño del lote (batch size) en consecuencia para utilizar completamente las múltiples GPU sin superar los límites de memoria.

  • Modifica tu comando de entrenamiento para utilizar múltiples GPU:

    # Adjust the batch size and other settings as needed to optimize training speed
    model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])

Link to this sectionParámetros de monitorización continua#

Problema: Quieres saber qué parámetros deben monitorizarse continuamente durante el entrenamiento, aparte de la pérdida (loss).

Solución: Aunque la pérdida es una métrica crucial que se debe monitorizar, también es esencial realizar un seguimiento de otras métricas para la optimización del rendimiento del modelo. Algunas métricas clave que debes monitorizar durante el entrenamiento incluyen:

Puedes acceder a estas métricas desde los registros de entrenamiento o utilizando herramientas como TensorBoard o wandb para su visualización. Implementar una parada temprana (early stopping) basada en estas métricas puede ayudarte a obtener mejores resultados.

Link to this sectionHerramientas para realizar el seguimiento del progreso del entrenamiento#

Problema: Estás buscando recomendaciones sobre herramientas para realizar el seguimiento del progreso del entrenamiento.

Solución: Para realizar el seguimiento y visualizar el progreso del entrenamiento, puedes considerar el uso de las siguientes herramientas:

  • TensorBoard: TensorBoard es una opción popular para visualizar métricas de entrenamiento, incluyendo la pérdida, la precisión y más. Puedes integrarlo con tu proceso de entrenamiento de YOLO26.
  • Comet: Comet proporciona un kit de herramientas extenso para el seguimiento y la comparación de experimentos. Te permite realizar un seguimiento de métricas, hiperparámetros e incluso pesos del modelo. La integración con los modelos YOLO también es sencilla y te proporciona una visión completa de tu ciclo de experimentos.
  • Ultralytics Platform: Ultralytics Platform ofrece un entorno especializado para el seguimiento de modelos YOLO, proporcionándote una plataforma integral para gestionar métricas, conjuntos de datos e incluso colaborar con tu equipo. Dado su enfoque adaptado a YOLO, ofrece opciones de seguimiento más personalizadas.

Cada una de estas herramientas ofrece su propio conjunto de ventajas, por lo que es posible que quieras considerar las necesidades específicas de tu proyecto al tomar una decisión.

Link to this sectionCómo comprobar si el entrenamiento se está realizando en la GPU#

Problema: El valor de 'device' en los registros de entrenamiento es 'null' y no estás seguro de si el entrenamiento se está realizando en la GPU.

Solución: Que el valor de 'device' sea 'null' normalmente significa que el proceso de entrenamiento está configurado para utilizar automáticamente una GPU disponible, que es el comportamiento predeterminado. Para asegurarte de que el entrenamiento ocurra en una GPU específica, puedes establecer manualmente el valor de 'device' al índice de la GPU (p. ej., '0' para la primera GPU) en tu archivo de configuración .yaml:

device: 0

Esto asignará explícitamente el proceso de entrenamiento a la GPU especificada. Si deseas entrenar en la CPU, establece 'device' en 'cpu'.

Vigila la carpeta 'runs' para ver los registros y métricas y monitorizar el progreso del entrenamiento de forma eficaz.

Link to this sectionConsideraciones clave para un entrenamiento eficaz del modelo#

Aquí tienes algunas cosas que debes tener en cuenta si te enfrentas a problemas relacionados con el entrenamiento del modelo.

Formato y etiquetas del conjunto de datos

  • Importancia: La base de cualquier modelo de aprendizaje automático reside en la calidad y el formato de los datos con los que se entrena.
  • Recomendación: Asegúrate de que tu conjunto de datos personalizado y sus etiquetas asociadas cumplan con el formato esperado. Es crucial verificar que las anotaciones sean precisas y de alta calidad. Unas anotaciones incorrectas o de baja calidad pueden descarrilar el proceso de aprendizaje del modelo, lo que conduce a resultados impredecibles.

Convergencia del modelo

  • Importancia: Lograr la convergencia del modelo garantiza que el modelo haya aprendido lo suficiente a partir de los datos de entrenamiento.
  • Recomendación: Al entrenar un modelo 'desde cero', es vital asegurarse de que el modelo alcance un nivel satisfactorio de convergencia. Esto podría requerir una mayor duración de entrenamiento, con más épocas, en comparación con cuando estás ajustando (fine-tuning) un modelo existente.

Tasa de aprendizaje y tamaño del lote

  • Importancia: Estos hiperparámetros desempeñan un papel fundamental a la hora de determinar cómo el modelo actualiza sus pesos durante el entrenamiento.
  • Recomendación: Evalúa regularmente si la tasa de aprendizaje y el tamaño del lote elegidos son óptimos para tu conjunto de datos específico. Los parámetros que no están en armonía con las características del conjunto de datos pueden obstaculizar el rendimiento del modelo.

Distribución de clases

  • Importancia: La distribución de las clases en tu conjunto de datos puede influir en las tendencias de predicción del modelo.
  • Recomendación: Evalúa regularmente la distribución de las clases dentro de tu conjunto de datos. Si hay un desequilibrio de clases, existe el riesgo de que el modelo desarrolle un sesgo hacia la clase más frecuente. Este sesgo puede ser evidente en la matriz de confusión, donde el modelo podría predecir predominantemente la clase mayoritaria.

Verificación cruzada con pesos preentrenados

  • Importancia: Aprovechar los pesos preentrenados puede proporcionar un punto de partida sólido para el entrenamiento del modelo, especialmente cuando los datos son limitados.
  • Recomendación: Como paso de diagnóstico, considera entrenar tu modelo usando los mismos datos pero inicializándolo con pesos preentrenados. Si este enfoque produce una matriz de confusión bien formada, podría sugerir que el modelo 'desde cero' podría requerir más entrenamiento o ajustes.

Link to this sectionProblemas relacionados con las predicciones del modelo#

Esta sección abordará los problemas comunes encontrados durante la predicción del modelo.

Link to this sectionObtener predicciones de cuadros delimitadores con tu modelo personalizado YOLO26#

Problema: Al ejecutar predicciones con un modelo YOLO26 personalizado, existen desafíos con el formato y la visualización de las coordenadas del cuadro delimitador (bounding box).

Solución:

  • Formato de coordenadas: YOLO26 proporciona coordenadas de cuadros delimitadores en valores de píxeles absolutos. Para convertirlas a coordenadas relativas (que van de 0 a 1), debes dividir por las dimensiones de la imagen. Por ejemplo, supongamos que el tamaño de tu imagen es 640x640. Entonces harías lo siguiente:

    # Convert absolute coordinates to relative coordinates
    x1 = x1 / 640  # Divide x-coordinates by image width
    x2 = x2 / 640
    y1 = y1 / 640  # Divide y-coordinates by image height
    y2 = y2 / 640
  • Nombre del archivo: Para obtener el nombre del archivo de la imagen en la que estás prediciendo, accede a la ruta del archivo de imagen directamente desde el objeto de resultado dentro de tu bucle de predicción.

Link to this sectionFiltrar objetos en predicciones de YOLO26#

Problema: Te enfrentas a problemas sobre cómo filtrar y mostrar solo objetos específicos en los resultados de la predicción al ejecutar YOLO26 usando la biblioteca Ultralytics.

Solución: Para detectar clases específicas, usa el argumento de clases para especificar las clases que deseas incluir en la salida. Por ejemplo, para detectar solo coches (suponiendo que 'coches' tiene el índice de clase 2):

yolo task=segment mode=predict model=yolo26n-seg.pt source='path/to/car.mp4' show=True classes=2

Link to this sectionEntender las métricas de precisión en YOLO26#

Problema: Confusión respecto a la diferencia entre la precisión de cuadro, la precisión de máscara y la precisión de matriz de confusión en YOLO26.

Solución: La precisión de cuadro mide la exactitud de los cuadros delimitadores predichos en comparación con los cuadros de verdad base (ground truth) reales usando IoU (Intersection over Union) como métrica. La precisión de máscara evalúa la concordancia entre las máscaras de segmentación predichas y las máscaras de verdad base en la clasificación de objetos a nivel de píxel. Por otro lado, la precisión de la matriz de confusión se centra en la exactitud general de la clasificación en todas las clases y no considera la exactitud geométrica de las predicciones. Es importante notar que un cuadro delimitador puede ser geométricamente preciso (verdadero positivo) incluso si la predicción de clase es incorrecta, lo que provoca diferencias entre la precisión de cuadro y la precisión de la matriz de confusión. Estas métricas evalúan aspectos distintos del rendimiento de un modelo, lo que refleja la necesidad de diferentes métricas de evaluación en diversas tareas.

Link to this sectionExtraer dimensiones de objetos en YOLO26#

Problema: Dificultad para recuperar la longitud y la altura de los objetos detectados en YOLO26, especialmente cuando se detectan múltiples objetos en una imagen.

Solución: Para recuperar las dimensiones del cuadro delimitador, usa primero el modelo YOLO26 de Ultralytics para predecir objetos en una imagen. Luego, extrae la información de ancho y alto de los cuadros delimitadores de los resultados de la predicción.

from ultralytics import YOLO

# Load a pretrained YOLO26 model
model = YOLO("yolo26n.pt")

# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"

# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.25)

# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
    x, y, w, h = box
    print(f"Width of Box: {w}, Height of Box: {h}")

Link to this sectionDesafíos de despliegue#

Link to this sectionProblemas de despliegue en GPU#

Problema: Desplegar modelos en un entorno de múltiples GPU a veces puede provocar comportamientos inesperados como un uso de memoria imprevisto, resultados inconsistentes entre GPU, etc.

Solución: Comprueba la inicialización predeterminada de la GPU. Algunos marcos, como PyTorch, podrían inicializar operaciones de CUDA en una GPU predeterminada antes de pasar a las GPU designadas. Para evitar inicializaciones predeterminadas inesperadas, especifica la GPU directamente durante el despliegue y la predicción. Luego, utiliza herramientas para monitorizar la utilización de la GPU y el uso de memoria para identificar cualquier anomalía en tiempo real. Además, asegúrate de estar usando la versión más reciente del marco o la biblioteca.

Link to this sectionProblemas de conversión/exportación de modelos#

Problema: Durante el proceso de convertir o exportar modelos de aprendizaje automático a diferentes formatos o plataformas, los usuarios pueden encontrar errores o comportamientos inesperados.

Solución:

  • Comprobación de compatibilidad: Asegúrate de estar utilizando versiones de bibliotecas y marcos que sean compatibles entre sí. Las versiones que no coinciden pueden provocar errores inesperados durante la conversión.
  • Reinicio del entorno: Si estás utilizando un entorno interactivo como Jupyter o Colab, considera reiniciar tu entorno después de realizar cambios o instalaciones significativas. Un nuevo comienzo a veces puede resolver problemas subyacentes.
  • Documentación oficial: Consulta siempre la documentación oficial de la herramienta o biblioteca que estás utilizando para la conversión. A menudo contiene directrices específicas y mejores prácticas para la exportación de modelos.
  • Soporte de la comunidad: Comprueba el repositorio oficial de la biblioteca o el marco en busca de problemas similares reportados por otros usuarios. Es posible que los mantenedores o la comunidad hayan proporcionado soluciones o alternativas en hilos de discusión.
  • Actualiza regularmente: Asegúrate de estar usando la versión más reciente de la herramienta o biblioteca. Los desarrolladores lanzan actualizaciones con frecuencia que corrigen errores conocidos o mejoran la funcionalidad.
  • Prueba de forma incremental: Antes de realizar una conversión completa, prueba el proceso con un modelo o conjunto de datos más pequeño para identificar posibles problemas desde el principio.

Link to this sectionComunidad y soporte#

Interactuar con una comunidad de personas con ideas afines puede mejorar significativamente tu experiencia y éxito al trabajar con YOLO26. A continuación, tienes algunos canales y recursos que pueden resultarte útiles.

Link to this sectionForos y canales para obtener ayuda#

GitHub Issues: El repositorio de YOLO26 en GitHub tiene una pestaña de Issues donde puedes hacer preguntas, informar de errores y sugerir nuevas funciones. La comunidad y los responsables del mantenimiento son activos aquí, y es un lugar ideal para obtener ayuda con problemas específicos.

Servidor de Discord de Ultralytics: Ultralytics tiene un servidor de Discord donde puedes interactuar con otros usuarios y los desarrolladores.

Link to this sectionDocumentación y recursos oficiales#

Documentación de Ultralytics YOLO26: La documentación oficial proporciona una visión general completa de YOLO26, junto con guías sobre instalación, uso y resolución de problemas.

Estos recursos deberían proporcionarte una base sólida para solucionar problemas y mejorar tus proyectos con YOLO26, así como para conectar con otras personas de la comunidad de YOLO26.

Link to this sectionConclusión#

La resolución de problemas es una parte integral de cualquier proceso de desarrollo, y estar equipado con el conocimiento adecuado puede reducir significativamente el tiempo y el esfuerzo dedicados a resolver incidencias. Esta guía tiene como objetivo abordar los desafíos más comunes a los que se enfrentan los usuarios del modelo YOLO26 dentro del ecosistema de Ultralytics. Al entender y abordar estos problemas comunes, puedes asegurar un progreso más fluido en tus proyectos y lograr mejores resultados con tus tareas de computer vision.

Recuerda que la comunidad de Ultralytics es un recurso valioso. Interactuar con otros desarrolladores y expertos puede proporcionar ideas y soluciones adicionales que podrían no estar cubiertas en la documentación estándar. Sigue siempre aprendiendo, experimentando y compartiendo tus experiencias para contribuir al conocimiento colectivo de la comunidad.

Link to this sectionFAQ#

Link to this section¿Cómo soluciono los errores de instalación con YOLO26?#

Los errores de instalación a menudo pueden deberse a problemas de compatibilidad o dependencias faltantes. Asegúrate de utilizar Python 3.8 o posterior y de tener instalado PyTorch 1.8 o posterior. Es beneficioso utilizar entornos virtuales para evitar conflictos. Para obtener una guía de instalación paso a paso, sigue nuestra guía de instalación oficial. Si encuentras errores de importación, prueba una instalación limpia o actualiza la biblioteca a la versión más reciente.

Link to this section¿Por qué el entrenamiento de mi modelo YOLO26 es lento en una sola GPU?#

El entrenamiento en una sola GPU puede ser lento debido a tamaños de lote grandes o memoria insuficiente. Para acelerar el entrenamiento, utiliza múltiples GPU. Asegúrate de que tu sistema tenga varias GPU disponibles y establece el argumento device, por ejemplo, device=[0,1,2,3]. Aumenta el tamaño del lote en consecuencia para utilizar completamente las GPU sin exceder los límites de memoria. Ejemplo de comando:

model.train(data="/path/to/your/data.yaml", batch=32, device=[0, 1, 2, 3])

Link to this section¿Cómo puedo asegurarme de que mi modelo YOLO26 se está entrenando en la GPU?#

Si el valor de 'device' aparece como 'null' en los registros de entrenamiento, generalmente significa que el proceso de entrenamiento está configurado para utilizar automáticamente una GPU disponible. Para asignar explícitamente una GPU específica, configura el valor de 'device' en tu archivo de configuración .yaml. Por ejemplo:

device: 0

Esto establece el proceso de entrenamiento en la primera GPU. Consulta el comando nvidia-smi para confirmar tu configuración de CUDA.

Link to this section¿Cómo puedo supervisar y realizar un seguimiento del progreso de entrenamiento de mi modelo YOLO26?#

El seguimiento y la visualización del progreso del entrenamiento pueden gestionarse de forma eficiente a través de herramientas como TensorBoard, Comet y Ultralytics Platform. Estas herramientas te permiten registrar y visualizar métricas como la pérdida, precision, recall y mAP. Implementar la parada anticipada basada en estas métricas también puede ayudar a lograr mejores resultados de entrenamiento.

Link to this section¿Qué debo hacer si YOLO26 no reconoce el formato de mi conjunto de datos?#

Asegúrate de que tu conjunto de datos y tus etiquetas cumplan con el formato esperado. Verifica que las anotaciones sean precisas y de alta calidad. Si tienes algún problema, consulta la guía de Recopilación y anotación de datos para conocer las mejores prácticas. Para obtener orientación más específica sobre conjuntos de datos, consulta la sección Datasets en la documentación.

Comentarios