Link to this sectionYOLO12: Rilevamento oggetti incentrato sull'attenzione#
Link to this sectionPanoramica#
YOLO12, rilasciato all'inizio del 2025, introduce un'architettura incentrata sull'attenzione che si allontana dai tradizionali approcci basati su CNN utilizzati nei precedenti modelli YOLO, pur mantenendo la velocità di inferenza in tempo reale essenziale per molte applicazioni. Questo modello raggiunge un'elevata precisione nel rilevamento degli oggetti grazie a nuove innovazioni metodologiche nei meccanismi di attenzione e nell'architettura complessiva della rete, mantenendo prestazioni in tempo reale. Nonostante tali vantaggi, YOLO12 rimane una release guidata dalla community che potrebbe mostrare instabilità nell'addestramento, un maggiore consumo di memoria e un throughput della CPU più lento a causa dei suoi pesanti blocchi di attenzione, pertanto Ultralytics consiglia 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? 🚀
Link to this sectionCaratteristiche principali#
- Area Attention Mechanism: Un nuovo approccio di self-attention che elabora campi ricettivi ampi in modo efficiente. Divide le feature maps in l regioni di uguale dimensione (predefinite a 4), orizzontalmente o verticalmente, evitando operazioni complesse e mantenendo un ampio campo ricettivo efficace. Ciò riduce significativamente il costo computazionale rispetto alla self-attention standard.
- Residual Efficient Layer Aggregation Networks (R-ELAN): Un modulo di aggregazione delle feature migliorato basato su ELAN, progettato per affrontare le sfide di ottimizzazione, specialmente nei modelli incentrati sull'attenzione su larga scala. R-ELAN introduce:
- Connessioni residue a livello di blocco con ridimensionamento (simile allo scaling dei layer).
- Un metodo di aggregazione delle feature riprogettato che crea una struttura simile a un collo di bottiglia.
- Architettura di attenzione ottimizzata: YOLO12 semplifica il meccanismo di attenzione standard per una maggiore efficienza e compatibilità con il framework YOLO. Ciò include:
- L'utilizzo di FlashAttention per ridurre al minimo l'overhead di accesso alla memoria.
- La rimozione della codifica posizionale per un modello più pulito e veloce.
- La regolazione del rapporto MLP (dal tipico 4 a 1.2 o 2) per bilanciare meglio il calcolo tra attenzione e layer feed-forward.
- La riduzione della profondità dei blocchi impilati per un'ottimizzazione migliorata.
- Lo sfruttamento 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 alle attività: YOLO12 supporta una serie di attività fondamentali di computer vision: rilevamento oggetti, instance segmentation, image classification, stima della posa e rilevamento di oggetti orientati (OBB).
- Efficienza migliorata: Raggiunge una maggiore precisione con meno parametri rispetto a molti modelli precedenti, dimostrando un equilibrio migliorato tra velocità e precisione.
- Deployment flessibile: Progettato per il deployment su diverse piattaforme, dai dispositivi edge all'infrastruttura cloud.

Link to this sectionCompiti e modalità supportati#
YOLO12 supporta una varietà di attività di computer vision. La tabella sottostante mostra il supporto alle attività e le modalità operative (Inference, Validation, Training ed Export) abilitate per ciascuna:
Solo i pesi di rilevamento (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt) sono rilasciati su ultralytics/assets. Le architetture per segmentazione, classificazione, posa e OBB sono definite in ultralytics/cfg/models/12/, quindi tali varianti supportano l'addestramento da zero a partire dalla configurazione .yaml, ma al momento non sono disponibili file .pt preaddestrati per esse. Per checkpoint preaddestrati di segmentazione, posa, classificazione o OBB, Ultralytics consiglia YOLO11 o YOLO26.
| Tipo di modello | Compito | Pesi pre-addestrati | Inferenza | Validazione | Addestramento | Esportazione |
|---|---|---|---|---|---|---|
| YOLO12 | Rilevamento | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentazione | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Pose | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classificazione | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Tutte le architetture YOLO12 supportano ogni modalità una volta che un checkpoint addestrato è disponibile. La colonna Pretrained Weights indica solo se Ultralytics pubblica un .pt ufficiale preaddestrato su ultralytics/assets: per segmentazione, posa, classificazione e OBB, devi addestrare il tuo checkpoint dal .yaml corrispondente prima di eseguire inferenza, validazione o esportazione.
Link to this sectionMetriche di performance#
YOLO12 dimostra significativi miglioramenti nell'accuracy su tutte le scale del modello, con alcuni compromessi in termini di velocità rispetto ai modelli YOLO più veloci precedenti. Di seguito sono riportati i risultati quantitativi per il object detection sul dataset di validazione COCO:
Link to this sectionPrestazioni di rilevamento (COCO val2017)#
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT (ms) | params (M) | FLOPs (B) | Confronto (mAP/Velocità) |
|---|---|---|---|---|---|---|---|
| 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) |
- Velocità di inferenza misurata su una GPU NVIDIA T4 con precision TensorRT FP16.
- I confronti mostrano il miglioramento relativo in mAP e la variazione percentuale della velocità (positivo indica più veloce; negativo indica più lento). I confronti sono fatti rispetto ai risultati pubblicati per YOLOv10, YOLO11 e RT-DETR ove disponibili.
Link to this sectionEsempi 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 Validation ed Export), consulta le pagine dedicate Predict e Train.
Gli esempi sottostanti si concentrano sui modelli YOLO12 Detect (per il rilevamento di oggetti). Per altre attività supportate (segmentazione, classificazione, rilevamento di oggetti orientati e stima della posa), fai riferimento alla rispettiva documentazione specifica per attività: Segment, Classify, OBB e Pose.
I modelli *.pt preaddestrati (utilizzando 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")Link to this sectionMiglioramenti chiave#
-
Feature Extraction migliorata:
- Area Attention: Gestisce in modo efficiente ampi receptive fields, riducendo il costo computazionale.
- Bilanciamento ottimizzato: Migliore bilanciamento tra i calcoli della rete di attenzione e feed-forward.
- R-ELAN: Migliora l'aggregazione delle feature utilizzando l'architettura R-ELAN.
-
Innovazioni nell'ottimizzazione:
- Connessioni residue: Introduce connessioni residue con ridimensionamento per stabilizzare l'addestramento, specialmente nei modelli più grandi.
- Integrazione delle feature perfezionata: Implementa un metodo migliorato per l'integrazione delle feature all'interno di R-ELAN.
- FlashAttention: Incorpora FlashAttention per ridurre l'overhead di accesso alla memoria.
-
Efficienza architettonica:
- Riduzione dei parametri: Ottiene un conteggio dei parametri inferiore mantenendo o migliorando la precisione rispetto a molti modelli precedenti.
- Attenzione semplificata: Utilizza un'implementazione dell'attenzione semplificata, evitando la codifica posizionale.
- Rapporti MLP ottimizzati: Regola i rapporti MLP per allocare più efficacemente le risorse computazionali.
Link to this sectionRequisiti#
L'implementazione Ultralytics YOLO12, per impostazione predefinita, non richiede FlashAttention. Tuttavia, FlashAttention può essere compilata facoltativamente e utilizzata con YOLO12. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA:
- GPU Turing (es. T4, serie Quadro RTX)
- GPU Ampere (es. serie RTX30, A30/40/100)
- GPU Ada Lovelace (es. serie RTX40)
- GPU Hopper (es. H100/H200)
Link to this sectionCitazioni e riconoscimenti#
Se utilizzi YOLO12 nella tua ricerca, cita il lavoro originale della University at Buffalo e della University of Chinese Academy of Sciences:
@article{tian2025yolo12,
title={YOLO12: 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 = {YOLO12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}Link to this sectionFAQ#
Link to this sectionIn che modo YOLO12 ottiene il rilevamento di oggetti in tempo reale mantenendo un'elevata precisione?#
YOLO12 incorpora diverse innovazioni chiave per bilanciare velocità e precisione. Il meccanismo di Area Attention elabora in modo efficiente ampi campi ricettivi, riducendo il costo computazionale rispetto alla self-attention standard. Le Residual Efficient Layer Aggregation Networks (R-ELAN) migliorano l'aggregazione delle feature, affrontando le sfide di ottimizzazione nei modelli più grandi incentrati sull'attenzione. L'architettura di attenzione ottimizzata, incluso l'uso di FlashAttention e la rimozione della codifica posizionale, migliora ulteriormente l'efficienza. Queste caratteristiche consentono a YOLO12 di ottenere una precisione allo stato dell'arte mantenendo la velocità di inferenza in tempo reale cruciale per molte applicazioni.
Link to this sectionQuali attività di computer vision supporta YOLO12?#
YOLO12 è un modello versatile che supporta un'ampia gamma di attività fondamentali di computer vision. Eccelle nel detection di oggetti, segmentation di istanze, classification di immagini, pose estimation e rilevamento di oggetti orientati (OBB) (vedi dettagli). Questo supporto completo rende YOLO12 uno strumento potente per diverse applicazioni, dalla robotics e guida autonoma all'imaging medico e all'ispezione industriale. Nota che i pesi .pt preaddestrati sono attualmente pubblicati solo per il rilevamento; le architetture per segmentazione, posa, classificazione e OBB sono fornite come configurazioni .yaml per l'addestramento da zero.
Link to this sectionCome si confronta YOLO12 con altri modelli YOLO e concorrenti come RT-DETR?#
YOLO12 dimostra significativi miglioramenti nell'accuratezza su tutte le scale 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 ottiene 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 solido equilibrio di YOLO12 tra accuratezza ed efficienza. Consulta la sezione delle metriche di prestazione per confronti dettagliati.
Link to this sectionQuali sono i requisiti hardware per eseguire YOLO12, specialmente per utilizzare FlashAttention?#
Per impostazione predefinita, l'implementazione Ultralytics YOLO12 non richiede FlashAttention. Tuttavia, FlashAttention può essere compilata facoltativamente e utilizzata con YOLO12 per ridurre al minimo l'overhead di accesso alla memoria. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA: GPU Turing (es. T4, serie Quadro RTX), GPU Ampere (es. serie RTX30, A30/40/100), GPU Ada Lovelace (es. serie RTX40) o GPU Hopper (es. H100/H200). Questa flessibilità consente agli utenti di sfruttare i vantaggi di FlashAttention quando le risorse hardware lo consentono.
Link to this sectionDove posso trovare esempi di utilizzo e documentazione più dettagliata per YOLO12?#
Questa pagina fornisce esempi di utilizzo di base per l'addestramento e l'inferenza. Per una documentazione completa su queste e altre modalità, incluse Validation ed Export, consulta le pagine dedicate Predict e Train. Per informazioni specifiche sull'attività (segmentazione, classificazione, rilevamento di oggetti orientati e stima della posa), fai riferimento alla documentazione rispettiva: Segment, Classify, OBB e Pose. Queste risorse forniscono una guida approfondita per utilizzare efficacemente YOLO12 in vari scenari.