Contents — find the section you need

La famiglia YOLO è rimasta uno degli approcci più diffusi per il rilevamento pratico di oggetti e il suo sviluppo è continuato sin da YOLOv8 nel 2023. Rilasciato da Ultralytics il 10 settembre 2024, YOLO11 mantiene la stessa struttura "struttura portante → collo → testa" di YOLOv8, riprogettando però i blocchi interni. Questo articolo verifica quali modifiche e quali elementi sono stati mantenuti in YOLO11, utilizzando informazioni primarie provenienti dalla documentazione ufficiale e dai file YAML di definizione del modello, con equazioni e diagrammi.

Questo articolo si basa sulla documentazione ufficiale di Ultralytics (docs.ultralytics.com), sui file di configurazione presenti nel repository GitHub ufficiale e sul preprint "YOLOv11 Demystified" (arXiv:2604.03349).

0. Cosa imparerai

  • Cosa ha cambiato YOLO11 rispetto a YOLOv8, inclusi C3k2 e C2PSA
  • Come la testa di rilevamento senza ancoraggio predice le coordinate, incluso DFL
  • Le funzioni di perdita e i metodi di aumento dei dati utilizzati per l'addestramento
  • Come cambiano accuratezza, numero di parametri e velocità nelle cinque dimensioni n/s/m/l/x, utilizzando misurazioni ufficiali
  • Quando scegliere YOLO11 e quando considerare un'altra opzione

1. Cos'è YOLO11?

YOLO11 è una generazione di modelli di rilevamento di oggetti in tempo reale sviluppati e rilasciati da Ultralytics. Mantiene l'architettura a tre stadi "struttura portante, collo e testa" di YOLOv8, sostituisce i blocchi di estrazione delle caratteristiche con il nuovo C3k2 e aggiunge il blocco di attenzione spaziale C2PSA alla fine della struttura portante. La stessa architettura generale copre rilevamento, segmentazione, stima della posa, classificazione, bounding box orientate (OBB) e tracciamento all'interno di un unico framework.

2. Perché era necessaria questa riprogettazione?

All'epoca, YOLOv8 era ampiamente utilizzato come rilevatore a stadio singolo con un ottimo equilibrio tra precisione e velocità, ma due aree presentavano ancora margini di miglioramento. La prima era l'efficienza dei parametri. Se la stessa precisione può essere raggiunta con un minor numero di parametri e FLOP, l'implementazione su dispositivi edge e robot alimentati a batteria diventa più pratica. La seconda era la mancanza di un meccanismo esplicito per apprendere dove focalizzare l'attenzione in una mappa delle caratteristiche. La struttura portante di YOLOv8 costruisce le caratteristiche con le convoluzioni, ma non dispone di un meccanismo dedicato per separare le regioni importanti dallo sfondo. C3k2 e C2PSA affrontano rispettivamente questi due problemi.

3. Qual è l'input?

Come molti altri rilevatori YOLO, YOLO11 utilizza un'immagine RGB ridimensionata e con padding di dimensioni fisse (640 × 640 pixel per impostazione predefinita). Sia durante l'addestramento che durante l'inferenza, l'input viene gestito come un tensore [B, 3, H, W] in batch. Non è richiesto alcun pre-elaborazione speciale, come la normalizzazione proprietaria o la suddivisione in patch: le immagini, dopo le normali tecniche di aumento dei dati come Mosaic, vengono passate direttamente al backbone.

4. Cosa predice?

Per ogni oggetto nell'immagine, l'output contiene una classe, le coordinate del bounding box e un punteggio di confidenza. YOLO11 utilizza un head disaccoppiato che separa i rami di classificazione e di regressione del bounding box. È inoltre anchor-free, quindi esegue la regressione diretta delle coordinate senza l'utilizzo di anchor box predefiniti. L'idea di prevedere la distanza da ogni punto della griglia al contorno dell'oggetto collega YOLO11 alla famiglia di rilevatori senza ancoraggio FCOS. L'eliminazione dei box predefiniti per diversi rapporti di aspetto e scale riduce la necessità di ottimizzazione degli iperparametri e può migliorare la generalizzazione a oggetti con rapporti di aspetto estremi.

5. Architettura di base

Come YOLOv8, YOLO11 segue la struttura a tre stadi "struttura portante → collo → testa". La differenza risiede nel contenuto di questi stadi.

Diagram 1 · Use the button to switch views
YOLO11 basic pipeline Flow from a 640 by 640 input image through a backbone containing C3k2 blocks, SPPF, and C2PSA spatial attention, into multi-scale P3/P4/P5 features, bidirectional fusion in a PAN-FPN neck, and an anchor-free detection head. Input image 640×640 Backbone C3k2 blocks SPPF C2PSA (spatial attention) Multi-scale P3/P4/P5 Neck PAN-FPN C3k2 blocks High- and low-level features fused both ways Head Anchor-free Box branch: DFL Cls branch: depthwise separable convolution Class + box coordinates + confidence

Figura 1 — Struttura portante, collo e testa di YOLO11. I riquadri blu evidenziati rappresentano le parti modificate rispetto a YOLOv8. C3k2 sostituisce il blocco base sia nella struttura portante che nel collo, mentre C2PSA viene aggiunto alla fine della struttura portante, immediatamente dopo SPPF.

La struttura portante genera mappe di caratteristiche a tre risoluzioni: P3, P4 e P5. Il collo (PAN-FPN: Path Aggregation Network + Feature Pyramid Network) fonde caratteristiche ad alta e bassa risoluzione in entrambe le direzioni, consentendo alla stessa rete di rilevare oggetti piccoli e grandi. Questo scheletro di fusione multiscala è rimasto invariato rispetto a YOLOv8. La novità consiste nella sostituzione del blocco base C2f con C3k2 e nell'inserimento del blocco C2PSA all'uscita del backbone.

6. Dettagli tecnici dei componenti

C3k2 — una generalizzazione di C2f

YOLOv8 utilizzava il blocco C2f, che ha una struttura CSP (Cross Stage Partial), come unità base. C2f divide i canali di input in due percorsi, ne invia uno attraverso diversi blocchi Bottleneck, lascia l'altro come scorciatoia, quindi concatena entrambe le uscite e le uscite intermedie di ciascun Bottleneck prima di unirle con una convoluzione 1 × 1.

YOLO11 mantiene l'idea di ripetere i blocchi interni, ma rende configurabile il tipo di blocco interno. Nella definizione ufficiale del modello (YAML), ogni blocco all'interno di C3k2 può essere uno dei seguenti, a seconda dei flag del costruttore:

  1. Un normale Bottleneck (utilizzato dal modello n piccolo)
  2. Un blocco C3k (una struttura C3 con dimensione del kernel configurabile, utilizzata con c3k=True nei modelli m/l/x di medie e grandi dimensioni)
  3. Una coppia Bottleneck + PSABlock (utilizzata all'interno di C2PSA alla fine del backbone)

In altre parole, C3k2 è un blocco generalizzato: mantiene l'idea di C2f consentendo al contempo ai suoi Bottleneck interni di variare da blocchi leggeri a blocchi dotati di meccanismo di attenzione, a seconda delle dimensioni e del posizionamento del modello. Un dettaglio implementativo è che una singola configurazione YAML copre tutte e cinque le dimensioni, n/s/m/l/x, commutando questi componenti interni.

C2PSA — aggiunta dell'attenzione spaziale alla struttura di base

C2PSA (Cross Stage Partial with Spatial Attention) è un nuovo blocco di YOLO11 inserito immediatamente dopo SPPF (Spatial Pyramid Pooling - Fast, un modulo che espande il campo recettivo con diverse dimensioni di pooling). Anche C2PSA segue una struttura CSP: un percorso attraversa diversi PSABlock. Ogni PSABlock combina l'autoattenzione multi-testa (MHSA) e una rete feed-forward a due strati (FFN), connessa tramite percorsi residui.

z = x + \text{MHSA}(x), \qquad y = z + \text{FFN}(z)

Qui x rappresenta la caratteristica di input, \text{MHSA} è l'autoattenzione multi-testa e \text{FFN} è la rete feed-forward a due strati. Rispetto alla struttura di base di YOLOv8 basata esclusivamente su convoluzioni, C2PSA utilizza l'autoattenzione per apprendere direttamente le relazioni tra posizioni distanti in una mappa di caratteristiche. Completa il campo recettivo locale della convoluzione e aiuta a concentrare il peso sulle regioni importanti dell'immagine.

Testa di rilevamento senza anchor box e DFL

La testa di rilevamento di YOLO11 separa la classificazione e la regressione box in rami disaccoppiati. Non utilizza anchor box predefiniti; al contrario, ogni punto della griglia sulla mappa delle caratteristiche predice direttamente la distanza dal contorno dell'oggetto. Per ciascuna delle quattro direzioni, il ramo di regressione box produce una distribuzione di probabilità su \text{reg\_max}=16 bin discreti e utilizza il suo valore atteso come distanza continua. Questa è l'idea alla base della Distribution Focal Loss (DFL), ereditata da YOLOv8 e proposta da Li et al. in "Generalized Focal Loss" (NeurIPS 2020).

\hat{d} = \sum_{i=0}^{\text{reg\_max}-1} P(i) \cdot i, \qquad \sum_{i=0}^{\text{reg\_max}-1} P(i) = 1

Anziché regredire direttamente un singolo valore reale per la distanza da un contorno, il modello apprende una distribuzione discreta su bin probabili. Questo rende l'addestramento più stabile, consentendo al contempo alla distribuzione di esprimere l'incertezza per oggetti con contorni ambigui o occlusi. YOLO11 modifica anche il ramo di classificazione per utilizzare la convoluzione separabile in profondità, riducendo il numero di parametri e i calcoli rispetto alla convoluzione ordinaria.

Funzioni di perdita e ricetta di addestramento

La funzione di perdita di addestramento di YOLO11 è una somma ponderata della perdita CIoU (Complete IoU) per la regressione dei box, della perdita DFL per la distribuzione delle coordinate e della perdita BCE (Binary Cross-entropy) per la classificazione.

\mathcal{L} = \lambda_{box}\,\mathcal{L}_{CIoU} + \lambda_{dfl}\,\mathcal{L}_{DFL} + \lambda_{cls}\,\mathcal{L}_{BCE}

La perdita CIoU valuta non solo l'IoU (rapporto di sovrapposizione), ma anche la distanza tra i centri dei box e la corrispondenza dei loro rapporti di aspetto.

\mathcal{L}_{CIoU} = 1 - IoU + \frac{\rho^2(b, b^{gt})}{c^2} + \alpha v, \qquad v = \frac{4}{\pi^2}\left(\arctan\frac{w^{gt}}{h^{gt}} - \arctan\frac{w}{h}\right)^2

\rho(b, b^{gt}) rappresenta la distanza euclidea tra i centri dei box previsti e quelli reali, c è la lunghezza diagonale del rettangolo più piccolo che racchiude entrambi i box, v rappresenta la discrepanza del rapporto d'aspetto e \alpha è un coefficiente che attribuisce a v un peso maggiore all'aumentare di IoU. L'ottimizzazione del solo IoU non produce quasi alcun gradiente quando i box non si sovrappongono; i termini relativi alla distanza tra i centri e al rapporto d'aspetto attenuano questo problema.

L'addestramento utilizza tecniche di data augmentation, tra cui Mosaic, che unisce diverse immagini; MixUp, che fonde due immagini; Copy-Paste, che incolla una regione di un oggetto in un'altra immagine; RandAugment, che seleziona automaticamente trasformazioni casuali; e Erasing, che rimuove una regione rettangolare casuale. Questi dettagli seguono la descrizione presente in "YOLOv11 Demystified" (arXiv:2604.03349).

7. Confronto tra le varianti del modello

YOLO11 è disponibile in cinque dimensioni con diversi conteggi di parametri e requisiti di calcolo: n (nano), s (piccolo), m (medio), l (grande) e x (extra-grande). Di seguito sono riportati i valori di benchmark indicati nella documentazione ufficiale di Ultralytics per COCO val2017 con un input di 640 px.

Modello mAP50-95 Parametri FLOPs Inferenza CPU ONNX Inferenza T4 TensorRT
YOLO11n 39,5 2,6M 6,5B 56,1 ± 0,8 ms 1,5 ± 0,0 ms

YOLO11s | 47,0 | 9,4M | 21,6B | 90,0 ± 1,2 ms | 2,5 ± 0,0 ms |

YOLO11m | 51,5 | 20,1M | 68,1B | 183,2 ± 2,0 ms | 4,7 ± 0,1 ms |

YOLO11l | 53,4 | 25,3M | 87,2B | 238,6 ± 1,4 ms | 6,2 ± 0,1 ms |

YOLO11x | 54,7 | 56,9M | 195,3B | 462,8 ± 6,7 ms | 11,3 ± 0,2 ms |

Fonte: Documentazione ufficiale di Ultralytics YOLO11. L'inferenza ONNX su CPU utilizza ONNX Runtime; l'inferenza TensorRT su T4 è in FP16 su una GPU NVIDIA T4.

Due punti pratici spiccano. In primo luogo, il numero di parametri aumenta di circa 22 volte passando da n a x, mentre il mAP50-95 aumenta solo di circa 15 punti, da 39,5 a 54,7: accuratezza e dimensione del modello non sono correlate linearmente. In secondo luogo, si consideri la differenza tra m e l. I parametri aumentano solo da 20,1 milioni a 25,3 milioni, mentre il mAP aumenta da 51,5 a 53,4 e il tempo di inferenza su GPU da 4,7 ms a 6,2 ms. Il ritorno sull'investimento passando da m a l è quindi leggermente inferiore rispetto ai passaggi n → s → m. Questi valori supportano n/s per implementazioni edge e l/x per sistemi fissi dove l'accuratezza è prioritaria.

Confronto quantitativo con YOLOv8

Affiancando i valori di YOLOv8 riportati nella stessa documentazione di Ultralytics a quelli di YOLO11, il passaggio generazionale risulta più concreto.

Modello mAP50-95 (v8 → v11) Parametri (v8 → v11) FLOPs (v8 → v11) Inferenza CPU ONNX (v8 → v11)
n 37,3 → 39,5 3,2 milioni → 2,6 milioni 8,7 miliardi → 6,5 miliardi 80,4 ms → 56,1 ms
s 44,9 → 47,0 11,2 milioni → 9,4 milioni 28,6B → 21,6B 128,4 ms → 90,0 ms
m 50,2 → 51,5 25,9 milioni → 20,1 milioni 78,9B → 68,1B 234,7 ms → 183,2 ms
l 52,9 → 53,4 43,7 milioni → 25,3 milioni 165.1B → 87.2B 375,2 ms → 238,6 ms
x 53,9 → 54,7 68,2 milioni → 56,9 milioni 257,8B → 195,3B 479,1 ms → 462,8 ms

Fonte: Documentazione ufficiale di YOLOv8 e Documentazione ufficiale di YOLO11 (COCO val2017, 640 px, inferenza CPU ONNX per entrambi).

Per la dimensione l, il numero di parametri si riduce da 43,7 milioni a 25,3 milioni, quasi della metà, mentre il mAP migliora leggermente. È qui che l'effetto di efficienza dei parametri di C3k2 e C2PSA è più evidente. Per x, i parametri e i FLOP diminuiscono sostanzialmente, ma il tempo di inferenza della CPU migliora solo leggermente, suggerendo che il calcolo dell'attenzione automatica in C2PSA può diventare un collo di bottiglia per modelli di grandi dimensioni.

In sintesi, YOLO11 si avvicina al raggiungimento di un mAP almeno paragonabile con un numero inferiore di parametri e FLOP rispetto a YOLOv8. Ciò non significa che superi sempre YOLOv8: a seconda del compito e del dataset, la generazione precedente può ancora raggiungere una precisione assoluta superiore. L'articolo sulle tendenze del rilevamento di oggetti discute anche questo punto.

Estensione di YOLO11 oltre il rilevamento

YOLO11 non si limita al rilevamento di oggetti. Sostituendo solo la testa, mantenendo invariati la struttura portante e il collo, il framework copre la segmentazione delle istanze (YOLO11-seg), la stima della posa (YOLO11-pose, che calcola le coordinate dei punti chiave), la classificazione (YOLO11-cls), il rilevamento di bounding box orientate (YOLO11-obb, che calcola anche l'orientamento degli oggetti inclinati) e il tracciamento su più fotogrammi. Poiché C3k2 e C2PSA migliorano la struttura portante, i loro vantaggi sono condivisi tra questi compiti. Ciò dimostra anche che YOLO11 è progettato come una base comune per il riconoscimento visivo, piuttosto che come un semplice modello di rilevamento.

8. Punti deboli

YOLO11 conserva i punti deboli comuni alla famiglia YOLO. Gli oggetti piccoli e distanti rimangono difficili da rilevare. Poiché la rete neurale di base riduce gradualmente la risoluzione, un oggetto di pochi pixel può perdere quasi tutte le sue caratteristiche distintive quando raggiunge gli strati più profondi. C2PSA attenua parzialmente questo problema, ma non lo risolve in modo fondamentale.

Anche le scene dense con molti oggetti simili rappresentano una sfida. DFL e CIoU migliorano la regressione dei contorni, ma gli oggetti vicini i cui contorni si sovrappongono, come una folla o frutti fittamente ammassati in un frutteto, possono comunque produrre falsi positivi e mancate rilevazioni.

La sensibilità allo spostamento del dominio è un problema generale per i rilevatori basati su CNN. L'accuratezza può diminuire drasticamente in presenza di illuminazione, condizioni meteorologiche o angoli di ripresa sostanzialmente diversi dai dati di addestramento. C2PSA non fornisce un campo recettivo ampio come la famiglia DETR basata su Transformer, quindi YOLO11 potrebbe essere meno robusto sotto questo aspetto.

YOLO11 è rilasciato anche sotto licenza AGPL-3.0. Se un'implementazione commerciale richiede di mantenere il codice sorgente privato, è necessaria la licenza Ultralytics Enterprise. Questo non è un punto debole tecnico, ma un vincolo pratico che è facile trascurare.

9. Come sceglierlo nella pratica

Per dispositivi edge e robot alimentati a batteria, la velocità di inferenza e il numero di parametri sono solitamente i fattori limitanti, rendendo YOLO11n/s il candidato ideale. L'inferenza della CPU del modello n, con un tempo di elaborazione di circa 56 ms, può rendere realistico il funzionamento su hardware embedded di classe Raspberry Pi, a seconda del resto del sistema.

Per l'ispezione aerea da droni e altre piattaforme mobili, il rilevamento di piccoli oggetti è fondamentale. Invece di scegliere semplicemente un modello YOLO11 più grande, è consigliabile aumentare la risoluzione di input o utilizzare l'inferenza a tessere. Alcuni studi attribuiscono un vantaggio in questo ambito alle varianti DETR con attenzione deformabile, quindi RT-DETR e altre famiglie sono valide alternative di confronto quando la precisione è la priorità.

Per le ispezioni con telecamere fisse in magazzini o fabbriche, YOLO11l/x rappresentano un'opzione valida quando sono disponibili risorse GPU e la precisione è la priorità. Anche in questo caso, i rilevatori basati su Transformer come RF-DETR hanno riportato valori superiori a 60 mAP su COCO, quindi YOLO non è più l'unica scelta. Per maggiori dettagli, consultare l'articolo sulle tendenze del rilevamento di oggetti.

Per la ricerca e la prototipazione, la maturità del pacchetto Python di Ultralytics è un valido motivo per scegliere YOLO11: addestramento, inferenza ed esportazione possono essere espressi in poche righe di codice. Laddove i vincoli di licenza siano accettabili, la velocità con cui si ottiene una baseline funzionante rimane un punto di forza fondamentale.

10. Riepilogo in tre righe

  • YOLO11 mantiene la struttura backbone-neck-head di YOLOv8, sostituisce i suoi blocchi base con C3k2 e aggiunge l'attenzione spaziale tramite C2PSA.

  • La sua testa senza ancoraggio prevede le distanze dai bordi come valore atteso delle distribuzioni DFL, mentre CIoU ottimizza congiuntamente la sovrapposizione, la distanza dal centro e il rapporto d'aspetto.

  • L'efficienza dei parametri migliora da n a x, ma oggetti di piccole dimensioni, scene dense e lo spostamento del dominio rimangono sfide comuni per i rilevatori della famiglia YOLO.

Per un'introduzione più approfondita al rilevamento di oggetti e alla segmentazione semantica, vedere Rilevamento di oggetti e segmentazione semantica: un'introduzione. Per le tendenze attuali nella famiglia YOLO, inclusi gli approcci senza NMS e la concorrenza dei modelli DETR, vedere l'articolo tendenze nel rilevamento di oggetti.

Riferimenti

Verifica la tua comprensione
Un punteggio di rilevamento elevato garantisce che la posizione e la classe siano corrette?

Un punteggio è un output del modello, non una garanzia di correttezza. Valuta la precisione e il richiamo a diverse soglie separatamente dall'accuratezza di localizzazione dei riquadri rilevati.

What to read next

Review the backgroundIntroduzione al rilevamento di oggetti e alla segmentazione semantica: leggere "cosa si trova dove" in un'immagine.Continue the seriesUna guida completa a SegFormer: perché un trasformatore senza codifica posizionale funziona per la segmentazioneExplore another aspect of this fieldConfronto tra LLM locali: prima risposta, tasso di generazione e memoria