YOLO Vision 2026:

YOLO12: Rilevamento oggetti incentrato sull'attenzione#

Panoramica#

YOLO12, rilasciato all'inizio del 2025, introduce un'architettura incentrata sull'attenzione che si discosta 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 al contempo prestazioni in tempo reale. Nonostante questi vantaggi, YOLO12 rimane una release guidata dalla community che potrebbe mostrare instabilità di addestramento, un maggiore consumo di memoria e una velocità di elaborazione CPU inferiore a causa dei suoi pesanti blocchi di attenzione, quindi Ultralytics consiglia YOLO11 o YOLO26 per la maggior parte dei carichi di lavoro di produzione.

Modello della community

YOLO12 è mantenuto principalmente per benchmarking e ricerca. Se hai bisogno di un addestramento stabile, di un utilizzo della memoria prevedibile e di 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 Area Attention: Un nuovo approccio di self-attention che elabora in modo efficiente ampi campi recettivi. Divide le feature maps in l regioni di uguale dimensione (con un valore predefinito di 4), in orizzontale o in verticale, evitando operazioni complesse e mantenendo un ampio campo recettivo 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 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 per i Task: YOLO12 supporta una serie di task principali di computer vision: object detection, segmentazione d'istanza, classificazione d'immagine, 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.

Visualizzazione del confronto con YOLO12

Compiti 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:

Disponibilità di pesi preaddestrati

Su ultralytics/assets vengono rilasciati solo i pesi di rilevamento (yolo12n.pt, yolo12s.pt, yolo12m.pt, yolo12l.pt, yolo12x.pt). Le architetture di 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 pre-addestrati per esse. Per checkpoint pre-addestrati di segmentazione, posa, classificazione o OBB, Ultralytics consiglia YOLO11 o YOLO26.

Tipo di modelloCompitoPesi pre-addestratiAddestramentoValidazioneInferenzaEsportazione
YOLO12Rilevamento
YOLO12-segSegmentazione
YOLO12-clsClassificazione
YOLO12-posePose
YOLO12-obbOBB

Tutte le architetture YOLO12 supportano ogni modalità una volta disponibile un checkpoint addestrato. La colonna Pretrained Weights indica solo se Ultralytics pubblica un .pt ufficiale pre-addestrato su ultralytics/assets: per segmentazione, posa, classificazione e OBB, devi addestrare il tuo checkpoint dal corrispondente .yaml prima di eseguire l'inferenza, la validazione o l'esportazione.

Metriche di performance#

YOLO12 dimostra significativi miglioramenti di precisione su tutte le scale dei modelli, con alcuni compromessi in termini di velocità rispetto ai modelli YOLO precedenti più veloci. Di seguito sono riportati i risultati quantitativi per l'object detection sul dataset di validazione COCO:

Prestazioni di rilevamento (COCO val2017)#

Performance
Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT
(ms)
params
(M)
FLOPs
(B)
Confronto
(mAP/Velocità)
YOLO12n64040.6-1.642.67.6+2.1%/-9% (vs. YOLOv10n)
YOLO12s64048.0-2.619.323.7+0.1%/+42% (vs. RT-DETRv2)
YOLO12m64052.5-4.8620.271.3+1.0%/-3% (vs. YOLO11m)
YOLO12l64053.7-6.7726.496.3+0.4%/-8% (vs. YOLO11l)
YOLO12x64055.2-11.7959.1210.2+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 seguenti si concentrano sui modelli Detect di YOLO12 (per l'object detection). Per altri task supportati (segmentazione, classificazione, stima della posa e rilevamento di oggetti orientati), fai riferimento alla rispettiva documentazione specifica per task: Segment, Classify, Pose e OBB.

Esempio

I modelli *.pt pre-addestrati (tramite PyTorch) e i file di configurazione *.yaml possono essere passati alla classe YOLO() per creare un'istanza di 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 di Feature Avanzata:

    • Area Attention: Gestisce in modo efficiente ampi campi recettivi, 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.
  2. 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.
  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 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:

Citazioni e riconoscimenti#

Se usi YOLO12 nella tua ricerca, cita il lavoro originale dell'Università di Buffalo e dell'Università dell'Accademia Cinese delle Scienze:

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

Il paper su YOLO12 è stato pubblicato negli atti di NeurIPS 2025, con un preprint su arXiv.

FAQ#

  • YOLO12 incorpora diverse innovazioni chiave per bilanciare velocità e precisione. Il meccanismo di attenzione Area Attention elabora in modo efficiente ampi campi recettivi, riducendo il costo computazionale rispetto alla self-attention standard. Le reti Residual Efficient Layer Aggregation Networks (R-ELAN) migliorano l'aggregazione delle feature, affrontando le sfide di ottimizzazione nei modelli incentrati sull'attenzione più grandi. 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 una precisione allo stato dell'arte pur mantenendo la velocità di inferenza in tempo reale cruciale per molte applicazioni.

  • YOLO12 è un modello versatile che supporta un'ampia gamma di task principali di computer vision. Eccelle nel rilevamento (detection) di oggetti, nella segmentazione d'istanza, nella classificazione di immagini, nella stima della posa e nel rilevamento di oggetti orientati (OBB) (vedi dettagli). Questo supporto completo per i task rende YOLO12 un potente strumento per diverse applicazioni, dalla robotica e guida autonoma all'imaging medico e all'ispezione industriale. Nota che i pesi .pt pre-addestrati sono attualmente pubblicati solo per il rilevamento; le architetture di segmentazione, posa, classificazione e OBB sono fornite come configurazioni .yaml per l'addestramento da zero.

  • YOLO12 dimostra significativi miglioramenti della precisione su tutte le scale dei modelli 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-DETR, YOLO12s offre un miglioramento del mAP del +1.5% e un sostanziale incremento della velocità del +42%. Queste metriche evidenziano il forte equilibrio di YOLO12 tra precisione ed efficienza. Consulta la sezione delle metriche di performance per confronti dettagliati.

  • 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.

  • 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 sui task (segmentazione, classificazione, stima della posa e rilevamento di oggetti orientati), fai riferimento alla rispettiva documentazione: Segment, Classify, Pose e OBB. Queste risorse forniscono una guida approfondita per utilizzare efficacemente YOLO12 in vari scenari.

Commenti