Confronto tra modelli: YOLOv7 vs. YOLOv8 per il rilevamento di oggetti
Nel panorama in rapida evoluzione della computer vision, la famiglia di modelli "You Only Look Once"YOLO) ha costantemente definito lo standard per il rilevamento degli oggetti in tempo reale. Due pietre miliari di questa stirpe sono YOLOv7 e Ultralytics YOLOv8. Sebbene entrambi i modelli abbiano spinto i confini della precisione e della velocità al momento del rilascio, rappresentano filosofie di progettazione e maturità dell'ecosistema diverse.
Questa guida fornisce un confronto tecnico dettagliato per aiutare sviluppatori e ricercatori a scegliere lo strumento giusto per le loro esigenze specifiche, che vanno dalla ricerca accademica all'implementazione in produzione.
Confronto tra le metriche delle prestazioni
La tabella seguente presenta un confronto diretto delle metriche delle prestazioni tra i principali modelli YOLOv7 e YOLOv8 . YOLOv8 dimostra un vantaggio significativo nella velocità di inferenza e un numero di parametri favorevole, in particolare nelle varianti di modello più piccole, che sono fondamentali per le applicazioni di IA 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 |
YOLOv7: L'evoluzione della "borsa degli omaggi
Rilasciato nel luglio 2022, YOLOv7 è stato sviluppato principalmente dagli autori di YOLOv4 e YOLOR. Ha introdotto diverse innovazioni architettoniche volte a ottimizzare il processo di addestramento senza aumentare i costi di inferenza, un concetto definito "bagaglio addestrabile di omaggi".
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 2022-07-06
- Link:Documento Arxiv | Repository GitHub
Caratteristiche architettoniche principali
YOLOv7 ha introdotto la Extended Efficient Layer Aggregation Network (E-ELAN). Questa architettura controlla i percorsi di gradiente più brevi e più lunghi per consentire alla rete di apprendere caratteristiche più diverse. Inoltre, ha utilizzato tecniche di scalatura del modello che modificano simultaneamente la profondità e l'ampiezza dell'architettura, garantendo prestazioni ottimali in diverse dimensioni.
Nonostante i benchmark impressionanti al momento del lancio, YOLOv7 si concentra principalmente sul rilevamento degli oggetti, con un supporto meno integrato per altri compiti rispetto ai framework più recenti.
Ultralytics YOLOv8: struttura unificata e architettura moderna
Lanciato all'inizio del 2023 da Ultralytics, YOLOv8 ha rappresentato un'importante revisione dell'architettura di YOLO . È stato progettato non solo come modello, ma come struttura unificata in grado di eseguire rilevamento, segmentazione dell'istanza, stima della posa e classificazione senza soluzione di continuità.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2023-01-10
- Collegamenti:DocumentiUltralytics | Repository GitHub
Innovazioni architettoniche
YOLOv8 ha abbandonato il rilevamento basato sulle ancore utilizzato nelle versioni precedenti (compresa YOLOv7) per passare a un meccanismo di rilevamento privo di ancore. Questo passaggio semplifica il processo di addestramento eliminando la necessità di calcolare le caselle di ancoraggio, rendendo il modello più robusto alle variazioni di forma e dimensione degli oggetti.
La dorsale è stata aggiornata per utilizzare i moduli C2f (Cross-Stage Partial Bottleneck con due convoluzioni), che sostituiscono i moduli C3 di YOLOv5. Questa modifica migliora il flusso del gradiente e consente al modello di rimanere leggero, pur catturando informazioni più ricche sulle caratteristiche.
Confronto tecnico dettagliato
Basato su ancore e senza ancore
Una delle differenze più evidenti è la testa di rilevamento. YOLOv7 si affida a caselle di ancoraggio, forme predefinite che il modello cerca di far corrispondere agli oggetti. Pur essendo efficace, questo metodo richiede la regolazione degli iperparametri per i set di dati personalizzati.
Al contrario, YOLOv8 utilizza un approccio privo di ancore, prevedendo direttamente il centro di un oggetto. Questo riduce il numero di previsioni di box, velocizzando la soppressione non massimaleNMS) e rendendo il modello più facile da addestrare su dati diversi senza configurazione manuale degli ancoraggi.
Efficienza dell'addestramento e utilizzo della memoria
I modelli Ultralytics sono rinomati per la loro efficienza ingegneristica. YOLOv8 utilizza una strategia intelligente di aumento dei dati che disabilita l'aumento del mosaico durante le ultime epoche dell'addestramento. Questa tecnica stabilizza la perdita di formazione e migliora la precisione.
Efficienza della memoria
Un vantaggio significativo di Ultralytics YOLOv8 rispetto ad architetture complesse come i trasformatori (ad es, RT-DETR) è la minore richiesta di memoria CUDA . Ciò consente agli utenti di addestrare batch di dimensioni maggiori su GPU di fascia consumer, democratizzando l'accesso all'addestramento di modelli all'avanguardia.
Ecosistema e facilità d'uso
Mentre YOLOv7 è un potente repository di ricerca, Ultralytics YOLOv8 offre un'esperienza di prodotto più raffinata. L'ecosistema Ultralytics fornisce:
- API semplificata: Un'interfaccia Python coerente per tutte le attività.
- Distribuzione: Esportazione con un solo clic in formati come ONNX, TensorRT, CoreML e TFLite tramite la modalità di esportazione.
- Supporto della comunità: Una comunità Discord attiva e aggiornamenti frequenti che assicurano la compatibilità con le ultime versioni di PyTorch .
Codice a confronto
Il divario di usabilità è evidente quando si confronta il codice necessario per eseguire l'inferenza. Ultralytics privilegia un approccio low-code, consentendo agli sviluppatori di integrare l'intelligenza artificiale nelle applicazioni con un overhead minimo.
Esecuzione di YOLOv8 con Python
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
for result in results:
result.show()
Implementazione della CLI
YOLOv8 può anche essere eseguito direttamente dalla riga di comando, una caratteristica che semplifica l'integrazione della pipeline e i test rapidi.
# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640
Casi d'uso ideali
Quando utilizzare YOLOv7
YOLOv7 rimane una scelta valida per i ricercatori che effettuano benchmark rispetto agli standard 2022/2023 o che mantengono sistemi legacy costruiti specificamente intorno all'architettura di tipo Darknet. Il suo approccio "bag-of-freebies" offre spunti interessanti per chi studia le strategie di ottimizzazione delle reti neurali.
Quando utilizzare YOLOv8
YOLOv8 è la scelta consigliata per la maggior parte dei nuovi progetti, tra cui:
- Applicazioni in tempo reale: Il modello YOLOv8n (nano) offre velocità incredibili (circa 80 ms sulla CPU), rendendolo perfetto per le applicazioni mobili e i sistemi embedded.
- Pipeline multi-task: I progetti che richiedono la stima della posa o la segmentazione insieme al rilevamento possono utilizzare un'unica API.
- Distribuzione commerciale: La solida compatibilità di esportazione garantisce che i modelli addestrati in PyTorch possano essere distribuiti in modo efficiente negli ambienti di produzione utilizzando TensorRT o OpenVINO.
Conclusione
Mentre YOLOv7 ha dato un contributo significativo al campo della computer vision ottimizzando i parametri addestrabili, Ultralytics YOLOv8 rappresenta lo standard moderno per lo sviluppo pratico dell'intelligenza artificiale.
L'equilibrio superiore tra velocità e precisione di YOLOv8, unito a un design privo di ancoraggi e all'ampio ecosistema di supporto Ultralytics , lo rende più accessibile per i principianti e più potente per gli esperti. Per gli sviluppatori che desiderano creare applicazioni di visione scalabili, manutenibili e ad alte prestazioni, YOLOv8suoi successori come YOLO11-offrono la strada più interessante per il futuro.
Letture aggiuntive
Per chi è interessato a esplorare i più recenti progressi nel rilevamento degli oggetti, si consiglia di esaminare questi modelli correlati:
- YOLO11: l'ultima iterazione di Ultralytics, che perfeziona l'architettura per una maggiore efficienza.
- YOLOv6: un altro modello senza ancoraggio incentrato sulle applicazioni industriali.
- YOLOv9: si concentra sulla Programmable Gradient Information (PGI) per l'addestramento di reti profonde.