Vai al contenuto

YOLOv5 . YOLOv9: Evoluzione del rilevamento di oggetti in tempo reale

Il panorama del rilevamento di oggetti in tempo reale ha subito una notevole evoluzione negli ultimi anni. Mentre YOLOv5 ha stabilito lo standard per l'usabilità e l'adozione industriale nel 2020, YOLOv9 ha introdotto nuovi concetti architetturali nel 2024 per ampliare i confini della precisione e dell'efficienza. Questa guida fornisce un confronto tecnico dettagliato per aiutare gli sviluppatori a scegliere lo strumento giusto per i loro progetti di visione artificiale.

Origini del modello e specifiche tecniche

Comprendere la provenienza di questi modelli aiuta a contestualizzare la loro filosofia di progettazione e i casi d'uso previsti.

YOLOv5: Lo Standard Industriale

Lanciato nel giugno 2020 da Glenn Jocher e Ultralytics, YOLOv5 alla facilità d'uso, all'esportabilità e alla velocità. È diventato il primo YOLO implementato in modo nativo in PyTorch, rendendolo accessibile a una vasta comunità di Python .

  • Autore: Glenn Jocher
  • Organizzazione:Ultralytics
  • Data: 2020-06-26
  • Repo:GitHub
  • Focus: usabilità, percorsi di esportazione robusti (ONNX, CoreML, TFLite) e formazione rapida.

Scopri di più su YOLOv5

YOLOv9: innovazione architettonica

Pubblicato nel febbraio 2024 da Chien-Yao Wang e Hong-Yuan Mark Liao dell'Accademia Sinica, YOLOv9 sulla risoluzione del problema del "colli di bottiglia informativi" nelle reti profonde.

  • Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
  • Organizzazione: Institute of Information Science, Academia Sinica
  • Data: 2024-02-21
  • Repo:GitHub
  • Articolo:arXiv:2402.13616
  • Focus: Efficienza dei parametri e supervisione approfondita utilizzando le informazioni sul gradiente programmabile (PGI).

Scopri di più su YOLOv9

Differenze Architetturali

La differenza fondamentale risiede nel modo in cui questi modelli gestiscono l'estrazione delle caratteristiche e il flusso del gradiente.

YOLOv5 utilizza una dorsale CSPNet (Cross Stage Partial Network). Questo design divide il flusso di gradiente per ridurre il calcolo mantenendo la precisione, il che è stato rivoluzionario per la creazione di modelli compatti adatti ai sistemi integrati. La sua testa di rilevamento basata su ancoraggio è altamente ottimizzata per compiti generici, offrendo un equilibrio che rimane competitivo per molte applicazioni legacy.

YOLOv9 introduce due innovazioni chiave: GELAN (Generalized Efficient Layer Aggregation Network) e PGI (Programmable Gradient Information). GELAN ottimizza l'utilizzo dei parametri, consentendo al modello di essere più leggero e di apprendere caratteristiche più complesse. PGI affronta la perdita di informazioni durante la propagazione dei dati attraverso livelli profondi fornendo un ramo di supervisione ausiliario, garantendo una generazione affidabile del gradiente anche in architetture molto profonde.

Lo sapevi?

Mentre YOLOv9 una novità architettonica, l' Ultralytics YOLOv5 rimane imbattibile in termini di implementazione. Supporta nativamente l'esportazione in formati come TensorRT Edge TPU, semplificando il percorso dall'addestramento alla produzione.

Analisi delle prestazioni

Quando si confrontano le metriche, YOLOv9 ottiene YOLOv9 un mAPval più elevato per un dato numero di parametri, in particolare nelle varianti di modello più grandi. Tuttavia, YOLOv5 incredibilmente competitivo in termini di velocità di inferenza su CPU e hardware legacy grazie alla sua architettura più semplice.

Metriche di Benchmark

La tabella sottostante evidenzia i compromessi. YOLOv9c raggiunge mAP del 53,0%, superando YOLOv5x (50,7%) pur utilizzando un numero significativamente inferiore di parametri (25,3 milioni contro 97,2 milioni). Ciò dimostra l'efficienza dell'architettura GELAN. Al contrario, le YOLOv5 più piccole (Nano e Small) offrono una latenza estremamente bassa, rendendole adatte a dispositivi a bassissimo consumo energetico.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv5n64028.073.61.121.94.5
YOLOv5s64037.4120.71.927.216.5
YOLOv5m64045.4233.94.0321.249.0
YOLOv5l64049.0408.46.6146.5109.1
YOLOv5x64050.7763.211.8986.7205.7
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0

Nota: la tabella riflette i parametri COCO standard COCO . I valori in grassetto indicano le migliori prestazioni in quella specifica categoria.

Facilità d'uso ed ecosistema

È qui che la distinzione diventa più pratica per gli sviluppatori.

Ultralytics (YOLOv5)

YOLOv5 progettato per l'esperienza degli sviluppatori. Ultralytics offre un flusso di lavoro senza soluzione di continuità:

  1. API semplice: carica e addestra i modelli con poche righe di Python.
  2. Strumenti integrati: integrazione automatica con strumenti di monitoraggio degli esperimenti come Comet ClearML.
  3. Distribuzione: esportazione con un solo clic su ONNX, CoreML, TFLite e OpenVINO.
from ultralytics import YOLO

# Load a pre-trained YOLOv5 model
model = YOLO("yolov5su.pt")

# Train on custom data
model.train(data="coco8.yaml", epochs=100)

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

YOLOv9

Sebbene altamente accurato, il YOLOv9 originale YOLOv9 è incentrato sulla ricerca. Tuttavia, YOLOv9 ora completamente supportato all'interno del Ultralytics , offrendo la stessa facilità d'uso a questa nuova architettura. Ciò significa che non è necessario sacrificare l'usabilità per accedere agli ultimi miglioramenti architetturali; è sufficiente cambiare la stringa del nome del modello.

Efficienza dell'addestramento e memoria

Un vantaggio fondamentale dei Ultralytics , inclusi YOLOv5 YOLOv9 integrato, è l'efficienza della memoria.

  • GPU : i cicli Ultralytics sono ottimizzati per ridurre al minimo l'utilizzo CUDA . Ciò consente agli utenti di addestrare batch di dimensioni maggiori su hardware di livello consumer (come NVIDIA 3060/4090) rispetto ai modelli basati su trasformatori, che spesso richiedono molta memoria.
  • Convergenza: YOLOv5 famoso per la sua capacità di "addestramento immediato", che richiede una regolazione minima degli iperparametri. Anche YOLOv9, con il suo ramo ausiliario PGI, dimostra una convergenza stabile, sebbene l'architettura sia più complessa.

Applicazioni nel mondo reale

La scelta del modello giusto dipende dai vincoli di implementazione.

Casi d'uso ideali per YOLOv5

  • Edge AI su hardware legacy: se stai implementando su modelli Raspberry Pi meno recenti o dispositivi mobili in cui ogni millisecondo di latenza di inferenza è importante, YOLOv5n (Nano) è imbattibile.
  • Prototipazione rapida: per hackathon o startup che necessitano di una prova di concetto (PoC) in poche ore, la vasta documentazione e i tutorial della community per YOLOv5 lo sviluppo.
  • App mobili: il suo supporto nativo per iOS CoreML e Android TFLite loTFLite uno strumento indispensabile per gli sviluppatori mobili.

Casi d'uso ideali per YOLOv9

  • Ispezione ad alta precisione: nel controllo qualità della produzione, dove è fondamentale rilevare difetti minimi, la superiore capacità di estrazione delle caratteristiche di GELAN rende YOLOv9 scelta migliore.
  • Imaging medico: per attività come il rilevamento dei tumori, dove la precisione è più importante della velocità pura, YOLOv9e offre il necessario mAP .
  • Scene complesse: gli ambienti con elevata occlusione o ingombro traggono vantaggio dai gradienti programmabili che aiutano il modello a conservare le informazioni critiche attraverso livelli profondi.

Il Futuro: Presentazione di YOLO26

Sebbene YOLOv5 uno strumento affidabile e YOLOv9 un'elevata precisione, il settore ha compiuto ulteriori progressi. Per i nuovi progetti che inizieranno nel 2026, Ultralytics rappresenta il massimo in termini di prestazioni ed efficienza.

Perché passare a YOLO26?

  • End-to-end nativo: a differenza di YOLOv5 v9 che richiedono NMS , YOLO26 è NMS, semplificando le pipeline di implementazione.
  • MuSGD Optimizer: ispirato alla formazione LLM, questo ottimizzatore garantisce una formazione più rapida e stabile.
  • Versatilità: supporta rilevamento, segmentazione, posa, OBB e classificazione fin da subito.

Scopri di più su YOLO26

Per gli utenti che attualmente utilizzano YOLOv5, la migrazione a YOLO26 offre un notevole aumento della velocità (fino al 43% in più CPU ) e un miglioramento nel rilevamento di oggetti di piccole dimensioni tramite ProgLoss + STAL, rendendolo il percorso consigliato sia per le implementazioni edge che cloud.

Conclusione

Entrambe le architetture hanno la loro ragion d'essere. YOLOv5 rimane il re della semplicità e dell'ampia compatibilità con i dispositivi, perfetto per gli sviluppatori che hanno bisogno di una soluzione "che funzioni e basta". YOLOv9 offre uno sguardo sul futuro dell'apprendimento profondo efficiente con i suoi gradienti programmabili, garantendo una precisione all'avanguardia.

Tuttavia, l'utilizzo Ultralytics garantisce che non si sia vincolati. È possibile addestrare YOLOv5, YOLOv9 e l'innovativo YOLO26 utilizzando la stessa identica API, consentendo di confrontarli sui propri dati e scegliere il vincitore per la propria applicazione specifica.

Riepilogo del confronto

FunzionalitàYOLOv5YOLOv9
Focus principaleVelocità, facilità d'uso, implementazionePrecisione, efficienza dei parametri
ArchitetturaBackbone CSPNet, basato su ancoraggioGELAN Backbone, PGI, basato su ancoraggio
EcosistemaUltralytics nativo UltralyticsIntegrato in Ultralytics
Ideale perMobile, Edge, sistemi legacyRicerca ad alta precisione, scene complesse
InferenzaEstremamente veloce (GPU)Alta precisione / Più lento

Scopri gli altri modelli della Ultralytics :

  • YOLO11 - Il robusto predecessore di YOLO26.
  • YOLOv8 - Un framework unificato per il rilevamento, la segmentazione e la posa.
  • RT-DETR - Rilevamento in tempo reale basato su trasformatore.

Commenti