YOLOv9 vs PP-YOLOE+#
Il settore del rilevamento degli oggetti in tempo reale continua a evolversi rapidamente, offrendo agli ingegneri della visione artificiale un'ampia scelta per distribuire modelli altamente accurati su infrastrutture edge e cloud. Due modelli di spicco in questo ambito sono YOLOv9 e PP-YOLOE+. Pur spingendo entrambi oltre i limiti di accuratezza e velocità, provengono da tradizioni di ricerca ed ecosistemi software differenti.
Questo confronto tecnico completo analizza le loro architetture, le metodologie di addestramento, le metriche prestazionali e le applicazioni ideali nel mondo reale. Vedremo inoltre come il più ampio ecosistema Ultralytics offra vantaggi significativi agli sviluppatori che danno priorità alla facilità d'uso, all'efficienza della memoria e alla versatilità della distribuzione.
Origini dei modelli e specifiche tecniche#
Conoscere il contesto di questi modelli aiuta a comprendere le scelte architetturali e le dipendenze dai framework.
YOLOv9: risolvere il collo di bottiglia informativo#
Introdotto all'inizio del 2024, YOLOv9 affronta la perdita di dati che si verifica quando le informazioni attraversano reti neurali profonde. È una rete neurale convoluzionale altamente ottimizzata, progettata per massimizzare l'efficienza dei parametri.
- Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 21 febbraio 2024
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
- Documentazione: Documentazione di Ultralytics YOLOv9
PP-YOLOE+: innovazione nell'ecosistema Paddle#
Rilasciato da Baidu nel 2022, PP-YOLOE+ è un miglioramento iterativo di PP-YOLOv2. Utilizza un paradigma senza ancore e introduce una strategia dinamica di assegnazione delle etichette per migliorare la convergenza e l'accuratezza nel framework PaddlePaddle.
- Autori: Autori di PaddlePaddle
- Organizzazione: Baidu
- Data: 2 aprile 2022
- Arxiv: 2203.16250
- GitHub: PaddleDetection
- Documentazione: Configurazione di PP-YOLOE+
Confronto architetturale#
Informazioni programmabili sul gradiente vs. CSPRepResStage#
L'innovazione fondamentale di YOLOv9 è rappresentata dalle Informazioni programmabili sul gradiente (PGI). PGI funge da framework di supervisione ausiliaria, garantendo che le informazioni essenziali sul gradiente vengano preservate e propagate accuratamente ai livelli superficiali durante l'addestramento. A questa si affianca la Rete di aggregazione dei livelli efficiente generalizzata (GELAN), che combina i punti di forza di CSPNet ed ELAN per offrire un'elevata accuratezza riducendo drasticamente il costo computazionale (FLOPs).
PP-YOLOE+ si basa su un backbone specializzato chiamato CSPRepResStage. Sfrutta tecniche di riparametrizzazione, simili a quelle di RepVGG, per accelerare l'inferenza unendo i livelli convoluzionali durante la distribuzione. Inoltre, utilizza la testa Efficient Task-aligned (ET-head) per bilanciare le attività di classificazione e regressione.
Pur essendo robusta, l'architettura GELAN di YOLOv9 richiede in genere meno memoria sia durante l'addestramento sia durante l'inferenza, risultando particolarmente adatta ai dispositivi edge AI.
Confronto delle prestazioni#
Quando valuti i modelli per la produzione, è fondamentale considerare il compromesso tra mAP (precisione media), velocità di inferenza e dimensioni del modello.
| 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.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
Analisi#
- Efficienza dei parametri: YOLOv9 offre un'efficienza nettamente superiore. Per esempio, YOLOv9c raggiunge un mAP del 53.0% con soli 25.5M di parametri, mentre PP-YOLOE+l richiede più del doppio dei parametri (52.2M) per ottenere un mAP leggermente inferiore, pari al 52.9%. Questo riduce drasticamente i requisiti di memoria di YOLOv9.
- Velocità di inferenza: i modelli YOLOv9 sono ottimizzati in modo eccellente per acceleratori hardware come TensorRT, offrendo velocità di inferenza competitive sulle GPU NVIDIA T4, fondamentali per l'inferenza in tempo reale.
Metodologie di training ed ecosistema#
Spesso, la scelta tra questi modelli dipende dall'ecosistema software.
PP-YOLOE+ e PaddlePaddle#
PP-YOLOE+ è strettamente integrato con la suite PaddleDetection. Pur essendo potente, richiede agli utenti di orientarsi in un ambiente basato sulla riga di comando e ricco di file di configurazione. Per i team che lavorano soprattutto negli ecosistemi PyTorch o TensorFlow, passare a PaddlePaddle comporta notevoli difficoltà e una curva di apprendimento più ripida.
I vantaggi di Ultralytics: flussi di lavoro semplificati#
Al contrario, YOLOv9 opera nell'ecosistema Ultralytics, altamente rifinito. Progettato per sviluppatori e ricercatori, Ultralytics dà priorità a un'esperienza d'uso eccezionalmente semplice. La API Python astrae completamente il codice boilerplate complesso.
from ultralytics import YOLO
# Carica un modello YOLOv9 preaddestrato
model = YOLO("yolov9c.pt")
# Addestra facilmente il modello su un dataset personalizzato
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Esegui l'inferenza e visualizza i risultati
results = model("https://ultralytics.com/images/bus.jpg")
# Esporta in ONNX per il deployment in produzione
model.export(format="onnx")Questo flusso di lavoro mette in evidenza la maggiore efficienza di addestramento dei modelli Ultralytics. Il supporto nativo per l'aumento dei dati, l'addestramento distribuito e la registrazione automatica su piattaforme come Weights & Biases o MLflow è incluso.
Sebbene YOLOv9 offra prestazioni eccezionali, per i nuovi progetti consigliamo vivamente di valutare il nuovo Ultralytics YOLO26. YOLO26 offre una progettazione end-to-end senza NMS nativa (opzionale tramite nms=False), che semplifica notevolmente la distribuzione. Grazie alla rimozione della DFL (Distribution Focal Loss rimossa per semplificare l'esportazione e migliorare la compatibilità con dispositivi edge e a basso consumo), offre un'inferenza su CPU fino al 43% più veloce per l'elaborazione edge. Basato sull'ottimizzatore MuSGD, assicura un addestramento stabile e una convergenza rapida. Inoltre, ProgLoss + STAL offre funzioni di perdita migliorate e progressi significativi nel riconoscimento degli oggetti piccoli, fondamentale per IoT, robotica e immagini aeree.
Versatilità e supporto delle attività#
I moderni progetti di visione artificiale raramente si limitano alle semplici bounding box.
PP-YOLOE+ è progettato principalmente per il rilevamento standard degli oggetti. Adattarne l'architettura ad altre attività richiede un notevole lavoro tecnico personalizzato.
Al contrario, il framework Ultralytics è una potente soluzione multitasking. Grazie a una API unificata, gli sviluppatori possono passare senza difficoltà dal rilevamento standard degli oggetti alla complessa segmentazione di istanze, all'accurata stima della posa, al rilevamento di bounding box orientate (OBB) nelle immagini aeree e alla classificazione delle immagini. Questa versatilità senza pari spiega perché i team aziendali scelgano regolarmente modelli supportati da Ultralytics come YOLOv9, YOLO11 e YOLO26.
Casi d'uso e applicazioni ideali#
- Analisi delle smart city e gestione del traffico: l'elevata efficienza dei parametri e la bassa latenza di YOLOv9 (e del successivo YOLO26) li rendono ideali per l'implementazione su hardware edge con risorse limitate, come i dispositivi NVIDIA Jetson, per monitorare il flusso del traffico e la sicurezza urbana.
- Sistemi di inventario per la vendita al dettaglio: per rilevare configurazioni dense di piccoli articoli sugli scaffali, PGI di YOLOv9 preserva efficacemente i dettagli spaziali più fini, superando PP-YOLOE+ nelle attività di rilevamento degli oggetti piccoli.
- Sistemi legacy: PP-YOLOE+ rimane un'opzione valida solo per i team che sono tenuti esplicitamente a utilizzare lo stack software Baidu/PaddlePaddle nelle infrastrutture legacy esistenti.
Per i ricercatori interessati alle architetture basate su Transformer, Ultralytics supporta nativamente anche RT-DETR tramite la stessa API facile da usare, così hai sempre a disposizione il modello più adatto ai requisiti specifici della tua distribuzione.