YOLO12: rilevamento di oggetti basato sull'attenzione#
Panoramica#
YOLO12, rilasciato all'inizio del 2025, introduce un'architettura incentrata sull'attenzione che si discosta dai tradizionali approcci basati su CNN usati nei modelli YOLO precedenti, mantenendo però 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 al contempo prestazioni in tempo reale. Nonostante questi vantaggi, YOLO12 rimane un rilascio guidato dalla community e può presentare instabilità nell'addestramento, un consumo di memoria elevato e una velocità di elaborazione inferiore sulla CPU a causa dei suoi blocchi di attenzione pesanti; per la maggior parte dei carichi di lavoro in produzione, Ultralytics consiglia quindi YOLO11 o YOLO26.
Guarda: Come usare YOLO12 per il rilevamento di oggetti con il pacchetto Ultralytics | YOLO12 è veloce o lento? 🚀
Funzionalità principali#
- Meccanismo di attenzione per aree: un nuovo approccio di autoattenzione che elabora in modo efficiente ampi campi ricettivi. Suddivide le mappe delle caratteristiche in l regioni di uguali dimensioni (4 per impostazione predefinita), in orizzontale o in verticale, evitando operazioni complesse e mantenendo un ampio campo ricettivo effettivo. Ciò riduce notevolmente il costo computazionale rispetto all'autoattenzione standard.
- Reti di aggregazione dei livelli residuali efficienti (R-ELAN): un modulo di aggregazione delle caratteristiche migliorato, basato su ELAN e 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 scalatura (simile alla scalatura dei livelli).
- Un metodo di aggregazione delle caratteristiche riprogettato, che crea una struttura simile a un collo di bottiglia.
- Architettura di attenzione ottimizzata: YOLO12 semplifica il meccanismo di attenzione standard per renderlo più efficiente e compatibile con il framework YOLO. Ciò include:
- L'uso di FlashAttention per ridurre al minimo il sovraccarico degli accessi alla memoria.
- La rimozione della codifica posizionale per ottenere un modello più semplice e veloce.
- La regolazione del rapporto MLP (da 4, il valore tipico, a 1,2 o 2) per bilanciare meglio i calcoli tra i livelli di attenzione e quelli feed-forward.
- La riduzione della profondità dei blocchi impilati per migliorare l'ottimizzazione.
- L'impiego di operazioni convoluzionali (quando opportuno) per la loro efficienza computazionale.
- L'aggiunta di una convoluzione separabile 7x7 (il «percettore di posizione») al meccanismo di attenzione per codificare implicitamente le informazioni posizionali.
- Supporto completo per le attività: YOLO12 supporta diverse attività fondamentali di computer vision: rilevamento di oggetti, segmentazione di istanze, classificazione delle immagini, stima della posa e rilevamento di oggetti orientati (OBB).
- Efficienza migliorata: raggiunge una precisione superiore con un numero inferiore di parametri rispetto a molti modelli precedenti, mostrando un equilibrio migliore tra velocità e precisione.
- Distribuzione flessibile: progettato per la distribuzione su piattaforme diverse, dai dispositivi edge alle infrastrutture cloud.

Attività e modalità supportate#
YOLO12 supporta diverse attività di computer vision. La tabella seguente mostra le attività supportate e le modalità operative (inferenza, convalida, addestramento ed esportazione) disponibili 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 la segmentazione, la classificazione, la stima della posa e OBB sono definite in ultralytics/cfg/models/12/, quindi queste varianti supportano l'addestramento da zero usando la configurazione .yaml, ma al momento non sono disponibili file .pt preaddestrati. Per checkpoint preaddestrati di segmentazione, stima della posa, classificazione o OBB, Ultralytics consiglia YOLO11 o YOLO26.
| Tipo di modello | Attività | Pesi preaddestrati | Addestramento | Validazione | Inferenza | Esporta |
|---|---|---|---|---|---|---|
| YOLO12 | Rilevamento | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | Segmentazione | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | Classificazione | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | Stima della posa | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
Tutte le architetture YOLO12 supportano ogni modalità quando è disponibile un checkpoint addestrato. La colonna Pretrained Weights indica soltanto se Ultralytics pubblica un .pt preaddestrato ufficiale su ultralytics/assets: per la segmentazione, la stima della posa, la classificazione e OBB, devi addestrare il tuo checkpoint a partire dalla configurazione .yaml corrispondente prima di eseguire l'inferenza, la convalida o l'esportazione.
Metriche di prestazione#
YOLO12 mostra miglioramenti significativi della precisione a tutte le scale del modello, con qualche compromesso in termini di velocità rispetto ai modelli YOLO precedenti più veloci. Di seguito sono riportati i risultati quantitativi per il rilevamento di oggetti sul set di convalida COCO:
Prestazioni di 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) |
- Velocità di inferenza misurata su una GPU NVIDIA T4 con precisione FP16 di TensorRT precisione.
- I confronti mostrano il miglioramento relativo in mAP e la variazione percentuale della velocità (un valore positivo indica una maggiore velocità; un valore negativo, una velocità inferiore). I confronti sono effettuati rispetto ai risultati pubblicati per YOLOv10, YOLO11 e RT-DETR, ove disponibili.
Esempi d'uso#
Questa sezione presenta esempi di addestramento e inferenza con YOLO12. Per una documentazione più completa su queste e altre modalità (incluse Convalida ed Esportazione), consulta le pagine dedicate a Predizione e Addestramento.
Gli esempi seguenti riguardano i modelli YOLO12 Detect (per il rilevamento di oggetti). Per le altre attività supportate (segmentazione, classificazione, stima della posa e rilevamento di oggetti orientati), consulta la documentazione specifica: Segment, Classify, Pose e OBB.
Puoi passare i modelli *.pt preaddestrati (che usano PyTorch) e i file di configurazione *.yaml alla classe YOLO() per creare un'istanza del modello in Python:
from ultralytics import YOLO
# Carica un modello YOLO12n preaddestrato su COCO
model = YOLO("yolo12n.pt")
# Addestra il modello sul dataset di esempio COCO8 per 100 epoche
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Esegui l'inferenza con il modello YOLO12n sull'immagine 'bus.jpg'
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: migliore bilanciamento tra i calcoli di attenzione e quelli della rete feed-forward.
- R-ELAN: migliora l'aggregazione delle caratteristiche usando l'architettura R-ELAN.
-
Innovazioni nell'ottimizzazione:
- Connessioni residuali: introduce connessioni residuali con scalatura per stabilizzare l'addestramento, soprattutto nei modelli più grandi.
- Integrazione delle caratteristiche perfezionata: implementa un metodo migliorato per integrare le caratteristiche all'interno di R-ELAN.
- FlashAttention: integra FlashAttention per ridurre il sovraccarico degli accessi alla memoria.
-
Efficienza architetturale:
- Numero di parametri ridotto: raggiunge un numero di parametri inferiore mantenendo o migliorando la precisione rispetto a molti modelli precedenti.
- Attenzione semplificata: usa un'implementazione dell'attenzione semplificata, che evita la codifica posizionale.
- Rapporti MLP ottimizzati: regola i rapporti MLP per allocare le risorse computazionali in modo più efficace.
Requisiti#
Per impostazione predefinita, l'implementazione Ultralytics di YOLO12 non richiede FlashAttention. Tuttavia, puoi compilare FlashAttention e usarlo con YOLO12 facoltativamente. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA:
- GPU Turing (ad esempio, T4, serie Quadro RTX)
- GPU Ampere (ad esempio, serie RTX30, A30/40/100)
- GPU Ada Lovelace (ad esempio, serie RTX40)
- GPU Hopper (ad es. H100/H200)
Citazioni e ringraziamenti#
Se usi 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 una versione preliminare su arXiv.
Domande frequenti#
YOLO12 integra diverse innovazioni chiave per bilanciare velocità e accuratezza. Il meccanismo di attenzione ad area elabora in modo efficiente ampi campi recettivi, riducendo il costo computazionale rispetto alla self-attention standard. Le reti Residual Efficient Layer Aggregation (R-ELAN) migliorano l'aggregazione delle feature, affrontando le difficoltà di ottimizzazione nei modelli più grandi 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 caratteristiche 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. È particolarmente efficace nel rilevamento di oggetti, nella segmentazione di istanze, nella classificazione delle immagini, nella stima della posa e nel rilevamento orientato degli oggetti (OBB) (vedi i dettagli). Questo supporto completo alle attività rende YOLO12 uno strumento potente per applicazioni diverse, dalla robotica alla guida autonoma, fino all'imaging medico e all'ispezione industriale. Tieni presente che al momento i pesi
.ptpreaddestrati sono pubblicati solo per il rilevamento; le architetture di segmentazione, stima della posa, classificazione e OBB sono disponibili come configurazioni.yamlper l'addestramento da zero.YOLO12 mostra miglioramenti significativi in termini di accuratezza a 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. Per esempio, YOLO12n migliora la 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 della mAP del +1,5% e un aumento della velocità considerevole del +42%. Queste metriche evidenziano il forte equilibrio tra accuratezza ed efficienza di YOLO12. 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 usato 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 es. T4, serie Quadro RTX), GPU Ampere (ad es. serie RTX30, A30/40/100), GPU Ada Lovelace (ad es. serie RTX40) oppure GPU Hopper (ad es. H100/H200). Questa flessibilità consente agli utenti di sfruttare i vantaggi di FlashAttention quando le risorse hardware lo permettono.
Questa pagina fornisce esempi d'uso di base per l'addestramento e l'inferenza. Per la documentazione completa su queste e altre modalità, tra cui Validation ed Export, consulta le pagine dedicate a Predict e Train. Per informazioni specifiche sulle attività (segmentazione, classificazione, stima della posa e rilevamento orientato degli oggetti), consulta la documentazione corrispondente: Segment, Classify, Pose e OBB. Queste risorse forniscono indicazioni approfondite per usare YOLO12 efficacemente in diversi scenari.