YOLOv7 vs YOLOv8: Evoluzione del Rilevamento di Oggetti in Tempo Reale
Il panorama della visione artificiale è caratterizzato da rapide iterazioni e innovazioni architetturali. Due delle pietre miliari più significative di questa storia sono YOLOv7, rilasciato a metà del 2022, e YOLOv8, rilasciato da Ultralytics 2023. Sebbene entrambi i modelli abbiano rappresentato lo stato dell'arte (SOTA) al momento del loro rilascio, essi riflettono filosofie diverse nella progettazione dei modelli e nell'esperienza degli sviluppatori.
YOLOv7 un picco nell'ottimizzazione dell'approccio "bag-of-freebies" per i rilevatori basati su anchor, concentrandosi intensamente sulle strategie di architettura addestrabile. Al contrario, YOLOv8 un approccio ecosistemico incentrato sull'utente, passando a un'architettura senza anchor che ha dato priorità alla facilità d'uso, all'implementazione del modello e al supporto unificato per diverse attività come la segmentazione e la stima della posa.
Confronto delle prestazioni
La tabella seguente illustra le metriche di prestazione YOLOv8 YOLOv7 YOLOv8 . YOLOv8 un'efficienza superiore, in particolare in termini di numero di parametri e FLOP, mantenendo o superando l'accuratezza (mAP) del suo predecessore.
| 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: il potente sistema basato su anchor
Rilasciato nel luglio 2022, YOLOv7 progettato per superare i limiti della velocità e della precisione del rilevamento di oggetti in tempo reale. Ha introdotto diverse innovazioni architetturali volte a ottimizzare il percorso di propagazione del gradiente.
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 2022-07-06
- Documento:YOLOv7: il bag-of-freebies addestrabile stabilisce un nuovo standard all'avanguardia
- Repo:GitHub
Caratteristiche architettoniche chiave
YOLOv7 la rete Extended Efficient Layer Aggregation Network (E-ELAN). Questa architettura consente al modello di apprendere caratteristiche più diversificate controllando i percorsi di gradiente più brevi e più lunghi, garantendo che la rete converga in modo efficace senza distruggere il flusso di gradiente.
Ha inoltre utilizzato il ridimensionamento del modello basato sulla concatenazione, che regola contemporaneamente la profondità e la larghezza del blocco. Sebbene efficace, questa architettura si basa su anchor box, che richiedono il calcolo di anchor ottimali per set di dati personalizzati al fine di ottenere le massime prestazioni. Ciò aggiunge un ulteriore livello di complessità al processo di addestramento rispetto ai più recenti approcci senza anchor.
Complessità dell'Addestramento
YOLOv7 richiede YOLOv7 una struttura di repository specifica orientata alla ricerca e la gestione manuale delle teste ausiliarie durante l'addestramento. Gli utenti devono spesso regolare manualmente gli iperparametri affinché i "bag-of-freebies" (come MixUp Mosaic) funzionino correttamente su set di dati più piccoli.
YOLOv8: ecosistema unificato e design senza ancoraggi
Ultralytics YOLOv8 un cambiamento paradigmatico, passando da strumento di ricerca pura a framework di livello aziendale. Ha semplificato l'intero ciclo di vita dell'apprendimento automatico, dall'annotazione dei dati alla distribuzione.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione:Ultralytics
- Data: 2023-01-10
- Documentazione:Documentazione YOLOv8
Innovazioni Architetturali
YOLOv8 un modello all'avanguardia senza ancoraggi. Eliminando la necessità di riquadri di ancoraggio predefiniti, YOLOv8 il rilevamento e migliora la generalizzazione su oggetti con forme o proporzioni insolite.
- Modulo C2f: sostituendo il modulo C3 delle generazioni precedenti, il modulo C2f (ispirato a ELAN) combina funzionalità di alto livello con informazioni contestuali per migliorare il flusso gradiente pur rimanendo leggero.
- Testa disaccoppiata: YOLOv8 le attività di oggettività, classificazione e regressione in diversi rami. Questa separazione consente al modello di convergere in modo più rapido e accurato.
- Versatilità delle attività: a differenza di YOLOv7, che è principalmente un modello di rilevamento, YOLOv8 supporta YOLOv8 la classificazione delle immagini, la stima della posa, i riquadri di delimitazione orientati (OBB) e la segmentazione delle istanze.
Confronto dettagliato: perché gli sviluppatori scelgono Ultralytics
Sebbene YOLOv7 un modello valido, Ultralytics che circonda YOLOv8 e il più recente YOLO26) offre vantaggi distintivi per sviluppatori e ricercatori.
1. Facilità d'uso ed ecosistema
YOLOv7 distribuito principalmente come repository di ricerca. Il suo addestramento richiede spesso la clonazione di uno specifico repository GitHub, l'organizzazione delle cartelle in una struttura rigida e l'esecuzione CLI complesse.
Al contrario, Ultralytics sono disponibili come Python standard (pip install ultralytics). L'argomento Ultralytics Platform semplifica ulteriormente questo processo fornendo un'interfaccia grafica per la gestione dei set di dati e il monitoraggio della formazione. Questa esperienza "da zero a eroe" riduce significativamente le barriere all'ingresso per lo sviluppo dell'IA.
2. Efficienza di Training e Memoria
Uno dei fattori più critici nell'IA moderna è l'utilizzo delle risorse. I modelli basati su Transformer richiedono spesso enormi quantità di CUDA e richiedono giorni per l'addestramento.YOLO Ultralytics sono ottimizzati per l'efficienza dell'addestramento.
YOLOv8 l'aumento mosaico in modo dinamico, disattivandolo nelle epoche finali per aumentare la precisione. Questo, combinato con un caricatore di dati ottimizzato, consente agli utenti di eseguire batch di dimensioni maggiori su GPU di livello consumer rispetto a YOLOv7 alternative basate su trasformatori come RT-DETR.
3. Distribuzione ed esportazione
Spesso, la parte più difficile del processo è trasferire un modello da un PyTorch a un dispositivo di produzione. YOLOv8 questa operazione grazie a una modalità di esportazione unificata.
Con una sola riga di codice, gli sviluppatori possono esportare YOLOv8 :
- ONNX per una compatibilità multipiattaforma generica.
- TensorRT per la massima velocità di inferenza sulle NVIDIA .
- CoreML per l'integrazione nelle app iOS macOS.
- TFLite per l'implementazione su dispositivi mobili e edge su Android Raspberry Pi.
Esempio di esportazione
L'esportazione di un YOLOv8 è semplice tramite Python :
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.export(format="onnx", opset=12)
Esempio di codice: l'API unificata
Python Ultralytics consente di passare facilmente da un'architettura di modello all'altra. È possibile caricare un YOLOv7 YOLOv8 o YOLOv7 (supportato per compatibilità con le versioni precedenti) utilizzando la stessa interfaccia.
from ultralytics import YOLO
# Load the latest YOLOv8 Nano model for efficiency
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles dataset downloading and configuration automatically
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on a sample image
# Returns a list of Results objects containing boxes, masks, or keypoints
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
# NOTE: You can also load YOLOv7 weights using the same API
# model_v7 = YOLO("yolov7.pt")
Casi d'uso ideali
Quando usare YOLOv7
- Benchmarking legacy: se state riproducendo articoli accademici del 2022/2023 che effettuano un confronto specifico con l'architettura E-ELAN.
- Ingressi specifici ad alta risoluzione: Il
yolov7-w6Le varianti sono state specificatamente ottimizzate per input a 1280px, anche se Ultralytics moderni Ultralytics ora gestiscono Risoluzioni P6/1280 in modo nativo.
Quando usare YOLOv8
- Edge Computing: Modelli come
yolov8nsono perfetti per in esecuzione su Raspberry Pi o Jetson Nano grazie al loro basso numero di parametri e all'elevata velocità. - Applicazioni multi-task: se la tua applicazione richiede il tracciamento delle persone e contemporaneamente l'identificazione della loro posa (scheletri), la stima della posa nativa YOLOv8 è la scelta ideale.
- Automazione industriale: per linee di produzione ad alta produttività in cui la latenza è fondamentale, la facilità di esportazione in TensorRT rende YOLOv8 .
- Prototipazione rapida: la Ultralytics consente ai team di iterare rapidamente su set di dati e modelli senza dover gestire infrastrutture complesse.
Guardando al futuro: il potere di YOLO26
Sebbene il confronto con YOLOv7 i punti di forza di YOLOv8, il settore ha continuato a evolversi. Per gli sviluppatori che oggi intraprendono nuovi progetti, YOLO26 rappresenta l'apice di questa evoluzione.
YOLO26 si basa sulla facilità d'uso di YOLOv8 introduce un design End-to-End NMS. Eliminando la post-elaborazione Non-Maximum Suppression (NMS), YOLO26 ottiene una logica di implementazione significativamente più semplice e una latenza inferiore in scene complesse. È inoltre dotato dell'ottimizzatore MuSGD, ispirato alle tecniche di addestramento dei modelli linguistici di grandi dimensioni (LLM), che garantisce una convergenza ancora più stabile durante l'addestramento.
Inoltre, con la rimozione della Distribution Focal Loss (DFL), YOLO26 è fino al 43% più veloce nell'inferenza CPU, rendendolo la scelta definitiva per le applicazioni AI edge dove le GPU non sono disponibili. Per compiti specializzati, introduce miglioramenti specifici come la Residual Log-Likelihood Estimation (RLE) per Pose e la perdita angolare specializzata per OBB.
Per la soluzione più efficiente, accurata e a prova di futuro, consigliamo di dare un'occhiata a YOLO26.