YOLO11 vs YOLOv5#
Scegliere l’architettura di rete neurale giusta è una decisione fondamentale per qualsiasi progetto di visione artificiale. Con l’evolversi del panorama dell’intelligenza artificiale, si evolvono anche gli strumenti a disposizione di sviluppatori e ricercatori. Questa guida completa offre un confronto tecnico approfondito tra due modelli di riferimento dell’ecosistema Ultralytics: il celebre YOLOv5 e l’avanzato YOLO11.
Che tu stia distribuendo modelli leggeri per applicazioni di IA edge o elaborando flussi video ad alta risoluzione su GPU cloud, comprendere le sfumature architetturali, le metriche di prestazione e i casi d’uso ideali di questi modelli ti permetterà di scegliere in modo consapevole, in base ai vincoli specifici della tua distribuzione.
Genealogia dei modelli e dettagli tecnici#
Entrambi i modelli riflettono l’impegno di Ultralytics per la collaborazione open source, prestazioni affidabili e una facilità d’uso senza pari, caratteristiche che li rendono molto apprezzati dalla comunità globale del machine learning.
Dettagli su YOLO11#
- Autori: Glenn Jocher e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2024-09-27
- GitHub: ultralytics/ultralytics
- Documentazione: Documentazione di YOLO11
Dettagli su YOLOv5#
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: ultralytics/yolov5
- Documentazione: Documentazione di YOLOv5
Differenze architetturali#
Il passaggio da YOLOv5 a YOLO11 introduce diversi importanti cambiamenti architetturali, progettati per ottimizzare l’accuratezza e l’efficienza dei parametri.
YOLOv5 è stato un pioniere nell'ecosistema PyTorch, introducendo un backbone CSPNet (rete parziale a stadi incrociati) altamente ottimizzato e un neck PANet (rete di aggregazione dei percorsi). Si basava sul rilevamento basato su ancore, che richiedeva box di ancoraggio predefinite per prevedere i confini degli oggetti. Pur essendo molto efficace, regolare queste ancore per dataset di visione artificiale personalizzati poteva risultare complicato.
YOLO11, invece, adotta un paradigma di rilevamento più moderno e privo di anchor. Questo elimina la necessità di regolare manualmente gli anchor box, semplificando il processo di addestramento e migliorando la generalizzazione su dataset diversi, come il dataset COCO. Inoltre, YOLO11 presenta una testa disaccoppiata, in cui le attività di classificazione e regressione dei riquadri vengono elaborate in rami separati. Questa separazione migliora notevolmente la velocità di convergenza e la precisione media (mAP), soprattutto nei complessi scenari di rilevamento degli oggetti.
Metriche di prestazione e benchmark#
La tabella seguente confronta le metriche principali tra modelli di dimensioni diverse. I modelli Ultralytics sono noti per i bassi requisiti di memoria e durante l’addestramento consumano in genere meno memoria CUDA rispetto alle pesanti alternative basate su Transformer, riducendo notevolmente i requisiti hardware iniziali.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.6 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.1 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 87.2 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 195.3 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
Come si può osservare, YOLO11 offre un equilibrio prestazionale molto favorevole e ottiene costantemente punteggi mAP superiori rispetto ai modelli YOLOv5 con un numero di parametri simile.
Metodologie di addestramento e facilità d’uso#
Un principio fondamentale della filosofia Ultralytics è la straordinaria facilità d’uso, supportata da un ecosistema ben mantenuto e da un’ampia comunità.
Storicamente, YOLOv5 si affidava a solidi script dell’interfaccia a riga di comando (CLI) (train.py, detect.py) per l’esecuzione. Pur essendo potenti, integrare direttamente questi script in applicazioni Python personalizzate richiedeva spesso soluzioni alternative.
YOLO11 si basa sul pacchetto Python semplificato ultralytics (introdotto con YOLOv8). Questa API unificata gestisce ogni aspetto, dall’addestramento all’esportazione dei modelli in formati come ONNX, OpenVINO e TensorRT, in modo nativo.
Per un’esperienza completamente senza codice, puoi utilizzare la Ultralytics Platform per annotare i dati, addestrare modelli nel cloud e distribuirli facilmente sui dispositivi edge.
Confronto del codice#
Oggi addestrare un modello Ultralytics è incredibilmente efficiente. Ecco come addestrare YOLO11 usando la sua API Python nativa:
from ultralytics import YOLO
# Carica un modello YOLO11 small preaddestrato
model = YOLO("yolo11s.pt")
# Addestra il modello con dati personalizzati
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)
# Esporta il modello in ONNX per la distribuzione
model.export(format="onnx")Per i sistemi legacy che utilizzano YOLOv5, l’addestramento tramite CLI si presenta così:
# Clone the repository and run the training script
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt
python train.py --img 640 --batch 16 --epochs 50 --data coco128.yaml --weights yolov5s.ptCasi d'uso ideali e applicazioni nel mondo reale#
Entrambi i modelli hanno punti di forza distinti, adatti a diversi ambienti operativi.
Quando utilizzare YOLOv5#
Nonostante l’arrivo di una nuova generazione, YOLOv5 resta un modello estremamente valido. È particolarmente consigliato per:
- Integrazione con sistemi legacy: ambienti strettamente integrati con strutture tensoriali specifiche di YOLOv5 o pipeline di distribuzione difficili da rifattorizzare.
- Riferimenti accademici: ricercatori che necessitano di baseline consolidate e di lunga data per studi accademici riproducibili nell’analisi di immagini mediche.
Quando utilizzare YOLO11#
YOLO11 è la scelta ideale per le moderne pipeline di produzione, grazie alla sua straordinaria versatilità:
- Ambienti multiattività: a differenza di YOLOv5, che è principalmente un rilevatore (con funzionalità di segmentazione aggiunte in seguito), YOLO11 supporta nativamente segmentazione delle istanze, classificazione delle immagini, stima della posa e rilevamento di riquadri orientati (OBB), senza necessità di configurazioni aggiuntive.
- Analisi video ad alta densità: ideale per i sistemi intelligenti di gestione del traffico o la gestione dell’inventario nel settore retail, dove è fondamentale ottenere la massima precisione da scene complesse.
Uno sguardo al futuro: l’architettura YOLO26#
YOLO11 è un modello eccezionale, ma il settore della visione artificiale continua a evolversi rapidamente. Se vuoi puntare alla massima efficienza, considera anche la più recente Ultralytics YOLO26 (rilasciata a gennaio 2026).
YOLO26 rappresenta un enorme passo avanti, progettato esplicitamente per l’ottimizzazione edge e la scalabilità aziendale. Tra le innovazioni principali:
- Design end-to-end senza NMS: YOLO26 supporta l’inferenza end-to-end nativa, evitando la post-elaborazione con soppressione non massima (NMS) tramite
nms=Falseper una distribuzione più rapida e semplice. - Rimozione della DFL: la Distribution Focal Loss è stata rimossa per semplificare l’esportazione dei modelli e migliorare la compatibilità con i dispositivi a basso consumo.
- Ottimizzatore MuSGD: una combinazione innovativa di SGD e Muon, che porta nella visione artificiale la stabilità dell’addestramento degli LLM per accelerare la convergenza.
- Inferenza CPU fino al 43% più veloce: ottimizzato ampiamente per le distribuzioni IoT e i dispositivi senza GPU dedicate.
- ProgLoss + STAL: funzioni di perdita notevolmente migliorate, che aumentano il riconoscimento degli oggetti piccoli, essenziale per le immagini aeree acquisite dai droni.
Riepilogo#
La scelta tra YOLO11 e YOLOv5 dipende in definitiva dalla fase del ciclo di vita del tuo progetto. YOLOv5 ha una reputazione indiscutibile, con stabilità elevata e il supporto di una vasta comunità. Tuttavia, per qualsiasi nuovo progetto, YOLO11 è fortemente consigliato rispetto alle generazioni precedenti. Combina un’accuratezza all’avanguardia, un’API Python particolarmente elegante e un minore consumo di memoria durante l’addestramento, consolidando la posizione di Ultralytics all’avanguardia dell’innovazione nell’IA. Se vuoi spingerti ancora oltre, esplorare YOLO26, all’avanguardia, sulla Ultralytics Platform ti permetterà di ottenere risultati senza pari.