YOLOv7 contro YOLOv5: Un confronto tecnico dettagliato
La scelta dell'architettura di object detection giusta è una decisione critica che influisce sulla velocità, l'accuratezza e la fattibilità di implementazione dei tuoi progetti di computer vision. Questa pagina fornisce un confronto tecnico completo tra YOLOv7 e Ultralytics YOLOv5, due modelli influenti nella linea YOLO. Approfondiamo le loro innovazioni architetturali, i benchmark delle prestazioni e i casi d'uso ideali per aiutarti a selezionare la soluzione migliore per la tua applicazione.
Sebbene YOLOv7 abbia introdotto significativi progressi accademici nel 2022, Ultralytics YOLOv5 rimane una forza dominante nel settore grazie alla sua impareggiabile facilità d'uso, robustezza e flessibilità di implementazione. Per coloro che cercano le ultimissime prestazioni, esploriamo anche come questi modelli aprano la strada all'avanguardia Ultralytics YOLO11.
Confronto delle metriche di performance
La tabella seguente evidenzia i compromessi di performance tra le due architetture. Mentre YOLOv7 punta a una precisione media media (mAP) più elevata, YOLOv5 offre vantaggi distinti in termini di velocità di inferenza e conteggi di parametri inferiori per dimensioni specifiche del modello.
| 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 |
YOLOv7: Spingere i confini della precisione
Rilasciato nel luglio 2022, YOLOv7 è stato progettato per stabilire un nuovo stato dell'arte per i rivelatori di oggetti in tempo reale. Si concentra fortemente sull'ottimizzazione architetturale per migliorare la precisione senza aumentare significativamente il costo di inferenza.
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 Innovazioni Chiave
YOLOv7 introduce diverse modifiche architettoniche complesse volte a migliorare l'apprendimento delle caratteristiche:
- E-ELAN (Extended Efficient Layer Aggregation Network): Una struttura backbone avanzata che migliora la capacità di apprendimento della rete controllando i percorsi del gradiente più brevi e più lunghi. Ciò consente al modello di apprendere caratteristiche più diverse.
- Ridimensionamento del modello per modelli basati sulla concatenazione: A differenza del ridimensionamento standard, YOLOv7 ridimensiona simultaneamente profondità e larghezza per le architetture basate sulla concatenazione, garantendo un utilizzo ottimale delle risorse.
- Trainable Bag-of-Freebies: Ciò include la planned re-parameterized convolution (RepConv) e l'addestramento ausiliario dell'head. Gli head ausiliari generano etichette gerarchiche dal grossolano al fine, che aiutano a guidare il processo di apprendimento durante l'addestramento, ma vengono rimossi durante l'inferenza per mantenere la velocità.
Cos'è un 'Bag of Freebies'?
"Bag of Freebies" si riferisce a una raccolta di metodi di training e tecniche di aumento dei dati che migliorano l'accuratezza di un modello di object detection senza aumentare il costo di inferenza. In YOLOv7, questo include strategie sofisticate come l'assegnazione di etichette guidata da Coarse-to-Fine Lead.
Casi d'uso ideali per YOLOv7
Grazie alla sua attenzione all'elevata precisione, YOLOv7 è particolarmente adatto per:
- Ricerca Accademica: Benchmarking rispetto a modelli SOTA dove ogni frazione di mAP conta.
- Distribuzione GPU di fascia alta: Applicazioni in cui è disponibile hardware potente (come NVIDIA A100) per gestire le dimensioni maggiori del modello e i requisiti di memoria.
- Analisi statica: Scenari in cui la latenza in tempo reale è meno critica della precisione, come l'analisi di immagini satellitari ad alta risoluzione o scansioni mediche.
Ultralytics YOLOv5: Lo standard industriale
Ultralytics YOLOv5 è ampiamente considerato uno dei modelli di object detection più pratici e facili da usare disponibili. Dal suo rilascio nel 2020, è diventato la spina dorsale di innumerevoli applicazioni commerciali grazie al suo equilibrio tra velocità, precisione ed eccellenza ingegneristica.
Autori: Glenn Jocher
Organizzazione:Ultralytics
Data: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5
Documentazione:https://docs.ultralytics.com/models/yolov5/
Architettura e benefici dell'ecosistema
YOLOv5 utilizza un backbone CSP-Darknet53 con un neck PANet e un head YOLOv3, ottimizzato per diversi target di deployment. Tuttavia, la sua vera forza risiede nell'ecosistema Ultralytics:
- Facilità d'uso: Noto per la sua filosofia "install and run", YOLOv5 consente agli sviluppatori di iniziare il training su set di dati personalizzati in pochi minuti. L'API è intuitiva e la documentazione è esaustiva.
- Efficienza di addestramento: YOLOv5 in genere richiede meno memoria CUDA durante l'addestramento rispetto alle architetture più nuove e complesse, rendendolo accessibile agli sviluppatori con GPU di fascia media.
- Flessibilità di implementazione: Supporta l'esportazione con un clic in ONNX, TensorRT, CoreML, TFLite e altro, facilitando l'implementazione su qualsiasi dispositivo, dai server cloud ai telefoni cellulari.
- Ecosistema ben manutenuto: Con aggiornamenti frequenti, correzioni di bug e una vasta community, Ultralytics garantisce che il modello rimanga stabile e sicuro per gli ambienti di produzione.
Casi d'uso ideali per YOLOv5
YOLOv5 eccelle in scenari reali che richiedono affidabilità e velocità:
- Edge AI: Esecuzione su dispositivi come NVIDIA Jetson o Raspberry Pi grazie al Nano leggero (
yolov5n) e Small (yolov5s) varianti. - Applicazioni mobili: Integrazione in app iOS e Android tramite CoreML e TFLite per l'inferenza sul dispositivo.
- Prototipazione Rapida: Le startup e gli sviluppatori che hanno bisogno di passare rapidamente dal concetto al MVP traggono vantaggio dal flusso di lavoro semplificato.
- Automazione industriale: Rilevamento affidabile per linee di produzione dove latenza e stabilità sono fondamentali.
Analisi comparativa dettagliata
Quando si decide tra YOLOv7 e YOLOv5, entrano in gioco diversi fattori tecnici che vanno oltre il semplice punteggio mAP.
1. Compromesso tra velocità e precisione
YOLOv7 raggiunge una maggiore accuratezza di picco sul dataset COCO. Ad esempio, YOLOv7x raggiunge il 53,1% di mAP rispetto al 50,7% di YOLOv5x. Tuttavia, questo ha un costo in termini di complessità. YOLOv5 offre una gradazione più fluida dei modelli; il modello YOLOv5n (Nano) è incredibilmente veloce (73,6 ms di velocità della CPU) e leggero (2,6 milioni di parametri), creando una nicchia per ambienti con risorse estremamente limitate che YOLOv7 non mira esplicitamente con la stessa granularità.
2. Architettura e Complessità
YOLOv7 impiega un'architettura basata sulla concatenazione con E-ELAN, che aumenta la larghezza di banda della memoria richiesta durante l'addestramento. Questo può rendere l'addestramento più lento e richiedere più memoria rispetto a YOLOv5. Al contrario, Ultralytics YOLOv5 utilizza un'architettura semplificata altamente ottimizzata per l'efficienza dell'addestramento, consentendo una convergenza più rapida e un minore utilizzo della memoria, il che rappresenta un vantaggio significativo per gli ingegneri con budget computazionali limitati.
3. Usabilità ed Esperienza dello Sviluppatore
È qui che Ultralytics YOLOv5 brilla davvero. Il framework Ultralytics offre un'esperienza unificata con strumenti robusti per l'aumento dei dati, l'evoluzione degli iperparametri e il tracciamento degli esperimenti.
import torch
# Example: Loading YOLOv5s from PyTorch Hub for inference
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Inference on an image
results = model("https://ultralytics.com/images/zidane.jpg")
# Print results
results.print()
Sebbene YOLOv7 abbia un repository, manca delle pipeline CI/CD raffinate e pronte per la produzione, delle ampie guide all'integrazione e del supporto della community che supportano l'ecosistema Ultralytics.
4. Versatilità
Sebbene entrambi i modelli siano principalmente architetture di object detection, l'ecosistema Ultralytics che circonda YOLOv5 si è evoluto per supportare senza problemi la segmentation instance e la classificazione delle immagini. Anche YOLOv7 supporta questi task, ma spesso richiede diversi branch o fork del codice, mentre Ultralytics offre un approccio più unificato.
Distribuzione semplificata
I modelli Ultralytics supportano una vasta gamma di formati di esportazione pronti all'uso. Puoi convertire facilmente il tuo modello addestrato in TFLite per Android, CoreML per iOS o TensorRT per l'inferenza GPU ottimizzata utilizzando un semplice comando CLI o uno script python.
Conclusione: Quale modello dovresti scegliere?
La scelta tra YOLOv7 e YOLOv5 dipende dalle priorità del tuo progetto:
- Scegli YOLOv7 se il tuo vincolo principale è la massima accuratezza e operi in un ambiente di ricerca o su hardware di fascia alta dove la velocità di inferenza e l'ingombro di memoria sono preoccupazioni secondarie.
- Scegli Ultralytics YOLOv5 se hai bisogno di una soluzione affidabile e pronta per la produzione. La sua facilità d'uso, l'addestramento efficiente, la bassa latenza sui dispositivi edge e l'enorme ecosistema di supporto la rendono la scelta migliore per la maggior parte delle applicazioni commerciali e per gli sviluppatori che iniziano il loro percorso nella computer vision.
Uno sguardo al futuro: YOLO11
Sebbene YOLOv5 e YOLOv7 siano modelli eccellenti, il campo della visione artificiale si muove rapidamente. Per gli sviluppatori che cercano il meglio di entrambi i mondi, superando l'accuratezza di YOLOv7 e la velocità/usabilità di YOLOv5, consigliamo vivamente di esplorare Ultralytics YOLO11.
YOLO11 rappresenta l'ultima evoluzione, caratterizzata da un'architettura anchor-free che semplifica la pipeline di training e migliora le prestazioni in tutte le attività, tra cui detection, segmentation, stima della posa e oriented bounding boxes (OBB).
Esplora altri modelli
Se sei interessato a confrontare altri modelli della famiglia YOLO, dai un'occhiata a queste pagine correlate: