YOLO12: Detección de objetos centrada en la atención
Visión general
YOLO12 introduce una arquitectura centrada en la atención que se aleja 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 consigue la máxima precisión en la detección de objetos gracias a novedosas innovaciones metodológicas en los mecanismos de atención y en la arquitectura general de la red, al tiempo que mantiene el rendimiento en tiempo real.
Observa: Cómo utilizar YOLO12 para la detección de objetos con el paquete Ultralytics | ¿Es YOLO12 rápido o lento? 🚀
Características principales
- Mecanismo de atención de área: Un nuevo enfoque de autoatención que procesa grandes campos receptivos de forma eficiente. Divide los mapas de características en l regiones de igual tamaño (por defecto 4), horizontal o verticalmente, evitando operaciones complejas y manteniendo un gran campo receptivo efectivo. Esto reduce significativamente el coste computacional en comparación con la autoatención estándar.
- Redes de Agregación de Capas Residualmente Eficientes (R-ELAN): Un módulo mejorado de agregación de características basado en ELAN, diseñado para abordar los retos de optimización, especialmente en modelos centrados en la atención a gran escala. R-ELAN introduce:
- Conexiones residuales a nivel de bloque con escalado (similar al escalado de capas).
- Un método de agregación de características rediseñado que crea una estructura similar a un cuello de botella.
- Arquitectura de atención optimizada: YOLO12 racionaliza el mecanismo de atención estándar para una mayor eficacia y compatibilidad con el marco YOLO . Esto incluye:
- Uso de FlashAttention para minimizar la sobrecarga de acceso a la memoria.
- Eliminación de la codificación posicional para un modelo más limpio y rápido.
- Ajustar la proporción de MLP (de la típica de 4 a 1,2 o 2) para equilibrar mejor el cálculo entre las capas de atención y las de avance.
- Reducción de la profundidad de los bloques apilados para mejorar la optimización.
- Aprovechar las operaciones de convolución (cuando proceda) por su eficiencia computacional.
- Añadir una convolución separable 7x7 (el "perceptor de posición") al mecanismo de atención para codificar implícitamente la información posicional.
- Amplio soporte de tareas: YOLO12 es compatible con una serie de tareas básicas de visión por ordenador: detección de objetos, segmentación de instancias, clasificación de imágenes, estimación de poses y detección de objetos orientados (OBB).
- Mayor eficacia: Consigue una mayor precisión con menos parámetros en comparación con muchos modelos anteriores, lo que demuestra un mejor equilibrio entre velocidad y precisión.
- Despliegue flexible: Diseñada para su implantación en diversas plataformas, desde dispositivos periféricos hasta infraestructuras en la nube.
Tareas y modos compatibles
YOLO12 soporta una gran variedad de tareas de visión por computador. La siguiente tabla muestra la compatibilidad de tareas y los modos operativos (Inferencia, Validación, Formación y Exportación) habilitados para cada una de ellas:
Tipo de modelo | Tarea | Inferencia | Validación | Formación | 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 de precisión en todas las escalas del modelo, con algunas compensaciones en velocidad en comparación con los modelos YOLO anteriores más rápidos. A continuación se muestran los resultados cuantitativos de la detección de objetos en el conjunto de datos de validación COCO:
Rendimiento de 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% (frente a YOLOv10n) |
YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 21.4 | +0,1%/+42% (frente a RT-DETRv2) |
YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 67.5 | +1,0%/-3% (frente a YOLO11m) |
YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 88.9 | +0,4%/-8% (frente a YOLO11l) |
YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 199.0 | +0,6%/-4% (frente a 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 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 cuando están disponibles.
Ejemplos de uso
Esta sección proporciona ejemplos de entrenamiento e inferencia con YOLO12. Para una documentación más completa sobre estos y otros modos (incluyendo Validación y Exportación), consulte las páginas dedicadas a Predecir y Entrenar.
Los ejemplos siguientes se centran en los modelos YOLO12 Detect (para la detección de objetos). Para otras tareas compatibles (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 (utilizando PyTorch) y configuración *.yaml
pueden pasarse a la función YOLO()
para crear una instancia del 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 comandosCLI):
Mejoras clave
-
Extracción de características mejorada:
- Atención de área: Maneja eficientemente grandes campos receptivos, reduciendo el coste computacional.
- Equilibrio optimizado: Equilibrio mejorado entre la atención y los cálculos de la red feed-forward.
- R-ELAN: mejora la agregación de funciones mediante la arquitectura R-ELAN.
-
Innovaciones en optimización:
- Conexiones residuales: Introduce conexiones residuales con escalado para estabilizar el entrenamiento, especialmente en modelos grandes.
- Integración mejorada de características: Implementa un método mejorado para la integración de características en R-ELAN.
- FlashAttention: Incorpora FlashAttention para reducir la sobrecarga de acceso a la memoria.
-
Eficiencia arquitectónica:
- Parámetros reducidos: Consigue un menor número de parámetros manteniendo o mejorando la precisión en comparación con muchos modelos anteriores.
- Atención simplificada: Utiliza una implementación simplificada de la atención, evitando la codificación posicional.
- Ratios MLP optimizados: Ajusta los ratios de 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 puede compilarse y utilizarse opcionalmente con YOLO12. Para compilar FlashAttention, se necesita una de las siguientes GPUs 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)
- GPU de tolva (por ejemplo, H100/H200)
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 consigue YOLO12 detectar objetos en tiempo real con gran precisión?
YOLO12 incorpora varias innovaciones clave para equilibrar velocidad y precisión. El mecanismo Area Attention procesa de forma eficiente grandes campos receptivos, reduciendo el coste computacional en comparación con la autoatención estándar. Las Redes de Agregación de Capas Residuales Eficientes (R-ELAN) mejoran la agregación de características, abordando los retos de optimización en modelos centrados en la atención de mayor tamaño. La arquitectura de atención optimizada, que incluye el uso de FlashAttention y la eliminación de la codificación posicional, mejora aún más la eficiencia. Estas características permiten a YOLO12 alcanzar una precisión de vanguardia, manteniendo al mismo tiempo la velocidad de inferencia en tiempo real, crucial para muchas aplicaciones.
¿Qué tareas de visión artificial admite YOLO12?
YOLO12 es un modelo versátil que admite una amplia gama de tareas básicas de visión por ordenador. 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 amplio soporte de tareas convierte a YOLO12 en una potente herramienta para diversas aplicaciones, desde la robótica y la conducción autónoma hasta la obtención de imágenes médicas y la inspección industrial. Cada una de estas tareas puede realizarse en los modos 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 de precisión en todas las escalas del modelo en comparación con modelos YOLO anteriores como YOLOv10 y YOLO11, con algunas compensaciones en velocidad en comparación con los modelos anteriores más rápidos. Por ejemplo, YOLO12n consigue una mejora de +2,1% mAP con respecto a YOLOv10n y de +1,2% con respecto a YOLO11n en el conjunto de datos COCO val2017. En comparación con modelos como RT-DETRYOLO12s ofrece una mejora del +1,5% en mAP y un aumento sustancial de la velocidad del +42%. Estas métricas ponen de relieve el sólido equilibrio de YOLO12 entre precisión y eficiencia. Consulte la sección de métricas de rendimiento para ver comparaciones detalladas.
¿Cuáles son los requisitos de hardware para ejecutar YOLO12, especialmente para utilizar FlashAttention?
Por defecto, la implementación de Ultralytics YOLO12 no requiere FlashAttention. Sin embargo, FlashAttention puede compilarse y utilizarse opcionalmente con YOLO12 para minimizar la sobrecarga de acceso a la memoria. Para compilar FlashAttention, se necesita una de las siguientes GPUs 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 las ventajas de FlashAttention cuando los recursos de hardware lo permiten.
¿Dónde puedo encontrar ejemplos de uso y documentación más detallada sobre YOLO12?
Esta página proporciona ejemplos de uso básico para el entrenamiento y la inferencia. Para obtener documentación completa sobre estos y otros modos, incluidos Validación y Exportación, consulte las páginas dedicadas a Predecir y Entrenar. Para obtener información sobre tareas específicas (segmentación, clasificación, detección de objetos orientados y estimación de la pose), consulte la documentación correspondiente: Segmentar, Clasificar, OBB y Pose. Estos recursos proporcionan una guía detallada para utilizar eficazmente YOLO12 en diversos escenarios.