PP-YOLOE+ vs. YOLOv9: un confronto completo delle architetture di rilevamento degli oggetti
Il rilevamento degli oggetti in tempo reale continua a evolversi rapidamente, con i ricercatori che spingono costantemente i limiti di accuratezza, latenza ed efficienza dei parametri. Due pietre miliari significative in questo percorso sono PP-YOLOE+, sviluppato dal PaddlePaddle di Baidu, e YOLOv9, creato dagli YOLOv7 originali YOLOv7 . Questo confronto esplora le innovazioni architetturali, le metriche delle prestazioni e le realtà di implementazione di questi due potenti modelli.
Metadati del modello
PP-YOLOE+
Autori: PaddlePaddle
Organizzazione: Baidu
Data: 2022-04-02
Arxiv: https://arxiv.org/abs/2203.16250
GitHub: Repository PaddleDetection
Documentazione: PaddleDocs ufficiale
YOLOv9
Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
Organizzazione: Istituto di Scienze dell'Informazione, Academia Sinica, Taiwan
Data: 21/02/2024
Arxiv: https://arxiv.org/abs/2402.13616
GitHub: YOLOv9
Documentazione: YOLOv9 Ultralytics YOLOv9
Analisi delle prestazioni
Quando si confrontano questi modelli, gli sviluppatori valutano solitamente il compromesso tra mAP (precisione media) e velocità di inferenza. La tabella sottostante evidenzia che, mentre PP-YOLOE+ era un rilevatore senza ancoraggio all'avanguardia nel 2022, YOLOv9 2024) utilizza principi architettonici più recenti per ottenere un'efficienza dei parametri superiore.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Tra i punti salienti figurano:
- Efficienza dei parametri: YOLOv9t raggiunge un'accuratezza competitiva con meno della metà dei parametri di PP-YOLOE+t (2,0 milioni contro 4,85 milioni), rendendolo molto più adatto ai dispositivi edge con memoria limitata.
- Precisione su larga scala: per i modelli più grandi, YOLOv9e supera PP-YOLOE+x in mAP 55,6% contro 54,7%) utilizzando un numero significativamente inferiore di parametri (57,3 milioni contro 98,42 milioni).
- Velocità: YOLOv9 velocità di inferenza estremamente competitive sulle GPU NVIDIA , in particolare per le varianti più piccole.
Differenze Architetturali
PP-YOLOE+: detect senza Anchor Ottimizzato
PP-YOLOE+ è un'evoluzione di PP-YOLOv2, che enfatizza un paradigma senza ancoraggi. Impiega una struttura CSPResNet e un collo CSPPAN semplificato. Le caratteristiche principali includono:
- Task Alignment Learning (TAL): una strategia di assegnazione delle etichette che seleziona dinamicamente campioni positivi sulla base di una combinazione di punteggi di classificazione e localizzazione.
- ET-Head: una testa efficiente e orientata alle attività, progettata per bilanciare velocità e precisione.
- Abbinamento dinamico: migliora la velocità di convergenza durante l'addestramento rispetto all'assegnazione statica degli anchor.
YOLOv9: Informazioni di gradiente programmabili
YOLOv9 cambiamenti fondamentali nel modo in cui le reti profonde gestiscono il flusso di dati. Affronta il problema del "colli di bottiglia informativi" in cui i dati vengono persi mentre attraversano livelli profondi.
- Architettura GELAN: la rete generalizzata di aggregazione efficiente dei livelli combina il meglio di CSPNet ed ELAN per massimizzare l'utilizzo dei parametri.
- PGI (Programmable Gradient Information): questo nuovo concetto utilizza un ramo ausiliario reversibile per generare gradienti affidabili per il ramo principale, garantendo che le caratteristiche profonde conservino le informazioni critiche relative all'immagine in ingresso.
- Supervisione ausiliaria: analogamente alle tecniche osservate nei modelli di segmentazione, YOLOv9 teste ausiliarie durante l'addestramento per migliorare le prestazioni senza influire sulla velocità di inferenza (poiché queste teste vengono rimosse durante l'implementazione).
Perché le informazioni sul gradiente sono importanti
Nelle reti neurali molto profonde, i dati di input originali possono essere "dimenticati" quando le caratteristiche raggiungono gli strati finali. Il PGI YOLOv9 garantisce che il modello mantenga una comprensione completa dell'oggetto, il che è particolarmente utile per rilevare oggetti piccoli o occlusi in scene complesse.
Ecosistema e facilità d'uso
La differenza più significativa per gli sviluppatori risiede nell'ecosistema e nel flusso di lavoro.
Il vantaggio di Ultralytics
YOLOv9 completamente integrato Ultralytics . Ciò significa che è possibile addestrare, convalidare e implementare il modello utilizzando la stessa semplice API utilizzata per YOLO11 e YOLO26.
Vantaggi principali:
- API unificata: passa da attività come il rilevamento di oggetti e la stima della posa semplicemente modificando il file dei pesi del modello.
- MLOps automatizzato: la perfetta integrazione con la Ultralytics consente la formazione nel cloud, la gestione dei set di dati e l'implementazione dei modelli con un solo clic.
- Efficienza della memoria: i cicli Ultralytics sono altamente ottimizzati e spesso richiedono meno VRAM rispetto ai framework concorrenti. Questo è un vantaggio fondamentale rispetto a molti modelli basati su trasformatori che richiedono enormi risorse di calcolo.
- Versatilità di esportazione: supporto nativo per l'esportazione in ONNX, OpenVINO, CoreML e TensorRT il tuo modello funzioni ovunque.
from ultralytics import YOLO
# Load a pretrained YOLOv9c model
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Export to TensorRT for maximum GPU speed
model.export(format="engine")
Workflow di PP-YOLOE+
PP-YOLOE+ si basa sul PaddlePaddle . Sebbene potente, richiede l'adozione di un ecosistema specifico che è distinto dal flusso di lavoro PyTorch preferito da molti ricercatori. La sua configurazione spesso comporta la clonazione del PaddleDetection repository e gestire manualmente i file di configurazione, il che può comportare una curva di apprendimento più ripida rispetto al pip install ultralytics esperienza.
Casi d'Uso e Raccomandazioni
Quando continuare con PP-YOLOE+
- Integrazione legacy: se il tuo ambiente di produzione è già basato PaddlePaddle di Baidu.
- Hardware specifico: se stai effettuando l'implementazione su hardware con ottimizzazione specializzata esclusivamente per Paddle Lite.
Quando scegliereYOLO Ultralytics
Per la stragrande maggioranza dei nuovi progetti, YOLOv9 o il più recente YOLO26 sono le scelte consigliate.
- Ricerca e sviluppo: l'architettura PGI in YOLOv9 un ricco terreno di gioco per i ricercatori che studiano il flusso di gradiente.
- Implementazione commerciale: le solide opzioni di esportazione Ultralytics facilitano il passaggio da un PyTorch a un'applicazione di produzione C++ utilizzando TensorRT o OpenVINO.
- Edge Computing: grazie alla loro eccellente efficienza dei parametri (mAP FLOP), Ultralytics sono ideali per dispositivi alimentati a batteria come droni o fotocamere intelligenti.
Prospettive Future: La Potenza di YOLO26
Sebbene YOLOv9 un modello eccellente, il settore ha compiuto ulteriori progressi con il rilascio di YOLO26. Se state iniziando un nuovo progetto oggi, YOLO26 offre diversi vantaggi fondamentali rispetto sia a PP-YOLOE+ che a YOLOv9.
YOLO26 rappresenta l'avanguardia dell'efficienza nella visione artificiale:
- End-to-End NMS: a differenza di PP-YOLOE+ e YOLOv9 richiedono una post-elaborazione Non-Maximum Suppression (NMS), YOLO26 è nativamente NMS. Ciò riduce la variabilità della latenza e semplifica notevolmente le pipeline di implementazione.
- Ottimizzatore MuSGD: ispirato alle innovazioni nella formazione LLM (come Kimi K2 di Moonshot AI), YOLO26 utilizza l'ottimizzatore MuSGD per una convergenza più rapida e un funzionamento più stabile della formazione.
- Rilevamento avanzato di oggetti di piccole dimensioni: grazie a ProgLoss + STAL, YOLO26 eccelle nel rilevare oggetti di piccole dimensioni, un punto debole tradizionale per molti rilevatori in tempo reale.
- CPU : grazie alla rimozione della Distribution Focal Loss (DFL) e ad altre ottimizzazioni, YOLO26 raggiunge CPU fino al 43% più veloce, rendendolo la scelta ideale per ambienti serverless o dispositivi edge senza NPU dedicate.
Riepilogo
Sia PP-YOLOE+ che YOLOv9 pietre miliari nella storia del rilevamento degli oggetti. PP-YOLOE+ ha perfezionato l'approccio senza ancoraggi, mentre YOLOv9 concetti di supervisione approfondita tramite PGI. Tuttavia, per gli sviluppatori alla ricerca del miglior equilibrio tra accuratezza, facilità d'uso e implementazione a prova di futuro, Ultralytics , guidato da YOLOv9 e dal rivoluzionario YOLO26, offre la soluzione più solida.
Scopri di più
Ti interessano altre architetture? Dai un'occhiata ai nostri confronti per RT-DETR (basato su trasformatore) o YOLO11 per trovare quella più adatta alla tua applicazione.