YOLOv7 contro YOLOv9: Un confronto tecnico completo
L'evoluzione della famiglia YOLO (You Only Look Once) è stata segnata da una continua innovazione nell'architettura delle reti neurali, bilanciando i compromessi critici tra velocità di inferenza, accuratezza ed efficienza computazionale. Questo confronto approfondisce YOLOv7, un rilascio fondamentale del 2022 noto per i suoi "bag-of-freebies" addestrabili, e YOLOv9, un'architettura del 2024 che introduce il Programmable Gradient Information (PGI) per superare i colli di bottiglia di informazioni nelle reti profonde.
Analisi di prestazioni ed efficienza
La transizione da YOLOv7 a YOLOv9 rappresenta un significativo balzo in avanti nell'efficienza dei parametri. Mentre YOLOv7 è stato ottimizzato per spingere i limiti del rilevamento di oggetti in tempo reale utilizzando Extended Efficient Layer Aggregation Networks (E-ELAN), YOLOv9 introduce modifiche architetturali che gli consentono di ottenere una Mean Average Precision (mAP) più elevata con meno parametri e Floating Point Operations (FLOP).
Per gli sviluppatori focalizzati sull'implementazione di edge AI, questa efficienza è fondamentale. Come illustrato nella tabella sottostante, YOLOv9e raggiunge un mAP del 55,6% dominante, superando il più grande YOLOv7x pur mantenendo un ingombro computazionale competitivo. Viceversa, il più piccolo YOLOv9t offre una soluzione leggera per dispositivi altamente vincolati, un livello che YOLOv7 non mira esplicitamente con la stessa granularità.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
YOLOv7: Ottimizzazione del Bag-of-Freebies addestrabile
Rilasciato nel luglio 2022, YOLOv7 ha introdotto diverse riforme strutturali all'architettura YOLO, concentrandosi sull'ottimizzazione del processo di addestramento senza aumentare il costo di inferenza.
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione:Institute of Information Science, Academia Sinica, Taiwan
- Data: 2022-07-06
- Arxiv:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art
- GitHub:WongKinYiu/yolov7
Punti salienti dell'architettura
YOLOv7 utilizza E-ELAN (Extended Efficient Layer Aggregation Network), che controlla i percorsi del gradiente più brevi e più lunghi per consentire alla rete di apprendere funzionalità in modo più efficace. Ha anche reso popolare lo scaling del modello per i modelli basati sulla concatenazione, consentendo di scalare contemporaneamente profondità e larghezza. Un'innovazione chiave è stata la planned re-parameterized convolution, che semplifica l'architettura del modello durante l'inferenza per aumentare la velocità.
Stato legacy
Sebbene YOLOv7 rimanga un modello valido, manca del supporto nativo per le nuove ottimizzazioni presenti nell'ecosistema Ultralytics. Gli sviluppatori potrebbero trovare l'integrazione con i moderni strumenti MLOps più impegnativa rispetto alle iterazioni più recenti.
YOLOv9: Risolvere il collo di bottiglia informativo
YOLOv9, introdotto all'inizio del 2024, affronta un problema fondamentale nel deep learning: la perdita di informazioni quando i dati passano attraverso livelli successivi.
- Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
- Organizzazione:Institute of Information Science, Academia Sinica, Taiwan
- Data: 2024-02-21
- Arxiv:YOLOv9: Learning What You Want to Learn Using PGI
- GitHub:WongKinYiu/yolov9
Punti salienti dell'architettura
L'innovazione principale di YOLOv9 è Programmable Gradient Information (PGI). Nelle reti profonde, le informazioni utili possono andare perse durante il processo di feedforward, portando a gradienti inaffidabili. PGI fornisce un framework di supervisione ausiliario che garantisce che le informazioni chiave vengano preservate per la funzione di perdita. Inoltre, la Generalized Efficient Layer Aggregation Network (GELAN) estende le capacità di ELAN consentendo il blocco arbitrario, massimizzando l'uso dei parametri e delle risorse computazionali.
Questa architettura rende YOLOv9 eccezionalmente efficace per compiti di detect complessi, come il detect di piccoli oggetti in ambienti disordinati o l'analisi di immagini aeree ad alta risoluzione.
Perché i modelli Ultralytics (YOLO11 e YOLOv8) sono la scelta preferita
Sebbene YOLOv7 e YOLOv9 siano risultati accademici impressionanti, la serie Ultralytics YOLO—inclusi YOLOv8 e l'avanzatissimo YOLO11—è progettata specificamente per lo sviluppo di applicazioni pratiche nel mondo reale. Questi modelli danno la priorità alla facilità d'uso, all'integrazione dell'ecosistema e all'efficienza operativa, rendendoli la scelta superiore per la maggior parte dei team di ingegneria.
Esperienza utente semplificata
I modelli Ultralytics sono racchiusi in una API Python unificata che astrae le complessità delle pipeline di addestramento. Il passaggio tra attività di object detection, segmentation istanza, stima della posa e oriented bounding box (OBB) richiede solo una singola modifica dell'argomento, una versatilità che manca nelle implementazioni standard di YOLOv7 o YOLOv9.
from ultralytics import YOLO
# Load a model (YOLO11 automatically handles architecture)
model = YOLO("yolo11n.pt") # Load a pretrained model
# Train the model with a single line of code
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Perform inference on an image
results = model("path/to/image.jpg")
Ecosistema ben mantenuto
La scelta di un modello Ultralytics garantisce l'accesso a un ecosistema robusto. Ciò include l'integrazione perfetta con Ultralytics HUB (e l'imminente Ultralytics Platform) per il training su cloud e la gestione dei dataset. Inoltre, la community attiva e gli aggiornamenti frequenti assicurano la compatibilità con l'hardware più recente, come l'esportazione in TensorRT o OpenVINO per velocità di inferenza ottimali.
Memoria ed Efficienza di Addestramento
I modelli Ultralytics sono rinomati per la loro efficienza di addestramento. A differenza dei modelli basati su transformer (come RT-DETR) che possono richiedere molta memoria ed essere lenti a convergere, i modelli Ultralytics YOLO utilizzano data loader ottimizzati e Mosaic augmentation per offrire tempi di addestramento rapidi con requisiti di memoria CUDA inferiori. Ciò consente agli sviluppatori di addestrare modelli all'avanguardia su GPU di livello consumer.
Casi d'uso ideali
La selezione del modello giusto dipende dai vincoli specifici del tuo progetto.
Applicazioni reali per YOLOv9
- Ricerca e benchmarking: Ideale per studi accademici che richiedono la massima accuratezza riportata sul dataset COCO.
- Sorveglianza ad alta fedeltà: In scenari come i sistemi di allarme di sicurezza in cui un guadagno di accuratezza dell'1-2% giustifica una maggiore complessità di implementazione.
Applicazioni reali per YOLOv7
- Sistemi legacy: Progetti già costruiti sugli ecosistemi Darknet o PyTorch iniziali che richiedono una quantità stabile e nota senza rifattorizzare l'intero codebase.
Applicazioni nel mondo reale per Ultralytics YOLO11
- Città intelligenti: Utilizzo del object tracking per l'analisi del flusso di traffico dove la velocità e la facilità di implementazione sono fondamentali.
- Sanità: Analisi delle immagini mediche dove la segmentazione e la detect sono spesso necessarie contemporaneamente.
- Produzione: Implementazione di sistemi di controllo qualità su dispositivi edge come NVIDIA Jetson o Raspberry Pi, beneficiando delle semplici opzioni di esportazione in TFLite e ONNX.
Conclusione
Sia YOLOv7 che YOLOv9 rappresentano pietre miliari significative nella storia della computer vision. YOLOv9 offre un aggiornamento interessante rispetto a v7 con la sua architettura PGI, offrendo una migliore efficienza e accuratezza. Tuttavia, per gli sviluppatori alla ricerca di una soluzione versatile, facile da usare e ben supportata, Ultralytics YOLO11 rimane la scelta consigliata. Il suo equilibrio tra prestazioni, documentazione completa e capacità multi-task (detect, segment, classify, pose) fornisce il percorso più veloce dal concetto alla produzione.
Esplora altri modelli
Per trovare la soluzione perfetta per le tue specifiche attività di computer vision, considera di esplorare questi altri confronti:
- YOLOv8 contro YOLOv9 - Confronta la v8 ampiamente adottata con la v9 focalizzata sulla ricerca.
- YOLOv10 vs. YOLOv9 - Scopri come si comporta YOLOv10 end-to-end.
- YOLO11 vs. YOLOv8 - Comprendi i miglioramenti nell'ultima versione di Ultralytics.
- RT-DETR vs. YOLOv9 - Uno sguardo al rilevamento basato su Transformer rispetto alle CNN.