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 object detection all'avanguardia attraverso 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 di oggetti con il pacchetto Ultralytics | YOLO12 è veloce o lento? 🚀
Caratteristiche principali
- Meccanismo di Area Attention: Un nuovo approccio di auto-attenzione che elabora in modo efficiente ampi campi recettivi. Divide le feature map in l regioni di uguali dimensioni (il valore predefinito è 4), orizzontalmente o verticalmente, evitando operazioni complesse e mantenendo un ampio campo recettivo efficace. Ciò riduce significativamente il costo computazionale rispetto alla auto-attenzione standard.
- Reti di Aggregazione di Livelli Efficienti Residuali (R-ELAN): Un modulo di aggregazione delle caratteristiche migliorato basato su ELAN, progettato per affrontare le sfide di ottimizzazione, specialmente nei modelli su larga scala incentrati sull'attenzione. R-ELAN introduce:
- Connessioni residue a livello di blocco con scaling (simile allo scaling di livello).
- 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 una maggiore efficienza e compatibilità con il framework YOLO. Questo include:
- Utilizzo di FlashAttention per ridurre al minimo il sovraccarico di accesso alla memoria.
- Rimozione 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 i livelli di attenzione e di feed-forward.
- Riduzione della profondità dei blocchi impilati per una migliore ottimizzazione.
- Sfruttare le operazioni di convoluzione (ove appropriato) per la loro efficienza computazionale.
- 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 computer vision: rilevamento oggetti, segmentazione di istanze, classificazione immagini, stima della posa e rilevamento di oggetti orientati (OBB).
- Efficienza migliorata: Ottiene una maggiore precisione con meno parametri rispetto a molti modelli precedenti, dimostrando un migliore equilibrio tra velocità e precisione.
- Implementazione flessibile: Progettato per l'implementazione su diverse piattaforme, dai dispositivi edge all'infrastruttura cloud.
Attività e modalità supportate
YOLO12 supporta una varietà di attività di computer vision. La tabella seguente mostra il supporto per le attività e le modalità operative (Inference, Validation, Training ed Export) abilitate per ciascuna:
Tipo di modello | Task | Inferenza | Validazione | Training | Esportazione |
---|---|---|---|---|---|
YOLO12 | Rilevamento | ✅ | ✅ | ✅ | ✅ |
YOLO12-seg | Segmentazione | ✅ | ✅ | ✅ | ✅ |
YOLO12-pose | Posa | ✅ | ✅ | ✅ | ✅ |
YOLO12-cls | Classificazione | ✅ | ✅ | ✅ | ✅ |
YOLO12-obb | OBB | ✅ | ✅ | ✅ | ✅ |
Metriche di performance
YOLO12 dimostra significativi miglioramenti di accuratezza su tutte le scale del modello, con alcuni compromessi in termini di velocità rispetto ai modelli YOLO precedenti più veloci. Di seguito sono riportati i risultati quantitativi per il rilevamento di oggetti sul dataset di validazione COCO:
Prestazioni di rilevamento (COCO val2017)
Prestazioni
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 | 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 precisione 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.
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à (inclusi Validation ed Export), consultare le pagine dedicate Predict e Train.
Gli esempi seguenti si concentrano sui modelli YOLO12 Detect (per l'object detection). Per altre attività supportate (segmentazione, classificazione, object detection orientato e stima della posa), fare riferimento alla documentazione specifica per ogni attività: Segmenta, Classifica, OBB e Posa.
Esempio
Pre-addestrato *.pt
modelli (utilizzando PyTorch) e la configurazione *.yaml
file possono essere passati alla YOLO()
classe 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 i comandi dell'interfaccia a riga di comando (CLI):
# Load a COCO-pretrained YOLO12n model and train on the COCO8 example dataset for 100 epochs
yolo train model=yolo12n.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLO12n model and run inference on the 'bus.jpg' image
yolo predict model=yolo12n.pt source=path/to/bus.jpg
Miglioramenti chiave
-
Estrazione di Feature migliorata:
- Area Attention: Gestisce in modo efficiente ampi campi recettivi, riducendo il costo computazionale.
- Bilanciamento Ottimizzato: Migliore equilibrio tra attenzione e calcoli 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 ridimensionamento per stabilizzare l'addestramento, specialmente nei modelli più grandi.
- Integrazione delle funzionalità perfezionata: Implementa un metodo migliorato per l'integrazione delle funzionalità all'interno di R-ELAN.
- FlashAttention: Incorpora FlashAttention per ridurre il sovraccarico di accesso alla memoria.
-
Efficienza Architetturale:
- Parametri ridotti: Ottiene un numero inferiore di parametri 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.
Requisiti
L'implementazione di YOLO12 di Ultralytics, per impostazione predefinita, non richiede FlashAttention. Tuttavia, FlashAttention può essere facoltativamente compilato e utilizzato con YOLO12. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA:
- GPU Turing (ad esempio, serie T4, 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 riconoscimenti
Se utilizzi YOLO12 nella tua ricerca, cita il lavoro originale di University at Buffalo e della University of Chinese Academy of Sciences:
@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
In che modo YOLO12 raggiunge il rilevamento di oggetti in tempo reale mantenendo un'elevata precisione?
YOLO12 integra diverse innovazioni chiave per bilanciare velocità e accuratezza. Il meccanismo Area Attention elabora in modo efficiente ampi campi ricettivi, riducendo i costi computazionali 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 Optimized Attention, incluso 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, cruciale per molte applicazioni.
Quali attività di computer vision supporta YOLO12?
YOLO12 è un modello versatile che supporta un'ampia gamma di attività 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 per le attività rende YOLO12 uno strumento potente per diverse applicazioni, dalla robotica e dalla guida autonoma all'imaging medicale e all'ispezione industriale. Ciascuna di queste attività può essere eseguita nelle modalità Inference, Validation, Training ed Export.
Come si confronta YOLO12 con altri modelli YOLO e concorrenti come RT-DETR?
YOLO12 dimostra significativi miglioramenti di accuratezza su tutte le scale del modello 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 +2,1% in mAP 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 +1,5% in mAP e un sostanziale aumento di velocità del +42%. Queste metriche evidenziano il forte equilibrio di YOLO12 tra accuratezza ed efficienza. Consultare la sezione delle metriche di performance per confronti dettagliati.
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 compilato e utilizzato facoltativamente con YOLO12 per ridurre al minimo il sovraccarico di accesso alla memoria. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA: GPU Turing (ad esempio, serie T4, 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 consentono.
Dove posso trovare esempi di utilizzo e documentazione più dettagliata per YOLO12?
Questa pagina fornisce esempi di utilizzo di base per il training e l'inferenza. Per una documentazione completa su queste e altre modalità, tra cui Validazione ed Esportazione, consultare le pagine dedicate Predict e Train. Per informazioni specifiche per attività (segmentazione, classificazione, rilevamento di oggetti orientati e stima della posa), fare riferimento alla documentazione relativa: Segment, Classify, OBB e Pose. Queste risorse forniscono una guida approfondita per l'utilizzo efficace di YOLO12 in vari scenari.