Vai al contenuto

YOLOv10 vs. YOLOv9: Un confronto tecnico completo

Il panorama del rilevamento di oggetti si è evoluto rapidamente, con successive iterazioni dell'architettura YOLO (You Only Look Once) che hanno spinto i limiti di velocità e accuratezza. Due dei contributi recenti più significativi in questo campo sono YOLOv10 e YOLOv9. Mentre entrambi i modelli raggiungono prestazioni all'avanguardia sul COCO dataset, divergono in modo significativo nelle loro filosofie di progettazione e negli obiettivi architetturali.

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

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

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

Dettagli tecnici:

Architettura e Innovazioni Chiave

YOLOv10 raggiunge la sua efficienza attraverso una combinazione di Assegnazioni Duali Coerenti e un Design Olistico del Modello Guidato dall'Efficienza-Accuratezza.

  1. Addestramento NMS-Free: I modelli YOLO tradizionali si basano sull'NMS per filtrare le bounding box duplicate. YOLOv10 utilizza una strategia di assegnazione duale durante l'addestramento del modello. Un ramo uno-a-molti fornisce segnali di supervisione completi per l'apprendimento, mentre un ramo uno-a-uno garantisce che il modello generi una singola previsione migliore per oggetto durante l'inferenza. Ciò consente di distribuire il modello senza NMS, riducendo significativamente la latenza di inferenza.
  2. Ottimizzazione del modello: L'architettura include head di classificazione leggeri, downsampling disaccoppiato spaziale-canale e progettazione di blocchi guidata dal rango. Queste caratteristiche riducono la ridondanza computazionale e l'utilizzo della memoria, rendendo il modello altamente efficiente su hardware con risorse limitate.

Vantaggio in termini di efficienza

La rimozione di NMS in YOLOv10 è particolarmente vantaggiosa per l'implementazione edge. Sui dispositivi in cui le risorse della CPU sono scarse, evitare il costo computazionale di ordinare e filtrare migliaia di candidate boxes può comportare accelerazioni sostanziali.

Scopri 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" inerente alle reti neurali profonde. Quando i dati passano attraverso strati successivi (estrazione delle caratteristiche), informazioni cruciali possono andare perse, portando a un degrado dell'accuratezza, specialmente per oggetti piccoli o difficili da detect.

Dettagli tecnici:

Architettura e Innovazioni Chiave

YOLOv9 introduce nuovi concetti per garantire che la rete conservi e utilizzi quante più informazioni possibili in ingresso.

  1. Informazioni sul gradiente programmabile (PGI): PGI fornisce un framework di supervisione ausiliario che genera gradienti affidabili per l'aggiornamento dei pesi della rete. Questo assicura che i livelli profondi ricevano informazioni di input complete, mitigando il problema del gradiente che svanisce e migliorando la convergenza.
  2. Generalized Efficient Layer Aggregation Network (GELAN): Questa nuova architettura sostituisce l'ELAN convenzionale utilizzato nelle versioni precedenti. GELAN ottimizza l'utilizzo dei parametri e l'efficienza computazionale (FLOP), consentendo a YOLOv9 di ottenere una maggiore accuratezza con una dimensione del modello paragonabile ai suoi predecessori.

Approfondimento sul Deep Learning

L'attenzione di YOLOv9 alla conservazione delle informazioni lo rende eccezionalmente efficace nel detect gli oggetti in scene complesse in cui i dettagli delle caratteristiche potrebbero altrimenti andare persi durante le operazioni di downsampling nella backbone.

Scopri di più su YOLOv9

Metriche di performance: velocità vs. accuratezza

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

Analisi:

  • Latenza: YOLOv10 supera costantemente YOLOv9 in latenza, in particolare nelle dimensioni dei modelli più piccoli (N e S). Ad esempio, YOLOv10n raggiunge una velocità di inferenza di 1.56 ms su TensorRT, significativamente più veloce dei modelli comparabili.
  • Accuratezza: YOLOv9 eccelle in accuratezza nella fascia più alta dello spettro. Il modello YOLOv9e raggiunge un notevole 55.6% di mAP, rendendolo la scelta superiore per le applicazioni in cui la precisione è fondamentale.
  • Efficienza: YOLOv10 offre un'eccellente accuratezza 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

Comprendere i punti di forza di ciascun modello aiuta a selezionare lo strumento giusto per i tuoi specifici obiettivi di progetto.

Quando scegliere YOLOv10

  • Deployment Edge AI: Le applicazioni in esecuzione su dispositivi come NVIDIA Jetson o Raspberry Pi beneficiano del design NMS-free, che riduce il sovraccarico della CPU.
  • Analisi video ad alta frequenza: Scenari che richiedono l'elaborazione di flussi video ad alto FPS, come il monitoraggio del traffico o l'analisi sportiva.
  • Robotica in tempo reale: Sistemi autonomi che si basano su cicli di feedback a bassa latenza per la navigazione e l'evitamento degli ostacoli.

Quando scegliere YOLOv9

  • Ispezione ad alta precisione: Controllo qualità industriale in cui perdere un difetto (falso negativo) è costoso.
  • Rilevamento di oggetti piccoli: Applicazioni che coinvolgono l'analisi di immagini satellitari o l'imaging medicale dove gli oggetti sono piccoli e con poche caratteristiche.
  • Scene complesse: Ambienti con alta occlusione o ingombro dove è necessaria la massima conservazione delle 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 comando (CLI), semplificando il flusso di lavoro dal training al deployment.

Esempio python

Il seguente codice dimostra come caricare ed eseguire l'inferenza con entrambi i modelli utilizzando 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

Scegliere Ultralytics per i tuoi progetti di computer vision offre diversi vantaggi che vanno oltre la semplice architettura del modello:

  • Facilità d'uso: L'API intuitiva ti consente di passare da YOLOv9, YOLOv10 e altri modelli come YOLO11 semplicemente cambiando il nome del file dei pesi.
  • Bilanciamento delle prestazioni: Le implementazioni di Ultralytics sono ottimizzate per le prestazioni nel mondo reale, bilanciando velocità e precisione.
  • Efficienza di addestramento: Il framework supporta funzionalità come la precisione mista automatica (AMP) e l'addestramento multi-GPU, semplificando l'addestramento di modelli personalizzati sui propri set di dati.
  • Requisiti di memoria: I modelli Ultralytics mostrano tipicamente un utilizzo della memoria inferiore rispetto alle alternative basate su transformer, facilitando l'addestramento su GPU di livello consumer.

Conclusione

Sia YOLOv10 che YOLOv9 rappresentano pietre miliari significative nel detect di oggetti. YOLOv10 è il chiaro vincitore per le applicazioni che danno priorità alla velocità e all'efficienza, grazie alla sua innovativa architettura senza NMS. Al contrario, YOLOv9 rimane una scelta solida per gli scenari che richiedono la massima accuratezza possibile e la conservazione delle informazioni.

Per gli sviluppatori che cercano la soluzione più recente e versatile, consigliamo anche di esplorare YOLO11. YOLO11 si basa sui punti di forza dei suoi predecessori, offrendo un equilibrio raffinato di velocità, accuratezza e funzionalità per le attività di detect, segment e stima della posa.

Esplora altri modelli

  • Ultralytics YOLO11 - L'ultimo modello all'avanguardia.
  • Ultralytics YOLOv8 - Un modello versatile e maturo per varie attività di visione.
  • RT-DETR - Un detector basato su transformer per applicazioni ad alta precisione.

Commenti