YOLOv5 vs PP-YOLOE+#
La scelta dell’architettura di rete neurale giusta è essenziale per ogni moderno progetto di computer vision. Quando valutano i modelli per il rilevamento di oggetti in tempo reale, gli sviluppatori e i ricercatori devono spesso trovare un equilibrio tra precisione, velocità di inferenza e facilità di distribuzione. Questo confronto tecnico esamina YOLOv5 e PP-YOLOE+, analizzandone le architetture, le metriche di prestazione e le metodologie di addestramento per aiutarti a scegliere la soluzione ottimale per la tua applicazione.
Comprendere le architetture#
Entrambi i modelli hanno avuto un impatto significativo nel campo dell’IA per la computer vision, ma affrontano le sfide del rilevamento degli oggetti adottando metodologie strutturali e dipendenze dai framework differenti.
Ultralytics YOLOv5: lo standard del settore#
Rilasciato a metà del 2020, Ultralytics YOLOv5 ha rivoluzionato l’accessibilità dei modelli di computer vision all’avanguardia. Sviluppato nativamente in PyTorch, ha abbassato notevolmente la soglia di accesso per gli sviluppatori Python e gli ingegneri ML di tutto il mondo.
Dettagli di YOLOv5:
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: ultralytics/yolov5
- Documentazione: Documentazione di YOLOv5
YOLOv5 utilizza un backbone CSPDarknet modificato, che acquisisce in modo efficiente rappresentazioni ricche di caratteristiche mantenendo ridotto il numero di parametri. Ha introdotto gli anchor box ad apprendimento automatico, calcolando automaticamente le dimensioni ottimali degli anchor per i dataset personalizzati prima ancora che inizi l’addestramento. Inoltre, l’integrazione dell’aumento dei dati Mosaic migliora notevolmente la capacità del modello di rilevare oggetti più piccoli e generalizzare in contesti spaziali complessi.
Uno dei maggiori punti di forza di YOLOv5 è la sua straordinaria versatilità. A differenza dei rilevatori di oggetti standard, la famiglia YOLOv5 supporta senza problemi la classificazione delle immagini, la segmentazione di istanze e il rilevamento dei riquadri di delimitazione tramite un’API unificata. Rispetto alle pesanti reti basate su Transformer, la sua architettura altamente ottimizzata comporta inoltre un consumo di memoria notevolmente inferiore durante l’addestramento e l’inferenza.
PP-YOLOE+: il concorrente basato su PaddlePaddle#
Introdotto circa due anni dopo, PP-YOLOE+ si basa sulle fondamenta delle precedenti versioni di PP-YOLO. Sviluppato per mostrare le capacità del framework di deep learning di Baidu, introduce diversi perfezionamenti architetturali per aumentare la precisione media.
Dettagli su PP-YOLOE+:
- Autori: Autori di PaddlePaddle
- Organizzazione: Baidu
- Data: 2022-04-02
- Arxiv: 2203.16250
- GitHub: PaddlePaddle/PaddleDetection
- Documentazione: README di PP-YOLOE+
PP-YOLOE+ adotta un paradigma senza anchor e utilizza un backbone CSPRepResNet. Integra una potente tecnica di Task Alignment Learning e una Efficient Task-aligned Head per migliorare la precisione. Sebbene PP-YOLOE+ raggiunga risultati di precisione impressionanti, il suo principale punto debole è la dipendenza esclusiva dal framework PaddlePaddle. Questo spesso comporta una curva di apprendimento ripida e difficoltà di integrazione nell’ecosistema per i team di ricerca e le aziende che utilizzano già ampiamente PyTorch o TensorFlow.
Prestazioni e benchmark#
Quando valuti questi modelli per la produzione, è fondamentale comprendere i compromessi tra precisione, velocità di inferenza e numero di parametri. La tabella seguente presenta le principali metriche di prestazione per le diverse varianti di dimensioni.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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+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 |
Sebbene PP-YOLOE+ raggiunga livelli di precisione elevati, YOLOv5 dimostra costantemente un’inferenza TensorRT più veloce a ogni scala del modello. Per le distribuzioni edge in cui la memoria è scarsa, YOLOv5n offre una velocità senza pari e un ingombro estremamente ridotto.
I modelli Ultralytics sono progettati specificamente per garantire un addestramento efficiente. Rispetto ai pesanti Vision Transformer come RT-DETR, YOLOv5 utilizza molta meno memoria CUDA, consentendoti di addestrare con batch di dimensioni maggiori o su hardware di fascia consumer.
I vantaggi di Ultralytics: ecosistema e facilità d'uso#
Il vero valore di un’architettura di machine learning va oltre i semplici numeri: comprende l’intera esperienza di sviluppo. La piattaforma Ultralytics e i relativi strumenti open source offrono un ecosistema curato e ben mantenuto che accelera notevolmente i cicli di sviluppo.
- Facilità d’uso: Ultralytics si occupa del codice boilerplate complesso. Puoi addestrare, convalidare e testare i modelli tramite un’intuitiva API Python o la CLI.
- Flessibilità di distribuzione: Esportare i modelli è estremamente semplice. Con un solo comando, puoi convertire i pesi del tuo YOLOv5 addestrato in formati come ONNX, TensorRT o OpenVINO, garantendo un’ampia compatibilità negli ambienti edge e cloud.
- Community attiva: La vivace community garantisce aggiornamenti frequenti, documentazione completa e soluzioni solide alle sfide comuni della computer vision.
Al contrario, PP-YOLOE+ dipende fortemente dai complessi file di configurazione specifici di PaddleDetection, che possono rallentare la prototipazione rapida e complicare l’integrazione nelle moderne pipeline MLOps.
Implementazioni pratiche ed esempi di codice#
Iniziare a usare Ultralytics è davvero semplice. Ecco un esempio completo ed eseguibile che mostra come caricare un modello YOLOv5 preaddestrato, addestrarlo su un dataset personalizzato ed esportare i risultati:
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 per 50 epoche
train_results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Esegui l'inferenza su un'immagine di esempio
predict_results = model("https://ultralytics.com/images/bus.jpg")
# Esporta il modello ottimizzato in formato ONNX
path = model.export(format="onnx")Casi d'uso e consigli#
La scelta tra YOLOv5 e PP-YOLOE+ dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze relative all’ecosistema.
Quando scegliere YOLOv5#
YOLOv5 è un'ottima scelta per:
- Sistemi di produzione collaudati: distribuzioni esistenti in cui sono apprezzati lo storico di stabilità di YOLOv5, la documentazione esaustiva e il vasto supporto della community.
- Addestramento con risorse limitate: ambienti con risorse GPU limitate, in cui la pipeline di addestramento efficiente e i requisiti di memoria ridotti di YOLOv5 sono vantaggiosi.
- Ampio supporto dei formati di esportazione: progetti che richiedono la distribuzione in numerosi formati, tra cui ONNX, TensorRT, CoreML e LiteRT.
Quando scegliere PP-YOLOE+#
PP-YOLOE+ è consigliato per:
- Integrazione con l'ecosistema PaddlePaddle: Organizzazioni che dispongono già di un'infrastruttura basata sul framework e sugli strumenti PaddlePaddle di Baidu.
- Distribuzione edge con Paddle Lite: Distribuzione su hardware con kernel di inferenza altamente ottimizzati specificamente per Paddle Lite o per il motore di inferenza Paddle.
- Rilevamento lato server ad alta accuratezza: Scenari che privilegiano la massima accuratezza di rilevamento su potenti server GPU, dove la dipendenza dal framework non è un problema.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la combinazione migliore di prestazioni ed esperienza per gli sviluppatori:
- Distribuzione edge senza NMS: applicazioni che richiedono inferenza costante a bassa latenza senza la complessità della post-elaborazione con soppressione non massima.
- Ambienti con sola CPU: dispositivi senza accelerazione GPU dedicata, sui quali l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di oggetti di piccole dimensioni: scenari complessi come le immagini aeree acquisite da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano notevolmente la precisione sugli oggetti molto piccoli.
Altri modelli all’avanguardia da prendere in considerazione#
Sebbene YOLOv5 sia uno standard affidabile e collaudato, il campo della computer vision evolve rapidamente. Ai team che avviano nuovi progetti consigliamo vivamente di esplorare le nostre architetture più recenti.
Ultralytics YOLO26#
Rilasciato a gennaio 2026, YOLO26 rappresenta il vertice assoluto della nostra ricerca. Offre enormi miglioramenti sia in termini di precisione che di velocità. Tra le innovazioni principali:
- Design end-to-end senza NMS: Basata sui concetti introdotti da YOLOv10, la head one-to-one opzionale di YOLO26 (
nms=False) salta il post-processing della soppressione non massima (NMS), riducendo la latenza e semplificando la logica di distribuzione. - Rimozione della DFL: Eliminando la Distribution Focal Loss, YOLO26 raggiunge un’inferenza su CPU fino al 43% più veloce, offrendo prestazioni eccezionali sui dispositivi edge a basso consumo.
- Ottimizzatore MuSGD: Ispirato alle tecniche avanzate di addestramento degli LLM, questo ibrido di SGD e Muon garantisce addestramenti eccezionalmente stabili e una convergenza più rapida.
- ProgLoss + STAL: Queste funzioni di perdita avanzate migliorano notevolmente il riconoscimento degli oggetti di piccole dimensioni, fondamentale per le immagini acquisite con i droni e l’agricoltura intelligente.
Potresti inoltre prendere in considerazione YOLO11, che offre prestazioni eccellenti e rappresenta un ponte estremamente affidabile tra i sistemi legacy e le funzionalità all’avanguardia di YOLO26.
Casi d’uso nel mondo reale#
La scelta tra YOLOv5 e PP-YOLOE+ dipende in definitiva dall’ambiente di distribuzione e dai vincoli del progetto.
Applicazioni ideali per YOLOv5: I requisiti minimi in termini di risorse e la straordinaria facilità d’uso rendono YOLOv5 la scelta migliore per l’IA edge. È ideale per le applicazioni che richiedono frame rate elevati su hardware limitato, come la robotica in tempo reale, l’integrazione nelle applicazioni mobili e i sistemi di monitoraggio del traffico con più telecamere. La capacità di gestire la segmentazione di istanze e la classificazione delle immagini all’interno dello stesso framework lo rende estremamente adattabile.
Applicazioni ideali per PP-YOLOE+: PP-YOLOE+ è più adatto agli scenari in cui la priorità è la massima precisione possibile sulle immagini statiche, a scapito dei vincoli di elaborazione in tempo reale. Trova applicazioni di nicchia nelle pipeline di ispezione industriale, in particolare nei settori manifatturieri asiatici che dispongono già di stack tecnologici fortemente orientati all’ecosistema Baidu e PaddlePaddle.
In sintesi, sebbene PP-YOLOE+ offra ottimi risultati di precisione, i modelli Ultralytics YOLO garantiscono una combinazione senza pari di prestazioni equilibrate, facilità di distribuzione e design pensato per gli sviluppatori, che permette di portare con successo i progetti di computer vision dall’ideazione alla produzione.