Vai al contenuto

YOLOv5 vs YOLOv7: Bilanciamento tra ecosistema e architettura

La scelta del modello di object detection giusto è una decisione critica sia per gli sviluppatori che per i ricercatori. Nell'evoluzione della famiglia YOLO (You Only Look Once), YOLOv5 e YOLOv7 si distinguono come architetture fondamentali che hanno plasmato il panorama della computer vision. Mentre YOLOv7 ha introdotto significative innovazioni architetturali per l'accuratezza, Ultralytics YOLOv5 ha rivoluzionato l'esperienza dello sviluppatore con un focus su usabilità, implementazione e un ecosistema robusto.

Questa guida fornisce un confronto tecnico approfondito di questi due modelli, analizzando le loro architetture, le metriche di performance sul dataset COCO e l'idoneità per applicazioni nel mondo reale.

Ultralytics YOLOv5: Lo standard ingegneristico

Lanciato nel 2020, YOLOv5 ha ridefinito le aspettative per il software di object detection open source. A differenza delle iterazioni precedenti che esistevano principalmente come codice di ricerca, YOLOv5 è stato progettato come un framework pronto per il prodotto. Ha dato priorità alla facilità d'uso, all'esportabilità e alla velocità, rendendolo la scelta ideale per le aziende che creano applicazioni di Inference API in tempo reale.

Autori: Glenn Jocher
Organizzazione:Ultralytics
Data: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5
Documentazione:https://docs.ultralytics.com/models/yolov5/

Vantaggi chiave di YOLOv5

  • Design incentrato sull'utente: YOLOv5 ha introdotto un'API semplificata e un flusso di lavoro di addestramento continuo che ha abbassato la barriera d'ingresso per l'addestramento di modelli personalizzati di object detection.
  • Flessibilità di implementazione: Con il supporto nativo per le modalità di esportazione, i modelli YOLOv5 possono essere facilmente convertiti in formati come ONNX, CoreML, TFLite e TensorRT per l'implementazione su diversi hardware.
  • Efficient Resource Usage: L'architettura è ottimizzata per un basso consumo di memoria, rendendola ideale per dispositivi edge AI come NVIDIA Jetson o Raspberry Pi.

Supporto dell'ecosistema

YOLOv5 è supportato dall'ecosistema completo di Ultralytics. Questo include l'integrazione perfetta con strumenti di monitoraggio degli esperimenti come Comet e MLflow, nonché piattaforme di gestione dei set di dati.

Scopri di più su YOLOv5

YOLOv7: L'approccio "Bag-of-Freebies"

Rilasciato nel 2022, YOLOv7 si è concentrato molto sull'ampliamento dei confini della precisione attraverso l'ottimizzazione architetturale. Gli autori hanno introdotto diversi concetti nuovi volti a migliorare l'apprendimento delle caratteristiche senza aumentare il costo di inferenza, una strategia che hanno definito "trainable bag-of-freebies".

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/

Innovazioni Architetturali

YOLOv7 incorpora Extended Efficient Layer Aggregation Networks (E-ELAN) per migliorare la capacità di apprendimento della rete. Utilizza anche tecniche di ridimensionamento del modello che modificano contemporaneamente la profondità e la larghezza dell'architettura. Sebbene sia efficace per aumentare i punteggi mAP, queste complesse modifiche architettoniche possono talvolta rendere il modello più difficile da modificare o distribuire rispetto al backbone CSP-Darknet più semplice presente in YOLOv5.

Scopri di più su YOLOv7

Confronto tecnico delle prestazioni

Quando si confrontano i due modelli, il compromesso di solito sta tra l'accuratezza pura e la velocità di implementazione pratica. I modelli YOLOv7 (in particolare le varianti più grandi) generalmente raggiungono un mAP più elevato sul set di dati COCO val2017. Tuttavia, Ultralytics YOLOv5 mantiene un dominio nella velocità di inferenza e nell'efficienza dei parametri, in particolare con le sue varianti più piccole (Nano e Small), che sono fondamentali per l'implementazione mobile.

La tabella seguente evidenzia le metriche di performance. Si noti l'eccezionale velocità di YOLOv5n, che rimane una delle opzioni più veloci per ambienti con risorse estremamente limitate.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Analisi delle metriche

  • Velocità vs. Accuratezza: YOLOv7x raggiunge un mAP del 53.1% più alto, rendendolo adatto per la sicurezza di fascia alta o l'analisi medica dove ogni pixel conta. Tuttavia, per applicazioni come l'analisi video o la navigazione autonoma, il tempo di inferenza di 1.12ms di YOLOv5n su TensorRT offre una capacità di frame rate che i modelli più pesanti non possono eguagliare.
  • Efficienza di addestramento: Ultralytics YOLOv5 utilizza strategie "AutoAnchor" e un'evoluzione avanzata degli iperparametri, che spesso si traducono in una convergenza più rapida durante l'addestramento rispetto agli schemi di riparametrizzazione complessi richiesti da YOLOv7.
  • Impronta di memoria: L'addestramento di transformer o architetture complesse come YOLOv7 richiede spesso GPU di fascia alta (ad esempio, A100). Al contrario, il design efficiente di YOLOv5 consente l'addestramento su hardware di livello consumer, democratizzando l'accesso allo sviluppo dell'IA.

Implementazione del codice

Uno dei più validi argomenti a favore di Ultralytics YOLOv5 è la semplicità della sua API python. Caricare un modello pre-addestrato ed eseguire l'inferenza richiede solo poche righe di codice, a testimonianza della maturità del framework.

import torch

# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)

# Define an image (url, local path, or numpy array)
img = "https://ultralytics.com/images/zidane.jpg"

# Run inference
results = model(img)

# Print results and show the image with bounding boxes
results.print()
results.show()

Questo livello di astrazione consente agli sviluppatori di concentrarsi sulla creazione delle proprie soluzioni aziendali piuttosto che sul debug delle architetture dei modelli.

Casi d'uso ideali

Quando scegliere YOLOv7

YOLOv7 è una scelta eccellente per la ricerca accademica e gli scenari in cui i vincoli hardware sono secondari rispetto alle prestazioni di detect grezze.

  • Ricerca Accademica: Per il benchmarking di tecniche di detect all'avanguardia.
  • Ispezione ad alta precisione: Come il controllo qualità manifatturiero in cui il detect di difetti minimi è fondamentale e la latenza è meno importante.

Quando scegliere Ultralytics YOLOv5

YOLOv5 rimane lo standard del settore per lo sviluppo rapido e la distribuzione in produzione.

  • Edge Deployment: Perfetto per l'esecuzione su dispositivi iOS e Android tramite esportazioni TFLite o CoreML.
  • Robotica: La sua bassa latenza è fondamentale per i cicli di feedback richiesti nella robotica autonoma.
  • Versatilità: Oltre alla detection, il repository YOLOv5 supporta instance segmentation e image classification, fornendo una codebase unificata per molteplici task di visione.

Conclusione: il moderno percorso da seguire

Sebbene YOLOv7 abbia dimostrato la potenza della messa a punto architetturale, Ultralytics YOLOv5 rimane la scelta superiore per gli sviluppatori che necessitano di una soluzione affidabile, ben documentata e facile da implementare. Il suo equilibrio tra velocità, precisione e supporto dell'ecosistema garantisce che rimanga rilevante negli ambienti di produzione di tutto il mondo.

Tuttavia, il campo della computer vision si muove rapidamente. Per chi cerca le migliori prestazioni in assoluto, YOLO11 rappresenta l'ultima evoluzione di Ultralytics. YOLO11 si basa sull'usabilità di YOLOv5 , ma incorpora moduli all'avanguardia basati su trasformatori e progetti privi di ancoraggi, superando sia YOLOv5 che YOLOv7 in termini di precisione ed efficienza.

Per una soluzione a prova di futuro che supporti Object Detection, Pose Estimation e Oriented Bounding Boxes (OBB), si consiglia vivamente di migrare al framework Ultralytics YOLO11.

Scopri altri confronti

Scopri come altri modelli si confrontano con la famiglia Ultralytics YOLO:


Commenti