Confronto tra modelli: YOLOv7 e YOLOv8 per il rilevamento di oggetti
La selezione del modello di object detection giusto è fondamentale per ottenere performance ottimali nelle attività di computer vision. Questa pagina offre un confronto tecnico tra YOLOv7 e Ultralytics YOLOv8, due modelli significativi nel settore. Analizzeremo le loro sfumature architetturali, i benchmark di performance e le applicazioni ideali per guidare il tuo processo di selezione del modello, evidenziando i vantaggi offerti dall'ecosistema Ultralytics.
YOLOv7: Un benchmark nel rilevamento in tempo reale
YOLOv7 è stato introdotto come un progresso significativo nel rilevamento di oggetti in tempo reale, concentrandosi sull'ottimizzazione dell'efficienza e dell'accuratezza dell'addestramento senza aumentare i costi di inferenza. Ha stabilito un nuovo stato dell'arte per i rilevatori in tempo reale al momento del suo rilascio.
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 principali
YOLOv7 si basa sulle precedenti architetture YOLO introducendo diverse innovazioni chiave. Impiega tecniche come le Extended Efficient Layer Aggregation Networks (E-ELAN) nel suo backbone per migliorare l'efficienza dell'estrazione delle caratteristiche. Un contributo importante è il concetto di "trainable bag-of-freebies", che include strategie di ottimizzazione applicate durante l'addestramento, come gli head ausiliari e la guida coarse-to-fine, per aumentare l'accuratezza del modello finale senza aggiungere overhead computazionale durante l'inferenza. YOLOv7 è principalmente un rilevatore basato su anchor focalizzato sul rilevamento di oggetti, sebbene le estensioni della community lo abbiano adattato per altre attività come la stima della posa.
Punti di forza
- Bilanciamento tra alta precisione e velocità: Offre una forte combinazione di mAP e velocità di inferenza, rendendolo altamente efficace per task di inferenza in tempo reale.
- Addestramento efficiente: Utilizza tecniche di addestramento avanzate ("bag-of-freebies") per migliorare l'accuratezza senza aumentare il costo finale dell'inferenza.
- Prestazioni consolidate: Ha risultati comprovati su benchmark standard come il dataset MS COCO.
Punti deboli
- Complessità Architetturale: L'architettura e le nuove tecniche di training possono essere complesse da comprendere appieno e ottimizzare per casi d'uso personalizzati.
- Utilizzo intensivo di risorse: I modelli YOLOv7 più grandi richiedono notevoli risorse GPU per l'addestramento.
- Versatilità limitata nei task: Principalmente focalizzato sul rilevamento di oggetti. L'implementazione di altri task come la segmentazione delle istanze o la classificazione delle immagini richiede implementazioni separate e non integrate, a differenza dell'approccio unificato di YOLOv8.
Ultralytics YOLOv8: Efficienza e adattabilità all'avanguardia
Ultralytics YOLOv8 è la successiva release principale di Ultralytics, che si basa sui successi delle precedenti versioni di YOLO. È un modello all'avanguardia progettato per prestazioni, flessibilità ed efficienza superiori. YOLOv8 introduce un design senza ancore e un'architettura più snella, migliorando sia le prestazioni che la facilità d'uso.
Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione: Ultralytics
Data: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
Documenti: https://docs.ultralytics.com/models/yolov8/
Punti di forza
- Prestazioni all'avanguardia: YOLOv8 raggiunge un equilibrio eccezionale tra accuratezza e velocità, rendendolo adatto a una vasta gamma di applicazioni, dall'edge AI ai servizi basati su cloud.
- Design User-Friendly: Ultralytics dà priorità alla semplicità, offrendo una documentazione completa, flussi di lavoro semplici e interfacce Python e CLI semplici per l'addestramento e la distribuzione.
- Versatilità senza pari: Supporta nativamente molteplici attività di visione, tra cui rilevamento, segmentazione, classificazione, stima della posa e rilevamento di oggetti orientati (OBB), fornendo una soluzione unificata per diverse esigenze di computer vision.
- Ecosistema ben mantenuto: Si integra perfettamente con Ultralytics HUB per l'addestramento e il deployment senza codice. Beneficia di sviluppo attivo, aggiornamenti frequenti, un forte supporto della comunità e ampie risorse.
- Efficienza di addestramento e memoria: Offre processi di addestramento efficienti con pesi pre-addestrati prontamente disponibili. La sua architettura spesso richiede un utilizzo inferiore della memoria durante l'addestramento rispetto ad altre architetture complesse come i transformer, che possono essere più lenti da addestrare e richiedere più memoria CUDA.
Punti deboli
- I modelli più grandi richiedono notevoli risorse computazionali, sebbene siano disponibili varianti più piccole e altamente efficienti come YOLOv8n per ambienti con risorse limitate.
Casi d'uso ideali
La versatilità di YOLOv8 lo rende ideale per applicazioni che richiedono prestazioni in tempo reale ed elevata precisione, come:
- Rilevamento di oggetti in tempo reale in sistemi di allarme di sicurezza e veicoli autonomi.
- Soluzioni versatili di IA per la visione in settori come l'agricoltura e l'assistenza sanitaria.
- Prototipazione e implementazione rapide grazie alla sua facilità d'uso e agli strumenti solidi all'interno dell'ecosistema Ultralytics.
Prestazioni e benchmark: YOLOv7 vs. YOLOv8
Nel confrontare le prestazioni, YOLOv8 dimostra chiari vantaggi sia in termini di accuratezza che di efficienza in tutta la sua gamma di modelli. Il modello YOLOv8x, ad esempio, raggiunge un mAP più alto rispetto a YOLOv7x pur essendo più efficiente. Anche i modelli YOLOv8 più piccoli offrono un eccellente compromesso per l'implementazione edge.
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 |
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 |
Conclusione: Quale modello dovresti scegliere?
Sebbene YOLOv7 sia un formidabile rilevatore di oggetti che ha spinto i limiti delle prestazioni in tempo reale, Ultralytics YOLOv8 rappresenta una scelta più interessante per la stragrande maggioranza delle applicazioni moderne.
I vantaggi principali di YOLOv8 risiedono in:
- Versatilità Superiore: Il supporto nativo per una gamma più ampia di attività lo rende una soluzione completa per progetti complessi di computer vision.
- Facilità d'uso: L'API semplificata, l'ampia documentazione e l'integrazione con l'ecosistema Ultralytics riducono significativamente la barriera d'ingresso sia per i principianti che per gli esperti.
- Miglior compromesso tra prestazioni ed efficienza: I modelli YOLOv8 offrono generalmente una migliore accuratezza per un determinato numero di parametri e costi computazionali, rendendoli più adattabili a diversi vincoli hardware.
- Sviluppo e supporto attivo: Come modello di punta di Ultralytics, YOLOv8 beneficia di aggiornamenti continui, una solida comunità e supporto professionale, garantendo la redditività a lungo termine per i progetti.
Per sviluppatori e ricercatori alla ricerca di un framework potente, flessibile e facile da usare, Ultralytics YOLOv8 è la scelta consigliata per la creazione di soluzioni di intelligenza artificiale all'avanguardia.
Esplora altri modelli
Per ulteriori approfondimenti, considera questi confronti che coinvolgono YOLOv7, YOLOv8 e altri modelli rilevanti all'interno della documentazione di Ultralytics:
- YOLOv7 vs YOLOv5
- YOLOv8 contro YOLOv5
- YOLOv8 vs. RT-DETR
- Esplora gli ultimi modelli come YOLOv10 e YOLO11.