YOLO12: rilevamento degli oggetti incentrato sull'attenzione#
Panoramica#
YOLO12, rilasciato all'inizio del 2025, introduce un'architettura incentrata sull'attenzione che si discosta dagli approcci tradizionali basati su CNN utilizzati nei precedenti modelli YOLO, mantenendo tuttavia la velocità di inferenza in tempo reale essenziale per molte applicazioni. Questo modello raggiunge un'elevata accuratezza nel rilevamento degli oggetti grazie a nuove innovazioni metodologiche nei meccanismi di attenzione e nell'architettura complessiva della rete, mantenendo al contempo prestazioni in tempo reale. Nonostante questi vantaggi, YOLO12 rimane una versione sviluppata dalla community e può presentare instabilità durante l'addestramento, un consumo elevato di memoria e una velocità di elaborazione inferiore sulla CPU a causa dei suoi pesanti blocchi di attenzione; per questo Ultralytics raccomanda YOLO11 o YOLO26 per la maggior parte dei carichi di lavoro di produzione.
Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀
Funzionalità principali#
- Meccanismo di attenzione per aree: un nuovo approccio di autoattenzione che elabora in modo efficiente ampi campi ricettivi. Divide le mappe delle caratteristiche in l regioni di dimensioni uguali (4 per impostazione predefinita), orizzontalmente o verticalmente, evitando operazioni complesse e mantenendo un ampio campo ricettivo effettivo. Ciò riduce significativamente il costo computazionale rispetto all'autoattenzione standard.
- Reti di aggregazione efficiente dei livelli residuali (R-ELAN): un modulo migliorato di aggregazione delle caratteristiche basato su ELAN, progettato per affrontare le difficoltà di ottimizzazione, soprattutto nei modelli di grandi dimensioni incentrati sull'attenzione. R-ELAN introduce:
- Connessioni residuali a livello di blocco con ridimensionamento (simili al ridimensionamento dei livelli).
- Un metodo riprogettato di aggregazione delle caratteristiche che crea una struttura simile a un collo di bottiglia.
- Architettura di attenzione ottimizzata: YOLO12 semplifica il meccanismo di attenzione standard per ottenere maggiore efficienza e compatibilità con il framework YOLO. Ciò include:
- L'utilizzo di FlashAttention per ridurre al minimo l'overhead degli accessi alla memoria.
- La rimozione della codifica posizionale per ottenere un modello più semplice e veloce.
- La regolazione del rapporto MLP (dal valore tipico 4 a 1.2 o 2) per bilanciare meglio il calcolo tra i livelli di attenzione e feed-forward.
- La riduzione della profondità dei blocchi impilati per migliorare l'ottimizzazione.
- L'utilizzo delle operazioni di convoluzione (ove appropriato) per la loro efficienza computazionale.
- L'aggiunta di una convoluzione separabile 7x7 (il "position perceiver") al meccanismo di attenzione per codificare implicitamente le informazioni posizionali.
- Supporto completo delle attività: YOLO12 supporta una serie di attività fondamentali di visione artificiale: rilevamento degli oggetti, segmentazione delle istanze, classificazione delle immagini, stima della posa e rilevamento di oggetti orientati (OBB).
- Efficienza migliorata: raggiunge una maggiore accuratezza con un numero inferiore di parametri rispetto a molti modelli precedenti, dimostrando un equilibrio migliorato tra velocità e accuratezza.
- Distribuzione flessibile: progettato per la distribuzione su diverse piattaforme, dai dispositivi edge all'infrastruttura cloud.

Attività e modalità supportate#
YOLO12 supporta diverse attività di visione artificiale. La tabella seguente mostra il supporto delle attività e le modalità operative (Inferenza, Convalida, Addestramento ed Esportazione) abilitate per ciascuna:
Sono stati rilasciati su ultralytics/assets solo i pesi per il rilevamento (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt). Le architetture per segmentazione, classificazione, posa e OBB sono definite in ultralytics/cfg/models/12/, quindi queste varianti supportano l'addestramento da zero dalla configurazione .yaml, ma al momento non sono disponibili file .pt preaddestrati per tali varianti. Per i checkpoint preaddestrati di segmentazione, posa, classificazione o OBB, Ultralytics raccomanda YOLO11 o YOLO26.
| Tipo di modello | Attività | Pesi preaddestrati | Addestramento | Convalida | Inferenza | Esportazione |
|---|---|---|---|---|---|---|
| YOLO12 | Rilevamento | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentazione | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classificazione | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Posa | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Tutte le architetture YOLO12 supportano ogni modalità una volta disponibile un checkpoint addestrato. La colonna Pretrained Weights indica solo se Ultralytics pubblica un .pt preaddestrato ufficiale su ultralytics/assets: per segmentazione, posa, classificazione e OBB, devi addestrare il tuo checkpoint dalla configurazione .yaml corrispondente prima di eseguire inferenza, convalida o esportazione.
Metriche delle prestazioni#
YOLO12 dimostra miglioramenti significativi dell'accuratezza su tutte le dimensioni dei modelli, con alcuni compromessi in termini di velocità rispetto ai modelli YOLO precedenti più veloci. Di seguito sono riportati i risultati quantitativi per il rilevamento degli oggetti sul dataset di convalida COCO:
Prestazioni del rilevamento (COCO val2017)#
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT (ms) | parametri (M) | FLOPs (B) | Confronto (mAP/velocità) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 7.5 | +2.1%/-9% (rispetto a YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.3 | +0.1%/+42% (rispetto a RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 70.7 | +1.0%/-3% (rispetto a YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 95.4 | +0.4%/-8% (rispetto a YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 208.9 | +0.6%/-4% (rispetto a YOLO11x) |
- La velocità di inferenza è stata misurata su una GPU NVIDIA T4 con precisione FP16 di TensorRT.
- I confronti mostrano il miglioramento relativo in termini di mAP e la variazione percentuale della velocità (un valore positivo indica maggiore velocità; uno negativo indica minore velocità). I confronti sono effettuati rispetto ai risultati pubblicati per YOLOv10, YOLO11 e RT-DETR, ove disponibili.
Esempi di utilizzo#
Questa sezione fornisce esempi per l'addestramento e l'inferenza con YOLO12. Per una documentazione più completa su queste e altre modalità (incluse Convalida ed Esportazione), consulta le pagine dedicate a Previsione e Addestramento.
Gli esempi seguenti si concentrano sui modelli YOLO12 per Rilevamento (per il rilevamento degli oggetti). Per le altre attività supportate (segmentazione, classificazione, stima della posa e rilevamento di oggetti orientati), consulta la documentazione specifica delle rispettive attività: Segmentazione, Classificazione, Posa e OBB.
I modelli *.pt preaddestrati (che utilizzano PyTorch) e i file di configurazione *.yaml possono essere passati alla classe YOLO() per creare un'istanza del modello in 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")Miglioramenti principali#
-
Estrazione delle caratteristiche migliorata:
- Attenzione per aree: gestisce in modo efficiente ampi campi ricettivi, riducendo il costo computazionale.
- Equilibrio ottimizzato: equilibrio migliorato tra i calcoli dell'attenzione e quelli della rete feed-forward.
- R-ELAN: migliora l'aggregazione delle caratteristiche utilizzando l'architettura R-ELAN.
-
Innovazioni nell'ottimizzazione:
- Connessioni residuali: introduce connessioni residuali con ridimensionamento per stabilizzare l'addestramento, soprattutto nei modelli più grandi.
- Integrazione raffinata delle caratteristiche: implementa un metodo migliorato per l'integrazione delle caratteristiche all'interno di R-ELAN.
- FlashAttention: integra FlashAttention per ridurre l'overhead degli accessi alla memoria.
-
Efficienza dell'architettura:
- Parametri ridotti: raggiunge un numero inferiore di parametri mantenendo o migliorando l'accuratezza rispetto a molti modelli precedenti.
- Attenzione semplificata: utilizza un'implementazione semplificata dell'attenzione, evitando la codifica posizionale.
- Rapporti MLP ottimizzati: regola i rapporti MLP per allocare in modo più efficace le risorse computazionali.
Requisiti#
L'implementazione Ultralytics di YOLO12, per impostazione predefinita, non richiede FlashAttention. Tuttavia, FlashAttention può essere compilato e utilizzato facoltativamente con YOLO12. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA:
- GPU Turing (ad esempio, serie T4 e Quadro RTX)
- GPU Ampere (ad esempio, serie RTX30, A30/40/100)
- GPU Ada Lovelace (ad esempio, serie RTX40)
- GPU Hopper (ad esempio, H100/H200)
Citazioni e ringraziamenti#
Se utilizzi YOLO12 nella tua ricerca, cita il lavoro originale della University at Buffalo e della University of Chinese Academy of Sciences:
@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}
}L'articolo su YOLO12 è stato pubblicato negli atti di NeurIPS 2025, con un preprint su arXiv.
FAQ#
YOLO12 integra diverse innovazioni chiave per bilanciare velocità e accuratezza. Il meccanismo di attenzione per aree elabora in modo efficiente ampi campi ricettivi, riducendo il costo computazionale rispetto all'autoattenzione standard. Le reti di aggregazione efficiente dei livelli residuali (R-ELAN) migliorano l'aggregazione delle caratteristiche, affrontando le difficoltà di ottimizzazione nei modelli di grandi dimensioni incentrati sull'attenzione. L'architettura di attenzione ottimizzata, che include l'uso di FlashAttention e la rimozione della codifica posizionale, migliora ulteriormente l'efficienza. Queste funzionalità consentono a YOLO12 di raggiungere un'accuratezza all'avanguardia mantenendo la velocità di inferenza in tempo reale fondamentale per molte applicazioni.
YOLO12 è un modello versatile che supporta un'ampia gamma di attività fondamentali di visione artificiale. Eccelle nel rilevamento degli oggetti, nella segmentazione delle istanze, nella classificazione delle immagini, nella stima della posa e nel rilevamento di oggetti orientati (OBB) (vedi i dettagli). Questo supporto completo delle attività rende YOLO12 uno strumento potente per applicazioni diverse, dalla robotica e dalla guida autonoma all'imaging medico e all'ispezione industriale. Nota che i pesi
.ptpreaddestrati sono attualmente pubblicati solo per il rilevamento; le architetture per segmentazione, posa, classificazione e OBB sono fornite come configurazioni.yamlper l'addestramento da zero.YOLO12 dimostra miglioramenti significativi dell'accuratezza su tutte le dimensioni dei modelli rispetto ai precedenti modelli YOLO, come YOLOv10 e YOLO11, con alcuni compromessi in termini di velocità rispetto ai modelli precedenti più veloci. Ad esempio, YOLO12n raggiunge un miglioramento del mAP del +2.1% rispetto a YOLOv10n e del +1.2% rispetto a YOLO11n sul dataset COCO val2017. Rispetto a modelli come RT-DETR, YOLO12s offre un miglioramento del mAP del +1.5% e un sostanziale aumento della velocità del +42%. Queste metriche evidenziano il forte equilibrio di YOLO12 tra accuratezza ed efficienza. Consulta la sezione sulle metriche delle prestazioni per confronti dettagliati.
Per impostazione predefinita, l'implementazione Ultralytics di YOLO12 non richiede FlashAttention. Tuttavia, FlashAttention può essere compilato e utilizzato facoltativamente con YOLO12 per ridurre al minimo l'overhead degli accessi alla memoria. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA: GPU Turing (ad esempio, serie T4 e Quadro RTX), GPU Ampere (ad esempio, serie RTX30, A30/40/100), GPU Ada Lovelace (ad esempio, serie RTX40) o GPU Hopper (ad esempio, H100/H200). Questa flessibilità consente agli utenti di sfruttare i vantaggi di FlashAttention quando le risorse hardware lo permettono.
Questa pagina fornisce esempi di utilizzo di base per l'addestramento e l'inferenza. Per una documentazione completa su queste e altre modalità, incluse Convalida ed Esportazione, consulta le pagine dedicate a Previsione e Addestramento. Per informazioni specifiche sulle attività (segmentazione, classificazione, stima della posa e rilevamento di oggetti orientati), consulta la documentazione corrispondente: Segmentazione, Classificazione, Posa e OBB. Queste risorse forniscono indicazioni approfondite per utilizzare YOLO12 in modo efficace in diversi scenari.