PP-YOLOE+ vs YOLOv5#
Quando scelgono il framework di deep learning giusto per la computer vision, gli sviluppatori spesso confrontano le capacità di diverse architetture per trovare il miglior equilibrio tra velocità, precisione e facilità di distribuzione. In questa analisi approfondita esamineremo le differenze tecniche tra PP-YOLOE+ e YOLOv5. Analizzandone le architetture, le metriche prestazionali e gli scenari di distribuzione ideali, potrai prendere una decisione consapevole per il tuo prossimo progetto, che riguardi la robotica in tempo reale, la distribuzione edge o l’analisi video basata su cloud.
Origini e metadati dei modelli#
Entrambi i modelli derivano da team di ingegneri altamente qualificati, ma si rivolgono a ecosistemi leggermente diversi. Conoscerne le origini offre un contesto utile per comprendere le scelte progettuali delle rispettive architetture.
Dettagli su PP-YOLOE+:
- Autori: Autori di PaddlePaddle
- Organizzazione: Baidu
- Data: 2022-04-02
- Arxiv: https://arxiv.org/abs/2203.16250
- GitHub: https://github.com/PaddlePaddle/PaddleDetection/
- Documentazione: README di PaddleDetection
Dettagli di YOLOv5:
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- Documentazione: https://docs.ultralytics.com/models/yolov5
Confronto architetturale#
Architettura di PP-YOLOE+#
PP-YOLOE+ rappresenta un’evoluzione nell’ecosistema Baidu, basata sulle fondamenta di modelli precedenti come PP-YOLOv2. Introduce un backbone CSPRepResNet altamente ottimizzato, che migliora l’estrazione delle feature combinando i principi delle reti Cross Stage Partial (CSP) con tecniche di riparametrizzazione. In questo modo il modello mantiene un’elevata precisione durante l’addestramento e si trasforma in un’architettura più snella per accelerare l’inferenza.
PP-YOLOE+ utilizza inoltre l’apprendimento dell’allineamento dei task (TAL) e una testa efficiente allineata ai task (ET-head). Questa combinazione mira a risolvere il disallineamento tra i task di classificazione e localizzazione, un collo di bottiglia comune nei rilevatori di oggetti densi. Per quanto impressionante dal punto di vista strutturale, l’architettura è strettamente legata al framework PaddlePaddle, il che può creare difficoltà di integrazione per i team che adottano altre librerie ML diffuse.
Architettura di YOLOv5#
Al contrario, YOLOv5 è stato progettato nativamente in PyTorch, lo standard del settore sia per la ricerca accademica sia per la produzione aziendale. Utilizza un backbone CSPDarknet53 modificato, noto per l’eccellente propagazione del gradiente e l’efficienza nell’uso dei parametri.
Una caratteristica distintiva di YOLOv5 è l’algoritmo AutoAnchor, che prima dell’addestramento verifica e regola dinamicamente le dimensioni dei riquadri anchor in base al tuo dataset personalizzato. Questo elimina la necessità di regolare manualmente gli iperparametri dei riquadri di delimitazione. Il neck Path Aggregation Network (PANet) del modello garantisce una solida fusione di feature a più scale, rendendolo molto efficace nel rilevamento di oggetti di dimensioni diverse.
Poiché YOLOv5 è basato direttamente su PyTorch, l’esportazione in formati ottimizzati come ONNX e TensorRT richiede molta meno configurazione middleware rispetto ai modelli vincolati a framework localizzati.
Analisi delle prestazioni#
Per valutare questi modelli, è necessario considerare il compromesso tra precisione media media (mAP) e latenza. La tabella seguente mostra le metriche relative alle diverse dimensioni dei modelli.
| 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 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
PP-YOLOE+ raggiunge punteggi mAP molto competitivi alle scale maggiori, ad esempio con la variante X, ma YOLOv5 offre velocità superiori e un numero di parametri inferiore nella fascia più piccola. YOLOv5 Nano (YOLOv5n) richiede appena 1,9 milioni di parametri, risultando molto adatto ai dispositivi edge con risorse limitate e requisiti di memoria rigorosi. Inoltre, l’addestramento dei modelli YOLO consuma in genere meno memoria CUDA rispetto alle pesanti alternative basate su Transformer, come RT-DETR.
I vantaggi di Ultralytics#
Quando scegli un’architettura, le metriche pure sono solo una parte dell’equazione. L’esperienza di sviluppo, il supporto dell’ecosistema e le pipeline di distribuzione determinano spesso il successo concreto di un progetto. È qui che i modelli Ultralytics si distinguono.
Facilità d’uso senza pari#
L’API Python di Ultralytics nasconde il codice boilerplate complesso. Gli sviluppatori possono avviare l’addestramento, convalidare le prestazioni e distribuire i modelli senza difficoltà. La documentazione è completa, costantemente aggiornata e supportata da un’ampia community open source globale.
Versatilità in diverse attività#
PP-YOLOE+ è un rilevatore di oggetti specifico, mentre l’ecosistema Ultralytics consente di affrontare più task di computer vision con un’unica API unificata. Con YOLOv5 e i suoi successori, puoi passare facilmente dai riquadri di delimitazione standard ai flussi di lavoro di segmentazione delle immagini e classificazione.
Esempio di codice: addestramento di YOLOv5#
Per iniziare bastano poche righe di codice. Questa semplicità accelera notevolmente i cicli di ricerca e sviluppo.
from ultralytics import YOLO
# Carica un modello YOLOv5 small preaddestrato
model = YOLO("yolov5su.pt") # YOLOv5u: pesi YOLOv5 anchor-free per il pacchetto ultralytics
# Addestra il modello sul dataset COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Esegui un'inferenza rapida su un'immagine
predictions = model("https://ultralytics.com/images/bus.jpg")
predictions[0].show()Casi d’uso nel mondo reale#
Quando scegliere PP-YOLOE+: Se la tua organizzazione opera principalmente nello stack software di Baidu o dipende da hardware specializzato che richiede il framework PaddlePaddle, PP-YOLOE+ offre prestazioni solide. Viene spesso utilizzato in pipeline produttive specializzate in Asia, dove esistono integrazioni legacy con Paddle.
Quando scegliere YOLOv5: Per la maggior parte degli sviluppatori, ricercatori e aziende a livello internazionale, YOLOv5 resta un modello molto potente. Le sue radici PyTorch lo rendono immediatamente compatibile con strumenti come Weights & Biases per il monitoraggio e ne consentono l’esportazione senza problemi in TensorRT per l’accelerazione sulle GPU NVIDIA, oppure in CoreML per i dispositivi Apple. Eccelle in ambiti diversi, dal monitoraggio delle colture agricole alla navigazione ad alta velocità dei droni.
Il futuro del rilevamento: Ultralytics YOLO26#
YOLOv5 è un modello iconico, ma la computer vision ha fatto passi avanti. Per tutti i nuovi sviluppi consigliamo vivamente di passare a YOLO26, rilasciato a gennaio 2026. Disponibile direttamente tramite la Ultralytics Platform, YOLO26 ridefinisce completamente l’efficienza.
Innovazioni chiave di YOLO26:
- Design end-to-end senza NMS: la testa opzionale one-to-one di YOLO26 (
nms=False) evita completamente la post-elaborazione con soppressione non massima. Questo riduce la variabilità della latenza e semplifica notevolmente la pipeline di distribuzione. - Inferenza su CPU fino al 43% più veloce: rimuovendo strategicamente la Distribution Focal Loss (DFL), YOLO26 aumenta notevolmente la velocità sui dispositivi edge senza GPU.
- Ottimizzatore MuSGD: ispirato ai principali modelli linguistici di grandi dimensioni, questo ottimizzatore ibrido stabilizza la dinamica dell’addestramento e consente una convergenza molto più rapida sui dataset personalizzati.
- Miglioramenti specifici per i task: include funzioni di perdita avanzate come ProgLoss e STAL, che offrono una precisione senza precedenti sugli oggetti minuscoli. Supporta nativamente il rilevamento di riquadri di delimitazione orientati (OBB) nelle immagini aeree.
Se stai valutando modelli di visione all’avanguardia, potresti voler confrontare anche la generazione precedente YOLO11 o approcci basati su Transformer come RT-DETR. In definitiva, l’ecosistema solido e i progressi architetturali all’avanguardia rendono Ultralytics la scelta migliore per i moderni task di computer vision.