YOLOv7 vs YOLOv9#
Il panorama della rilevazione degli oggetti in tempo reale si è evoluto rapidamente, con ogni nuova iterazione che amplia i confini di ciò che è possibile fare sia sui dispositivi edge sia sui server cloud. Quando valutano le architetture per i progetti di computer vision, gli sviluppatori confrontano spesso benchmark consolidati con innovazioni più recenti. Questa guida completa mette a confronto due tappe fondamentali della famiglia YOLO: YOLOv7 e YOLOv9.
Analizzeremo le innovazioni architetturali, le metriche delle prestazioni e gli scenari di deployment ideali per aiutarti a scegliere il modello giusto per la tua applicazione. Vedremo inoltre come la Ultralytics Platform unifica questi modelli, rendendoli più facili da addestrare, validare e distribuire.
Lignaggio dei modelli e specifiche tecniche#
Comprendere le origini e le filosofie progettuali di questi modelli fornisce il contesto essenziale per valutarne le capacità. Entrambi condividono una storia di ricerca comune, ma affrontano colli di bottiglia architetturali diversi.
YOLOv7: il pioniere dei bag-of-freebies#
Rilasciato a metà del 2022, YOLOv7 si è affermato come un'architettura altamente affidabile e fortemente ottimizzata. Ha introdotto la riparametrizzazione strutturale e un approccio basato su un "insieme di vantaggi gratuiti addestrabile" per mantenere elevate velocità di inferenza senza compromettere la precisione media (mAP).
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 6 luglio 2022
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Innovazioni architetturali: YOLOv7 integra la rete Extended Efficient Layer Aggregation (E-ELAN), che consente al modello di apprendere caratteristiche più diversificate espandendo, rimescolando e fondendo la cardinalità. Questo design garantisce un eccellente utilizzo della GPU e una latenza di inferenza ridotta. Tuttavia, rispetto alle iterazioni moderne, può richiedere una quantità significativa di memoria durante le sessioni di addestramento complesse.
YOLOv9: risolvere il collo di bottiglia informativo#
Introdotto all'inizio del 2024 dallo stesso team di ricerca, YOLOv9 affronta il "collo di bottiglia informativo" intrinseco alle reti neurali profonde. Quando i dati attraversano strati profondi, spesso si perdono dettagli fondamentali. YOLOv9 attenua questo problema attraverso design degli strati completamente nuovi.
- Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 21 febbraio 2024
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Innovazioni architetturali: YOLOv9 introduce le Informazioni programmabili del gradiente (PGI) e la rete Generalized Efficient Layer Aggregation (GELAN). PGI garantisce che i gradienti affidabili vengano preservati e riutilizzati per aggiornare accuratamente i pesi. GELAN massimizza l'efficienza dei parametri, consentendo a YOLOv9 di raggiungere un'elevata accuratezza con un numero di FLOPs significativamente inferiore rispetto ai predecessori.
Analisi delle prestazioni#
Quando scelgono tra diverse architetture, gli ingegneri AI devono trovare un equilibrio tra accuratezza, velocità di inferenza e costo computazionale. La tabella seguente evidenzia le differenze di prestazioni tra questi modelli sul dataset COCO standard.
| 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 |
Punti chiave#
- Efficienza dei parametri: YOLOv9m raggiunge la stessa accuratezza di YOLOv7l (51,4% mAP) utilizzando quasi il 45% di parametri in meno (20,0 M contro 36,9 M). Questa drastica riduzione rende YOLOv9m molto più facile da distribuire sui dispositivi edge AI con memoria limitata.
- Micro-deployment: l'introduzione della variante YOLOv9t (tiny) offre velocità straordinarie (2,3 ms su T4 TensorRT) negli ambienti in cui i vincoli del tempo reale sono assoluti.
- Accuratezza massima: per le applicazioni in cui la precisione è fondamentale, YOLOv9e porta l'accuratezza di rilevazione al 55,6% mAP, superando nettamente YOLOv7x.
Sebbene YOLOv7 e YOLOv9 siano potenti, il nuovo YOLO26 rappresenta un decisivo passo avanti. YOLO26 introduce un design nativo end-to-end senza NMS, eliminando il post-processing complesso e aumentando la velocità di inferenza su CPU fino al 43%. Grazie al nuovo ottimizzatore MuSGD e alle funzioni di perdita ProgLoss + STAL migliorate, YOLO26 offre una stabilità di addestramento e un'accuratezza nella rilevazione degli oggetti piccoli senza pari.
Il vantaggio di Ultralytics#
Scegliere un'architettura del modello è solo il primo passo. L'ecosistema software che circonda il modello determina la rapidità con cui puoi passare dal prototipo alla produzione. Integrare questi modelli tramite la Ultralytics Python API offre vantaggi significativi a sviluppatori e ricercatori.
Facilità d'uso ed efficienza dell'addestramento#
In passato, addestrare YOLOv7 richiedeva una preparazione dei dati complessa e script fortemente personalizzati. Il framework Ultralytics astrae queste complessità del deep learning. Gli sviluppatori possono passare facilmente da un'architettura all'altra, sperimentare con l'ottimizzazione degli iperparametri e utilizzare pipeline intelligenti di aumento dei dati con una quantità minima di codice.
Inoltre, Ultralytics ottimizza l'utilizzo della memoria durante l'addestramento e l'inferenza. A differenza dei pesanti modelli Transformer (come RT-DETR), le architetture YOLO di Ultralytics si addestrano molto più velocemente e richiedono molta meno memoria CUDA, risultando ideali per le GPU di fascia consumer.
Esempio di codice: addestramento semplificato#
Addestrare modelli all'avanguardia è semplice nell'ecosistema Ultralytics. Ecco un esempio completamente eseguibile che mostra come addestrare e validare un modello YOLOv9:
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Versatilità senza pari tra le attività#
Un ecosistema ben mantenuto consente di accedere a diverse attività di computer vision. Sebbene YOLOv7 sia stato sviluppato principalmente per la rilevazione degli oggetti (con fork sperimentali successivi per altre attività), i moderni modelli Ultralytics sono progettati nativamente per la versatilità. Senza configurazioni aggiuntive, puoi eseguire senza difficoltà la segmentazione delle istanze, la stima della posa, la classificazione delle immagini e la rilevazione con riquadri di delimitazione orientati (OBB).
Casi d'uso e applicazioni ideali#
La scelta tra YOLOv7 e YOLOv9 dipende spesso dai vincoli specifici del tuo settore e dalla disponibilità dell'hardware.
Quando utilizzare YOLOv7#
- Deployment edge legacy: per gli ambienti hardware già ottimizzati e configurati in modo approfondito per l'architettura E-ELAN di YOLOv7, quest'ultimo rimane una scelta solida per l'IoT industriale.
- Monitoraggio del traffico: gli elevati frame rate e la comprovata stabilità di YOLOv7 lo rendono eccellente per le infrastrutture delle smart city e la gestione del traffico in tempo reale.
- Integrazione nella robotica: la navigazione in ambienti dinamici richiede un'elaborazione a bassa latenza, uno scenario in cui le varianti di YOLOv7 sono state ampiamente testate.
Quando utilizzare YOLOv9#
- Imaging medico: l'architettura PGI di YOLOv9 è eccezionale nel preservare i dettagli fini attraverso gli strati profondi, una caratteristica fondamentale per analizzare attività complesse di analisi delle immagini mediche, come la rilevazione dei tumori.
- Analisi del retail ad alta densità: per tracciare e contare articoli densamente disposti sugli scaffali dei negozi, l'integrazione delle caratteristiche di YOLOv9 offre un'accuratezza superiore e riduce i falsi negativi.
- Immagini aeree e da droni: l'efficienza dei parametri di YOLOv9m consente di elaborare immagini ad alta risoluzione sui droni, favorendo la conservazione della fauna selvatica e il monitoraggio agricolo senza consumare eccessivamente la batteria.
Conclusioni#
Sia YOLOv7 sia YOLOv9 hanno consolidato il loro posto nella storia della computer vision. YOLOv7 ha introdotto ottimizzazioni essenziali per l'elaborazione in tempo reale, mentre YOLOv9 ha affrontato i colli di bottiglia strutturali del deep learning per massimizzare l'efficienza dei parametri.
Tuttavia, per gli sviluppatori che oggi iniziano nuovi progetti, sfruttare l'ecosistema Ultralytics—nello specifico modelli di nuova generazione come YOLO11 e YOLO26—offre il compromesso più favorevole tra velocità, accuratezza ed esperienza di sviluppo. Grazie a innovazioni come l'ottimizzatore MuSGD e alla rimozione della Distribution Focal Loss (DFL) per una più ampia compatibilità hardware, Ultralytics continua a fornire gli strumenti più accessibili e potenti per i professionisti della vision AI.