YOLO12: Rilevamento di oggetti incentrato sull'attenzione
Panoramica
YOLO12 introduce un'architettura incentrata sull'attenzione che si discosta dagli approcci tradizionali 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'accuratezza di rilevamento degli oggetti all'avanguardia grazie a nuove innovazioni metodologiche nei meccanismi di attenzione e nell'architettura generale della rete, pur mantenendo le prestazioni in tempo reale.
Guarda: Come utilizzare YOLO12 per il rilevamento degli oggetti con il pacchetto Ultralytics | YOLO12 è veloce o lento? 🚀
Caratteristiche principali
- Meccanismo di attenzione ad area: Un nuovo approccio di autoattenzione che elabora in modo efficiente campi recettivi di grandi dimensioni. Divide le mappe di caratteristiche in regioni di dimensioni uguali (per impostazione predefinita 4), sia orizzontalmente che verticalmente, evitando operazioni complesse e mantenendo un ampio campo recettivo effettivo. Questo riduce significativamente il costo computazionale rispetto all'autoattenzione standard.
- Reti di aggregazione a livelli residuali efficienti (R-ELAN): Un modulo di aggregazione delle caratteristiche migliorato basato su ELAN, progettato per affrontare le sfide dell'ottimizzazione, in particolare nei modelli incentrati sull'attenzione su larga scala. R-ELAN introduce:
- Connessioni residue a livello di blocco con scalatura (simile alla scalatura dei livelli).
- Un metodo di aggregazione delle caratteristiche riprogettato che crea una struttura a collo di bottiglia.
- Architettura di attenzione ottimizzata: YOLO12 ottimizza il meccanismo di attenzione standard per una maggiore efficienza e compatibilità con il framework YOLO . Questo include:
- Utilizzo di FlashAttention per ridurre al minimo l'overhead di accesso alla memoria.
- Eliminazione della codifica posizionale per un modello più pulito e veloce.
- Regolazione del rapporto MLP (dal tipico 4 a 1,2 o 2) per bilanciare meglio il calcolo tra gli strati di attenzione e di feed-forward.
- Riduzione della profondità dei blocchi impilati per una migliore ottimizzazione.
- Sfruttare le operazioni di convoluzione (ove opportuno) per la loro efficienza computazionale.
- Aggiunta di una convoluzione separabile 7x7 (il "percepitore di posizione") al meccanismo di attenzione per codificare implicitamente l'informazione posizionale.
- Supporto completo per i compiti: YOLO12 supporta una serie di compiti fondamentali della visione artificiale: rilevamento di oggetti, segmentazione di istanze, classificazione di immagini, stima della posa e rilevamento di oggetti orientati (OBB).
- Efficienza migliorata: Raggiunge una maggiore precisione con un numero inferiore di parametri rispetto a molti modelli precedenti, dimostrando un migliore equilibrio tra velocità e precisione.
- Distribuzione flessibile: Progettato per l'implementazione su diverse piattaforme, dai dispositivi edge all'infrastruttura cloud.
Attività e modalità supportate
YOLO12 supporta una serie di compiti di computer vision. La tabella seguente mostra il supporto dei compiti e le modalità operative (inferenza, convalida, formazione ed esportazione) abilitate per ciascuno di essi:
Tipo di modello | Compito | Inferenza | Convalida | Formazione | Esportazione |
---|---|---|---|---|---|
YOLO12 | Rilevamento | ✅ | ✅ | ✅ | ✅ |
YOLO12-seg | Segmentazione | ✅ | ✅ | ✅ | ✅ |
YOLO12-pose | Pose | ✅ | ✅ | ✅ | ✅ |
YOLO12-cls | Classificazione | ✅ | ✅ | ✅ | ✅ |
YOLO12-obb | OBB | ✅ | ✅ | ✅ | ✅ |
Metriche di prestazione
YOLO12 dimostra miglioramenti significativi nell 'accuratezza su tutte le scale del modello, con alcuni compromessi nella velocità rispetto ai modelli YOLO precedenti più veloci. Di seguito sono riportati i risultati quantitativi per il rilevamento degli oggetti sul set di dati di convalida COCO:
Prestazioni di rilevamento (COCO val2017)
Prestazioni
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT (ms) |
params (M) |
FLOP (B) |
Confronto (mAP/velocità) |
---|---|---|---|---|---|---|---|
YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 6.5 | +2,1%/-9% (rispetto a YOLOv10n) |
YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 21.4 | +0,1%/+42% (rispetto a 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 precisione TensorRT FP16.
- I confronti mostrano il miglioramento relativo della mAP e la variazione percentuale della velocità (positivo indica più veloce; negativo indica più lento). I confronti sono effettuati con i risultati pubblicati per YOLOv10, YOLO11 e RT-DETR , se disponibili.
Esempi di utilizzo
Questa sezione fornisce esempi di addestramento e inferenza con YOLO12. Per una documentazione più completa su queste e altre modalità (tra cui Validazione ed Esportazione), consultare le pagine dedicate a Predire e Addestrare.
Gli esempi che seguono si concentrano sui modelli YOLO12 Detect (per il rilevamento degli oggetti). Per gli altri compiti supportati (segmentazione, classificazione, rilevamento di oggetti orientati e stima della posa), consultare la documentazione specifica dei rispettivi compiti: Segment, Classify, OBB e Pose.
Esempio
Preaddestrato *.pt
modelli (utilizzando PyTorch) e la configurazione *.yaml
possono essere passati al metodo 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")
Sono disponibili anche comandi dell'interfaccia a riga di comandoCLI):
Miglioramenti chiave
-
Estrazione migliorata delle caratteristiche:
- Area Attention: Gestisce in modo efficiente grandi campi recettivi, riducendo il costo computazionale.
- Equilibrio ottimizzato: Miglioramento dell'equilibrio tra l'attenzione e le computazioni della rete feed-forward.
- R-ELAN: migliora l'aggregazione delle caratteristiche utilizzando l'architettura R-ELAN.
-
Innovazioni nell'ottimizzazione:
- Connessioni residue: Introduce connessioni residue con scalatura per stabilizzare l'addestramento, soprattutto nei modelli più grandi.
- Integrazione raffinata delle funzioni: Implementa un metodo migliorato per l'integrazione delle caratteristiche in R-ELAN.
- FlashAttention: Incorpora FlashAttention per ridurre l'overhead di accesso alla memoria.
-
Efficienza architettonica:
- 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 di calcolo.
Requisiti
L'implementazione di Ultralytics 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, T4, serie 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 si utilizza YOLO12 nella propria ricerca, si prega di citare il lavoro originale dell'Università di Buffalo e dell'Università dell'Accademia delle Scienze cinese:
@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}
}
FAQ
Come fa YOLO12 a rilevare gli oggetti in tempo reale mantenendo un'elevata precisione?
YOLO12 incorpora diverse innovazioni chiave per bilanciare velocità e precisione. Il meccanismo di attenzione per aree elabora in modo efficiente grandi campi recettivi, riducendo il costo computazionale rispetto all'autoattenzione standard. Le Reti di Aggregazione di Strati Efficienti Residui (R-ELAN) migliorano l'aggregazione delle caratteristiche, affrontando le sfide dell'ottimizzazione nei modelli incentrati sull'attenzione di grandi dimensioni. 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, pur mantenendo la velocità di inferenza in tempo reale, fondamentale per molte applicazioni.
Quali compiti di computer vision supporta YOLO12?
YOLO12 è un modello versatile che supporta un'ampia gamma di compiti fondamentali di computer vision. Eccelle nel rilevamento di oggetti, nella segmentazione di istanze, nella classificazione di immagini, nella stima della posa e nel rilevamento di oggetti orientati (OBB)(vedi dettagli). Questo supporto completo rende YOLO12 uno strumento potente per diverse applicazioni, dalla robotica alla guida autonoma, dall'imaging medico all'ispezione industriale. Ognuno di questi compiti può essere eseguito in modalità di inferenza, convalida, addestramento ed esportazione.
Come si colloca YOLO12 rispetto agli altri modelli YOLO e ai concorrenti come RT-DETR?
YOLO12 dimostra miglioramenti significativi dell'accuratezza su tutte le scale del modello rispetto ai modelli YOLO precedenti, 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-DETRYOLO12s offre un miglioramento di mAP del +1,5% e un sostanziale aumento di velocità del +42%. Queste metriche evidenziano il forte equilibrio tra precisione ed efficienza di YOLO12. Per un confronto dettagliato, consultare la sezione Metriche delle prestazioni.
Quali sono i requisiti hardware per l'esecuzione di YOLO12, in particolare per l'utilizzo di FlashAttention?
Per impostazione predefinita, l'implementazione di Ultralytics YOLO12 non richiede FlashAttention. Tuttavia, FlashAttention può essere facoltativamente compilato e utilizzato con YOLO12 per ridurre al minimo l'overhead di accesso alla memoria. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA : GPU Turing (ad esempio, T4, Quadro RTX), GPU Ampere (ad esempio, RTX30, A30/40/100), GPU Ada Lovelace (ad esempio, RTX40) o GPU Hopper (ad esempio, H100/H200). Questa flessibilità consente agli utenti di sfruttare i vantaggi di FlashAttention quando le risorse hardware lo consentono.
Dove 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à, tra cui la validazione e l'esportazione, consultare le pagine dedicate a Predict e Train. Per informazioni specifiche sulle attività (segmentazione, classificazione, rilevamento di oggetti orientati e stima della posa), consultare le rispettive documentazioni: Segment, Classify, OBB e Pose. Queste risorse forniscono indicazioni approfondite per un utilizzo efficace di YOLO12 in vari scenari.