YOLOv7 vs YOLOv5: Un confronto tecnico sui rivelatori in tempo reale

Quando crei moderne pipeline di computer vision, scegliere l'architettura di object detection giusta è fondamentale per bilanciare precisione, velocità di inferenza e utilizzo delle risorse. Questo confronto approfondito esamina due modelli altamente influenti nel campo della computer vision: YOLOv7 e Ultralytics YOLOv5.

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

Background e origini del modello

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

YOLOv5

Rilasciato da Glenn Jocher e dal team di Ultralytics il 26 giugno 2020, YOLOv5 ha rivoluzionato il settore offrendo un'implementazione nativa di PyTorch che privilegia l'usabilità senza sacrificare le prestazioni. È diventato rapidamente uno standard industriale grazie al suo ecosistema incredibilmente ottimizzato e alle dinamiche di training affidabili. Puoi esplorare il codice sorgente nel 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'Institute of Information Science, Academia Sinica, Taiwan, il 6 luglio 2022. YOLOv7 si è concentrato pesantemente su innovazioni architettoniche come Extended Efficient Layer Aggregation Networks (E-ELAN) e una "bag-of-freebies" addestrabile per spingere lo stato dell'arte della precisione. I dettagli si trovano nel loro paper ufficiale su Arxiv e nel repository GitHub di YOLOv7. Per un'integrazione fluida, dai un'occhiata alla documentazione di Ultralytics YOLOv7.

Scopri di più su YOLOv7

Sperimentazione fluida

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

Innovazioni architettoniche

Progettazione di Ultralytics YOLOv5

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

Progettazione di YOLOv7

YOLOv7 ha introdotto diverse ri-parametrizzazioni strutturali e l'architettura E-ELAN, che consente alla rete di apprendere feature più diversificate senza distruggere il percorso del gradiente originale. Implementa anche una head ausiliaria per la supervisione intermedia durante il training. Sebbene questi progressi producano un'elevata mean Average Precision (mAP), introducono spesso strutture tensoriali complesse che possono rendere l'esportazione verso formati edge come ONNX o TensorRT leggermente più impegnativa rispetto alle esportazioni semplificate native dei modelli Ultralytics.

Analisi delle prestazioni

Quando confronti questi modelli, devi bilanciare mAPval, velocità di inferenza e complessità computazionale (FLOPs). La tabella seguente mostra 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)
FLOP
(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

  • Limite di accuratezza: YOLOv7x raggiunge la massima precisione complessiva con un impressionante 53.1 mAPval, rendendolo altamente competitivo per scenari in cui massimizzare le prestazioni di rilevamento è l'obiettivo principale.
  • Velocità ed efficienza: Ultralytics YOLOv5n è un prodigio di efficienza, offrendo una latenza di inferenza fulminea (1.12 ms su T4 TensorRT) con un ingombro di memoria minuscolo di soli 2.6M di parametri. Questo lo rende una scelta senza pari per deployment edge altamente vincolati.
  • Bilanciamento delle prestazioni: La serie YOLOv5 fornisce un eccezionale gradiente di modelli. YOLOv5l offre un fantastico punto di equilibrio, inseguendo 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. Puoi addestrare, validare e distribuire modelli con il minimo boilerplate, supportato da un'ampia documentazione ufficiale. Ecosistema ben mantenuto: Lo sviluppo attivo garantisce aggiornamenti costanti, correzioni di bug e un'integrazione fluida con moderni strumenti di tracciamento come Weights & Biases. Efficienza del training: Utilizzando data loader ottimizzati e caching intelligente, YOLOv5 riduce drasticamente i tempi di training. Inoltre, i pesi pre-addestrati pronti all'uso accelerano il transfer learning in vari domini.

Esempio di codice: Addestramento semplificato

Con il pacchetto Ultralytics, avviare un ciclo di training è praticamente identico indipendentemente dall'architettura che scegli.

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

  • Benchmarking accademico: Perfetto per i ricercatori che hanno bisogno di confrontare nuove tecniche rispetto a un baseline del 2022 ben documentato.
  • Elaborazione Cloud GPU di fascia alta: Quando effettui il deployment su potenti server hardware in cui ottenere la mAP assolutamente più alta su scene dense supera la semplicità di esportazione.

Quando scegliere YOLOv5

  • Deployment di produzione: Ideale per applicazioni commerciali che richiedono elevata stabilità, semplici opzioni di deployment del modello e un'ampia compatibilità multipiattaforma.
  • Dispositivi Edge: Le varianti più piccole (YOLOv5n e YOLOv5s) funzionano eccezionalmente bene su telefoni cellulari e sistemi embedded.
  • Requisiti multi-task: Se il tuo progetto ha bisogno di evolversi dal semplice rilevamento alla stima della posa o alla segmentazione utilizzando un framework unificato.
Esplorare altre architetture

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

La prossima generazione: Ultralytics YOLO26

Sebbene YOLOv5 e YOLOv7 occupino posti vitali nella storia della vision AI, il panorama è in continua evoluzione. Rilasciato nel gennaio 2026, Ultralytics YOLO26 rappresenta l'assoluta avanguardia della tecnologia di object detection, superando le generazioni precedenti in tutte le metriche.

Scopri di più su YOLO26

YOLO26 introduce diverse caratteristiche che cambiano il paradigma:

  • Design end-to-end NMS-Free: Basandosi su concetti sperimentati in iterazioni precedenti, YOLO26 è nativamente end-to-end. Questo elimina completamente il post-processing Non-Maximum Suppression (NMS), tagliando i colli di bottiglia della latenza e semplificando drasticamente la logica di deployment.
  • Ottimizzatore MuSGD: Ispirato a Kimi K2 di Moonshot AI, questo rivoluzionario ottimizzatore unisce la stabilità del normale SGD con lo slancio accelerato di Muon, portando innovazioni avanzate nel training LLM direttamente nella computer vision.
  • Velocità CPU migliorata: Rimuovendo strategicamente la Distribution Focal Loss (DFL), YOLO26 ottiene 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 avanzate funzioni di perdita producono enormi miglioramenti nel riconoscimento di piccoli oggetti, il che è fondamentale per l'immaginario aereo e la robotica di precisione.
  • Miglioramenti specifici per i task: Include la perdita di segmentazione semantica per la generazione di maschere, la stima della log-verosimiglianza residua (RLE) per il tracciamento della posa e una perdita angolare specializzata per risolvere problemi spinosi relativi ai confini degli Oriented Bounding Box (OBB).

Conclusione

Sia YOLOv5 che YOLOv7 offrono soluzioni robuste per l'object detection in tempo reale. YOLOv7 rimane una scelta forte per la precisione grezza su hardware ad alto calcolo, mentre YOLOv5 si distingue come lo strumento definitivo e amichevole per gli sviluppatori, offrendo un eccezionale equilibrio tra velocità, efficienza e un ecosistema di classe mondiale.

Tuttavia, per gli sviluppatori che cercano di rendere le proprie pipeline a prova di futuro e ottenere la combinazione definitiva di velocità, semplicità e accuratezza allo stato dell'arte, consigliamo vivamente di migrare a Ultralytics YOLO26. Incapsula la leggendaria facilità d'uso della piattaforma Ultralytics offrendo al contempo innovazioni architettoniche rivoluzionarie.

Commenti