Corso
Il rilevamento di oggetti è una tecnica di computer vision per identificare e localizzare oggetti all'interno di un'immagine o di un video.
TL;DR
- YOLO (You Only Look Once) è un algoritmo di rilevamento oggetti in tempo reale che elabora le immagini in un'unica passata in avanti, risultando significativamente più veloce dei rilevatori a due stadi
- L'algoritmo divide le immagini in griglie, predice riquadri di delimitazione con punteggi di confidenza e usa la Non-Maximum Suppression per filtrare le rilevazioni sovrapposte
- YOLO si è evoluto dalla v1 (2015) fino a YOLOv10, YOLOv11, YOLOv12 e YOLO26 (2026), con ogni versione che ha migliorato velocità, accuratezza o entrambe
- Applicazioni comuni includono veicoli autonomi, imaging sanitario, agricoltura, videosorveglianza e analisi sportiva
- Installa con
pip install ultralyticsed esegui l'inferenza usando le API Python o la CLI
La localizzazione di immagini è il processo di identificare la posizione corretta di uno o più oggetti usando riquadri di delimitazione, che corrispondono a forme rettangolari attorno agli oggetti. Questo processo viene talvolta confuso con la classificazione o il riconoscimento di immagini, che mirano a prevedere la classe di un'immagine o di un oggetto all'interno di un'immagine in una delle categorie o classi.
L'illustrazione seguente corrisponde alla rappresentazione visiva della spiegazione precedente. L'oggetto rilevato nell'immagine è una “Persona”.

Immagine dell'autore
In questo blog concettuale, capirai prima i vantaggi del rilevamento di oggetti prima di introdurre YOLO, l'algoritmo all'avanguardia per il rilevamento di oggetti.
Nella seconda parte, ci concentreremo di più sull'algoritmo YOLO e su come funziona. Dopo di che, forniremo alcune applicazioni reali che usano YOLO.
L'ultima sezione spiegherà come YOLO si è evoluto dal 2015 al 2024 prima di concludere con i prossimi passi.
Che cos'è YOLO?
You Only Look Once (YOLO) è un algoritmo di rilevamento oggetti in tempo reale e allo stato dell'arte introdotto nel 2015 da Joseph Redmon, Santosh Divvala, Ross Girshick e Ali Farhadi nel loro famoso articolo di ricerca You Only Look Once: Unified, Real-Time Object Detection.
Gli autori inquadrano il problema del rilevamento di oggetti come un compito di regressione piuttosto che di classificazione, separando spazialmente i riquadri di delimitazione e associando probabilità a ciascuna immagine rilevata usando un'unica rete neurale convoluzionale (CNN).
Se ti interessa la classificazione di immagini, valuta di seguire il corso Image Modeling with Keras in Python, in cui costruirai reti neurali profonde basate su Keras per compiti di classificazione di immagini. Se invece sei più interessato a Pytorch, Deep Learning with PyTorch ti insegnerà le reti neurali convoluzionali e come usarle per costruire modelli molto più potenti.
Cosa rende YOLO popolare per il rilevamento di oggetti?
Alcuni motivi per cui YOLO guida la competizione includono:
- Velocità
- Accuratezza di rilevamento
- Buona capacità di generalizzazione
- Open-source
Vediamo queste caratteristiche più nel dettaglio.
1. Velocità
YOLO è estremamente veloce perché non si affida a pipeline complesse. Può elaborare immagini a 45 frame al secondo (FPS). Inoltre, YOLO raggiunge più del doppio della mean Average Precision (mAP) rispetto ad altri sistemi in tempo reale, il che lo rende un ottimo candidato per l'elaborazione in tempo reale.
Dal grafico sottostante, osserviamo che YOLO è ben oltre gli altri rilevatori di oggetti con 91 FPS.

Velocità di YOLO rispetto ad altri rilevatori di oggetti all'avanguardia (fonte)
2. Alta accuratezza di rilevamento
YOLO supera nettamente altri modelli all'avanguardia in accuratezza, con pochissimi errori di sfondo.
3. Migliore generalizzazione
Questo è particolarmente vero per le nuove versioni di YOLO, che saranno discusse più avanti nell'articolo. Con questi progressi, YOLO è andato un po' oltre fornendo una migliore generalizzazione a nuovi domini, il che lo rende ottimo per applicazioni che si basano su un rilevamento di oggetti rapido e robusto.
Per esempio, l'articolo Automatic Detection of Melanoma with Yolo Deep Convolutional Neural Networks mostra che la prima versione, YOLOv1, ha la mAP più bassa per il rilevamento automatico del melanoma, rispetto a YOLOv2 e YOLOv3.
4. Open-source
Rendere YOLO open-source ha portato la community a migliorare costantemente il modello. Questo è uno dei motivi per cui YOLO ha fatto così tanti progressi in un tempo così limitato.
Architettura di YOLO
L'architettura di YOLO è simile a GoogleNet. Come illustrato di seguito, ha 24 layer convoluzionali, quattro layer di max-pooling e due layer completamente connessi.

Architettura di YOLO dall'articolo originale (modificata dall'autore)
L'architettura funziona come segue:
- Ridimensiona l'immagine di input a 448x448 prima di passare attraverso la rete convoluzionale.
- Si applica prima una convoluzione 1x1 per ridurre il numero di canali, seguita da una convoluzione 3x3 per generare un output cuboidale.
- La funzione di attivazione sottostante è ReLU, tranne per l'ultimo layer, che usa una funzione di attivazione lineare.
- Alcune tecniche aggiuntive, come batch normalization e dropout, regolarizzano il modello e prevengono l'overfitting.
Completando il track Deep Learning in Python o il PyTorch CNN Tutorial, sarai pronto a usare Keras per addestrare e testare reti complesse a uscite multiple e ad approfondire il deep learning.
Come funziona il rilevamento di oggetti con YOLO?
Ora che hai capito l'architettura, facciamo una panoramica ad alto livello di come l'algoritmo YOLO esegue il rilevamento di oggetti usando un semplice caso d'uso.
“Immagina di aver costruito un'applicazione YOLO che rileva giocatori e palloni da calcio da una data immagine.
Ma come puoi spiegare questo processo a qualcuno, specialmente a chi non è del settore?
→ È proprio questo il punto di questa sezione. Capirai l'intero processo di come YOLO esegue il rilevamento di oggetti e come ottenere l'immagine (B) dall'immagine (A).”
Immagine dell'autore
L'algoritmo funziona in base ai seguenti quattro approcci:
- Blocchi residuali
- Regressione dei riquadri di delimitazione
- Intersection Over Union o IOU in breve
- Non-Maximum Suppression.
Vediamoli più da vicino.
1. Blocchi residuali
Questo primo passaggio inizia dividendo l'immagine originale (A) in celle a griglia NxN di forma uguale, dove N, nel nostro caso, è 4, come mostrato nell'immagine a destra. Ogni cella nella griglia è responsabile di localizzare e prevedere la classe dell'oggetto che copre, insieme al valore di probabilità/confidenza.

Immagine dell'autore
2. Regressione dei riquadri di delimitazione
Il passo successivo è determinare i riquadri di delimitazione corrispondenti a rettangoli che evidenziano tutti gli oggetti nell'immagine. Possiamo avere tanti riquadri quanti sono gli oggetti presenti in una data immagine.
YOLO determina gli attributi di questi riquadri usando un unico modulo di regressione nel seguente formato, dove Y è la rappresentazione vettoriale finale per ciascun riquadro.
Y = [pc, bx, by, bh, bw, c1, c2]
Questo è particolarmente importante durante la fase di addestramento del modello.
pccorrisponde al punteggio di probabilità della griglia che contiene un oggetto. Per esempio, tutte le griglie in rosso avranno un punteggio di probabilità maggiore di zero. L'immagine a destra è la versione semplificata poiché la probabilità di ogni cella gialla è zero (irrilevante).

Immagine dell'autore
bx,bysono le coordinate x e y del centro del riquadro rispetto alla cella di griglia che lo contiene.bh,bwcorrispondono all'altezza e alla larghezza del riquadro rispetto alla cella di griglia che lo contiene.c1ec2corrispondono alle due classi, Giocatore e Palla. Possiamo avere tante classi quante ne richiede il tuo caso d'uso.
Per capire, prestiamo più attenzione al giocatore in basso a destra.
Immagine dell'autore
3. Intersection Over Union o IOU
Molto spesso, un singolo oggetto in un'immagine può avere più riquadri candidati alla previsione, anche se non tutti sono rilevanti. L'obiettivo dell'IOU (un valore tra 0 e 1) è scartare tali riquadri e tenere solo quelli rilevanti. Ecco la logica dietro:
- L'utente definisce la propria soglia di selezione IOU, che può essere, per esempio, 0,5.
- Poi, YOLO calcola l'IOU di ciascuna cella di griglia, che è l'area di Intersezione divisa per l'area di Unione.
- Infine, ignora la previsione delle celle di griglia con IOU ≤ soglia e considera quelle con IOU > soglia.
Di seguito un'illustrazione dell'applicazione del processo di selezione della griglia all'oggetto in basso a sinistra. Possiamo osservare che l'oggetto aveva originariamente due griglie candidate e alla fine è stata selezionata solo “Grid 2”.

Immagine dell'autore
4. Non-Max Suppression o NMS
Impostare una soglia per l'IOU non è sempre sufficiente perché un oggetto può avere più riquadri con IOU oltre la soglia e lasciare tutti quei riquadri potrebbe introdurre rumore. Qui entra in gioco la NMS per mantenere solo i riquadri con il punteggio di rilevamento più alto.
Applicazioni di YOLO
Il rilevamento di oggetti con YOLO ha diverse applicazioni nella vita di tutti i giorni. In questa sezione, ne vedremo alcune nei seguenti ambiti: sanità, agricoltura, videosorveglianza e auto a guida autonoma.
Il rilevamento di oggetti è stato introdotto in molte industrie pratiche, come la sanità e l'agricoltura. Vediamo ciascuna con esempi specifici.
Sanità
In particolare, in chirurgia può essere difficile localizzare gli organi in tempo reale a causa della diversità biologica da un paziente all'altro. Kidney Recognition in CT ha usato YOLOv3 per facilitare la localizzazione dei reni in 2D e 3D da scansioni di tomografia computerizzata (TC).
Il corso Biomedical Image Analysis in Python può aiutarti a imparare le basi per esplorare, manipolare e misurare dati di immagini biomediche usando Python.

Rilevamento reni 2D con YOLOv3 (immagine da Kidney Recognition in CT using YOLOv3)
Agricoltura
Intelligenza artificiale e robotica giocano un ruolo fondamentale nell'agricoltura moderna. I robot per la raccolta sono robot basati sulla visione introdotti per sostituire la raccolta manuale di frutta e verdura. Uno dei migliori modelli in questo campo usa YOLO. In Tomato detection based on a modified YOLOv3 framework, gli autori descrivono come hanno usato YOLO per identificare i tipi di frutta e verdura per una raccolta efficiente.

Immagine da Tomato detection based on modified YOLOv3 framework (fonte)
Videosorveglianza
Anche se il rilevamento di oggetti viene usato soprattutto nella videosorveglianza, non è la sola applicazione. YOLOv3 è stato usato durante la pandemia di COVID-19 per stimare le violazioni del distanziamento sociale tra le persone.
Puoi approfondire l'argomento qui: A deep-learning-based social distance monitoring framework for COVID-19.
Auto a guida autonoma
Il rilevamento di oggetti in tempo reale è parte del DNA dei sistemi di veicoli autonomi. Questa integrazione è vitale per i veicoli autonomi perché devono identificare correttamente le corsie e tutti gli oggetti e i pedoni circostanti per aumentare la sicurezza stradale. L'aspetto real-time di YOLO lo rende un candidato migliore rispetto a semplici approcci di segmentazione di immagini.
L'evoluzione di YOLO: dal 2015 al 2024
Sin dal suo primo rilascio nel 2015, YOLO si è evoluto notevolmente, con diverse versioni. In questa sezione, capiremo le differenze tra queste versioni.
YOLO o YOLOv1: il punto di partenza
Questa prima versione di YOLO è stata una svolta per il rilevamento di oggetti perché poteva riconoscere oggetti in modo rapido ed efficiente.
Tuttavia, come molte altre soluzioni, la prima versione di YOLO ha i suoi limiti:
- Fa fatica a rilevare immagini più piccole all'interno di un gruppo di immagini, come un gruppo di persone in uno stadio. Questo perché ogni griglia nell'architettura YOLO è progettata per il rilevamento di un singolo oggetto.
- YOLO non è poi in grado di rilevare con successo forme nuove o insolite.
- Infine, la funzione di perdita usata per approssimare le prestazioni di rilevamento tratta allo stesso modo gli errori per riquadri piccoli e grandi, il che in realtà crea localizzazioni errate.
YOLOv2 o YOLO9000
YOLOv2 è stato creato nel 2016 con l'idea di rendere il modello YOLO migliore, più veloce e più robusto.
Il miglioramento include, ma non si limita, all'uso di Darknet-19 come nuova architettura, batch normalization, risoluzione di input più alta, layer convoluzionali con anchor, clustering di dimensionalità e (5) caratteristiche a grana fine.
Batch normalization
Aggiungere un layer di batch normalization ha migliorato le prestazioni del 2% mAP. Questa batch normalization ha incluso un effetto di regolarizzazione, prevenendo l'overfitting.
Risoluzione di input più alta
YOLOv2 usa direttamente un input ad alta risoluzione 448×448 invece di 224×224, il che fa sì che il modello adatti i suoi filtri per funzionare meglio su immagini ad alta risoluzione. Questo approccio ha aumentato l'accuratezza del 4% mAP, dopo essere stato addestrato per 10 epoche sui dati ImageNet.
Layer convoluzionali che usano anchor box
Invece di prevedere le coordinate esatte dei riquadri degli oggetti come fa YOLOv1, YOLOv2 semplifica il problema sostituendo i layer completamente connessi con anchor box. Questo approccio diminuisce leggermente l'accuratezza ma migliora il recall del modello del 7%, lasciando più margine di miglioramento.
Clustering di dimensionalità
YOLOv2 trova automaticamente le anchor box sopra menzionate usando il clustering di dimensionalità k-means con k=5 invece di una selezione manuale. Questo approccio innovativo offre un buon compromesso tra recall e precisione del modello.
Per una migliore comprensione del clustering k-means, dai un'occhiata ai nostri tutorial K-Means Clustering in Python with scikit-learn e K-Means Clustering in R. Approfondiscono il concetto di clustering k-means usando Python e R.
Caratteristiche a grana fine
Le previsioni di YOLOv2 generano mappe di caratteristiche 13x13, sufficienti per il rilevamento di oggetti grandi. Ma per il rilevamento di oggetti molto più fini, l'architettura può essere modificata trasformando la feature map 26 × 26 × 512 in una 13 × 13 × 2048, concatenata con le caratteristiche originali. Questo approccio ha migliorato le prestazioni del modello dell'1%.
YOLOv3: un miglioramento incrementale
Un miglioramento incrementale è stato eseguito su YOLOv2 per creare YOLOv3.
Il cambiamento include principalmente una nuova architettura di rete: Darknet-53. Si tratta di una rete neurale a 106 layer, con reti di upsampling e blocchi residuali. È molto più grande, veloce e accurata rispetto a Darknet-19, backbone di YOLOv2. Questa nuova architettura è stata vantaggiosa su molti livelli:
Migliore previsione dei riquadri
YOLOv3 usa un modello di regressione logistica per prevedere l'objectness score per ciascun riquadro.
Previsioni di classe più accurate
Invece di usare la softmax come in YOLOv2, sono stati introdotti classificatori logistici indipendenti per prevedere accuratamente la classe dei riquadri. Questo è utile anche in domini più complessi con etichette sovrapposte (es. Persona → Calciatore). Usare una softmax vincolerebbe ogni riquadro ad avere una sola classe, il che non è sempre vero.
Previsioni più accurate a scale diverse
YOLOv3 esegue tre previsioni a scale diverse per ciascuna posizione all'interno dell'immagine di input per aiutare con l'upsampling dai layer precedenti. Questa strategia consente di ottenere informazioni semantiche più fini e significative per un'immagine di output di qualità migliore.
YOLOv4 : velocità e accuratezza ottimali del rilevamento di oggetti
Questa versione di YOLO ha una velocità e accuratezza ottimali nel rilevamento di oggetti rispetto a tutte le versioni precedenti e ad altri rilevatori all'avanguardia.
L'immagine sottostante mostra YOLOv4 che supera YOLOv3 e altri in velocità e FPS rispettivamente del 10% e 12%.

Velocità di YOLOv4 rispetto a YOLOv3 e ad altri rilevatori all'avanguardia (fonte)
YOLOv4 è specificamente progettato per sistemi di produzione e ottimizzato per calcoli paralleli.
Il backbone dell'architettura di YOLOv4 è CSPDarknet53, una rete contenente 29 layer convoluzionali con filtri 3 × 3 e circa 27,6 milioni di parametri.
Questa architettura, rispetto a YOLOv3, aggiunge le seguenti informazioni per un migliore rilevamento di oggetti:
- Il blocco Spatial Pyramid Pooling (SPP) aumenta significativamente il campo recettivo, separa le caratteristiche contestuali più rilevanti e non influisce sulla velocità della rete.
- Invece della Feature Pyramid Network (FPN) usata in YOLOv3, YOLOv4 usa PANet per l'aggregazione dei parametri da diversi livelli di rilevamento.
- L'augmentazione dei dati usa la tecnica mosaic che combina quattro immagini di addestramento, oltre a un approccio di addestramento auto-avversariale.
- Seleziona iperparametri ottimali usando algoritmi genetici.
YOLOR : You Only Look One Representation
Come Unified Network for Multiple Tasks, YOLOR si basa su una rete unificata che è una combinazione di approcci di conoscenza esplicita e implicita.

Architettura di rete unificata (fonte)
La conoscenza esplicita è un apprendimento normale o consapevole. L'apprendimento implicito, invece, è eseguito in modo subconscio (dall'esperienza).
Combinando queste due tecniche, YOLOR è in grado di creare un'architettura più robusta basata su tre processi: (1) allineamento delle caratteristiche, (2) allineamento delle previsioni per il rilevamento di oggetti e (3) rappresentazione canonica per l'apprendimento multi-task
Allineamento delle previsioni
Questo approccio introduce una rappresentazione implicita nella mappa delle caratteristiche di ogni feature pyramid network (FPN), che migliora la precisione di circa lo 0,5%.
Raffinamento delle previsioni per il rilevamento di oggetti
Le previsioni del modello sono affinate aggiungendo una rappresentazione implicita ai layer di output della rete.
Rappresentazione canonica per l'apprendimento multi-task
Eseguire un addestramento multi-task richiede l'esecuzione dell'ottimizzazione congiunta sulla funzione di perdita condivisa tra tutti i compiti. Questo processo può ridurre le prestazioni complessive del modello, e questo problema può essere mitigato con l'integrazione della rappresentazione canonica durante l'addestramento del modello.
Dal seguente grafico, possiamo osservare che YOLOR ha ottenuto sul MS COCO dati una velocità di inferenza allo stato dell'arte rispetto ad altri modelli.

Prestazioni di YOLOR vs. YOLOv4 e altri modelli (fonte)
YOLOX: Superare la serie YOLO nel 2021
Usa una baseline che è una versione modificata di YOLOv3, con Darknet-53 come backbone.
Pubblicato nell'articolo Exceeding YOLO Series in 2021, YOLOX porta in tavola le seguenti quattro caratteristiche chiave per creare un modello migliore rispetto alle versioni precedenti.
Un head decoupled efficiente
L'head accoppiato usato nelle precedenti versioni di YOLO riduce le prestazioni dei modelli. YOLOX usa invece un head decoupled, che consente di separare i compiti di classificazione e localizzazione, aumentando così le prestazioni del modello.
Data augmentation robusta
L'integrazione di Mosaic e MixUp nell'approccio di data augmentation ha aumentato considerevolmente le prestazioni di YOLOX.
Un sistema anchor-free
Gli algoritmi basati su anchor eseguono clustering sotto il cofano, aumentando il tempo di inferenza. Rimuovere il meccanismo di anchor in YOLOX ha ridotto il numero di previsioni per immagine e migliorato significativamente il tempo di inferenza.
SimOTA per l'assegnazione delle etichette
Invece di usare l'approccio Intersection over Union (IoU), l'autore ha introdotto SimOTA, una strategia di assegnazione delle etichette più robusta che raggiunge risultati allo stato dell'arte non solo riducendo il tempo di addestramento ma anche evitando problemi extra di iperparametri. Inoltre, ha migliorato la mAP di rilevamento del 3%.
YOLOv5
YOLOv5, rispetto ad altre versioni, non ha un articolo di ricerca pubblicato, ed è la prima versione di YOLO implementata in Pytorch, anziché in Darknet.
Rilasciato da Glenn Jocher nel giugno 2020, YOLOv5, similmente a YOLOv4, usa CSPDarknet53 come backbone della sua architettura. Il rilascio include cinque diverse dimensioni di modello: YOLOv5s (il più piccolo), YOLOv5m, YOLOv5l e YOLOv5x (il più grande).
Uno dei maggiori miglioramenti nell'architettura di YOLOv5 è l'integrazione del Focus layer, rappresentato da un singolo layer, creato sostituendo i primi tre layer di YOLOv3. Questa integrazione ha ridotto il numero di layer e di parametri e ha anche aumentato le velocità forward e backward senza alcun impatto maggiore sulla mAP.
L'illustrazione seguente confronta il tempo di addestramento tra YOLOv4 e YOLOv5s.

Confronto dei tempi di addestramento tra YOLOv4 e YOLOv5 (fonte)
YOLOv6: un framework single-stage per applicazioni industriali
Dedicato alle applicazioni industriali con design efficiente e adatto all'hardware e alte prestazioni, il framework YOLOv6 (MT-YOLOv6) è stato rilasciato da Meituan, un'azienda cinese di e-commerce.
Scritto in Pytorch, questa nuova versione non faceva parte dell'YOLO ufficiale ma ha comunque preso il nome YOLOv6 perché il suo backbone è stato ispirato dall'architettura originale one-stage di YOLO.
YOLOv6 ha introdotto tre miglioramenti significativi rispetto al precedente YOLOv5: un backbone e un neck adatti all'hardware, un head decoupled efficiente e una strategia di addestramento più efficace.
YOLOv6 fornisce risultati eccezionali rispetto alle versioni precedenti di YOLO in termini di accuratezza e velocità sul dataset COCO come illustrato sotto.

Confronto dei rilevatori di oggetti efficienti allo stato dell'arte. Tutti i modelli sono testati con TensorRT 7 tranne che il modello quantizzato è con TensorRT 8 (fonte)
- YOLOv6-N ha raggiunto il 35,9% di AP sul dataset COCO con un throughput di 1234 FPS su una GPU NVIDIA Tesla T4.
- YOLOv6-S ha raggiunto un nuovo stato dell'arte del 43,3% di AP a 869 FPS.
- YOLOv6-M e YOLOv6-L hanno ottenuto anche migliori prestazioni di accuratezza rispettivamente al 49,5% e 52,3% con la stessa velocità di inferenza.
Tutte queste caratteristiche rendono YOLOv6 l'algoritmo giusto per applicazioni industriali.
YOLOv7 : Trainable bag-of-freebies e nuovo stato dell'arte per i rilevatori in tempo reale
YOLOv7 è stato rilasciato a luglio 2022 nell'articolo Trained bag-of-freebies sets new state-of-the-art for real-time object detectors. Questa versione compie un passo significativo nel campo del rilevamento di oggetti e ha superato tutti i modelli precedenti in termini di accuratezza e velocità.

Confronto del tempo di inferenza di YOLOv7 con altri rilevatori in tempo reale (fonte)
YOLOv7 ha apportato un grande cambiamento (1) nell'architettura e (2) a livello di Trainable bag-of-freebies:
Livello architetturale
YOLOv7 ha riformato la sua architettura integrando l'Extended Efficient Layer Aggregation Network (E-ELAN) che permette al modello di apprendere caratteristiche più diversificate per un apprendimento migliore.
Inoltre, YOLOv7 scala la sua architettura concatenando l'architettura dei modelli da cui deriva come YOLOv4, Scaled YOLOv4 e YOLO-R. Questo consente al modello di soddisfare esigenze di velocità di inferenza diverse.

Compound scaling in profondità e larghezza per modello basato su concatenazione (fonte)
Trainable bag-of-freebies
Il termine bag-of-freebies si riferisce al miglioramento dell'accuratezza del modello senza aumentare il costo di addestramento, ed è per questo che YOLOv7 ha aumentato non solo la velocità di inferenza ma anche l'accuratezza di rilevamento.
YOLOv8: Espansione di modularità e flessibilità
YOLOv8 introduce un design più modulare e flessibile, che consente una personalizzazione e un fine-tuning più semplici. Supporto integrato per vari compiti oltre al rilevamento di oggetti, come segmentazione e stima della posa.
- Modelli leggeri ottimizzano ulteriormente il compromesso velocità-accuratezza, con dimensioni più piccole pensate per applicazioni in tempo reale su dispositivi edge.
- Aggiunge il supporto per dati personalizzati per integrarsi facilmente con dataset personalizzati, rendendolo versatile per applicazioni specifiche.
- YOLOv8 aggiunge anche nuove API per una distribuzione e gestione del modello più semplici in ambienti di produzione.
YOLO-NAS (Neural Architecture Search): ottimizzazione dell'architettura
YOLO-NAS utilizza la Neural Architecture Search (NAS) per progettare automaticamente un'architettura ottimizzata, massimizzando le prestazioni senza tuning manuale.
- È pensato per un equilibrio ottimale tra prestazioni e uso di risorse, perfetto sia per modelli ad alta accuratezza sia per applicazioni a bassa latenza.
- Regola automaticamente la risoluzione per oggetti diversi all'interno di un'immagine, ottimizzando ulteriormente il processo di inferenza.
YOLOv9: tecniche rivoluzionarie per il rilevamento in tempo reale
YOLO-World: Zero-Shot Object Detection
YOLO-World, sviluppato dal laboratorio di IA di Tencent, introduce un nuovo paradigma: "prompt then detect". A differenza dei modelli YOLO tradizionali che richiedono l'addestramento su classi di oggetti specifiche, YOLO-World può rilevare oggetti in base a prompt testuali senza fine-tuning.
Questa capacità zero-shot elimina la necessità del text encoding just-in-time, raggiungendo fino a 74,1 FPS su una GPU V100. YOLO-World è particolarmente utile quando devi rilevare oggetti personalizzati senza raccogliere dati di addestramento.
Lanciata nel 2024, la versione v9 di YOLO introduce diverse tecniche innovative, come le seguenti:
- Programmable Gradient Information (PGI): una nuova tecnica che ottimizza il flusso del gradiente durante l'addestramento, migliorando la capacità del modello di apprendere in modo più efficiente da dataset complessi.
- Generalized Efficient Layer Aggregation Network (GELAN): un significativo miglioramento architetturale che migliora ulteriormente l'apprendimento e l'aggregazione delle caratteristiche, contribuendo sia agli aumenti di accuratezza sia di velocità.
YOLOv9 stabilisce nuovi benchmark sul dataset MS COCO, dimostrando prestazioni superiori rispetto alle versioni precedenti, in particolare in termini di precisione e adattabilità a vari compiti. Sebbene sviluppato da un team open-source separato, YOLOv9 si basa sul codebase di Ultralytics YOLOv5, mostrando un impegno collaborativo nella community di IA per spingere i confini del rilevamento di oggetti.
Questa ultima versione evidenzia notevoli progressi sia nel processo di addestramento sia nell'architettura, concentrandosi su efficienza, adattabilità e precisione per applicazioni in tempo reale.
YOLOv10: rilevamento in tempo reale senza NMS
Rilasciato a maggio 2024 dai ricercatori della Tsinghua University, YOLOv10 rappresenta un progresso significativo nel rilevamento di oggetti in tempo reale. L'innovazione chiave è l'eliminazione della Non-Maximum Suppression (NMS) durante l'inferenza, che tradizionalmente aggiungeva latenza alla pipeline di rilevamento.
YOLOv10 introduce assegnazioni duali coerenti per l'addestramento senza NMS, combinando assegnazioni di etichette one-to-many e one-to-one. Questo approccio mantiene l'efficienza dell'addestramento consentendo un'inferenza senza NMS. Secondo l'articolo, YOLOv10-S è 1,8× più veloce di RT-DETR-R18 con un'accuratezza simile, utilizzando al contempo 2,8× meno parametri.
YOLOv11: modularità avanzata e supporto multi-task
Sviluppato da Ultralytics (creatori di YOLOv5 e YOLOv8), YOLOv11 supporta molteplici compiti di computer vision: rilevamento di oggetti, segmentazione di istanze, classificazione di immagini, rilevamento di keypoint e riquadri di delimitazione orientati (OBB). Il modello YOLOv11x raggiunge il 54,7% di mAP nel benchmark MS COCO.
YOLOv12: architettura basata sull'attenzione
YOLOv12 introduce meccanismi di attenzione nell'architettura YOLO, migliorando la capacità del modello di concentrarsi sulle regioni rilevanti dell'immagine. Questa versione ottiene una migliore accuratezza in scene complesse con oggetti sovrapposti mantenendo prestazioni in tempo reale.
YOLO26: l'ultima evoluzione (2026)
YOLO26, rilasciato a gennaio 2026 da Ultralytics, è un modello end-to-end ottimizzato per l'edge che supporta cinque compiti principali: rilevamento di oggetti, segmentazione di istanze, stima della posa, rilevamento di oggetti orientati (OBB) e classificazione di immagini. Raggiunge la massima accuratezza nella linea YOLO mantenendo velocità di inferenza elevate.
YOLO26 offre più dimensioni di modello (Nano, Small, Medium, Large, Extra Large) per bilanciare accuratezza e velocità in diversi scenari di distribuzione. Installalo e usalo con:
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26m.pt")
# Run inference
results = model("image.jpg")
results[0].show()
Conclusione
Questo articolo ha trattato i vantaggi di YOLO rispetto ad altri algoritmi di rilevamento di oggetti all'avanguardia e la sua evoluzione dal 2015 al 2026 mettendo in evidenza i principali miglioramenti.
Dato il rapido avanzamento di YOLO, non c'è dubbio che rimarrà il leader nel campo del rilevamento di oggetti per molto tempo.
Il prossimo passo di questo articolo sarà l'applicazione dell'algoritmo YOLO a casi reali. Fino ad allora, il nostro corso Introduction to Deep Learning in Python può aiutarti a imparare le basi delle reti neurali e come costruire modelli di deep learning usando Keras 2.0 in Python.
FAQ
Possiamo usare YOLO sui video?
Sì, YOLO è un algoritmo di rilevamento in tempo reale che funziona sia su immagini che su video.
YOLO è migliore di Faster R-CNN?
In termini di Mean Average Precision (mAP), Faster R-CNN ha raggiunto l'87,69%. Tuttavia, YOLOv3 ha una velocità incredibile e il suo Frame Per Second (FPS) è 8 volte quello di Faster R-CNN.
Perché YOLO si chiama You Only Look Once?
Perché YOLO predice tutti gli oggetti all'interno di un'immagine in UNA sola passata forward.
Quante classi può rilevare YOLO?
YOLO è in grado di rilevare più di 9000 classi contemporaneamente.
Qual è l'ultima versione di YOLO nel 2026?
L'ultima versione è YOLO26, rilasciata a gennaio 2026 da Ultralytics. Supporta rilevamento di oggetti, segmentazione di istanze, stima della posa, riquadri di delimitazione orientati (OBB) e classificazione di immagini. YOLO26 raggiunge la massima accuratezza nella linea YOLO mantenendo velocità di inferenza elevate adatte alla distribuzione su edge.
Qual è la differenza tra YOLO e Faster R-CNN?
YOLO è un rilevatore single-stage che elabora le immagini in una sola passata, rendendolo più veloce (45+ FPS) ma a volte meno preciso per gli oggetti piccoli. Faster R-CNN è un rilevatore a due stadi che prima genera proposte di regione, poi le classifica—raggiungendo un'accuratezza più alta (87,69% mAP) ma a velocità inferiori (circa 8× più lento di YOLOv3). Scegli YOLO per applicazioni in tempo reale e Faster R-CNN quando l'accuratezza è più critica della velocità.
Come installo ed eseguo YOLO?
Installa la libreria Ultralytics con pip install ultralytics. Poi esegui l'inferenza in Python:
from ultralytics import YOLO
model = YOLO('yolo26m.pt')
results = model('image.jpg')
results[0].show()Puoi anche usare la CLI: yolo detect predict model=yolo26m.pt source=image.jpg
Un data scientist poliedrico che ama condividere le proprie conoscenze e restituire valore agli altri, Zoumana è un content creator su YouTube e un top writer tech su Medium. Trova soddisfazione nel parlare in pubblico, programmare e insegnare. Zoumana ha due lauree magistrali: la prima in informatica con specializzazione in Machine Learning conseguita a Parigi, Francia, e la seconda in Data Science alla Texas Tech University negli Stati Uniti. Ha iniziato la sua carriera come Software Developer presso Groupe OPEN in Francia, per poi passare a IBM come Machine Learning Consultant, dove ha sviluppato soluzioni di IA end-to-end per compagnie assicurative. Successivamente, è entrato in Axionable, la prima startup di Sustainable AI con sede a Parigi e Montréal. Lì ha lavorato come Data Scientist e ha implementato prodotti di IA, principalmente casi d’uso di NLP, per clienti in Francia, Montréal, Singapore e Svizzera. Inoltre, ha dedicato il 5% del suo tempo ad attività di Ricerca e Sviluppo. Attualmente lavora come Senior Data Scientist presso IFC - World Bank Group.


