4.6 Entrena y despliega tu propio modelo de visión

Introducción

YOLO26 es la última generación de la familia YOLO, diseñada para visión por computadora en tiempo real y lista para el edge. Está construida para ser más rápida, más ligera y más fácil de desplegar, manteniendo a la vez una alta precisión en tareas como detección de objetos, segmentación, clasificación y estimación de pose. En comparación con modelos YOLO anteriores, YOLO26 pone más énfasis en el despliegue eficiente y la inferencia de extremo a extremo, lo que la hace especialmente adecuada para dispositivos edge y aplicaciones prácticas.

Gráficas de rendimiento de YOLO26

En este capítulo, presentaremos cómo entrenar y desplegar rápidamente tu propio modelo avanzado de detección en reComputer, para que puedas pasar de los datos a una aplicación de IA real y funcional con un flujo de trabajo eficiente y moderno.

Experiencia rápida

Paso 1: Define la tarea con claridad

Un buen proyecto comienza con una pregunta clara.

Ejemplos:

  • detectar cascos y personas
  • detectar plazas de aparcamiento ocupadas
  • detectar palés y carretillas elevadoras

Para facilitar la demostración, hemos proporcionado un script que nos ayuda a completar el proceso desde la recolección de datos hasta el despliegue del modelo.

Requisitos previos: Instala las dependencias necesarias:

bash
pip install ultralytics opencv-python pillow pyyaml

🚀 ¡Pruébalo y ejecútalo tú mismo!

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_end_to_end.py

Paso 2: Recolectar datos

Conecta una cámara a tu dispositivo, selecciona el objetivo que quieres detectar y recolecta las imágenes adecuadas para el conjunto de datos.

capture_picture

Paso 3: Anotar los datos

Para detección, anotar normalmente significa dibujar cajas delimitadoras y asignar etiquetas de clase.

Usa nuestra herramienta y arrastra el ratón para marcar el objetivo que quieres detectar.

mark_img

Paso 4: Entrenar un modelo

Divide tus conjuntos de datos y selecciona un modelo preentrenado para entrenar.

El conjunto de entrenamiento se usa para enseñar al modelo ajustando sus parámetros. El conjunto de validación se usa durante el desarrollo para comprobar cómo generaliza el modelo, comparar diferentes configuraciones y decidir cuándo detener el entrenamiento. En resumen, dividir el dataset nos ayuda a entrenar, mejorar y evaluar el modelo de forma fiable.

Entrenamiento

El entrenamiento es la etapa donde el modelo aprende del conjunto de datos y mejora gradualmente sus predicciones. Habitualmente comenzamos con un checkpoint inicial, lo que significa usar un modelo preentrenado en lugar de empezar desde cero. Esto ayuda al modelo a aprender más rápido y suele dar mejores resultados.

Paso 5: Inferencia

Selecciona los pesos del modelo que has entrenado previamente y observa su rendimiento.

infer

Nota: Si quieres que tu modelo rinda mejor, necesitas ampliar tu conjunto de datos o realizar operaciones de aumento de datos.

Malentendidos comunes

  • "Una métrica alta siempre significa que el modelo está listo."
    • Las pruebas en el mundo real siguen siendo necesarias.
  • "Más datos significan automáticamente un mejor modelo."
    • Más datos solo ayudan si son relevantes y están bien etiquetados.
  • "Si el entrenamiento termina, el despliegue es fácil."
    • El despliegue introduce restricciones de velocidad, memoria y sistema.

Ejercicios / Reflexión

  1. Diseña un proyecto de detección de objetos de dos clases que pueda completar un principiante.
  2. Lista cinco tipos de variación de escena que querrías tener en el conjunto de datos.
  3. Explica la diferencia entre los resultados de validación y el rendimiento real en despliegue.
  4. Tras ejecutar un trabajo de entrenamiento, inspecciona tres casos de fallo y describe qué tipo de datos podrían corregirlos.

Configuración del entorno

Antes de entrenar modelos YOLO, configura tu entorno de Python con el gestor de paquetes uv:

Instalar uv

bash
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
uv --version

Instalación de uv

Crear el entorno virtual

bash
uv venv .yolo --python 3.10.12
source .yolo/bin/activate
python --version

Entorno virtual Activar el entorno

Instalar PyTorch (GPU)

bash
uv pip install torch --index-url https://pypi.jetson-ai-lab.io/jp6/cu126

Verificación de PyTorch

Nota: Los kits de desarrollo Jetson de Seeed vienen con entornos preconfigurados. Comprueba si el entorno .yolo ya existe antes de crear uno nuevo.

Instalar YOLO26/Ultralytics

bash
uv pip install ultralytics opencv-python pillow pyyaml

Ejemplos de tareas de YOLO26

YOLO26 admite varias tareas de visión por computadora. A continuación se muestran ejemplos de cada una.

Detección de objetos

Detecta y localiza objetos en imágenes o vídeo:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_object_detection.py

Resultado de la detección de objetos

Segmentación de instancias

Identifica objetos a nivel de píxel:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_instance_segmentation.py

Segmentación de instancias

Estimación de pose

Detecta puntos clave del cuerpo humano:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_pose_estimation.py

Estimación de pose

Clasificación de imágenes

Clasifica el sujeto principal de una imagen:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_image_classification.py

Clasificación de imágenes

Detección de objetos orientados (OBB)

Detecta objetos con cajas delimitadoras rotadas:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_obb_detection.py

Detección OBB

Entrenamiento de modelos

Entrena un modelo YOLO con tu dataset personalizado:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_train.py

Salida del entrenamiento Resultados del entrenamiento

Anotación de datasets con Label Studio

Usa Label Studio (basado en Docker) para anotar tus datos de entrenamiento:

Inicio de Label Studio Anotación en Label Studio Estructura del dataset

Resumen

Entrenar un modelo de visión personalizado no es solo cuestión de ejecutar un comando. Es un proceso impulsado por los datos que incluye definición de la tarea, anotación, entrenamiento, validación y análisis de errores. En la siguiente sección, pasamos del primer modelo exitoso a la exportación y al despliegue en el edge.

Siguiente paso sugerido

Continúa con 4.7 Exportación de modelos y despliegue en el edge.

Referencias