SO Development

Un tutorial sencillo de YOLOv12: de principiantes a expertos

Introducción

En el acelerado mundo de la visión artificial, la detección de objetos sigue siendo una tarea fundamental. Desde vehículos autónomos hasta vigilancia y atención médica, la necesidad de identificar y localizar objetos en imágenes es esencial. Una arquitectura que ha superado constantemente los límites de la detección de objetos en tiempo real es YOLO (You Only Look Once).

YOLOv12 es la versión más reciente y avanzada de la familia YOLO. Basado en las ventajas de sus predecesores, YOLOv12 ofrece una velocidad y precisión excepcionales, lo que lo hace ideal tanto para aplicaciones de investigación como industriales. Tanto si eres principiante como si eres un experto en IA que busca perfeccionar sus habilidades.

En esta guía lo guiaremos a través de los conceptos básicos de YOLOv12, desde la instalación y la capacitación hasta las técnicas avanzadas de ajuste.

Empecemos por lo básico: ¿Qué es YOLOv12? ¿Por qué es importante? ¿Y en qué se diferencia de las versiones anteriores?

¿Qué hace que YOLOv12 sea único? 

YOLOv12 introduce una serie de mejoras que lo distinguen de YOLOv8, v7 y versiones anteriores:

Características Clave:

  • Red troncal modular basada en transformador:Aprovechamiento del transformador Swin para la extracción de características jerárquicas.

  • Módulo de cabezal dinámico:Mejora el conocimiento del contexto para una mejor precisión de detección en escenas complejas.

  • Optimizador de reputación:Un nuevo optimizador que mejora las tasas de convergencia.

  • Redes parciales entre etapas v3 (CSPv3):Reduce la complejidad del modelo manteniendo el rendimiento.

  • Arquitectura escalable:Admite la implementación desde dispositivos perimetrales a servidores en la nube sin problemas.

YOLOv12 frente a YOLOv8:

CaracterísticaYOLOv8YOLOv12
Columna vertebralCSPDarknet53Transformador Swin v2
OptimizadorAdánWOptimizador de reputación
RendimientoAltoMás alto
Speed (Rapidez)Muy rapidoMás rápido
Opciones de implementaciónBorde, WebEdge, Web, Nube
YOLOv12

Instalación de YOLOv12: Primeros pasos

Comenzar a usar YOLOv12 es más fácil que nunca, especialmente con repositorios de código abierto y documentación detallada. Sigue estos pasos para configurar YOLOv12 en tu equipo local.

Paso 1: Requisitos del sistema

  • Python 3.8 +

  • PyTorch 2.x

  • CUDA 11.8+ (para GPU)

  • OpenCV, Torchvision

Paso 2: Clonar el repositorio YOLOv12

				
					git clone https://github.com/WongKinYiu/YOLOv12.git
cd YOLOv12
				
			

Paso 3: Crear entorno virtual

				
					python -m venv yolov12-env
source yolov12-env/bin/activate  # Linux/Mac
yolov12-env\Scripts\activate     # Windows
				
			

Paso 4: Instalar dependencias

				
					pip install -r requirements.txt
				
			

Paso 5: Descarga las pesas preentrenadas

YOLOv12 admite pesos preentrenados. Puedes usarlos como punto de partida para el aprendizaje por transferencia:

				
					wget https://github.com/WongKinYiu/YOLOv12/releases/download/v1.0/yolov12.pt

				
			

Comprensión de la arquitectura YOLOv12

YOLOv12 está diseñado para equilibrar la precisión y la velocidad a través de su novedosa arquitectura.

Componentes:

  • Columna vertebral (Transformador Swin v2):Procesa imágenes de entrada y extrae características.

  • Cuello (PANet + BiFPN):Agrega características en diferentes escalas.

  • Cabeza (Cabeza dinámica):Detecta clases de objetos y cuadros delimitadores.

Cada componente es personalizable, lo que hace que YOLOv12 sea adecuado para una amplia gama de casos de uso.

Innovaciones:

  • Integración de transformadores:Aporta mejores mecanismos de atención.

  • Optimizador de reputación: Entrena modelos con menos iteraciones.

  • Resolución de entrada flexible:Puedes entrenar con imágenes de 640×640 o 1280×1280 sin grandes modificaciones.

Comprensión de la arquitectura YOLOv12

Preparación de su conjunto de datos

Antes de poder entrenar YOLOv12, necesita un conjunto de datos correctamente etiquetado. YOLOv12 admite Formato YOLO, Que incluye una .txt archivo para cada imagen que contiene las coordenadas del cuadro delimitador y las etiquetas de clase.

Preparación de datos paso a paso:

A. Estructura del conjunto de datos:

				
					/dataset
  /images
    /train
      img1.jpg
      img2.jpg
    /val
      img1.jpg
      img2.jpg
  /labels
    /train
      img1.txt
      img2.txt
    /val
      img1.txt
      img2.txt

				
			

Formato de etiqueta B. YOLO:

Cada archivo de etiqueta contiene:

				
					<class_id> <x_center> <y_center> <width> <height>
				
			

Todos los valores están normalizados entre 0 y 1. Por ejemplo:

				
					0 0.5 0.5 0.2 0.3
				
			

C. Herramientas para crear anotaciones:

  • flujo de robo:Interfaz de arrastrar y soltar para etiquetar y exportar en formato YOLO.

  • EtiquetaImg:Herramienta gratuita, de código abierto y con interfaz de usuario sencilla.

  • CVAT:Ideal para grandes conjuntos de datos y colaboración en equipo.

D. Creando data.yaml:

Este archivo YAML es necesario para el entrenamiento y debería verse así:

				
					train: ./dataset/images/train
val: ./dataset/images/val
nc: 3
names: ['car', 'person', 'bicycle']
				
			

Entrenamiento de YOLOv12 en un conjunto de datos personalizado

Ahora que su conjunto de datos está listo, pasemos al entrenamiento.

A. Guión de entrenamiento

YOLOv12 utiliza un script de entrenamiento similar a las versiones anteriores:

				
					python train.py --data data.yaml --cfg yolov12.yaml --weights yolov12.pt --epochs 100 --batch-size 16 --img 640
				
			

B. Parámetros clave explicados:

  • --data:Camino a la data.yaml.

  • --cfg:Configuración del modelo YOLOv12.

  • --weights:Pesos iniciales (uso '' para formación desde cero).

  • --epochs:Número de ciclos de entrenamiento.

  • --batch-size:Número de imágenes por lote.

  • --img:Resolución de la imagen (por ejemplo, 640×640).

C. Monitorear la capacitación

YOLOv12 se integra con:

  • TensorTablero:

				
					tensorboard --logdir runs/train
				
			
  • Pesos y sesgos (wandb):Registra curvas de pérdida, precisión, recuperación y más.

D. Consejos de entrenamiento:

  • Utilice GPU si está disponible; reduce significativamente el tiempo de entrenamiento.

  • Comience con épocas más bajas (~50) para probar rápidamente, luego aumente.

  • Ajuste el tamaño del lote en función de la memoria de su sistema.

E. Guardar puntos de control:

De forma predeterminada, YOLOv12 guarda los pesos del modelo en cada época. /runs/train/exp/weights/.

Evaluación y ajuste del modelo

Una vez realizado el entrenamiento, es momento de evaluar tu modelo.

A. Métricas de evaluación:

  • Precisión:Qué tan precisas son las predicciones.

  • Recordar:¿Cuántos objetos fueron detectados?

  • mAP (Precisión media promedio):Visión equilibrada de la precisión y la recuperación.

YOLOv12 genera un informe automáticamente después del entrenamiento:

				
					results.png
				
			

B. Comando para evaluar:

				
					python val.py --weights runs/train/exp/weights/best.pt --data data.yaml --img 640
				
			

C. Ajuste para una mayor precisión:

  • Aumentos:Habilitar mezclas, mosaicos y cambios HSV.

  • Tasa de aprendizaje: Más bajo si el modelo es inestable.

  • Optimización de anclajes:YOLOv12 puede calcular automáticamente los anclajes óptimos para su conjunto de datos.

Inferencia en tiempo real con YOLOv12

YOLOv12 destaca en aplicaciones en tiempo real. Aquí te explicamos cómo ejecutar inferencias en imágenes, vídeos y transmisiones de cámaras web.

A. Inferencia sobre imágenes:

				
					python detect.py --weights best.pt --source data/images/test.jpg --img 640
				
			

B. Inferencia sobre vídeos:

				
					python detect.py --weights best.pt --source video.mp4
				
			

C. Inferencia en vivo vía cámara web:

				
					python detect.py --weights best.pt --source 0
				
			

D. Salida:

Los objetos detectados se guardan en runs/detect/exp/El script dibujará cuadros delimitadores y etiquetas en las imágenes.

E. Umbral de confianza:

Agregar la extensión de --conf 0.4 para aumentar o disminuir la sensibilidad.

Funciones avanzadas y ajustes de expertos

YOLOv12 es potente desde el primer momento, pero al ajustarlo se puede desbloquear aún más potencial.

A. Red troncal personalizada:

Cambie a MobileNet o EfficientNet para la implementación perimetral modificando el yolov12.yaml.

B. Evolución de hiperparámetros:

YOLOv12 incluye un script de evolución automatizado:

				
					python evolve.py --data data.yaml --img 640 --epochs 50
				
			

C. Cuantización:

Cuantización post-entrenamiento (INT8/FP16) utilizando:

  • TensorRT

  • ONNX

  • OpenVINO

D. Entrenamiento multi-GPU:

Uso:

				
					python -m torch.distributed.launch --nproc_per_node 2 train.py ...
				
			

E. Exportación del modelo:

				
					python export.py --weights best.pt --include onnx torchscript
				
			

Casos de uso de YOLOv12 en la vida real

A continuación se presentan casos de uso populares en los que se implementa YOLOv12:

A. Vehículos autónomos

Detecta peatones, coches y señales de tráfico en tiempo real a altos FPS.

B. Vigilancia inteligente

Reconoce armas, intrusos y comportamientos sospechosos con un retraso mínimo.

C. Agricultura

Monitorea la salud de las plantas, cuenta frutas y detecta plagas a partir de imágenes de drones.

D. Atención sanitaria

Ayuda en la detección de anomalías de rayos X y la segmentación celular.

E. Venta minorista e inventario

Cuenta clientes, rastrea el stock de existencias en las estanterías y detecta la ubicación del producto.

Mejores prácticas para la implementación

Una vez que su modelo esté entrenado, piense en implementarlo de manera eficiente:

A. Implementación ligera:

  • Exporte a ONNX o TorchScript para una sobrecarga mínima.

  • Usa OpenCV DNN or TensorRT para inferencia en tiempo real en el borde.

B. Dockerizar el modelo:

				
					FROM pytorch/pytorch:latest
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "detect.py"]
				
			

C. Implementar mediante Flask:

Cree una API REST simple para servir detecciones a través de HTTP POST.

D. Implementación en la nube:

Utilice plataformas como AWS Sagemaker, Azure ML o Google Vertex AI.

Resolución de problemas comunes

A continuación se muestran algunos errores comunes y cómo solucionarlos:

A. CUDA sin memoria

  • Reducir el tamaño del lote.

  • Utilice precisión mixta (--fp16).

B. Cuadros delimitadores incorrectos

  • Compruebe que los archivos de etiquetas estén en formato YOLO.

  • Verifique que los pares imagen-etiqueta sean correctos.

C. Sin detecciones

  • Aumentar épocas.

  • Umbral de confianza inferior (--conf 0.3).

  • Verificar las anotaciones del conjunto de datos.

D. Entrenamiento estancado

  • Usa top or nvidia-smi para monitorear el uso de recursos.

  • Evite tamaños de imagen enormes (por ejemplo, 1280 × 1280) en memoria RAM/GPU baja.

Conclusión: Tu viaje de principiante a experto

¡Felicitaciones! Has recorrido el ciclo de vida completo del entrenamiento y la implementación de un modelo YOLOv12. Desde la configuración de tu entorno y la anotación de conjuntos de datos, hasta la implementación y el ajuste en tiempo real, esta guía te servirá de base para convertirte en un experto.

YOLOv12 es la culminación de años de avance en la investigación de detección de objetos. Su combinación de velocidad, modularidad y precisión lo hace ideal para una amplia gama de tareas en la industria y la investigación. ¿La mejor manera de consolidar tus habilidades? ¡Empieza a desarrollar proyectos! Intenta perfeccionar YOLOv12 con conjuntos de datos específicos: seguimiento de fauna silvestre, análisis deportivo o defectos de fabricación.

Recuerda: Todo gran desarrollador de IA empezó con su primera imagen y su primera detección. Ahora te toca a ti escalar ese camino con YOLOv12.

Visite nuestro servicio de anotación de datos


Esto cerrará en 20 segundos