PP-YOLOE+ vs YOLOv5#
Quando scelgono il framework di deep learning giusto per la computer vision, gli sviluppatori spesso si trovano a confrontare le funzionalità di diverse architetture per trovare il perfetto equilibrio tra velocità, accuratezza e facilità di distribuzione. In questo approfondimento esamineremo le differenze tecniche tra PP-YOLOE+ e YOLOv5. Analizzandone le architetture, le metriche delle prestazioni 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 su dispositivi edge o l'analisi video basata sul cloud.
Origini e metadati dei modelli#
Entrambi i modelli provengono da team di ingegneria altamente competenti, ma si rivolgono a ecosistemi leggermente diversi. Comprenderne le origini fornisce un contesto prezioso per 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:
- Autori: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- Documentazione: https://docs.ultralytics.com/models/yolov5
Confronto delle architetture#
Architettura di PP-YOLOE+#
PP-YOLOE+ è un'evoluzione all'interno dell'ecosistema Baidu, costruita sulle fondamenta di modelli precedenti come PP-YOLOv2. Introduce un backbone CSPRepResNet fortemente ottimizzato, che migliora l'estrazione delle caratteristiche combinando i principi delle reti a parzialità tra stadi (CSP) con tecniche di riparametrizzazione. In questo modo il modello mantiene un'elevata accuratezza durante l'addestramento, per poi ridursi a un'architettura più snella e velocizzare l'inferenza.
Inoltre, PP-YOLOE+ utilizza il Task Alignment Learning (TAL) e una testa efficiente allineata al task (ET-head). Questa combinazione mira a risolvere il disallineamento tra le attività di classificazione e localizzazione, un collo di bottiglia comune nei rilevatori densi di oggetti. Sebbene l'architettura sia impressionante dal punto di vista strutturale, è strettamente integrata con il framework PaddlePaddle, il che può creare difficoltà di integrazione per i team che adottano come standard altre librerie ML ampiamente 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'eccezionale flusso del gradiente e l'efficienza dei parametri.
Un elemento distintivo di YOLOv5 è il suo algoritmo AutoAnchor, che controlla e adatta dinamicamente le dimensioni delle anchor box in base al tuo specifico dataset personalizzato prima dell'addestramento. Questo elimina la necessità di ottimizzare manualmente gli iperparametri per le bounding box. Il collo PANet del modello assicura una solida fusione delle caratteristiche a più scale, rendendolo altamente efficace nel rilevare oggetti di dimensioni diverse.
Poiché YOLOv5 è costruito direttamente su PyTorch, l'esportazione in formati ottimizzati come ONNX e TensorRT richiede una configurazione del middleware significativamente inferiore rispetto ai modelli vincolati a framework specifici.
Analisi delle prestazioni#
La valutazione di questi modelli richiede di esaminare il compromesso tra la precisione media media (mAP) e la latenza. La tabella seguente mostra le metriche per 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 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Sebbene PP-YOLOE+ raggiunga punteggi mAP altamente competitivi alle scale maggiori, come la variante X, YOLOv5 offre una velocità superiore e un numero inferiore di parametri all'estremità più piccola dello spettro. YOLOv5 Nano (YOLOv5n) richiede appena 2,6 milioni di parametri, il che lo rende particolarmente adatto ai dispositivi edge con risorse limitate e requisiti di memoria stringenti. Inoltre, l'addestramento dei modelli YOLO in genere utilizza meno memoria CUDA rispetto ad alternative pesanti basate su Transformer, come RT-DETR.
Il vantaggio di Ultralytics#
Quando scegli un'architettura, le metriche grezze sono solo una parte dell'equazione. L'esperienza degli sviluppatori, il supporto dell'ecosistema e le pipeline di distribuzione spesso determinano il successo concreto di un progetto. È qui che i modelli Ultralytics si distinguono.
Semplicità d'uso senza pari#
La API Python di Ultralytics nasconde il complesso codice boilerplate. Gli sviluppatori possono avviare l'addestramento, convalidare le prestazioni e distribuire i modelli senza difficoltà. La documentazione è completa, costantemente aggiornata e supportata da un'enorme comunità open source globale.
Versatilità tra le attività#
Sebbene PP-YOLOE+ sia un rilevatore di oggetti dedicato, l'ecosistema Ultralytics consente agli utenti di affrontare diverse attività di computer vision tramite un'unica API unificata. Con YOLOv5 e i suoi successori, puoi passare senza difficoltà dalle normali bounding box 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
# Load a pretrained YOLOv5 small model
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run fast inference on an image
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 è profondamente integrata nello stack software di Baidu o si affida ampiamente a hardware specializzato che impone l'uso del framework PaddlePaddle, PP-YOLOE+ offre prestazioni solide. Viene spesso utilizzato in pipeline di produzione specializzate in Asia, dove esistono integrazioni legacy con Paddle.
Quando scegliere YOLOv5: Per la stragrande maggioranza degli sviluppatori, ricercatori e aziende internazionali, YOLOv5 rimane una soluzione molto potente. Le sue radici in PyTorch lo rendono immediatamente compatibile con strumenti come Weights & Biases per il monitoraggio e consentono un'esportazione pulita in TensorRT per l'accelerazione su GPU NVIDIA o 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#
Sebbene YOLOv5 sia un modello iconico, la frontiera della computer vision si è evoluta. Per tutti i nuovi sviluppi, consigliamo vivamente di passare a YOLO26, rilasciato a gennaio 2026. Disponibile senza difficoltà tramite la Ultralytics Platform, YOLO26 ridefinisce completamente l'efficienza.
Innovazioni principali di YOLO26:
- Progettazione end-to-end senza NMS: YOLO26 elimina completamente la post-elaborazione della soppressione dei massimi non (NMS). Questo riduce la variabilità della latenza e semplifica drasticamente la pipeline di distribuzione.
- Inferenza su CPU fino al 43% più veloce: Rimuovendo strategicamente la Distribution Focal Loss (DFL), YOLO26 aumenta drasticamente la velocità sui dispositivi edge privi di GPU.
- Ottimizzatore MuSGD: Ispirato ai Large Language Models più avanzati, questo ottimizzatore ibrido stabilizza la dinamica dell'addestramento e consente una convergenza molto più rapida sui dataset personalizzati.
- Miglioramenti specifici per task: Offre funzioni di loss avanzate come ProgLoss e STAL, ottenendo un'accuratezza senza precedenti sugli oggetti di piccole dimensioni. Supporta nativamente il rilevamento di bounding box orientate (OBB) per le immagini aeree.
Se stai esplorando modelli di visione all'avanguardia, potresti essere interessato anche a confrontare la generazione precedente YOLO11 o approcci basati su Transformer come RT-DETR. In definitiva, il solido ecosistema, combinato con i più recenti progressi architetturali, rende Ultralytics la scelta principale per le moderne attività di computer vision.