Ir al contenido

YOLO12: Detección de Objetos Centrada en la Atención

Visión general

YOLO12 introduce una arquitectura centrada en la atención que se aparta de los enfoques tradicionales basados en CNN utilizados en modelos YOLO anteriores, pero conserva la velocidad de inferencia en tiempo real esencial para muchas aplicaciones. Este modelo logra una precisión de detección de objetos de última generación a través de innovaciones metodológicas novedosas en los mecanismos de atención y la arquitectura general de la red, al tiempo que mantiene el rendimiento en tiempo real.



Ver: Cómo usar YOLO12 para la detección de objetos con el paquete Ultralytics | ¿Es YOLO12 rápido o lento? 🚀

Características clave

  • Mecanismo de atención de área: Un nuevo enfoque de autoatención que procesa campos receptivos grandes de manera eficiente. Divide los mapas de características en l regiones de igual tamaño (por defecto, 4), ya sea horizontal o verticalmente, evitando operaciones complejas y manteniendo un campo receptivo efectivo grande. Esto reduce significativamente el costo computacional en comparación con la autoatención estándar.
  • Redes de Agregación de Capas Eficientes Residuales (R-ELAN): Un módulo de agregación de características mejorado basado en ELAN, diseñado para abordar los desafíos de optimización, especialmente en modelos centrados en la atención a mayor escala. R-ELAN introduce:
    • Conexiones residuales a nivel de bloque con escalado (similar al escalado de capas).
    • Un método rediseñado de agregación de características que crea una estructura similar a un cuello de botella.
  • Arquitectura de Atención Optimizada: YOLO12 optimiza el mecanismo de atención estándar para una mayor eficiencia y compatibilidad con el framework YOLO. Esto incluye:
    • Usando FlashAttention para minimizar la sobrecarga de acceso a la memoria.
    • Eliminando la codificación posicional para un modelo más limpio y rápido.
    • Ajuste de la relación MLP (de la típica 4 a 1,2 o 2) para equilibrar mejor el cálculo entre la atención y las capas de alimentación hacia adelante.
    • Reducción de la profundidad de los bloques apilados para mejorar la optimización.
    • Aprovechamiento de las operaciones de convolución (cuando sea apropiado) por su eficiencia computacional.
    • Añadiendo una convolución separable de 7x7 (el "perceptor de posición") al mecanismo de atención para codificar implícitamente la información posicional.
  • Soporte de tareas integral: YOLO12 admite una variedad de tareas centrales de visión artificial: detección de objetos, segmentación de instancias, clasificación de imágenes, estimación de pose y detección de objetos orientados (OBB).
  • Eficiencia mejorada: Logra una mayor precisión con menos parámetros en comparación con muchos modelos anteriores, lo que demuestra un equilibrio mejorado entre velocidad y precisión.
  • Implementación Flexible: Diseñado para la implementación en diversas plataformas, desde dispositivos edge hasta infraestructura en la nube.

Visualización comparativa de YOLO12

Tareas y modos admitidos

YOLO12 admite una variedad de tareas de visión artificial. La siguiente tabla muestra el soporte de tareas y los modos operativos (Inferencia, Validación, Entrenamiento y Exportación) habilitados para cada uno:

Tipo de Modelo Tarea Inferencia Validación Entrenamiento Exportar
YOLO12 Detección
YOLO12-seg Segmentación
YOLO12-pose Pose
YOLO12-cls Clasificación
YOLO12-obb OBB

Métricas de rendimiento

YOLO12 demuestra mejoras significativas en la precisión en todas las escalas de modelo, con algunas concesiones en la velocidad en comparación con los modelos YOLO anteriores más rápidos. A continuación, se muestran los resultados cuantitativos para la detección de objetos en el conjunto de datos de validación COCO:

Rendimiento de la detección (COCO val2017)

Rendimiento

Modelo tamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT
(ms)
parámetros
(M)
FLOPs
(B)
Comparación
(mAP/Velocidad)
YOLO12n 640 40.6 - 1.64 2.6 6.5 +2.1%/-9% (vs. YOLOv10n)
YOLO12s 640 48.0 - 2.61 9.3 21.4 +0.1%/+42% (vs. RT-DETRv2)
YOLO12m 640 52.5 - 4.86 20.2 67.5 +1.0%/-3% (vs. YOLO11m)
YOLO12l 640 53.7 - 6.77 26.4 88.9 +0.4%/-8% (vs. YOLO11l)
YOLO12x 640 55.2 - 11.79 59.1 199.0 +0.6%/-4% (vs. YOLO11x)
  • Velocidad de inferencia medida en una GPU NVIDIA T4 con precisión TensorRT FP16.
  • Las comparaciones muestran la mejora relativa en mAP y el cambio porcentual en la velocidad (positivo indica más rápido; negativo indica más lento). Las comparaciones se realizan con los resultados publicados para YOLOv10, YOLO11 y RT-DETR, donde estén disponibles.

Ejemplos de uso

Esta sección proporciona ejemplos para el entrenamiento y la inferencia con YOLO12. Para obtener documentación más completa sobre estos y otros modos (incluidos Validación y Exportación), consulte las páginas dedicadas de Predicción y Entrenamiento.

Los siguientes ejemplos se centran en los modelos Detectar de YOLO12 (para la detección de objetos). Para otras tareas admitidas (segmentación, clasificación, detección de objetos orientados y estimación de la pose), consulte la documentación específica de cada tarea: Segmentar, Clasificar, OBB y Pose.

Ejemplo

Preentrenado *.pt modelos (usando PyTorch) y la configuración *.yaml los archivos se pueden pasar a la YOLO() class para crear una instancia de modelo en Python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLO12n model
model = YOLO("yolo12n.pt")

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with the YOLO12n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

También están disponibles los comandos de la interfaz de línea de comandos (CLI):

# Load a COCO-pretrained YOLO12n model and train on the COCO8 example dataset for 100 epochs
yolo train model=yolo12n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLO12n model and run inference on the 'bus.jpg' image
yolo predict model=yolo12n.pt source=path/to/bus.jpg

Mejoras clave

  1. Extracción de características mejorada:

    • Atención de área: Maneja eficientemente grandes campos receptivos, reduciendo el costo computacional.
    • Balance Optimizado: Balance mejorado entre la atención y los cálculos de la red feed-forward.
    • R-ELAN: Mejora la agregación de características utilizando la arquitectura R-ELAN.
  2. Innovaciones en Optimización:

    • Conexiones residuales: Introduce conexiones residuales con escalamiento para estabilizar el entrenamiento, especialmente en modelos más grandes.
    • Integración de características perfeccionada: Implementa un método mejorado para la integración de características dentro de R-ELAN.
    • FlashAttention: Incorpora FlashAttention para reducir la sobrecarga de acceso a la memoria.
  3. Eficiencia arquitectónica:

    • Parámetros reducidos: Logra un menor número de parámetros, manteniendo o mejorando la precisión en comparación con muchos modelos anteriores.
    • Atención optimizada: Utiliza una implementación de atención simplificada, evitando la codificación posicional.
    • Relaciones MLP Optimizadas: Ajusta las relaciones MLP para asignar de forma más eficaz los recursos computacionales.

Requisitos

La implementación de Ultralytics YOLO12, por defecto, no requiere FlashAttention. Sin embargo, FlashAttention se puede compilar y usar opcionalmente con YOLO12. Para compilar FlashAttention, se necesita una de las siguientes GPU NVIDIA:

Citas y agradecimientos

Si utiliza YOLO12 en su investigación, cite el trabajo original de la Universidad de Buffalo y la Universidad de la Academia China de Ciencias:

@article{tian2025yolov12,
  title={YOLOv12: Attention-Centric Real-Time Object Detectors},
  author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
  journal={arXiv preprint arXiv:2502.12524},
  year={2025}
}

@software{yolo12,
  author = {Tian, Yunjie and Ye, Qixiang and Doermann, David},
  title = {YOLOv12: Attention-Centric Real-Time Object Detectors},
  year = {2025},
  url = {https://github.com/sunsmarterjie/yolov12},
  license = {AGPL-3.0}
}

Preguntas frecuentes

¿Cómo logra YOLO12 la detección de objetos en tiempo real manteniendo una alta precisión?

YOLO12 incorpora varias innovaciones clave para equilibrar la velocidad y la precisión. El mecanismo de Atención de Área procesa de manera eficiente grandes campos receptivos, lo que reduce el costo computacional en comparación con la autoatención estándar. Las Redes de Agregación de Capas Eficientes Residuales (R-ELAN) mejoran la agregación de características, abordando los desafíos de optimización en modelos más grandes centrados en la atención. La Arquitectura de Atención Optimizada, incluido el uso de FlashAttention y la eliminación de la codificación posicional, mejora aún más la eficiencia. Estas características permiten que YOLO12 logre una precisión de última generación mientras mantiene la velocidad de inferencia en tiempo real crucial para muchas aplicaciones.

¿Qué tareas de visión artificial soporta YOLO12?

YOLO12 es un modelo versátil que admite una amplia gama de tareas centrales de visión artificial. Destaca en la detección de objetos, la segmentación de instancias, la clasificación de imágenes, la estimación de poses y la detección de objetos orientados (OBB) (ver detalles). Este soporte integral de tareas convierte a YOLO12 en una herramienta poderosa para diversas aplicaciones, desde la robótica y la conducción autónoma hasta las imágenes médicas y la inspección industrial. Cada una de estas tareas se puede realizar en los modos de Inferencia, Validación, Entrenamiento y Exportación.

¿Cómo se compara YOLO12 con otros modelos YOLO y competidores como RT-DETR?

YOLO12 demuestra mejoras significativas en la precisión en todas las escalas de modelos en comparación con modelos YOLO anteriores como YOLOv10 y YOLO11, con algunas concesiones en la velocidad en comparación con los modelos anteriores más rápidos. Por ejemplo, YOLO12n logra una mejora de +2.1% en mAP sobre YOLOv10n y +1.2% sobre YOLO11n en el conjunto de datos COCO val2017. En comparación con modelos como RT-DETR, YOLO12s ofrece una mejora de +1.5% en mAP y un aumento sustancial de velocidad de +42%. Estas métricas resaltan el fuerte equilibrio de YOLO12 entre precisión y eficiencia. Consulte la sección de métricas de rendimiento para obtener comparaciones detalladas.

¿Cuáles son los requisitos de hardware para ejecutar YOLO12, especialmente para usar FlashAttention?

De forma predeterminada, la implementación de Ultralytics YOLO12 no requiere FlashAttention. Sin embargo, FlashAttention se puede compilar y usar opcionalmente con YOLO12 para minimizar la sobrecarga de acceso a la memoria. Para compilar FlashAttention, se necesita una de las siguientes GPU de NVIDIA: GPU Turing (por ejemplo, T4, serie Quadro RTX), GPU Ampere (por ejemplo, serie RTX30, A30/40/100), GPU Ada Lovelace (por ejemplo, serie RTX40) o GPU Hopper (por ejemplo, H100/H200). Esta flexibilidad permite a los usuarios aprovechar los beneficios de FlashAttention cuando los recursos de hardware lo permiten.

¿Dónde puedo encontrar ejemplos de uso y documentación más detallada para YOLO12?

Esta página proporciona ejemplos básicos de uso para el entrenamiento y la inferencia. Para obtener documentación completa sobre estos y otros modos, incluyendo la Validación y la Exportación, consulte las páginas dedicadas de Predicción y Entrenamiento. Para obtener información específica de la tarea (segmentación, clasificación, detección de objetos orientados y estimación de la pose), consulte la documentación respectiva: Segmento, Clasificar, OBB y Pose. Estos recursos proporcionan una guía detallada para utilizar eficazmente YOLO12 en varios escenarios.



📅 Creado hace 4 meses ✏️ Actualizado hace 22 días

Comentarios