Vai al contenuto

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.

Scopri di più su YOLOv7

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:

Scopri di più su YOLOv8

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:



📅 Creato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti