Vai al contenuto

YOLOX vs. YOLOv8: progressi nel rilevamento di oggetti ad alte prestazioni

Nel panorama in rapida evoluzione della visione artificiale, è fondamentale selezionare l'architettura giusta per la propria applicazione specifica. Questa guida fornisce un confronto tecnico dettagliato tra YOLOX, un rilevatore ad alte prestazioni senza ancoraggio del 2021, e Ultralytics YOLOv8, un modello all'avanguardia progettato per garantire versatilità, velocità e facilità di implementazione. Sebbene entrambi i modelli abbiano dato un contributo significativo al settore, comprendere le loro differenze architetturali e il supporto dell'ecosistema aiuterà gli sviluppatori a prendere decisioni informate per i progetti reali.

Panoramica generale

YOLOX ha rappresentato un cambiamento significativo nella YOLO , passando a un meccanismo senza ancoraggio e disaccoppiando la testa di previsione. Ciò ha semplificato il processo di progettazione e migliorato le prestazioni rispetto ai suoi contemporanei come YOLOv3 e YOLOv5 v5.0). Tuttavia, YOLOv8 si basa su anni di feedback e ricerche della comunità, integrando funzionalità avanzate come il rilevamento senza ancoraggio, un framework unificato per più attività e un'efficienza di formazione superiore, il tutto supportato dal completo Ultralytics .

YOLOX

Scopri di più su YOLOX

YOLOv8

Scopri di più su YOLOv8

Differenze Architetturali

La differenza fondamentale risiede nel modo in cui questi modelli gestiscono la previsione degli oggetti e l'estrazione delle caratteristiche.

Architettura YOLOX

YOLOX ha introdotto una struttura "decoupled head" (testa disaccoppiata). YOLO tradizionali accoppiavano le attività di classificazione e localizzazione (regressione del bounding box) in un unico ramo. YOLOX le ha separate, sostenendo che il conflitto tra le attività di classificazione e regressione limitava le prestazioni. È inoltre passato a un design senza ancoraggi, trattando il rilevamento degli oggetti come un problema di regressione puntuale, che ha ridotto la complessità della regolazione euristica per gli anchor box. Utilizza SimOTA per l'assegnazione dinamica delle etichette, ottimizzando le previsioni che corrispondono agli oggetti reali.

Architettura YOLOv8

Ultralytics YOLOv8 ulteriormenteYOLOv8 il concetto di anchor-free. Impiega un modulo C2f nella sua struttura portante, che combina il meglio di C3 (da YOLOv5) e ELAN (da YOLOv7) per migliorare il flusso del gradiente mantenendo un ingombro ridotto. Come YOLOX, utilizza una testa disaccoppiata, ma introduce un Task-Aligned Assigner per l'assegnazione delle etichette, che bilancia i punteggi di classificazione e localizzazione in modo più efficace rispetto a SimOTA. Fondamentalmente, YOLOv8 progettato come un framework unificato, che supporta nativamente la segmentazione delle istanze, la stima della posa, il rilevamento di oggetti orientati (OBB) e la classificazione.

Bilanciamento delle prestazioni

Ultralytics raggiungono un equilibrio ottimale tra velocità e precisione. Il backbone C2f in YOLOv8 un'estrazione delle caratteristiche più ricca con un overhead computazionale ridotto rispetto al CSPDarknet utilizzato nelle architetture precedenti.

Confronto delle metriche di performance

La tabella seguente mette a confronto i modelli di rilevamento standard sul COCO . YOLOv8 offre YOLOv8 un mAPval più elevato a velocità di inferenza comparabili o superiori, in particolare su hardware moderno che utilizza TensorRT.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9
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

Nota: le velocità YOLOX sono generalmente indicate su GPU V100, mentre YOLOv8 sono standardizzate suONNX T4 TensorRT10 e CPU ONNX . "params" si riferisce ai parametri (milioni) e "FLOPs" alle operazioni in virgola mobile (miliardi).

Addestramento e facilità d'uso

Uno dei fattori di differenziazione più significativi tra Ultralytics YOLOX e Ultralytics è l'esperienza dello sviluppatore.

Il vantaggio dell'ecosistema Ultralytics

YOLOv8 di Python e di un'interfaccia a riga di comando (CLI) altamente perfezionate. Gli sviluppatori possono passare dall'installazione all'addestramento su un set di dati personalizzato in pochi minuti. L'ecosistema include una perfetta integrazione con strumenti come Weights & Biases per la registrazione e Ultralytics per la gestione dei dati. Inoltre, Ultralytics consente l'addestramento e l'implementazione di modelli basati sul web senza la necessità di complesse configurazioni dell'ambiente locale.

Al contrario, YOLOX è un repository di ricerca più tradizionale. Sebbene potente, spesso richiede una configurazione manuale più complessa degli script di formazione e delle dipendenze ambientali, rendendolo più difficile da utilizzare per i principianti o i team che necessitano di iterazioni rapide.

Esempio di codice: Addestramento YOLOv8

La semplicità Ultralytics consente di ottenere un codice conciso e facile da mantenere.

from ultralytics import YOLO

# Load a model (YOLOv8n)
model = YOLO("yolov8n.pt")

# Train on COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

Requisiti di Memoria

L'efficienza è un principio fondamentale Ultralytics . YOLOv8 ottimizzato per un utilizzo ridotto della memoria durante l'addestramento rispetto a molte altre architetture, inclusi i modelli basati su trasformatori come RT-DETR. Ciò consente ai ricercatori di addestrare batch di dimensioni maggiori su GPU di livello consumer (ad esempio NVIDIA 3060 o 4070), democratizzando l'accesso all'addestramento di modelli ad alte prestazioni.

Casi d'uso reali

La scelta del modello giusto dipende spesso dall'ambiente di implementazione e dai requisiti specifici dell'attività.

Dove YOLOv8 eccelle

  • Applicazioni multi-task: poiché YOLOv8 supporta YOLOv8 la segmentazione e la stima della posa, è ideale per applicazioni complesse come l'analisi sportiva (monitoraggio dei movimenti e della postura dei giocatori) o i veicoli autonomi (segmentazione delle corsie e rilevamento degli oggetti).
  • Distribuzione Edge: con esportazione tramite comando singolo in formati come ONNX, TensorRT, CoreML e TFLite, YOLOv8 fortemente ottimizzato per dispositivi edge come Raspberry Pi e telefoni cellulari.
  • Prototipazione rapida: la facilità d'uso e i pesi pre-addestrati lo rendono la scelta ideale per le startup e i team agili che hanno bisogno di convalidare rapidamente le idee.

Dove si inserisce YOLOX

  • Linee guida di ricerca tradizionali: YOLOX rimane una solida linea guida per gli articoli accademici che mettono a confronto architetture senza anchor dell'era 2021.
  • Implementazioni personalizzate specifiche: per gli utenti che hanno investito molto nel framework MegEngine (anche se PyTorch supportato anche PyTorch ), YOLOX offre compatibilità nativa.

Prospettive Future: La Potenza di YOLO26

Sebbene YOLOv8 uno standard robusto e ampiamente utilizzato, Ultralytics a innovare. Il nuovo YOLO26 rappresenta il prossimo passo avanti.

Per gli sviluppatori alla ricerca del massimo in termini di prestazioni, YOLO26 offre diversi vantaggi fondamentali rispetto sia a YOLOX che a YOLOv8:

  1. End-to-End NMS: YOLO26 è nativamente end-to-end, eliminando la necessità di post-elaborazione con soppressione non massima (NMS). Ciò riduce la variabilità della latenza e semplifica le pipeline di implementazione.
  2. CPU più veloce: ottimizzato per l'edge computing, YOLO26 offre CPU fino al 43% più veloce, rendendolo superiore per i dispositivi senza GPU dedicate.
  3. Ottimizzatore MuSGD: ispirato alle innovazioni nella formazione LLM, l'ottimizzatore MuSGD garantisce una formazione più stabile e una convergenza più rapida.
  4. Rilevamento avanzato di oggetti di piccole dimensioni: grazie alle funzioni ProgLoss + STAL, YOLO26 offre notevoli miglioramenti nel riconoscimento di oggetti di piccole dimensioni, fondamentale per le immagini aeree e le attività di ispezione.

Scopri di più su YOLO26

Conclusione

Sia YOLOX che YOLOv8 svolto un ruolo fondamentale nel progresso del rilevamento degli oggetti. YOLOX ha diffuso con successo i meccanismi di rilevamento senza ancoraggi. Tuttavia, YOLOv8 offre una soluzione più completa, intuitiva e versatile per lo sviluppo dell'intelligenza artificiale moderna. La sua integrazione Ultralytics , il supporto per molteplici attività di visione e le opzioni di implementazione senza soluzione di continuità lo rendono la scelta preferita per la maggior parte delle applicazioni commerciali e di ricerca odierne.

Per chi è pronto ad adottare la tecnologia AI di visione più avanzata, consigliamo vivamente di provare YOLO26 per rendere le vostre applicazioni a prova di futuro con velocità ed efficienza NMS.

Vedi anche


Commenti