YOLOv5 vs YOLO11: Un confronto tecnico completo
Quando si sceglie la giusta architettura di computer vision per un nuovo progetto, comprendere l'evoluzione dei modelli all'avanguardia è cruciale. La progressione dalle architetture precedenti ai moderni framework unificati evidenzia significativi balzi sia nell'efficienza algoritmica che nell'esperienza dello sviluppatore. Questa guida fornisce un confronto tecnico approfondito tra due modelli di riferimento sviluppati da Ultralytics: il pionieristico YOLOv5 e il altamente raffinato YOLO11.
Introduzione ai Modelli
Entrambe queste architetture rappresentano pietre miliari significative nel campo del rilevamento di oggetti in tempo reale, offrendo vantaggi distinti a seconda dell'ambiente di deployment e dei requisiti di legacy.
YOLOv5: Il Cavallo di Battaglia dell'Industria
Rilasciato nell'estate del 2020, YOLOv5 è diventato rapidamente uno standard industriale grazie alla sua implementazione nativa PyTorch, che ha abbassato drasticamente la barriera d'ingresso per l'addestramento e l'implementazione. Si è allontanato dai complessi framework Darknet C dei suoi predecessori, offrendo un approccio Pythonic alla costruzione di modelli.
- Autori: Glenn Jocher
- Organizzazione:Ultralytics
- Data: 2020-06-26
- GitHub:ultralytics/yolov5
- Documentazione:Documentazione YOLOv5
YOLOv5 ha stabilito una solida base per la facilità d'uso e ha introdotto potenti metodologie di addestramento, inclusa l'avanzata mosaic data augmentation e l'auto-anchoring. Rimane incredibilmente popolare tra i ricercatori che si basano su una codebase ben documentata e ampiamente testata.
YOLO11: Il Framework di Visione Unificato
Basandosi su anni di feedback e ricerca architettonica, YOLO11 è stato introdotto come parte di un framework unificato capace di gestire nativamente molteplici compiti di visione. Andando oltre le sole bounding box, è stato progettato da zero per la massima versatilità ed efficienza.
- Autori: Glenn Jocher e Jing Qiu
- Organizzazione:Ultralytics
- Data: 2024-09-27
- GitHub:ultralytics/ultralytics
- Documentazione:Documentazione YOLO11
YOLO11 offre un'esperienza utente semplificata tramite il ultralytics Il pacchetto Python, che vanta un'API semplice che unifica il rilevamento di oggetti, segmentazione di istanze, classificazione, stima della posa e bounding box orientate (obb). Raggiunge un compromesso altamente favorevole tra velocità e precisione, rendendolo ideale per diversi scenari di deployment nel mondo reale.
Piattaforma Integrata
Entrambi i modelli beneficiano dell'ecosistema ben mantenuto fornito dalla Piattaforma Ultralytics. Questo ambiente integrato semplifica l'annotazione dei dataset, l'addestramento nel cloud e l'esportazione dei modelli su diverse piattaforme hardware.
Confronto delle prestazioni e delle metriche
Un confronto diretto di questi modelli rivela come i perfezionamenti architetturali si traducano in tangibili guadagni prestazionali. La tabella seguente illustra la mean Average Precision (mAP) valutata sul dataset COCO, insieme alle velocità di inferenza su CPU e GPU e al numero di parametri.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.0 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
Analisi dei Risultati
Le metriche evidenziano un chiaro salto nell'equilibrio delle prestazioni raggiunto da YOLO11. Ad esempio, il modello YOLO11n (nano) raggiunge un mAP del 39,5% rispetto al 28,0% di YOLOv5n, riducendo contemporaneamente il tempo di inferenza della CPU quando esportato tramite ONNX. Inoltre, YOLO11 mantiene requisiti di memoria notevolmente inferiori durante l'addestramento rispetto ai modelli pesanti basati su transformer, rendendolo altamente accessibile per il deployment su hardware consumer e dispositivi edge.
Differenze Architetturali
I miglioramenti delle prestazioni in YOLO11 derivano da diverse evoluzioni architetturali chiave. Mentre YOLOv5 utilizzava un backbone CSPNet standard con moduli C3, YOLO11 ha introdotto blocchi di estrazione delle feature più efficienti come C2f e successivamente C3k2, che ottimizzano il flusso del gradiente e riducono l'overhead computazionale.
YOLO11 presenta anche una head notevolmente raffinata. Allontanandosi dal design basato su ancore dei modelli più vecchi, le nuove architetture Ultralytics adottano un approccio anchor-free. Ciò riduce il numero di predizioni di box, semplificando la pipeline di post-elaborazione e migliorando la capacità del modello di generalizzare su diverse scale e rapporti d'aspetto. Inoltre, questi modelli vantano una maggiore efficienza di addestramento e pesi pre-addestrati prontamente disponibili che accelerano la convergenza dei dataset ottimizzati.
Implementazione ed esempi di codice
Una delle caratteristiche distintive dell'ecosistema Ultralytics è la sua semplicità. Mentre YOLOv5 ha reso popolare l'uso di torch.hub per un'inferenza rapida, YOLO11 fa un ulteriore passo avanti con l'unificato ultralytics pacchetto Python.
Addestramento con YOLO11
Il caricamento, l'addestramento e la validazione di un modello richiedono un codice boilerplate minimo. L'API gestisce l'ottimizzazione degli iperparametri e la gestione del modello senza interruzioni.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11s.pt")
# Train on a custom dataset for 50 epochs
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run fast inference and display results
predictions = model("https://ultralytics.com/images/bus.jpg")
predictions[0].show()
# Easily export the model to TensorRT for hardware acceleration
model.export(format="engine")
Inferenza Legacy con YOLOv5
Se stai mantenendo una pipeline più datata, YOLOv5 si integra direttamente con il meccanismo di caricamento nativo di PyTorch, rendendo banale l'inserimento in script di inferenza esistenti.
import torch
# Load a custom or pretrained YOLOv5 model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Perform inference on an image URL
results = model("https://ultralytics.com/images/zidane.jpg")
# Print prediction details to the console
results.print()
Flessibilità di distribuzione
Entrambi i modelli supportano numerosi formati di esportazione. Che si tratti di un NVIDIA Jetson che utilizza TensorRT o di un'applicazione iOS che utilizza CoreML, il processo di deployment è ampiamente documentato e supportato dalla community.
Casi d'uso ideali
La scelta tra questi modelli dipende in gran parte dalla fase del ciclo di vita del tuo progetto e dai requisiti specifici.
Quando scegliere YOLOv5
- Mantenimento di codebase legacy: Se il tuo ambiente di produzione è fortemente personalizzato attorno alla struttura del repository YOLOv5 o a specifiche tecniche di evoluzione degli iperparametri.
- Academic Baselines: Quando si pubblica ricerca che richiede un benchmarking diretto rispetto a standard di visione artificiale consolidati del periodo 2020-2022.
Quando scegliere YOLO11
- Progetti Multi-Task: Quando la vostra applicazione richiede un mix di attività come la stima della posa e la segmentazione di istanza utilizzando un'unica API unificata.
- Implementazioni Edge: Per scenari di edge computing dove ottenere il massimo mAP per un dato budget computazionale (FLOPs) è fondamentale.
- Soluzioni AI Commerciali: Ideale per applicazioni aziendali nel commercio al dettaglio e nella sicurezza, sfruttando il robusto supporto della Piattaforma Ultralytics.
La Prossima Generazione: Ultralytics YOLO26
Sebbene YOLO11 rappresenti un fantastico equilibrio tra velocità e precisione, il campo dell'intelligenza artificiale si evolve rapidamente. Per gli sviluppatori che iniziano nuovi progetti oggi, raccomandiamo vivamente di esplorare l'ultimo standard nell'IA visiva: Ultralytics YOLO26.
Rilasciato a gennaio 2026, YOLO26 introduce progressi che cambiano il paradigma, progettati specificamente per le moderne esigenze di implementazione:
- Design End-to-End senza NMS: Basandosi sui concetti introdotti per la prima volta in YOLOv10, YOLO26 è nativamente end-to-end. Elimina la necessità di post-elaborazione di Non-Maximum Suppression (NMS), semplificando significativamente le pipeline di implementazione e riducendo la latenza.
- Ottimizzatore MuSGD: Ispirato alle innovazioni nell'addestramento dei modelli LLM, come Kimi K2 di Moonshot AI, questo ibrido di SGD e Muon garantisce un addestramento incredibilmente stabile e una convergenza drasticamente più rapida.
- Velocità della CPU Senza Precedenti: Rimuovendo la Distribution Focal Loss (DFL), YOLO26 raggiunge un'inferenza sulla CPU fino al 43% più veloce, rendendolo la scelta migliore in assoluto per i dispositivi edge e gli ambienti senza GPU dedicate.
- Funzioni di Perdita Avanzate: L'integrazione di ProgLoss e STAL produce notevoli miglioramenti nel riconoscimento di oggetti di piccole dimensioni, il che è fondamentale per l'analisi da droni, l'IoT e la robotica.
- Miglioramenti Specifici per Task: Introduce ottimizzazioni specializzate, come la Stima della Log-Verosimiglianza Residua (RLE) per la Posa e una perdita angolare specializzata per le bounding box orientate, garantendo prestazioni superiori in tutti i task di visione artificiale.
Per gli utenti interessati ad architetture specializzate oltre la standard object detection, potreste anche esplorare modelli come RT-DETR per la detection basata su transformer, o YOLO-World per il tracking e la detection a vocabolario aperto. Adottare questi strumenti ben mantenuti e altamente ottimizzati garantisce che le tue pipeline di visione artificiale rimangano efficienti, scalabili e all'avanguardia.