YOLO YOLOX: un'analisi approfondita del rilevamento di oggetti senza ancoraggi
L'evoluzione del rilevamento di oggetti in tempo reale è stata caratterizzata da un passaggio da sistemi complessi basati su anchor ad architetture semplificate senza anchor. Due tappe fondamentali in questo percorso sono YOLO, sviluppato da Alibaba Group, e YOLOX, creato da Megvii. Entrambi i modelli sfidano i paradigmi di progettazione tradizionali, offrendo approcci unici all'estrazione delle caratteristiche, all'assegnazione delle etichette e all'efficienza dell'addestramento.
Questo confronto dettagliato esplora le loro innovazioni architetturali, le metriche delle prestazioni e i casi d'uso ideali per aiutarti a decidere quale modello si adatta alle tue specifiche esigenze di visione artificiale. Sebbene entrambi abbiano un significato storico, esploreremo anche come soluzioni moderne come Ultralytics abbiano sintetizzato questi progressi in un ecosistema più robusto e pronto per la produzione.
Panoramica su DAMO-YOLO
YOLO (Distillation-Enhanced Neural Architecture Search-based YOLO) rappresenta un approccio ad alte prestazioni che combina la ricerca dell'architettura neurale (NAS) con tecniche di addestramento avanzate. È stato progettato per superare i limiti di velocità e precisione automatizzando la progettazione delle strutture backbone e neck.
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione:Alibaba Group
- Data: 2022-11-23
- Arxiv:DAMO-YOLO: A Report on Real-Time Object Detection Design
- GitHub:Repository DAMO-YOLO
Caratteristiche principali diYOLO
- Backbone MAE-NAS: a differenza dei backbone progettati manualmente,YOLO un approccio Masked Autoencoder (MAE) all'interno di un framework Neural Architecture Search. Ciò si traduce in una struttura altamente ottimizzata per l'estrazione di caratteristiche spaziali con un overhead computazionale minimo.
- RepGFPN efficiente: il modello utilizza una rete piramidale generalizzata riparametrizzata (RepGFPN). Ciò migliora la fusione delle caratteristiche su scale diverse, fondamentale per rilevare oggetti di dimensioni variabili, mantenendo bassa la latenza di inferenza attraverso la riparametrizzazione durante l'implementazione.
- ZeroHead: la testa di rilevamento è notevolmente semplificata ("ZeroHead"), riducendo il numero di parametri necessari per la regressione e la classificazione del bounding box finale.
- AlignedOTA: una strategia dinamica di assegnazione delle etichette denominata Aligned One-to-Many Assignment garantisce che i campioni positivi vengano assegnati in modo più accurato durante l'addestramento, risolvendo le ambiguità nelle scene affollate.
Miglioramento della distillazione
Una delle caratteristiche distintiveYOLO è il suo forte ricorso alla distillazione della conoscenza. Un modello "insegnante" più grande guida l'addestramento del modello "studente" più piccolo. Sebbene ciò aumenti la precisione, complica notevolmente il processo di addestramento rispetto ai metodi di addestramento standard "bag-of-freebies".
Panoramica di YOLOX
YOLOX è stata una versione fondamentale che ha introdotto i meccanismi senza ancoraggio nella YOLO mainstream. Separando le teste di previsione e rimuovendo i riquadri di ancoraggio, ha semplificato il processo di progettazione e migliorato le prestazioni, in particolare per gli sviluppatori abituati alla complessità della regolazione dell'ancoraggio.
- Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
- Organizzazione:Megvii
- Data: 2021-07-18
- Arxiv:YOLOX: Exceeding YOLO Series in 2021
- GitHub:Repository YOLOX
Caratteristiche principali di YOLOX
- Design senza ancoraggi: prevedendo direttamente i centri degli oggetti anziché gli offset da riquadri di ancoraggio predefiniti, YOLOX elimina la necessità di analisi di clustering (come K-means) per determinare le forme di ancoraggio ottimali per i set di dati personalizzati.
- Testa disaccoppiata: YOLOX separa le attività di classificazione e localizzazione in diversi rami della testa della rete. Questa separazione risolve il conflitto tra i requisiti delle caratteristiche per classificare un oggetto e quelli per determinarne i confini precisi.
- SimOTA: una strategia semplificata di assegnazione ottimale del trasporto che assegna dinamicamente campioni positivi sulla base di un costo di ottimizzazione globale, bilanciando la qualità della classificazione e della regressione.
- Potente aumento dei dati: YOLOX utilizza ampiamente MixUp Mosaic e MixUp , che sono stati fondamentali per la sua capacità di addestrare efficacemente senza backbone pre-addestrati in alcune configurazioni.
Confronto tecnico: prestazioni e velocità
Confrontando queste due architetture,YOLO superaYOLO YOLOX in termini di compromesso tra accuratezza e latenza, soprattutto grazie al fatto di essere stato rilasciato più tardi e di incorporare tecnologie NAS. Tuttavia, YOLOX rimane uno dei preferiti per la sua semplicità architettonica e la leggibilità del codice.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Architettura e complessità della formazione
YOLOX è apprezzato per la sua implementazione "pulita". Si tratta di un PyTorch puro, facile da modificare per scopi di ricerca. Il suo processo di addestramento è semplice e richiede una regolazione standard degli iperparametri.
YOLO, al contrario, introduce una notevole complessità. La dipendenza dalla ricerca dell'architettura neurale (NAS) significa che la struttura portante non è una struttura standard fissa come ResNet o CSPDarknet. Inoltre, il processo di distillazione richiede prima l'addestramento di un modello teacher pesante per supervisionare il modello student leggero. Ciò raddoppia le risorse computazionali necessarie per l'addestramento e rende difficile per gli utenti con GPU limitato GPU replicare i risultati del documento su set di dati personalizzati.
Ultralytics di Ultralytics : oltre i modelli di ricerca
SebbeneYOLO YOLOX offrano preziose informazioni accademiche, lo sviluppo aziendale moderno richiede molto più che semplici metriche grezze. Gli sviluppatori hanno bisogno di stabilità, facilità d'uso e un ecosistema completo. È qui che Ultralytics si distingue come la scelta migliore.
Facilità d'uso ed ecosistema senza pari
L'addestramento diYOLO spesso comporta file di configurazione complessi e pipeline di distillazione in più fasi. Al contrario, la Ultralytics e Python offrono un'esperienza "zero-to-hero". Sia che utilizziate la CLI Python, l'avvio di un ciclo di addestramento richiede pochi secondi.
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Train on a dataset with a single command
results = model.train(data="coco8.yaml", epochs=100)
Ultralytics è gestito in modo attivo, garantendo la compatibilità con le ultime versioni di PyTorch, CUDA e Apple Metal. A differenza dei repository di ricerca che spesso rimangono inattivi dopo la pubblicazione, Ultralytics ricevono aggiornamenti frequenti, correzioni di bug e ottimizzazioni delle prestazioni.
Equilibrio prestazionale e versatilità
YOLO26 rappresenta il massimo in termini di efficienza. È caratterizzato da un design end-to-end NMS, una svolta innovativa introdotta per la prima volta in YOLOv10. Eliminando la post-elaborazione Non-Maximum Suppression (NMS), YOLO26 riduce la varianza della latenza di inferenza e semplifica la logica di implementazione, risolvendo uno dei principali punti deboli riscontrati sia in YOLOX che inYOLO.
Inoltre, YOLO26 è ottimizzato per hardware che va oltre le GPU di livello server. Offre CPU fino al 43% più veloce, rendendolo il candidato ideale per dispositivi edge, Raspberry Pi e applicazioni mobili in cui la durata della batteria e i vincoli termici sono fondamentali.
Mentre YOLOX eYOLO principalmente rilevatori di oggetti, il Ultralytics fornisce supporto nativo per un'ampia gamma di attività:
- Segmentazione delle istanze
- Stima della posa (punti chiave)
- Oriented Bounding Box (OBB)
- Classificazione delle immagini
Applicazioni nel mondo reale
La scelta del modello giusto dipende in larga misura dai vincoli specifici del proprio ambiente di implementazione.
Casi d'uso ideali perYOLO
- Server ad alta produttività: la struttura ottimizzata RepGFPN consente un FPS molto elevato su hardware dedicato TensorRT(come NVIDIA o A100), rendendolo adatto all'elaborazione di archivi video di grandi dimensioni.
- Scene affollate: l'assegnazione dell'etichetta AlignedOTA è utile in scenari con elevata occlusione degli oggetti, come il conteggio delle persone in una folla densa o il monitoraggio del bestiame.
Casi d'Uso Ideali per YOLOX
- Ricerca accademica: il suo codice pulito lo rende un'ottima base di partenza per i ricercatori che desiderano testare nuove funzioni di perdita o modifiche alla struttura portante senza il sovraccarico del NAS.
- Supporto mobile legacy: le varianti YOLOX-Nano e Tiny utilizzano convoluzioni separabili in profondità che sono storicamente ben supportate sulle Android mobili più vecchie tramite NCNN.
Perché Ultralytics è lo standard moderno
Per quasi tutti i nuovi progetti commerciali e industriali, YOLO26 è la soluzione consigliata.
- Edge Computing e IoT: l'eliminazione della Distribution Focal Loss (DFL) e le nuove funzioni ProgLoss + STAL rendono YOLO26 eccezionalmente stabile sui dispositivi a bassa potenza. Eccelle nella robotica e nella navigazione dei droni, dove CPU sono preziosi.
- Cicli di sviluppo rapidi: l'integrazione con la Ultralytics consente ai team di etichettare i dati, addestrare i modelli e distribuirli in formati come ONNX o CoreML un flusso di lavoro unificato, riducendo drasticamente il time-to-market.
- Compiti complessi: che si tratti di detect di un pacco (OBB) o di analizzare la postura di un lavoratore (Pose), YOLO26 gestisce questi compiti complessi all'interno di un unico framework efficiente in termini di memoria, a differenza della natura specializzata e dedicata esclusivamente al rilevamento diYOLO.
Conclusione
SiaYOLO YOLOX hanno svolto un ruolo cruciale nella storia del rilevamento degli oggetti, dimostrando che i progetti senza ancoraggio potevano ottenere risultati all'avanguardia. Tuttavia, il settore è in rapida evoluzione.
Ultralytics si basa su queste lezioni, incorporando la stabilità dell'ottimizzatore MuSGD (ispirato alla formazione LLM) e la semplicità dell'architettura NMS. Per gli sviluppatori che cercano il miglior equilibrio tra precisione, velocità e facilità d'uso, YOLO26 offre una soluzione a prova di futuro supportata da una comunità fiorente e da una documentazione completa.
Per ulteriori informazioni sul Ultralytics e altre architetture, consulta i nostri confronti con EfficientDet, YOLOv6e RT-DETR.