YOLOv9 vs. YOLOv7: un'immersione profonda nell'evoluzione del rilevamento degli oggetti
Il panorama della computer vision è caratterizzato da una rapida innovazione, in cui le innovazioni architettoniche ridefiniscono continuamente i confini della velocità e della precisione. Due pietre miliari di 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 il rilevamento di oggetti in tempo reale 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 architettoniche e le applicazioni pratiche per aiutare gli sviluppatori a scegliere il modello ottimale per le loro esigenze.
Metriche di prestazione ed efficienza
L'evoluzione da YOLOv7 a YOLOv9 è visibile soprattutto nel compromesso tra costo computazionale e prestazioni di rilevamento. YOLOv9 introduce significativi guadagni in termini di efficienza, consentendo di raggiungere una maggiore precisione media (mAP) con un minor numero di parametri rispetto al suo predecessore.
Ad esempio, il modello YOLOv9m raggiunge lo stesso 51,4% di mAPval di YOLOv7l, ma utilizza quasi la metà dei parametri (20,0M contro 36,9M) e un numero significativamente inferiore di FLOP. Questa efficienza rende YOLOv9 particolarmente interessante per le applicazioni di intelligenza artificiale in cui le risorse hardware sono limitate.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
YOLOv9: Informazioni sul gradiente programmabile
YOLOv9 rappresenta un cambiamento paradigmatico nel modo in cui le reti neurali profonde gestiscono la trasmissione dei dati attraverso gli strati. Rilasciato all'inizio del 2024, si rivolge specificamente al problema del "collo di bottiglia dell'informazione", in cui i dati si perdono quando passano attraverso gli strati 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
Docs:Ultralytics YOLOv9
Innovazione architettonica
L'innovazione principale di YOLOv9 è l'introduzione della Programmable Gradient Information (PGI). L'IGP fornisce una struttura di supervisione ausiliaria che garantisce che i gradienti vengano propagati in modo affidabile agli strati iniziali, preservando le informazioni di input essenziali che altrimenti andrebbero perse durante l'estrazione delle caratteristiche.
A complemento di PGI c'è la Generalized Efficient Layer Aggregation Network (GELAN). Questa architettura consente agli sviluppatori di impilare vari blocchi di calcolo (come CSP o ResBlocks) in modo flessibile, ottimizzando i pesi del modello per specifici vincoli hardware senza sacrificare la precisione.
Punti di forza e debolezze
- Punti di forza:
- Precisione superiore: Raggiunge risultati all'avanguardia sul set di datiCOCO , con il modello YOLOv9 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'inferenza.
- Conservazione delle informazioni: I miglioramenti teorici del flusso di gradienti portano a una migliore convergenza e rappresentazione delle caratteristiche.
- Punti deboli:
- Complessità dell'addestramento: I rami ausiliari utilizzati durante l'addestramento (e rimossi per l'inferenza) possono aumentare l'utilizzo della memoriaGPU durante la fase di addestramento rispetto ad architetture più semplici.
YOLOv7: lo standard della borsa degli omaggi
Prima di YOLOv9, YOLOv7 era il campione in carica della famiglia YOLO . Introduceva perfezionamenti architetturali che si concentravano 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
Docs:Ultralytics YOLOv7
Panoramica architettonica
YOLOv7 ha introdotto E-ELAN (Extended Efficient Layer Aggregation Network), che controlla i percorsi di gradiente più brevi e più lunghi per migliorare la capacità di apprendimento della rete. Ha inoltre utilizzato tecniche di scalatura del modello che modificano simultaneamente la profondità e la larghezza della rete, garantendo un'architettura ottimale per i diversi dispositivi di destinazione.
Punti di forza e debolezze
- Punti di forza:
- Affidabilità comprovata: L'ampio utilizzo da parte della comunità e la convalida per diversi anni ne fanno una scelta stabile per i sistemi legacy.
- Alta velocità: Ottimizzato specificamente per l'inferenza in tempo reale su hardware GPU standard.
- Punti deboli:
- Efficienza inferiore: Richiede un maggior numero di parametri e FLOP per raggiungere i livelli di precisione dei modelli più recenti come YOLOv9 o YOLO11. YOLO11 possono raggiungere con architetture più leggere.
- Strumenti più vecchi: Mancano alcune delle integrazioni native e delle caratteristiche di facilità d'uso presenti nel moderno ecosistema Ultralytics .
Casi d'uso e applicazioni ideali
La scelta tra questi due modelli dipende spesso dai vincoli specifici dell'ambiente di implementazione e dalla precisione richiesta dal compito.
Quando scegliere YOLOv9
YOLOv9 è eccellente per gli scenari che richiedono il massimo rapporto precisione/efficienza.
- Navigazione autonoma: Nelle auto a guida autonoma, il rilevamento di piccoli oggetti a grandi distanze è fondamentale. La capacità di YOLOv9 di conservare le informazioni aiuta a riconoscere i pericoli lontani.
- Imaging medico: Per compiti come il rilevamento dei tumori, dove la mancanza di un rilevamento positivo è fondamentale, l'elevato richiamo e l'accuratezza di YOLOv9 sono vantaggiosi.
- Dispositivi Edge: Il
yolov9tLa variante fornisce una soluzione robusta per Dispositivi IoT come i Raspberry Pis, che offrono una buona precisione con un overhead computazionale minimo.
Quando scegliere YOLOv7
YOLOv7 rimane rilevante per le pipeline esistenti che sono già ottimizzate per la sua architettura.
- Sistemi preesistenti: Le linee di produzione industriale che hanno convalidato YOLOv7 per il controllo della qualità possono preferire mantenere la coerenza piuttosto che aggiornare immediatamente.
- Linee di base della ricerca: Serve come eccellente punto di riferimento per confrontare le nuove strategie di rilevamento con gli standard consolidati della ricerca accademica.
Bilanciamento delle prestazioni con Ultralytics
Sebbene YOLOv9 e YOLOv7 siano potenti, gli sviluppatori che cercano il massimo equilibrio tra velocità, accuratezza ed esperienza di sviluppo dovrebbero prendere in considerazione Ultralytics YOLO11. YOLO11 integra le migliori caratteristiche delle generazioni precedenti con un'API semplificata, supportando rilevamento, segmentazione, stima della posa e classificazione in un unico framework.
Il vantaggio di Ultralytics
L'utilizzo di questi modelli all'interno dell'ecosistemaUltralytics offre notevoli vantaggi rispetto all'utilizzo di archivi di ricerca grezzi. L'APIPython di Ultralytics astrae dal codice boilerplate complesso, consentendo a ricercatori e ingegneri di concentrarsi su dati e risultati.
- Facilità d'uso: Un'interfaccia unificata consente di passare da YOLOv8, YOLOv9 e YOLO11 con una sola riga di codice.
- Efficienza della formazione: I modelli Ultralytics sono ottimizzati per una convergenza più rapida e spesso richiedono meno dati di addestramento per raggiungere un'elevata precisione.
- Requisiti di memoria: Il framework è stato progettato per ridurre al minimo l'utilizzo della memoriaCUDA , consentendo l'addestramento di batch di dimensioni maggiori su hardware di livello consumer rispetto ai modelli Transformer, che richiedono molta memoria.
- Versatilità: Oltre ai semplici riquadri di delimitazione, l'ecosistema supporta la segmentazione delle istanze, la stima delle pose e le attività OBB (Oriented Bounding Box), rendendolo uno strumento completo per diverse sfide di intelligenza artificiale.
Esempio di implementazione
L'esecuzione di questi modelli è semplice con la libreria Ultralytics . Il seguente frammento di codice mostra 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 regolazione degli iperparametri e di incremento 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, in quanto offre un'efficienza e un'accuratezza dei parametri superiori grazie alle innovative architetture PGI e GELAN. È la scelta consigliata per gli utenti che cercano prestazioni elevate dalla linea di ricerca specifica di Wang et al.
Tuttavia, per gli sviluppatori che cercano un'esperienza di sviluppo dell'intelligenza artificiale più completa, Ultralytics YOLO11 rimane la soluzione più consigliata. Grazie alla manutenzione attiva, all'ampia documentazione e al supporto per attività multimodali, YOLO11 assicura che i vostri progetti siano a prova di futuro e pronti per la produzione.
Esplora altri modelli
Per ampliare ulteriormente la comprensione del panorama del rilevamento degli oggetti, considerate l'opportunità di esplorare questi modelli e confronti correlati:
- YOLO11 vs. YOLOv9 - Confronto tra l'ultimo modello Ultralytics e YOLOv9.
- YOLOv8 vs. YOLOv7 - Scoprite come si comporta la generazione precedente.
- RT-DETR vs. YOLOv9 - Uno sguardo al rilevamento basato su trasformatori rispetto alle CNN.
- YOLOv10 - Esplorate il modello di rilevamento degli oggetti in tempo reale, end-to-end.
- Ultralytics HUB - Il modo più semplice per addestrare e distribuire i vostri modelli.