YOLO12: Rilevamento di oggetti incentrato sull'attenzione

Panoramica

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 di 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 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 in produzione.

Modello della community

YOLO12 è mantenuto principalmente per scopi di benchmarking e ricerca. Se hai bisogno di un addestramento stabile, un utilizzo della memoria prevedibile e un'inferenza CPU ottimizzata, scegli YOLO11 o YOLO26 per il deployment.



Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀

Caratteristiche principali

  • Meccanismo di attenzione dell'area (Area Attention Mechanism): Un nuovo approccio di self-attention che elabora ampi campi ricettivi in modo efficiente. Divide le feature maps in l regioni di dimensioni uguali (di default 4), orizzontalmente o verticalmente, evitando operazioni complesse e mantenendo un ampio campo ricettivo effettivo. 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 residuali a livello di blocco con ridimensionamento (simile allo scaling degli strati).
    • Un metodo di aggregazione delle feature riprogettato che crea una struttura simile a un bottleneck.
  • 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 i livelli di attenzione e quelli feed-forward.
    • La riduzione della profondità dei blocchi impilati per un'ottimizzazione migliorata.
    • Sfruttare le operazioni di convoluzione (ove appropriato) 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 alle attività: YOLO12 supporta una serie di attività principali di 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 meno parametri rispetto a molti modelli precedenti, dimostrando un miglior equilibrio tra velocità e precisione.
  • Deployment flessibile: Progettato per il deployment su diverse piattaforme, dai dispositivi edge all'infrastruttura cloud.

Visualizzazione confronto YOLO12

Attività e modalità supportate

YOLO12 supporta una varietà di attività di visione artificiale. La tabella seguente mostra il supporto alle attività e le modalità operative (Inferenza, Validazione, Addestramento ed Esportazione) abilitate per ciascuna:

Disponibilità di pesi preaddestrati

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 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 modelloAttivitàPesi preaddestratiInferenza (Inference)ValidazioneAddestramentoExport
YOLO12Rilevamento
YOLO12-segSegmentazione
YOLO12-posePosa
YOLO12-clsClassificazione
YOLO12-obbOBB

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 corrispondente .yaml prima di eseguire inferenza, validazione o esportazione.

Metriche delle prestazioni

YOLO12 dimostra significativi miglioramenti nella precisione 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
Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT
(ms)
parametri
(M)
FLOP
(B)
Confronto
(mAP/Velocità)
YOLO12n64040.6-1.642.66.5+2.1%/-9% (vs. YOLOv10n)
YOLO12s64048.0-2.619.321.4+0.1%/+42% (vs. RT-DETRv2)
YOLO12m64052.5-4.8620.267.5+1.0%/-3% (vs. YOLO11m)
YOLO12l64053.7-6.7726.488.9+0.4%/-8% (vs. YOLO11l)
YOLO12x64055.2-11.7959.1199.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à (incluse Validazione ed Esportazione), consulta le pagine dedicate Predict e Train.

Gli esempi di seguito si concentrano sui modelli Detect di YOLO12 (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.

Esempio

I modelli preaddestrati *.pt (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")

Miglioramenti chiave

  1. Estrazione delle feature migliorata:

    • Area Attention: Gestisce in modo efficiente ampi campi ricettivi, riducendo il costo computazionale.
    • Equilibrio ottimizzato: Migliore equilibrio tra i calcoli dell'attenzione e della rete feed-forward.
    • R-ELAN: Migliora l'aggregazione delle feature utilizzando l'architettura R-ELAN.
  2. Innovazioni nell'ottimizzazione:

    • Connessioni residuali: Introduce connessioni residuali con ridimensionamento per stabilizzare l'addestramento, specialmente nei modelli più grandi.
    • Integrazione raffinata delle feature: 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.
  3. 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.

Requisiti

L'implementazione di Ultralytics YOLO12, di default, non richiede FlashAttention. Tuttavia, FlashAttention può essere compilato facoltativamente e utilizzato con YOLO12. Per compilare FlashAttention, è necessaria una delle seguenti GPU NVIDIA:

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:

Citazione
@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}
}

FAQ

In 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 attenzione Area 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 funzionalità consentono a YOLO12 di raggiungere una precisione all'avanguardia mantenendo la velocità di inferenza in tempo reale cruciale per molte applicazioni.

Quali attività di visione artificiale supporta YOLO12?

YOLO12 è un modello versatile che supporta una vasta gamma di attività principali di visione artificiale. 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 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.

Come si confronta YOLO12 con altri modelli YOLO e concorrenti come RT-DETR?

YOLO12 dimostra significativi miglioramenti nella precisione su tutte le scale del modello rispetto ai precedenti modelli YOLO come YOLOv10 e YOLO11, con alcuni compromessi in velocità rispetto ai modelli precedenti più veloci. Ad esempio, YOLO12n ottiene un miglioramento di 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 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. Consulta la sezione delle metriche delle prestazioni per confronti dettagliati.

Quali sono i requisiti hardware per eseguire YOLO12, specialmente per l'utilizzo di FlashAttention?

Di default, l'implementazione di Ultralytics YOLO12 non richiede FlashAttention. Tuttavia, FlashAttention può essere compilato facoltativamente 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 (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.

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à, incluse Validazione ed Esportazione, consulta le pagine dedicate Predict e Train. Per informazioni specifiche sulle attività (segmentazione, classificazione, rilevamento di oggetti orientati e stima della posa), fai riferimento alla rispettiva documentazione: Segment, Classify, OBB e Pose. Queste risorse forniscono una guida approfondita per utilizzare efficacemente YOLO12 in vari scenari.

Commenti