YOLOv8 vs YOLOv7: un confronto tecnico completo
L'evoluzione dei modelli di rilevamento degli oggetti è stata rapida, con la famiglia YOLO (You Only Look Once) in testa per prestazioni in tempo reale. La scelta tra YOLOv8 e YOLOv7 non è solo una questione di metriche, ma anche di filosofie architettoniche, esperienza degli sviluppatori e supporto dell'ecosistema che li circonda. Mentre YOLOv7 ha stabilito parametri di riferimento impressionanti al suo rilascio, Ultralytics YOLOv8 ha introdotto un cambiamento paradigmatico in termini di usabilità e versatilità.
Questa guida fornisce un'analisi tecnica dettagliata per aiutare sviluppatori e ricercatori a scegliere lo strumento giusto per i loro progetti di computer vision.
Analisi delle prestazioni
Quando si confrontano le prestazioni, è fondamentale osservare il compromesso tra la velocità di inferenza e l'accuratezza del rilevamento (mAP). YOLOv8 offre generalmente un equilibrio superiore, fornendo una maggiore accuratezza per modelli di dimensioni simili e una maggiore velocità di inferenza sull'hardware moderno.
La tabella seguente evidenzia le differenze di prestazioni sul set di datiCOCO .
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Punti chiave
- Efficienza: Il YOLOv8n (nano) raggiunge velocità notevoli (1,47 ms su GPU), rendendolo ideale per le applicazioni di intelligenza artificiale in cui la latenza è fondamentale.
- Precisione:YOLOv8x supera YOLOv7x in termini di accuratezza (53,9% vs 53,1% mAP) mantenendo un numero di parametri competitivo.
- Ottimizzazione: I modelli YOLOv8 dimostrano una migliore efficienza dei parametri, offrendo prestazioni più elevate per FLOP, che si traducono in un minor consumo energetico durante l'inferenza.
Ultralytics YOLOv8: lo standard moderno
Rilasciato da Ultralytics all'inizio del 2023, YOLOv8 è stato progettato per essere all'avanguardia (SOTA) non solo in termini di prestazioni, ma anche di flessibilità e facilità d'uso. Unifica diverse attività di computer vision in un unico framework semplificato.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione:Ultralytics
- Data: 2023-01-10
- GitHub:ultralytics
- Documenti:Documentazione diYOLOv8
Architettura e innovazione
YOLOv8 introduce un meccanismo di rilevamento senza ancoraggio, che semplifica il processo di formazione eliminando la necessità di calcolare manualmente le caselle di ancoraggio. Ciò riduce il numero di previsioni di box e accelera la soppressione non massimale (NMS).
L'architettura è caratterizzata dal modulo C2f (Cross-Stage Partial Bottleneck con due convoluzioni), che combina caratteristiche di alto livello con informazioni contestuali in modo più efficace rispetto alle iterazioni precedenti. Questo porta a un flusso di gradienti più ricco e a una migliore convergenza dell'apprendimento. Inoltre, YOLOv8 impiega una testa disaccoppiata, elaborando i compiti di objectness, classificazione e regressione in modo indipendente per una maggiore precisione.
Punti di forza
- Integrazione con l'ecosistema: Completamente integrato con l'ecosistema Ultralytics , consente la formazione, la convalida e la distribuzione dei modelli senza soluzione di continuità tramite una semplice API Python o una CLI.
- Versatilità: Supporta nativamente il rilevamento degli oggetti, la segmentazione delle istanze, la stima della posa, la classificazione delle immagini e le OBB (Oriented Bounding Boxes).
- Esperienza di sviluppo: L'installazione è semplice come
pip install ultralyticscon un'ampia documentazione e il supporto attivo della comunità su GitHub e Discord.
YOLOv7: un punto di riferimento per l'efficienza
YOLOv7 ha fatto scalpore al suo rilascio introducendo ottimizzazioni architettoniche incentrate sui metodi "bag-of-freebies" per aumentare l'accuratezza senza aumentare i costi di inferenza.
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione:Istituto di Scienze dell'Informazione, Academia Sinica
- Data: 2022-07-06
- Arxiv:YOLOv7: un sacchetto di regali addestrabile stabilisce un nuovo stato dell'arte
- GitHub:WongKinYiu/yolov7
Architettura e approccio
YOLOv7 utilizza la Extended Efficient Layer Aggregation Network (E-ELAN), che controlla i percorsi di gradiente più brevi e più lunghi per consentire alla rete di apprendere più caratteristiche in modo efficiente. Enfatizza fortemente lo scaling del modello (modificando simultaneamente profondità e larghezza) e introduce tecniche di ri-parametrizzazione per unire gli strati durante l'inferenza, velocizzando il modello senza perdere l'accuratezza dell'addestramento.
Punti di forza e limiti
YOLOv7 è un modello potente che offre un eccellente rapporto velocità-precisione, in particolare sui dispositivi GPU . Il suo approccio "bag-of-freebies" assicura che il modello rimanga leggero durante la distribuzione. Tuttavia, rispetto a YOLOv8, manca il supporto multi-task unificato e richiede procedure di configurazione più complesse che prevedono la clonazione dei repository e la gestione manuale delle dipendenze. Si tratta principalmente di uno specialista del rilevamento degli oggetti, mentre altri compiti richiedono spesso rami o implementazioni separate.
Confronto tecnico approfondito
Usabilità ed ecosistema
Una delle differenze più evidenti risiede nella facilità d'uso. Ultralytics YOLOv8 è confezionato come una libreria Python standard. Ciò significa che gli sviluppatori possono integrarlo nelle pipeline esistenti con un codice minimo. Al contrario, YOLOv7 opera tipicamente come una base di codice autonoma che deve essere clonata e modificata.
Esperienza dello sviluppatore
YOLOv8 consente di addestrare un modello in sole tre righe di codice Python . Questa esperienza utente semplificata riduce significativamente il time-to-market delle soluzioni di intelligenza artificiale.
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model
# Train the model
results = model.train(data="coco8.yaml", epochs=100)
Versatilità del compito
I moderni progetti di computer vision spesso richiedono qualcosa di più dei semplici riquadri di delimitazione.
- YOLOv8: Un vero modello multi-task. È possibile passare dal rilevamento al segmentazione oppure stima della posa semplicemente modificando il file dei pesi del modello (ad es,
yolov8n-seg.pt). - YOLOv7: si concentra principalmente sul rilevamento. Sebbene esistano delle estensioni, esse non sono strettamente integrate o mantenute all'interno di un unico framework unificato.
Efficienza dell'allenamento e memoria
YOLOv8 ottimizza i requisiti di memoria durante l'addestramento. Implementa strategie intelligenti di aumento dei dati che si interrompono verso la fine dell'addestramento per affinare la precisione. Inoltre, il framework Ultralytics supporta diversi formati di dati e gestisce il download automatico di set di dati standard, rendendo l'efficienza dell'addestramento significativamente più elevata.
I modelli basati su Transformer spesso richiedono grandi quantità di memoria CUDA e si addestrano lentamente. In confronto, sia YOLOv7 che YOLOv8 sono basati su CNN e sono efficienti, ma le scelte architettoniche moderne di YOLOv8(come il blocco C2f) spesso si traducono in una convergenza più rapida e in una migliore efficienza della memoria su hardware di livello consumer.
Casi d'uso reali
Gestione della vendita al dettaglio e dell'inventario
Per la retail analytics la velocità è fondamentale. YOLOv8n può essere eseguito su dispositivi edge come telecamere o moduli NVIDIA Jetson per track inventario in tempo reale. La sua elevata velocità di inferenza assicura che i prodotti in movimento vengano contati con precisione senza ritardi.
Sistemi autonomi e robotica
La robotica richiede una precisa comprensione dello spazio. Le capacità di segmentazione di YOLOv8 consentono ai robot di distinguere la forma esatta degli ostacoli piuttosto che un semplice riquadro di delimitazione. Questa versatilità migliora la sicurezza della navigazione. Sebbene YOLOv7 sia in grado di farlo, l'implementazione della segmentazione richiede uno sforzo maggiore e basi di codice diverse.
Agricoltura
Nell'agricoltura di precisione, i modelli detect malattie delle colture o ne monitorano la crescita. L'ecosistema ben curato di Ultralytics consente ai ricercatori di accedere a pesi pre-addestrati e a tutorial della comunità specifici per questi set di dati di nicchia, riducendo la barriera all'ingresso.
Conclusione
Mentre YOLOv7 rimane un'architettura rispettabile e potente nella storia della computer vision, Ultralytics YOLOv8 rappresenta la scelta superiore per lo sviluppo moderno. La sua combinazione di prestazioni all'avanguardia, versatilità senza pari e un ecosistema orientato agli sviluppatori la rende la soluzione ideale sia per la ricerca accademica che per l'implementazione aziendale.
Per chi è alla ricerca dell'ultima novità in termini di efficienza e raffinatezza architettonica, Ultralytics ha rilasciato anche YOLO11che si spinge ancora più in là. Tuttavia, per un confronto diretto con la generazione v7, YOLOv8 si distingue come il vincitore robusto, affidabile e facile da usare.
Letture aggiuntive
Esplorate altri modelli a confronto per approfondire la vostra comprensione del panorama YOLO :
- YOLO11 vs YOLOv8 - Confronto tra le ultime iterazioni.
- YOLOv5 vs YOLOv8 - Scoprite come si è evoluta l'architettura rispetto alla v5.
- YOLOv10 vs YOLOv8 - Analizzare i diversi approcci architettonici.
- GlossarioUltralytics : per comprendere termini chiave come mAP e IoU.