Vai al contenuto

YOLOv9 vs. YOLOv7: Un'analisi approfondita dell'evoluzione dell'object detection

Il panorama della computer vision è caratterizzato da una rapida innovazione, in cui le scoperte architetturali ridefiniscono continuamente i confini di velocità e accuratezza. Due pietre miliari significative in questo percorso sono YOLOv9 e YOLOv7. Entrambi i modelli derivano dalla ricerca di Chien-Yao Wang e colleghi, e rappresentano diverse generazioni della famiglia "You Only Look Once".

Mentre YOLOv7 ha stabilito lo standard per la object detection real-time al momento del suo rilascio nel 2022, YOLOv9 è emerso nel 2024 con nuovi meccanismi per affrontare la perdita di informazioni nelle reti profonde. Questo confronto esplora le loro specifiche tecniche, le differenze architetturali e le applicazioni pratiche per aiutare gli sviluppatori a selezionare il modello ottimale per le loro esigenze.

Metriche di performance ed efficienza

L'evoluzione da YOLOv7 a YOLOv9 è più visibile nel compromesso tra costo computazionale e performance di detection. YOLOv9 introduce significativi guadagni di efficienza, consentendogli di raggiungere una mean Average Precision (mAP) più alta con meno parametri rispetto al suo predecessore.

Ad esempio, il modello YOLOv9m raggiunge lo stesso mAPval del 51,4% di YOLOv7l, ma utilizza quasi la metà dei parametri (20,0 milioni contro 36,9 milioni) e un numero significativamente inferiore di FLOPs. Questa efficienza rende YOLOv9 particolarmente interessante per le applicazioni di edge AI in cui le risorse hardware sono limitate.

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

YOLOv9: Informazioni di gradiente programmabili

YOLOv9 rappresenta un cambio di paradigma nel modo in cui le reti neurali profonde gestiscono la trasmissione dei dati attraverso i livelli. Rilasciato all'inizio del 2024, si rivolge specificamente al problema del "collo di bottiglia delle informazioni", in cui i dati vengono persi mentre passano attraverso i livelli successivi di una rete profonda.

Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
Organizzazione:Institute of Information Science, Academia Sinica
Data: 2024-02-21
Arxiv:2402.13616
GitHub:WongKinYiu/yolov9
Documentazione:Ultralytics YOLOv9

Innovazione Architetturale

L'innovazione principale di YOLOv9 è l'introduzione di Programmable Gradient Information (PGI). PGI fornisce un framework di supervisione ausiliario che garantisce che i gradienti vengano propagati in modo affidabile ai livelli iniziali, preservando le informazioni di input essenziali che altrimenti potrebbero andare perse durante l'estrazione delle caratteristiche.

A complemento del PGI c'è la Generalized Efficient Layer Aggregation Network (GELAN). Questa architettura consente agli sviluppatori di impilare vari blocchi computazionali (come CSP o ResBlocks) in modo flessibile, ottimizzando i pesi del modello per specifici vincoli hardware senza sacrificare l'accuratezza.

Punti di forza e debolezze

  • Punti di forza:
    • Accuratezza Superiore: Ottiene risultati all'avanguardia sul dataset COCO, con il modello YOLOv9-E che raggiunge il 55.6% di mAP.
    • Efficienza dei parametri: Offre prestazioni paragonabili ai modelli precedenti utilizzando un numero significativamente inferiore di parametri, riducendo i requisiti di memoria durante l'inference.
    • Preservazione delle informazioni: I miglioramenti teorici nel flusso del gradiente portano a una migliore convergenza e rappresentazione delle caratteristiche.
  • Punti deboli:
    • Complessità dell'addestramento: I branch ausiliari utilizzati durante l'addestramento (e rimossi per l'inferenza) possono aumentare l'utilizzo della memoria della GPU durante la fase di addestramento rispetto alle architetture più semplici.

Scopri di più su YOLOv9

YOLOv7: Lo standard Bag-of-Freebies

Prima di YOLOv9, YOLOv7 era il campione in carica della famiglia YOLO. Ha introdotto affinamenti architetturali che si sono concentrati sull'ottimizzazione del processo di addestramento senza aumentare i costi di inferenza, un concetto noto come "bag-of-freebies".

Autori: Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
Organizzazione: Institute of Information Science, Academia Sinica
Data: 2022-07-06
Arxiv:2207.02696
GitHub:WongKinYiu/yolov7
Documentazione:Ultralytics YOLOv7

Panoramica Architetturale

YOLOv7 ha introdotto E-ELAN (Extended Efficient Layer Aggregation Network), che controlla i percorsi del gradiente più brevi e più lunghi per migliorare la capacità di apprendimento della rete. Ha anche utilizzato tecniche di ridimensionamento del modello che modificano simultaneamente la profondità e l'ampiezza della rete, garantendo un'architettura ottimale per diversi dispositivi target.

Punti di forza e debolezze

  • Punti di forza:
    • Affidabilità comprovata: L'ampio utilizzo e la convalida da parte della comunità nel corso di diversi anni la rendono una scelta stabile per i sistemi legacy.
    • Alta velocità: Ottimizzato specificamente per l'inferenza in tempo reale su hardware GPU standard.
  • Punti deboli:
    • Minore efficienza: Richiede più parametri e FLOP per eguagliare i livelli di accuratezza che i modelli più recenti come YOLOv9 o YOLO11 possono raggiungere con architetture più leggere.
    • Strumenti Più Vecchi: Manca alcune delle integrazioni native e delle funzionalità di facilità d'uso presenti nel moderno ecosistema Ultralytics.

Scopri di più su YOLOv7

Casi d'uso e applicazioni ideali

La scelta tra questi due modelli spesso dipende dai vincoli specifici dell'ambiente di implementazione e dalla precisione richiesta dell'attività.

Quando scegliere YOLOv9

YOLOv9 è eccellente per gli scenari che richiedono il più alto rapporto accuratezza-efficienza.

  • Navigazione autonoma: Nelle auto a guida autonoma, è fondamentale detect piccoli oggetti a lunga distanza. La capacità di YOLOv9 di preservare le informazioni aiuta a riconoscere i pericoli distanti.
  • Imaging medicale: Per attività come il detect di tumori, dove perdere un detect positivo è critico, l'elevato richiamo e l'accuratezza di YOLOv9 sono vantaggiosi.
  • Dispositivi Edge: Il yolov9t variante fornisce una soluzione robusta per Dispositivi IoT come Raspberry Pi, offrendo una buona precisione con un overhead computazionale minimo.

Quando scegliere YOLOv7

YOLOv7 rimane rilevante per le pipeline esistenti già ottimizzate per la sua architettura.

  • Sistemi legacy: Le linee di produzione industriale che hanno convalidato YOLOv7 per il controllo qualità potrebbero preferire mantenere la coerenza piuttosto che aggiornare immediatamente.
  • Baseline di ricerca: Serve come un eccellente benchmark per confrontare nuove strategie di detect con standard consolidati nella ricerca accademica.

Bilanciamento delle prestazioni con Ultralytics

Sebbene YOLOv9 e YOLOv7 siano potenti, gli sviluppatori alla ricerca del massimo equilibrio tra velocità, precisione ed esperienza di sviluppo dovrebbero prendere in considerazione Ultralytics YOLO11. YOLO11 integra le migliori caratteristiche delle generazioni precedenti con un'API semplificata, supportando detection, segmentazione, stima della posa e classificazione in un unico framework.

Il vantaggio di Ultralytics

L'utilizzo di questi modelli all'interno dell'ecosistema Ultralytics offre vantaggi distinti rispetto all'utilizzo di repository di ricerca non elaborati. L'API Python di Ultralytics astrae il codice boilerplate complesso, consentendo a ricercatori e ingegneri di concentrarsi su dati e risultati.

  1. Facilità d'uso: Un'interfaccia unificata ti consente di passare da YOLOv8, YOLOv9 e YOLO11 con una sola riga di codice.
  2. Efficienza di addestramento: I modelli Ultralytics sono ottimizzati per una convergenza più rapida, spesso richiedendo meno dati di addestramento per raggiungere un'elevata precisione.
  3. Requisiti di memoria: Il framework è progettato per ridurre al minimo l'utilizzo della memoria CUDA, consentendo l'addestramento di batch di dimensioni maggiori su hardware di livello consumer rispetto ai modelli Transformer che richiedono molta memoria.
  4. Versatilità: Oltre alle semplici bounding box, l'ecosistema supporta i task di instance segmentation, pose estimation e Oriented Bounding Box (OBB), rendendolo uno strumento completo per diverse sfide di IA.

Esempio di implementazione

Eseguire questi modelli è semplice con la libreria Ultralytics. Il seguente frammento di codice dimostra come caricare un modello pre-addestrato ed eseguire l'inferenza su un'immagine.

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")

# Run inference on a local image
results = model.predict("path/to/image.jpg", save=True, conf=0.5)

# Process results
for result in results:
    result.show()  # Display predictions

Per coloro che sono interessati all'addestramento su set di dati personalizzati, il processo è altrettanto semplice e utilizza le robuste strategie di ottimizzazione degli iperparametri e di aumento dei dati integrate nel framework.

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

Conclusione

Sia YOLOv9 che YOLOv7 rappresentano risultati significativi nel campo della computer vision. YOLOv9 è il chiaro successore tecnico, offrendo un'efficienza dei parametri e una precisione superiori grazie alle sue innovative architetture PGI e GELAN. È la scelta consigliata per gli utenti che cercano alte prestazioni dalla specifica linea di ricerca di Wang et al.

Tuttavia, per gli sviluppatori che cercano l'esperienza di sviluppo AI più olistica, Ultralytics YOLO11 rimane la raccomandazione principale. Con la sua manutenzione attiva, la vasta documentazione e l'ampio supporto per attività multi-modali, YOLO11 assicura che i tuoi progetti siano a prova di futuro e pronti per la produzione.

Esplora altri modelli

Per ampliare ulteriormente la tua comprensione del panorama del rilevamento oggetti, considera di esplorare questi modelli e confronti correlati:

  • YOLO11 vs. YOLOv9 - Confronta l'ultimo modello Ultralytics con YOLOv9.
  • YOLOv8 contro YOLOv7 - Scopri come si comporta la generazione precedente.
  • RT-DETR vs. YOLOv9 - Uno sguardo al rilevamento basato su Transformer rispetto alle CNN.
  • YOLOv10 - Esplora il modello di object detection end-to-end in tempo reale.
  • Ultralytics HUB - Il modo più semplice per addestrare e distribuire i tuoi modelli.

Commenti