YOLOv7 vs YOLOv5: Un confronto tecnico dettagliato
Quando scelgono un modello di object detection, gli sviluppatori spesso valutano i compromessi tra velocità, accuratezza e facilità d'uso. Ultralytics YOLOv5 e YOLOv7 sono due modelli fondamentali nel panorama della computer vision, ciascuno con punti di forza distinti. Questa pagina fornisce un confronto tecnico dettagliato per aiutarti a decidere quale modello si adatta meglio alle esigenze del tuo progetto, evidenziando le loro differenze architetturali, i benchmark di performance e le applicazioni ideali.
Sebbene YOLOv7 abbia superato i limiti di accuratezza al momento del suo rilascio, Ultralytics YOLOv5 si è affermato come punto di riferimento per efficienza, implementazione rapida e accessibilità, supportato da un ecosistema solido e ben mantenuto.
YOLOv7: Focus sull'alta accuratezza
YOLOv7, creato da Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao, è stato rilasciato il 6 luglio 2022. Ha introdotto diverse ottimizzazioni architettoniche e strategie di addestramento, note come "trainable bag-of-freebies", con l'obiettivo di stabilire un nuovo stato dell'arte nella precisione per i rilevatori di oggetti in tempo reale, mantenendo al contempo un'elevata velocità.
Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
Data: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
Documentazione: https://docs.ultralytics.com/models/yolov7/
Architettura e Caratteristiche Chiave di YOLOv7
L'architettura di YOLOv7 è costruita su diverse innovazioni chiave progettate per migliorare l'apprendimento delle feature e ottimizzare il modello per un'inferenza più rapida post-addestramento.
- Extended Efficient Layer Aggregation Network (E-ELAN): Questo modulo nel backbone migliora la capacità di apprendimento della rete gestendo i percorsi del gradiente in modo più efficiente, consentendole di apprendere feature più diversificate.
- Scalabilità del Modello: Implementa un metodo di scalabilità composita per modelli basati sulla concatenazione, regolando la profondità e la larghezza del modello per adattarsi a diversi budget computazionali.
- Bag-of-Freebies addestrabile: Sfrutta tecniche di addestramento avanzate, come gli head ausiliari e l'assegnazione ottimizzata delle etichette, per aumentare l'accuratezza senza aumentare il costo di inferenza. Questi head ausiliari vengono utilizzati solo durante l'addestramento per rafforzare l'apprendimento delle caratteristiche e vengono rimossi per l'inferenza.
Punti di forza di YOLOv7
- Elevata accuratezza: Raggiunge elevati punteggi di mAP su benchmark come COCO, spesso superando i modelli contemporanei in accuratezza.
- Efficient Training Techniques: Incorpora nuove strategie di training che massimizzano le prestazioni senza aggiungere overhead computazionale durante l'inferenza.
Punti deboli di YOLOv7
- Complessità: L'architettura e il processo di training, con funzionalità come gli auxiliary heads, possono essere più complessi da comprendere e modificare rispetto all'approccio semplificato di Ultralytics YOLOv5.
- Ecosistema e Supporto: Manca della documentazione esaustiva, dei tutorial e dell'ecosistema integrato forniti da Ultralytics. Questo può rendere la distribuzione e la risoluzione dei problemi più complesse per gli sviluppatori.
- Utilizzo intensivo di risorse: I modelli YOLOv7 più grandi richiedono notevoli risorse computazionali per l'addestramento, limitando potenzialmente la loro accessibilità per gli utenti con hardware limitato.
Casi d'uso per YOLOv7
- Rilevamento ad alte prestazioni: Adatto per applicazioni in cui è fondamentale ottenere la massima accuratezza possibile, come la sorveglianza avanzata o i veicoli autonomi.
- Ricerca e Benchmarking: Spesso utilizzato nella ricerca accademica per esplorare le tecniche di object detection all'avanguardia e superare i limiti delle prestazioni.
Ultralytics YOLOv5: Velocità e semplicità
Ultralytics YOLOv5, creato da Glenn Jocher, è stato rilasciato il 26 giugno 2020. È rapidamente diventato uno dei modelli di rilevamento oggetti più popolari grazie al suo eccezionale equilibrio tra velocità, precisione e, soprattutto, facilità d'uso. È costruito su PyTorch ed è progettato per un addestramento rapido, una distribuzione robusta e l'accessibilità.
Autori: Glenn Jocher
Organizzazione: Ultralytics
Data: 2020-06-26
Arxiv: Nessuno
GitHub: https://github.com/ultralytics/yolov5
Documenti: https://docs.ultralytics.com/models/yolov5/
Architettura e Caratteristiche Chiave di YOLOv5
YOLOv5 presenta un'architettura semplice ma potente, altamente ottimizzata sia per l'addestramento che per l'inferenza.
- Architettura basata su CSP: Utilizza una rete Cross Stage Partial (CSP) sia nel suo backbone che nel neck (PANet) per ottimizzare il flusso di caratteristiche e ridurre i colli di bottiglia computazionali.
- Famiglia di Modelli Scalabile: Offre una gamma di modelli da Nano (YOLOv5n) a Extra-Large (YOLOv5x), consentendo agli utenti di scegliere il perfetto equilibrio tra velocità e precisione per le loro esigenze specifiche, dai dispositivi edge leggeri ai server cloud ad alte prestazioni.
- Esperienza incentrata sullo sviluppatore: Progettato da zero per la semplicità. È dotato di generazione automatica di anchor, tracciamento integrato degli esperimenti e una pipeline di training semplificata, facile da usare sia per i principianti che per gli esperti.
Punti di forza di Ultralytics YOLOv5
- Facilità d'uso: YOLOv5 è rinomato per la sua esperienza utente semplice. Con un semplice
pip install ultralytics
command, di facile utilizzo CLI, ed esteso documentazione, iniziare è incredibilmente veloce. - Ecosistema ben mantenuto: Beneficia dello sviluppo continuo da parte di Ultralytics, di una solida comunità open-source e di una perfetta integrazione con strumenti come Ultralytics HUB per l'addestramento e il deployment senza codice.
- Bilanciamento delle prestazioni: Ottiene un eccellente compromesso tra velocità e precisione. I suoi modelli più piccoli, come YOLOv5n, sono incredibilmente veloci e ideali per l'inferenza in tempo reale su CPU e dispositivi edge.
- Efficienza di addestramento: Il processo di addestramento è altamente efficiente, con tempi di convergenza più rapidi e requisiti di memoria inferiori rispetto a molti altri modelli. I pesi pre-addestrati sono facilmente disponibili e l'addestramento personalizzato è semplice.
- Versatilità: Supporta nativamente molteplici attività, tra cui rilevamento oggetti, segmentazione di istanza e classificazione delle immagini.
Punti deboli di Ultralytics YOLOv5
- Accuratezza di picco: Pur essendo altamente competitivi, i modelli YOLOv5 più grandi potrebbero non eguagliare il mAP di picco delle varianti YOLOv7 più grandi su determinati benchmark, poiché YOLOv7 è stato specificamente progettato per massimizzare questa metrica.
Casi d'uso per Ultralytics YOLOv5
- Applicazioni in tempo reale: Ideale per applicazioni che richiedono una inferenza rapida, come la robotica, la visione tramite drone e l'analisi video in diretta.
- Implementazione Edge: Ben adatto per l'implementazione su dispositivi edge con risorse limitate come NVIDIA Jetson grazie al suo design efficiente e alle dimensioni ridotte del modello.
- Prototipazione rapida: Una scelta eccellente per sviluppare e implementare rapidamente soluzioni di object detection, grazie alla sua facilità d'uso e all'ampio supporto.
Prestazioni e benchmark: YOLOv7 vs. YOLOv5
La differenza fondamentale nelle prestazioni risiede nelle loro priorità di progettazione. YOLOv7 mira alla massima accuratezza, mentre YOLOv5 offre una gamma di opzioni più equilibrata e pratica.
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT10 (ms) |
parametri (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
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 |
Come mostra la tabella, i modelli YOLOv7 raggiungono punteggi mAP impressionanti con velocità GPU competitive. Tuttavia, Ultralytics YOLOv5 offre una gamma superiore di opzioni per diversi scenari di implementazione. I modelli YOLOv5n e YOLOv5s sono significativamente più veloci sia su CPU che su GPU, rendendoli la scelta ideale per applicazioni a bassa latenza e edge.
Conclusione: Quale modello dovresti scegliere?
La scelta tra YOLOv7 e YOLOv5 dipende molto dalle priorità del tuo progetto.
-
Scegli YOLOv7 se il tuo obiettivo principale è ottenere la massima accuratezza di rilevamento possibile e disponi delle risorse computazionali e delle competenze tecniche per gestire la sua architettura e pipeline di addestramento più complesse. È un modello eccellente per la ricerca e le applicazioni specializzate dove le prestazioni sono fondamentali.
-
Scegli Ultralytics YOLOv5 se apprezzi lo sviluppo rapido, la facilità d'uso e la flessibilità di distribuzione. Il suo flusso di lavoro semplificato, la documentazione estesa e il forte equilibrio delle prestazioni lo rendono la scelta ideale per la maggior parte delle applicazioni commerciali e pratiche. Che tu sia un principiante o un professionista esperto, il robusto ecosistema di YOLOv5 accelera il percorso dal concetto alla produzione.
Per la maggior parte degli sviluppatori, i vantaggi pratici e il supporto completo di Ultralytics YOLOv5 lo rendono una scelta più convincente. I suoi successori, come Ultralytics YOLOv8, continuano questa eredità offrendo prestazioni ancora migliori e più funzionalità all'interno dello stesso framework user-friendly.
Esplora altri modelli
Per chi fosse interessato alle ultime novità, vale la pena esplorare i modelli più recenti nell'ecosistema Ultralytics.
- Ultralytics YOLOv8: Il successore di YOLOv5, che offre maggiore precisione, velocità e un'API unificata per il rilevamento, la segmentazione, la stima della posa e il tracciamento. Vedi un confronto diretto tra YOLOv8 e YOLOv7.
- Ultralytics YOLOv10: Un modello all'avanguardia focalizzato sul rilevamento end-to-end NMS-free per una latenza ridotta e una maggiore efficienza.
- Ultralytics YOLO11: L'ultimo modello all'avanguardia di Ultralytics, che pone l'accento su velocità, efficienza e facilità d'uso con un design anchor-free.