YOLO12: detección de objetos centrada en la atención#
Descripción general#
YOLO12, publicado a principios de 2025, 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 gran precisión en la detección de objetos mediante 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. A pesar de estas ventajas, YOLO12 sigue siendo un lanzamiento impulsado por la comunidad y puede presentar inestabilidad durante el entrenamiento, un consumo de memoria elevado y un menor rendimiento en CPU debido a sus bloques de atención de gran tamaño, por lo que Ultralytics recomienda YOLO11 o YOLO26 para la mayoría de las cargas de trabajo de producción.
Ver: Cómo usar YOLO12 para detectar objetos con el paquete Ultralytics | ¿YOLO12 es rápido o lento? 🚀
Características principales#
- Mecanismo de atención por áreas: un nuevo enfoque de autoatención que procesa de forma eficiente grandes campos receptivos. Divide los mapas de características en l regiones del mismo tamaño (4 de forma predeterminada), ya sea horizontal o verticalmente, evitando operaciones complejas y manteniendo un campo receptivo efectivo amplio. Esto reduce considerablemente el coste computacional en comparación con la autoatención estándar.
- Redes residuales eficientes de agregación de capas (R-ELAN): un módulo de agregación de características mejorado, basado en ELAN y diseñado para resolver los retos de optimización, especialmente en modelos de mayor escala centrados en la atención. 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 simplifica el mecanismo de atención estándar para aumentar la eficiencia y la compatibilidad con el marco YOLO. Esto incluye:
- El uso de FlashAttention para reducir al mínimo la sobrecarga del acceso a memoria.
- La eliminación de la codificación posicional para obtener un modelo más sencillo y rápido.
- El ajuste de la proporción de MLP (de 4, el valor habitual, a 1,2 o 2) para equilibrar mejor el cálculo entre las capas de atención y las capas de propagación hacia delante.
- La reducción de la profundidad de los bloques apilados para mejorar la optimización.
- El uso de operaciones de convolución (cuando corresponda) por su eficiencia computacional.
- La incorporación de una convolución separable de 7x7 (el «perceptor de posición») al mecanismo de atención para codificar implícitamente la información posicional.
- Compatibilidad completa con tareas: YOLO12 admite una variedad de tareas esenciales 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).
- Mayor eficiencia: logra una mayor precisión con menos parámetros que muchos modelos anteriores, lo que demuestra un mejor equilibrio entre velocidad y precisión.
- Despliegue flexible: diseñado para desplegarse en distintas plataformas, desde dispositivos periféricos hasta infraestructura en la nube.

Tareas y modos compatibles#
YOLO12 admite diversas tareas de visión artificial. La tabla siguiente muestra las tareas compatibles y los modos operativos (inferencia, validación, entrenamiento y exportación) habilitados para cada una:
En ultralytics/assets solo se publican pesos de detección (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt). Las arquitecturas de segmentación, clasificación, pose y OBB están definidas en ultralytics/cfg/models/12/, por lo que estas variantes admiten el entrenamiento desde cero a partir de la configuración .yaml, pero actualmente no hay disponibles archivos .pt preentrenados para ellas. Para obtener puntos de control preentrenados de segmentación, pose, clasificación u OBB, Ultralytics recomienda YOLO11 o YOLO26.
| Tipo de modelo | Tarea | Pesos preentrenados | Entrenamiento | Validación | Inferencia | Exportar |
|---|---|---|---|---|---|---|
| YOLO12 | Detección | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentación | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Clasificación | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Todas las arquitecturas YOLO12 admiten todos los modos cuando se dispone de un punto de control entrenado. La columna Pretrained Weights indica únicamente si Ultralytics publica un .pt preentrenado oficial en ultralytics/assets: para segmentación, pose, clasificación y OBB, debes entrenar tu propio punto de control a partir de la configuración .yaml correspondiente antes de ejecutar la inferencia, la validación o la exportación.
Métricas de rendimiento#
YOLO12 muestra mejoras significativas de precisión en todas las escalas de modelo, con ciertas contrapartidas en velocidad frente a los modelos YOLO anteriores más rápidos. A continuación se muestran los resultados cuantitativos de detección de objetos en el conjunto de validación COCO:
Rendimiento de detección (COCO val2017)#
| 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 | 7.5 | +2,1 %/-9 % (frente a YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.3 | +0,1 %/+42 % (frente a RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 70.7 | +1,0 %/-3 % (frente a YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 95.4 | +0,4 %/-8 % (frente a YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 208.9 | +0,6 %/-4 % (frente a YOLO11x) |
- Velocidad de inferencia medida en una GPU NVIDIA T4 con precisión FP16 de TensorRT precisión.
- Las comparaciones muestran la mejora relativa en mAP y el cambio porcentual en velocidad (un valor positivo indica mayor velocidad; uno negativo, menor velocidad). Se comparan con los resultados publicados de YOLOv10, YOLO11 y RT-DETR cuando están disponibles.
Ejemplos de uso#
Esta sección ofrece ejemplos de entrenamiento e inferencia con YOLO12. Para consultar documentación más completa sobre estos y otros modos (incluidos Validación y Exportación), consulta las páginas específicas de Predicción y Entrenamiento.
Los ejemplos siguientes se centran en los modelos YOLO12 Detect (para la detección de objetos). Para otras tareas compatibles (segmentación, clasificación, estimación de pose y detección de objetos orientados), consulta la documentación específica de cada tarea: Segment, Classify, Pose y OBB.
Los modelos *.pt preentrenados (con PyTorch) y los archivos de configuración *.yaml se pueden pasar a la clase YOLO() para crear una instancia del modelo en Python:
from ultralytics import YOLO
# Cargar un modelo YOLO12n preentrenado con COCO
model = YOLO("yolo12n.pt")
# Entrena el modelo durante 100 épocas con el conjunto de datos de ejemplo COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Ejecutar la inferencia con el modelo YOLO12n en la imagen 'bus.jpg'
results = model("path/to/bus.jpg")Mejoras principales#
-
Mejora de la extracción de características:
- Atención por áreas: gestiona eficientemente grandes campos receptivos, lo que reduce el coste computacional.
- Equilibrio optimizado: mejora el equilibrio entre los cálculos de atención y los de la red de propagación hacia delante.
- R-ELAN: mejora la agregación de características mediante la arquitectura R-ELAN.
-
Innovaciones de optimización:
- Conexiones residuales: introduce conexiones residuales con escalado para estabilizar el entrenamiento, especialmente en modelos de mayor tamaño.
- Integración de características refinada: implementa un método mejorado para integrar características dentro de R-ELAN.
- FlashAttention: incorpora FlashAttention para reducir la sobrecarga del acceso a memoria.
-
Eficiencia arquitectónica:
- Menos parámetros: logra un recuento menor de parámetros y mantiene o mejora la precisión respecto a muchos modelos anteriores.
- Atención simplificada: utiliza una implementación simplificada de la atención que prescinde de la codificación posicional.
- Proporciones de MLP optimizadas: ajusta las proporciones de MLP para asignar los recursos computacionales de forma más eficaz.
Requisitos#
De forma predeterminada, la implementación de Ultralytics YOLO12 no requiere FlashAttention. Sin embargo, FlashAttention se puede compilar y utilizar opcionalmente con YOLO12. Para compilar FlashAttention, se necesita una de las siguientes GPU de NVIDIA:
- GPU Turing (p. ej., T4, serie Quadro RTX)
- GPU Ampere (p. ej., serie RTX30, A30/40/100)
- GPU Ada Lovelace (p. ej., serie RTX40)
- GPU Hopper (p. ej., H100/H200)
Citas y agradecimientos#
Si utilizas YOLO12 en tu investigación, cita el trabajo original de la Universidad de Buffalo y la Universidad de la Academia China de Ciencias:
@inproceedings{tian2025yolov12,
title={YOLOv12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
booktitle={Advances in Neural Information Processing Systems},
volume={38},
pages={78433--78457},
year={2025},
url={https://proceedings.neurips.cc/paper_files/paper/2025/file/7103444259031cc58051f8c9a4868533-Paper-Conference.pdf}
}
@software{yolo12,
author = {Tian, Yunjie and Ye, Qixiang and Doermann, David},
title = {YOLO12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}El artículo de YOLO12 se publicó en las actas de NeurIPS 2025, con una prepublicación en arXiv.
Preguntas frecuentes#
YOLO12 incorpora varias innovaciones clave para equilibrar la velocidad y la precisión. El mecanismo de atención por áreas procesa eficazmente grandes campos receptivos y reduce el coste computacional frente a la atención estándar propia. Las redes residuales de agregación eficiente de capas (R-ELAN) mejoran la agregación de características y abordan los retos de optimización de los modelos más grandes centrados en la atención. La arquitectura de atención optimizada, que incluye el uso de FlashAttention y la eliminación de la codificación posicional, aumenta aún más la eficiencia. Estas características permiten que YOLO12 alcance una precisión de vanguardia y mantenga la velocidad de inferencia en tiempo real que resulta crucial para muchas aplicaciones.
YOLO12 es un modelo versátil que admite una amplia variedad de tareas fundamentales 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 pose y la detección de objetos orientados (OBB) (consulta los detalles). Esta amplia compatibilidad con distintas tareas convierte a YOLO12 en una herramienta potente para diversas aplicaciones, desde la robótica y la conducción autónoma hasta el diagnóstico por imagen y la inspección industrial. Ten en cuenta que actualmente solo se publican pesos
.ptpreentrenados para detección; las arquitecturas de segmentación, pose, clasificación y OBB se proporcionan como configuraciones.yamlpara entrenarlas desde cero.YOLO12 mejora notablemente la precisión en todas las escalas de modelo frente a modelos YOLO anteriores como YOLOv10 y YOLO11, aunque sacrifica algo de velocidad respecto a los modelos anteriores más rápidos. Por ejemplo, YOLO12n mejora el mAP un +2,1 % frente a YOLOv10n y un +1,2 % frente a YOLO11n en el conjunto de datos COCO val2017. En comparación con modelos como RT-DETR, YOLO12s ofrece una mejora del mAP del +1,5 % y un aumento sustancial de la velocidad del +42 %. Estas métricas ponen de manifiesto el sólido equilibrio de YOLO12 entre precisión y eficiencia. Consulta la sección de métricas de rendimiento para ver comparaciones detalladas.
De forma predeterminada, la implementación de YOLO12 de Ultralytics no requiere FlashAttention. Sin embargo, puedes compilar y utilizar FlashAttention de forma opcional para minimizar la sobrecarga de acceso a memoria. Para compilar FlashAttention, necesitas una de las siguientes GPU de NVIDIA: GPU Turing (p. ej., T4 y la serie Quadro RTX), GPU Ampere (p. ej., la serie RTX30 y A30/40/100), GPU Ada Lovelace (p. ej., la serie RTX40) o GPU Hopper (p. ej., H100/H200). Esta flexibilidad permite aprovechar las ventajas de FlashAttention cuando los recursos de hardware lo permiten.
Esta página ofrece ejemplos de uso básicos para el entrenamiento y la inferencia. Para consultar documentación completa sobre estos y otros modos, incluidos Val y Export, consulta las páginas específicas de Predict y Train. Para obtener información específica sobre cada tarea (segmentación, clasificación, estimación de pose y detección de objetos orientados), consulta la documentación correspondiente: Segment, Classify, Pose y OBB. Estos recursos ofrecen instrucciones detalladas para utilizar YOLO12 de forma eficaz en distintos escenarios.