Vai al contenuto

YOLOv7 vs YOLOv5: Un Confronto Tecnico di Rilevatori in Tempo Reale

Quando si costruiscono moderne pipeline di computer vision, la selezione della giusta architettura di rilevamento oggetti è fondamentale per bilanciare accuratezza, velocità di inferenza e utilizzo delle risorse. Questo confronto esaustivo esamina due modelli altamente influenti nel campo della computer vision: YOLOv7 e Ultralytics YOLOv5.

Analizzando le loro differenze architetturali, le metriche di performance e gli scenari di deployment ideali, ci proponiamo di aiutare sviluppatori e ricercatori a scegliere il modello migliore per le loro esigenze specifiche.

Contesto e Origini del Modello

Comprendere le origini di questi modelli fornisce un contesto per le loro filosofie di progettazione e i casi d'uso mirati.

YOLOv5

Rilasciato da Glenn Jocher e dal team di Ultralytics il 26 giugno 2020, YOLOv5 ha rivoluzionato il campo fornendo un'implementazione nativa PyTorch che ha dato priorità all'usabilità senza sacrificare le prestazioni. È diventato rapidamente uno standard industriale grazie al suo ecosistema incredibilmente snello e alle dinamiche di training affidabili. È possibile esplorare il codice sorgente sul repository GitHub di YOLOv5 o accedere al modello direttamente tramite la Piattaforma Ultralytics.

Scopri di più su YOLOv5

YOLOv7

Introdotto da Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao dell'Istituto di Scienze dell'Informazione, Academia Sinica, Taiwan, il 6 luglio 2022. YOLOv7 si è concentrato fortemente sulle innovazioni architetturali come le Extended Efficient Layer Aggregation Networks (E-ELAN) e un "bag-of-freebies" addestrabile per spingere lo stato dell'arte in termini di accuratezza. I dettagli possono essere trovati nel loro articolo ufficiale su Arxiv e nel repository GitHub di YOLOv7. Per un'integrazione senza soluzione di continuità, consulta la documentazione Ultralytics YOLOv7.

Scopri di più su YOLOv7

Sperimentazione senza Soluzione di Continuità

Entrambi questi modelli sono completamente integrati nel pacchetto Python di Ultralytics, consentendoti di passare dall'uno all'altro semplicemente modificando la stringa del modello nel tuo codice!

Innovazioni Architetturali

Ultralytics YOLOv5 Design

YOLOv5 utilizza un backbone CSPDarknet53 modificato abbinato a un neck PANet (Path Aggregation Network). Questo design è altamente ottimizzato per l'estrazione rapida delle feature e l'efficienza della memoria. A differenza delle architetture più datate o dei modelli transformer pesanti, YOLOv5 richiede significativamente meno memoria CUDA durante l'addestramento, consentendo batch size maggiori su GPU consumer standard. Inoltre, il framework Ultralytics supporta intrinsecamente un'ampia varietà di task oltre le bounding box standard, inclusi la segmentazione delle immagini e la classificazione delle immagini.

YOLOv7: Progettazione

YOLOv7 ha introdotto diverse riparametrizzazioni strutturali e l'architettura E-ELAN, che consente alla rete di apprendere caratteristiche più diverse senza distruggere il percorso di gradiente originale. Implementa anche un'head ausiliaria per la supervisione intermedia durante l'addestramento. Sebbene questi progressi producano un'elevata precisione media (mAP), spesso introducono strutture tensor complesse che possono rendere l'esportazione a formati edge come ONNX o TensorRT leggermente più complessa rispetto alle esportazioni semplificate native dei modelli Ultralytics.

Analisi delle prestazioni

Confrontando questi modelli, gli sviluppatori devono bilanciare mAPval, velocità di inferenza e complessità computazionale (FLOPs). La tabella seguente dimostra le prestazioni di entrambe le architetture valutate sul dataset COCO.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
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

Punti chiave

  • Massima Accuratezza: YOLOv7x raggiunge la massima accuratezza complessiva con un impressionante mAPval di 53.1, rendendolo altamente competitivo per scenari in cui massimizzare le prestazioni di detect è l'obiettivo primario.
  • Velocità ed Efficienza: Ultralytics YOLOv5n è un prodigio di efficienza, offrendo una latenza di inferenza estremamente rapida (1.12 ms su T4 TensorRT) con un ingombro di memoria minimo di soli 2.6M parametri. Questo lo rende una scelta impareggiabile per implementazioni edge altamente vincolate.
  • Equilibrio delle Prestazioni: La serie YOLOv5 offre un'eccezionale gradazione di modelli. YOLOv5l offre un ottimo compromesso, seguendo YOLOv7l con un piccolo margine di precisione ma offrendo una pipeline di deployment altamente matura.

Il vantaggio dell'ecosistema Ultralytics

L'architettura di un modello è solo metà dell'equazione; l'ecosistema che lo circonda ne determina la fattibilità nel mondo reale. È qui che i modelli Ultralytics brillano davvero.

Facilità d'Uso: Ultralytics fornisce un'API python unificata e altamente intuitiva. È possibile addestrare, validare e distribuire modelli con un boilerplate minimo, supportato da un'ampia documentazione ufficiale. Ecosistema Ben Mantenuto: Lo sviluppo attivo garantisce aggiornamenti costanti, correzioni di bug e integrazione perfetta con strumenti di tracciamento moderni come Weights & Biases. Efficienza di Addestramento: Utilizzando data loader ottimizzati e caching intelligente, YOLOv5 riduce drasticamente i tempi di addestramento. Inoltre, i pesi pre-addestrati pronti all'uso accelerano il transfer learning in vari domini.

Esempio di codice: Training ottimizzato

Con il pacchetto Ultralytics, l'avvio di un'esecuzione di addestramento è praticamente identico indipendentemente dall'architettura scelta.

from ultralytics import YOLO

# Load a pre-trained YOLOv5 model (can easily swap to "yolov7.pt")
model = YOLO("yolov5s.pt")

# Train the model on the COCO8 example dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Export the trained model to ONNX format for deployment
success = model.export(format="onnx")

Casi d'uso ideali

Quando scegliere YOLOv7

  • Academic Benchmarking: Perfetto per i ricercatori che necessitano di confrontare nuove tecniche con una baseline 2022 ben documentata.
  • Elaborazione Cloud GPU di Fascia Alta: Quando si effettua il deployment su hardware server potente dove ottenere il mAP più alto in assoluto su scene dense supera la semplicità di esportazione.

Quando scegliere YOLOv5

  • Implementazioni in Produzione: Ideale per applicazioni commerciali che richiedono elevata stabilità, opzioni di deployment del modello semplici e ampia compatibilità cross-platform.
  • Dispositivi Edge: Le varianti più piccole (YOLOv5n e YOLOv5s) funzionano eccezionalmente bene su telefoni cellulari e sistemi embedded.
  • Requisiti Multi-Task: Se il vostro progetto deve evolvere da un semplice rilevamento alla stima della posa o alla segmentazione utilizzando un framework unificato.

Esplorazione di Altre Architetture

Cerchi iterazioni più recenti? Considera di esplorare Ultralytics YOLOv8 o Ultralytics YOLO11 per ulteriori progressi nelle capacità di rilevamento anchor-free e di apprendimento multi-task.

La Prossima Generazione: Ultralytics YOLO26

Mentre YOLOv5 e YOLOv7 detengono posti vitali nella storia dell'AI di visione, il panorama è in costante evoluzione. Rilasciato a gennaio 2026, Ultralytics YOLO26 rappresenta l'assoluta avanguardia della tecnologia di object detection, superando le generazioni precedenti su tutte le metriche.

Scopri di più su YOLO26

YOLO26 introduce diverse funzionalità che cambiano il paradigma:

  • Design End-to-End senza NMS: Basandosi sui concetti introdotti nelle iterazioni precedenti, YOLO26 è nativamente end-to-end. Ciò elimina completamente la post-elaborazione di Non-Maximum Suppression (NMS), eliminando i colli di bottiglia della latenza e semplificando drasticamente la logica di implementazione.
  • Ottimizzatore MuSGD: Ispirato a Kimi K2 di Moonshot AI, questo ottimizzatore rivoluzionario fonde la stabilità del SGD standard con il momentum accelerato di Muon, portando innovazioni avanzate nell'addestramento dei modelli LLM direttamente nella visione artificiale.
  • Velocità CPU Migliorata: Rimuovendo strategicamente la Distribution Focal Loss (DFL), YOLO26 raggiunge fino al 43% di inferenza CPU più veloce, rendendolo il campione indiscusso per il deployment su dispositivi edge e IoT a basso consumo.
  • ProgLoss + STAL: Queste funzioni di perdita avanzate producono enormi miglioramenti nel riconoscimento di oggetti di piccole dimensioni, il che è fondamentale per l'imaging aereo e la robotica di precisione.
  • Miglioramenti Specifici per Task: Dotato di perdita di segmentation semantica per la generazione di maschere, Stima della Log-Verosimiglianza Residua (RLE) per il track della Posa e perdita angolare specializzata per risolvere i complessi problemi di confine delle Bounding Box Orientate (OBB).

Conclusione

Sia YOLOv5 che YOLOv7 offrono soluzioni robuste per il rilevamento di oggetti in tempo reale. YOLOv7 rimane una scelta solida per la precisione grezza su hardware ad alta potenza di calcolo, mentre YOLOv5 si distingue come lo strumento definitivo per gli sviluppatori, offrendo un equilibrio eccezionale tra velocità, efficienza e un ecosistema di livello mondiale.

Tuttavia, per gli sviluppatori che desiderano rendere le proprie pipeline a prova di futuro e ottenere la combinazione definitiva di velocità, semplicità e accuratezza all'avanguardia, consigliamo vivamente di migrare a Ultralytics YOLO26. Esso incapsula la leggendaria facilità d'uso della piattaforma Ultralytics, offrendo al contempo innovazioni architettoniche rivoluzionarie.


Commenti