Vai al contenuto

YOLOv8 vs. PP-YOLOE+: Un Confronto Tecnico

La scelta dell'architettura ottimale per il rilevamento degli oggetti è una decisione fondamentale che influisce sulla precisione, sulla velocità e sulla flessibilità di implementazione delle applicazioni di computer vision. Questa guida fornisce un'analisi tecnica approfondita di Ultralytics YOLOv8 e PP-YOLOE+. Esaminando le innovazioni architetturali, i benchmark delle prestazioni e il supporto dell'ecosistema, ci proponiamo di aiutare sviluppatori e ricercatori a scegliere lo strumento giusto per le loro specifiche esigenze di computer vision.

Ultralytics YOLOv8: Versatilità e prestazioni

Ultralytics YOLOv8 rappresenta un significativo passo avanti nella famiglia YOLO , progettata per essere un framework unificato per un'ampia gamma di attività di visione. Sviluppato da Ultralytics, dà priorità a un'esperienza utente senza soluzione di continuità, senza compromettere le prestazioni allo stato dell'arte (SOTA).

Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione:Ultralytics
Data: 2023-01-10
GitHubultralytics
Docsyolov8

Architettura e caratteristiche principali

YOLOv8 introduce una testa di rilevamento all'avanguardia priva di ancoraggi, che elimina la necessità di configurare manualmente la scatola degli ancoraggi e migliora la convergenza. La struttura portante utilizza un modulo C2f, un progetto di collo di bottiglia parziale a stadi incrociati, che migliora l'efficienza del flusso di gradienti e dell'estrazione delle caratteristiche. A differenza di molti concorrenti, YOLOv8 non si limita al rilevamento degli oggetti, ma supporta in modo nativo la segmentazione delle istanze, la classificazione delle immagini, la stima della posa e le bounding box orientate (OBB).

Costruito sulla base dell'ampiamente adottato PyTorchYOLOv8 beneficia di un vasto ecosistema di strumenti e librerie. Il suo design si concentra sull'efficienza dell'addestramento, richiedendo una quantità di memoria e di tempo di convergenza significativamente inferiore rispetto ai modelli basati su trasformatori o alle vecchie architetture di rilevamento.

Punti di forza

  • Ecosistema e usabilità: Ultralytics offre un'esperienza "a batteria" con una robusta API e una CLI Python .
  • Supporto multi-task: Un unico framework per le attività di rilevamento, segmentazione, classificazione e posa semplifica la pipeline di sviluppo.
  • Flessibilità di distribuzione: Esportazione senza problemi in formati come ONNX, TensorRT, CoreML e OpenVINO garantisce la compatibilità con diversi hardware, dai dispositivi edge ai server cloud.
  • Manutenzione attiva: Aggiornamenti frequenti e una comunità vivace assicurano che il modello rimanga attuale e che i bug vengano risolti rapidamente.

Scopri di più su YOLOv8

PP-YOLOE+: Elevata Accuratezza nell'Ecosistema PaddlePaddle

PP-YOLOE+ è una versione evoluta di PP-YOLOE, sviluppata da Baidu come parte della suite PaddleDetection. Si concentra sul raggiungimento di un'elevata precisione e velocità di inferenza, ottimizzata in modo specifico per il sistema PaddlePaddle. PaddlePaddle per l'apprendimento profondo.

Autori: PaddlePaddle Autori
Organizzazione:Baidu
Data: 2022-04-02
ArXiv:https://arxiv.org/abs/2203.16250
GitHubPaddlePaddle
DocsPaddlePaddle

Architettura e caratteristiche principali

PP-YOLOE+ è un rilevatore a singolo stadio, privo di ancore. Incorpora una spina dorsale CSPRepResNet e un collo Path Aggregation Network (PAN) per una robusta fusione delle caratteristiche. Una caratteristica distintiva è l'Efficient Task-aligned Head (ET-Head), che utilizza il Task Alignment Learning (TAL) per sincronizzare meglio le previsioni di classificazione e localizzazione. Pur essendo potente, il modello è profondamente radicato nell'ecosistema Baidu e si basa in larga misura su operatori e strumenti di ottimizzazione PaddlePaddle.

Punti di forza e debolezze

Punti di forza:

  • Alta precisione: Le varianti più grandi (ad esempio, PP-YOLOE+x) ottengono punteggimAP impressionanti sul set di dati COCO .
  • Ottimizzato per l'hardware Paddle: Le prestazioni sono eccezionali su hardware ottimizzato per il framework di Baidu.

Punti deboli:

  • Blocco del framework: La dipendenza da PaddlePaddle può essere un ostacolo per i team standardizzati su PyTorch o TensorFlow, limitando l'accesso alle più ampie risorse della comunità open-source.
  • Intensità delle risorse: Come illustrato nella sezione sulle prestazioni, i modelli PP-YOLOE+ spesso richiedono un maggior numero di parametri e di operazioni in virgola mobile (FLOP) per ottenere risultati paragonabili a quelli di YOLOv8, con un impatto sull'efficienza dei dispositivi edge AI a risorse limitate.
  • Ambito di attività limitato: Principalmente focalizzato sul rilevamento, manca del supporto integrato e immediato per la segmentazione e la stima della posa che si trova nell'ecosistema Ultralytics .

Scopri di più su PP-YOLOE+

Analisi dei benchmark delle prestazioni

Confrontando YOLOv8 e PP-YOLOE+, il compromesso tra velocità, precisione e dimensioni del modello diventa evidente. YOLOv8 dimostra un'efficienza ingegneristica superiore, fornendo un'accuratezza competitiva o superiore con un numero significativamente inferiore di parametri e FLOP. Questa efficienza si traduce in tempi di addestramento più rapidi, minor consumo di memoria e maggiore velocità di inferenza.

Per esempio, YOLOv8n è un candidato ideale per applicazioni mobili ed embedded, in quanto offre prestazioni in tempo reale con un overhead computazionale minimo. Al contrario, i modelli PP-YOLOE+, come la variante 'x', si spingono oltre i limiti dell'accuratezza, ma lo fanno a costo di essere più pesanti e più lenti, il che potrebbe non essere fattibile per flussi di analisi video in tempo reale.

L'efficienza è importante

Per gli ambienti di produzione, le dimensioni e la velocità del modello sono spesso fondamentali quanto la precisione grezza. L'efficiente architettura di YOLOv8 consente l'implementazione su hardware più piccolo e meno costoso, senza un calo significativo della qualità del rilevamento.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
PP-YOLOE+t64039.9-2.844.8519.15
PP-YOLOE+s64043.7-2.627.9317.36
PP-YOLOE+m64049.8-5.5623.4349.91
PP-YOLOE+l64052.9-8.3652.2110.07
PP-YOLOE+x64054.7-14.398.42206.59

Raccomandazioni sui casi d'uso

  • Sorveglianza in tempo reale: Utilizzo YOLOv8 per il suo equilibrio tra velocità e precisione. Eccelle nel monitoraggio del traffico e nei sistemi di sicurezza dove l'elaborazione di video ad alta velocità è fondamentale.
  • Ispezione industriale: Entrambi i modelli sono utili in questo caso, ma la facilità di addestramento di YOLOv8 su set di dati personalizzati rende più veloce l'adattamento a specifici tipi di difetti di produzione.
  • Distribuzione sui bordi: Grazie alle loro dimensioni compatte, YOLOv8n e YOLOv8s sono la scelta migliore per la distribuzione su dispositivi come Raspberry Pi o NVIDIA Jetson.
  • Pipeline di visione complesse: Se il progetto richiede il tracciamento o la segmentazione degli oggetti oltre al rilevamento, Ultralytics YOLOv8 offre queste funzionalità in modo nativo, evitando di mettere insieme modelli diversi.

Utilizzo e implementazione

Uno dei vantaggi più interessanti di Ultralytics YOLOv8 è la sua API facile da sviluppare. Mentre PP-YOLOE+ richiede la navigazione nella configurazione dell'ecosistema PaddlePaddle , YOLOv8 può essere implementato con poche righe di codice Python . Questo riduce la barriera d'ingresso per i principianti e accelera la prototipazione per gli esperti.

Di seguito è riportato un esempio di come sia semplice caricare un modello YOLOv8 pre-addestrato ed eseguire l'inferenza:

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Run inference on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Display results
results[0].show()

Formazione senza soluzione di continuità

L'addestramento di un modello personalizzato è altrettanto semplice. Ultralytics gestisce automaticamente l'aumento dei dati, la messa a punto degli iperparametri e la gestione dei set di dati, consentendovi di concentrarvi sulla raccolta di dati di alta qualità.

Conclusione

Mentre PP-YOLOE+ è un concorrente formidabile che spinge i confini della precisione di rilevamento all'interno dell'ecosistema Baidu, Ultralytics YOLOv8 emerge come la scelta più pratica e versatile per la comunità globale degli sviluppatori. La sua integrazione con PyTorch, l'efficienza superiore per parametro e il supporto completo per molteplici attività di visione lo rendono uno strumento universale per le moderne applicazioni di IA.

L'ecosistemaUltralytics amplifica ulteriormente questo vantaggio. Grazie a strumenti come Ultralytics HUB per la formazione e la gestione dei modelli e a un'ampia documentazione che vi guida in ogni fase, YOLOv8 garantisce che il vostro progetto passi dall'ideazione alla realizzazione con un attrito minimo. Che si tratti di un'applicazione per smart city o di uno strumento di diagnostica medica, YOLOv8 offre l'equilibrio delle prestazioni e la facilità d'uso necessarie per avere successo.

Esplora altri modelli

Se siete interessati ad ampliare la vostra comprensione del panorama del rilevamento degli oggetti, considerate di esplorare questi altri confronti:


Commenti