Vai al contenuto

YOLOv10 vs. YOLOv9: un confronto tecnico completo

Il panorama del rilevamento degli oggetti si è evoluto rapidamente, con successive iterazioni dell'architettura YOLO (You Only Look Once) che hanno spinto i confini della velocità e della precisione. Due dei più significativi contributi recenti a questo campo sono YOLOv10 e YOLOv9. Sebbene entrambi i modelli raggiungano prestazioni all'avanguardia sul set di datiCOCO , essi divergono in modo significativo per quanto riguarda le filosofie di progettazione e gli obiettivi architettonici.

YOLOv10 privilegia la bassa latenza e l'efficienza end-to-end eliminando la necessità di soppressione non massimaleNMS), mentre YOLOv9 si concentra sulla massimizzazione della conservazione e dell'accuratezza delle informazioni grazie alla Programmable Gradient Information (PGI). Questa guida fornisce un confronto tecnico dettagliato per aiutare sviluppatori e ricercatori a scegliere il modello ottimale per le loro applicazioni di computer vision.

YOLOv10: il rilevatore in tempo reale end-to-end

Rilasciato nel maggio 2024 dai ricercatori della Tsinghua University, YOLOv10 rappresenta un cambio di paradigma nella linea YOLO . La sua innovazione principale è la rimozione della fase di post-elaborazione Non-Maximum Suppression (NMS), che tradizionalmente ha rappresentato un collo di bottiglia per la latenza dell'inferenza.

Dettagli tecnici:

Architettura e Innovazioni Chiave

YOLOv10 raggiunge la sua efficienza grazie a una combinazione di assegnazioni duali coerenti e a un design olistico del modello orientato all'efficienza e alla precisione.

  1. FormazioneNMS: I modelli YOLO tradizionali si affidano all'NMS per filtrare i rettangoli di selezione duplicati. YOLOv10 utilizza una doppia strategia di assegnazione durante l'addestramento del modello. Un ramo uno-a-molti fornisce ricchi segnali di supervisione per l'apprendimento, mentre un ramo uno-a-uno assicura che il modello generi una singola previsione migliore per ogni oggetto durante l'inferenza. Ciò consente di distribuire il modello senza NMS, riducendo in modo significativo la latenza di inferenza.
  2. Ottimizzazione del modello: L'architettura comprende teste di classificazione leggere, downsampling disaccoppiato per canale spaziale e progettazione di blocchi guidati da ranghi. Queste caratteristiche riducono la ridondanza computazionale e l'uso della memoria, rendendo il modello altamente efficiente su hardware con risorse limitate.

Vantaggio di efficienza

L'eliminazione dell'NMS in YOLOv10 è particolarmente vantaggiosa per l'implementazione su dispositivi periferici. Sui dispositivi in cui le risorse CPU sono scarse, evitare il costo computazionale dell'ordinamento e del filtraggio di migliaia di caselle candidate può portare a sostanziali accelerazioni.

Per saperne di più su YOLOv10

YOLOv9: padroneggiare la conservazione delle informazioni

Introdotto nel febbraio 2024 da Chien-Yao Wang e Hong-Yuan Mark Liao, YOLOv9 affronta il problema del "collo di bottiglia dell'informazione" insito nelle reti neurali profonde. Quando i dati passano attraverso gli strati successivi (estrazione delle caratteristiche), le informazioni cruciali possono andare perse, con conseguente degrado dell'accuratezza, soprattutto per gli oggetti piccoli o difficili detect rilevare.

Dettagli tecnici:

Architettura e Innovazioni Chiave

YOLOv9 introduce concetti nuovi per garantire che la rete conservi e utilizzi il maggior numero possibile di informazioni in ingresso.

  1. Informazioni programmabili sul gradiente (PGI): L'IGP fornisce una struttura di supervisione ausiliaria che genera gradienti affidabili per l'aggiornamento dei pesi della rete. Ciò garantisce che gli strati profondi ricevano informazioni di input complete, attenuando il problema del gradiente che svanisce e migliorando la convergenza.
  2. Generalized Efficient Layer Aggregation Network (GELAN): Questa nuova architettura sostituisce la tradizionale ELAN utilizzata nelle versioni precedenti. GELAN ottimizza l'utilizzo dei parametri e l'efficienza computazionale (FLOPs), consentendo a YOLOv9 di raggiungere una maggiore precisione con una dimensione del modello paragonabile a quella dei suoi predecessori.

Approfondimento sull'apprendimento profondo

L'attenzione di YOLOv9 alla conservazione delle informazioni lo rende eccezionalmente forte nel rilevamento di oggetti in scene complesse, dove i dettagli delle caratteristiche potrebbero altrimenti andare persi durante le operazioni di downsampling nel backbone.

Per saperne di più su YOLOv9

Metriche delle prestazioni: Velocità e precisione

La scelta tra questi due modelli si riduce spesso a un compromesso tra velocità di inferenza grezza e precisione di rilevamento. La tabella seguente evidenzia le differenze di prestazioni tra le varie scale di modelli.

Analisi:

  • Latenza: YOLOv10 supera costantemente YOLOv9 in termini di latenza, in particolare nei modelli di dimensioni minori (N e S). Ad esempio, YOLOv10n raggiunge una velocità di inferenza di 1,56 ms su TensorRT, significativamente più veloce di modelli analoghi.
  • Precisione: YOLOv9 eccelle in precisione all'estremità superiore dello spettro. Il modello YOLOv9e raggiunge un notevole 55,6% mAP, che lo rende la scelta migliore per le applicazioni in cui la precisione è fondamentale.
  • Efficienza: YOLOv10 offre un'eccellente precisione per parametro. YOLOv10b raggiunge il 52,7% di mAP con una latenza inferiore rispetto a YOLOv9c, dimostrando l'efficacia del suo design olistico.
Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4
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

Casi d'uso ideali

La comprensione dei punti di forza di ciascun modello aiuta a scegliere lo strumento giusto per gli obiettivi specifici del progetto.

Quando scegliere YOLOv10

  • Implementazione dell'intelligenza artificiale sui bordi: Le applicazioni in esecuzione su dispositivi come NVIDIA Jetson o Raspberry Pi beneficiano del design NMS, che riduce l'overhead CPU .
  • Analisi video ad alta frequenza: Scenari che richiedono l'elaborazione di flussi video ad alta frequenza, come il monitoraggio del traffico o l'analisi dello sport.
  • Robotica in tempo reale: Sistemi autonomi che si affidano a cicli di feedback a bassa latenza per la navigazione e l'evitamento degli ostacoli.

Quando scegliere YOLOv9

  • Ispezione ad alta precisione: Controllo della qualità industriale in cui la mancanza di un difetto (falso negativo) è costosa.
  • Rilevamento di piccoli oggetti: Applicazioni che prevedono l'analisi di immagini satellitari o di immagini mediche in cui gli oggetti sono piccoli e privi di caratteristiche.
  • Scene complesse: Ambienti con elevata occlusione o disordine in cui è necessaria la massima ritenzione di informazioni per distinguere gli oggetti.

Utilizzo con Ultralytics

Uno dei vantaggi significativi dell'utilizzo di questi modelli è la loro integrazione nell'ecosistema Ultralytics . Sia YOLOv10 che YOLOv9 possono essere utilizzati tramite la stessa API Python unificata e l'interfaccia a riga di comandoCLI), semplificando il flusso di lavoro dalla formazione alla distribuzione.

Esempio di Python

Il codice seguente mostra come caricare ed eseguire l'inferenza con entrambi i modelli utilizzando il metodo ultralytics package.

from ultralytics import YOLO

# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")

# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")

# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")

# Print results
for r in results_v10:
    print(f"YOLOv10 Detections: {r.boxes.shape[0]}")

for r in results_v9:
    print(f"YOLOv9 Detections: {r.boxes.shape[0]}")

Il vantaggio di Ultralytics

La scelta di Ultralytics per i vostri progetti di computer vision offre numerosi vantaggi che vanno oltre la semplice architettura del modello:

  • Facilità d'uso: l'API di facile utilizzo consente di passare da YOLOv9 a YOLOv10 e ad altri modelli quali YOLO11 cambiando semplicemente il nome del file dei pesi.
  • Equilibrio delle prestazioni: Le implementazioni di Ultralytics sono ottimizzate per ottenere prestazioni reali, bilanciando velocità e precisione.
  • Efficienza della formazione: Il framework supporta funzioni come la precisione mista automatica (AMP) e l'addestramento GPU , rendendo più semplice l'addestramento di modelli personalizzati sui propri set di dati.
  • Requisiti di memoria: I modelli Ultralytics presentano in genere un utilizzo della memoria inferiore rispetto alle alternative basate su trasformatori, facilitando la formazione su GPU di livello consumer.

Conclusione

Entrambi YOLOv10 e YOLOv9 rappresentano tappe significative nel rilevamento degli oggetti. YOLOv10 è il chiaro vincitore per le applicazioni che privilegiano la velocità e l'efficienza, grazie alla sua innovativa architettura NMS. Al contrario, YOLOv9 rimane una scelta solida per gli scenari che richiedono la massima precisione e conservazione delle informazioni.

Per gli sviluppatori alla ricerca della soluzione più recente e versatile, consigliamo di esplorare anche YOLO11. YOLO11 si basa sui punti di forza dei suoi predecessori, offrendo un equilibrio raffinato di velocità, precisione e funzionalità per le attività di rilevamento, segmentazione e stima della posa.

Esplora altri modelli

  • Ultralytics YOLO11 - L'ultimo modello all'avanguardia.
  • Ultralytics YOLOv8 - Un modello versatile e maturo per vari compiti di visione.
  • RT-DETR - Un rilevatore basato su trasformatore per applicazioni ad alta precisione.

Commenti