DAMO-YOLO vs YOLOX#
Il panorama della computer vision in tempo reale è in continua evoluzione. Due importanti traguardi in questo percorso sono DAMO-YOLO e YOLOX, ciascuno dei quali introduce innovazioni uniche nel rilevamento degli oggetti ad alta velocità e precisione. Sebbene entrambi i modelli abbiano contribuito significativamente alla comunità open source, per gli ingegneri del machine learning è fondamentale comprenderne le differenze architetturali, le metodologie di addestramento e gli scenari di deployment ideali.
Questa guida completa analizza le peculiarità tecniche di entrambi i modelli e mette in evidenza perché le alternative moderne come la piattaforma Ultralytics YOLO26 offrano prestazioni e facilità d'uso superiori negli attuali ambienti di produzione.
Panoramica dei modelli#
Dettagli su DAMO-YOLO#
Sviluppato da un team di ricercatori di Alibaba Group, DAMO-YOLO è stato introdotto come un metodo di rilevamento degli oggetti altamente efficiente che sfrutta la scoperta automatica dell'architettura.
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione: Alibaba Group
- Data: 2022-11-23
- Arxiv: https://arxiv.org/abs/2211.15444v2
- GitHub: https://github.com/tinyvision/DAMO-YOLO
- Documentazione: Documentazione di DAMO-YOLO
Dettagli su YOLOX#
Creato da ricercatori di Megvii, YOLOX mirava a colmare il divario tra la ricerca e le comunità industriali passando la serie YOLO a un design privo di ancore, semplificando drasticamente l'architettura pur ottenendo prestazioni migliori all'epoca.
- Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
- Organizzazione: Megvii
- Data: 2021-07-18
- Arxiv: https://arxiv.org/abs/2107.08430
- GitHub: https://github.com/Megvii-BaseDetection/YOLOX
- Documentazione: Documentazione di YOLOX
Analisi dell'architettura#
Architettura di DAMO-YOLO#
DAMO-YOLO si basa ampiamente sulla Ricerca dell'architettura neurale (NAS). I componenti principali includono:
- Backbone MAE-NAS: Utilizza una ricerca guidata dall'entropia massima per scoprire backbone che offrono il bilanciamento ottimale tra velocità di inferenza e precisione.
- Efficient RepGFPN: un design del neck pesante adattato per la fusione delle feature, che aiuta il modello a mantenere un'elevata precisione su scale diverse degli oggetti.
- ZeroHead: una detection head semplificata e leggera che riduce il sovraccarico computazionale nei livelli finali di predizione.
Architettura di YOLOX#
YOLOX ha adottato un approccio diverso, concentrandosi sulla semplicità strutturale e su un design senza anchor:
- Meccanismo senza anchor: prevedendo direttamente le coordinate dei riquadri di delimitazione senza anchor predefiniti, YOLOX riduce il numero di parametri di progettazione e la regolazione euristica necessaria.
- Head disaccoppiata: separa le attività di classificazione e regressione in diversi rami di feature, migliorando la velocità di convergenza e la precisione complessiva.
- Assegnazione delle label SimOTA: una strategia avanzata di assegnazione delle label che distribuisce dinamicamente i campioni positivi ai ground truth, migliorando l'efficienza dell'addestramento.
Mentre DAMO-YOLO utilizza ricerche NAS guidate dalle macchine per trovare architetture ottimali in condizioni di vincoli stringenti, YOLOX sfrutta semplificazioni eleganti progettate dall'uomo, come le head senza anchor, per ottimizzare la pipeline di rilevamento degli oggetti.
Confronto delle prestazioni#
La valutazione di questi modelli richiede l'analisi della precisione media (mAP), delle velocità di inferenza e del numero di parametri. Di seguito è riportata una tabella di confronto dettagliata delle varianti standard e leggere di entrambe le architetture.
| 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 |
Sebbene YOLOXx raggiunga la mAP assoluta più alta, pari a 51.1, DAMO-YOLOl offre una mAP altamente competitiva di 50.8 con meno della metà dei parametri (42.1M contro 99.1M) e un'esecuzione TensorRT significativamente più veloce.
Metodologie di addestramento#
Addestramento di DAMO-YOLO#
DAMO-YOLO utilizza un complesso potenziamento tramite distillazione durante l'addestramento. Spesso, prima viene addestrato un modello "teacher" di grandi dimensioni, quindi la sua conoscenza viene distillata nei modelli "student" più piccoli. Utilizza inoltre AlignedOTA per l'assegnazione dinamica delle label. Sebbene questo processo di addestramento a più fasi sia altamente efficace, aumenta drasticamente il tempo di calcolo su GPU e il sovraccarico di memoria necessari.
Addestramento di YOLOX#
YOLOX si basa su solide strategie di data augmentation come MixUp e Mosaic. Tuttavia, gli autori hanno scoperto che disattivare queste forti augmentation nelle ultime 15 epoche consente al modello di ridurre il divario con la realtà, aumentando significativamente le metriche di precisione finali.
Casi d'uso ideali#
- DAMO-YOLO: è più adatto ai deployment industriali ad alta criticità, in cui è possibile supportare pipeline di distillazione lato server e l'hardware di destinazione, come specifiche GPU NVIDIA, beneficia direttamente della sua architettura NAS con neck pesante.
- YOLOX: eccellente per gli sviluppatori che cercano un approccio completamente senza anchor. Il componente estremamente leggero
YOLOXnanolo rende adatto ai dispositivi Android obsoleti, all'edge computing e ai sensori IoT con risorse fortemente limitate, in cui il numero di parametri rappresenta il principale collo di bottiglia.
Il vantaggio di Ultralytics: entra in scena YOLO26#
Sebbene DAMO-YOLO e YOLOX rappresentino importanti traguardi, oggi gli sviluppatori richiedono soluzioni più complete, versatili e facili da usare. È qui che brillano la Ultralytics Platform e la nuova Ultralytics YOLO26.
Rilasciato a gennaio 2026, YOLO26 è il modello consigliato per eccellenza per tutte le attività di computer vision. Introduce una serie di innovazioni che superano le architetture precedenti:
- Design end-to-end senza NMS: YOLO26 elimina nativamente il post-processing della Soppressione non massima (NMS). Ciò consente un deployment significativamente più semplice e veloce, evitando i colli di bottiglia della latenza intrinseci nelle detection head tradizionali.
- Inferenza su CPU fino al 43% più veloce: rimuovendo strategicamente la Perdita focale della distribuzione (DFL) e ottimizzando i layer, YOLO26 offre velocità senza pari su CPU e hardware edge.
- Ottimizzatore MuSGD: ispirato alle tecniche di addestramento dei modelli linguistici di grandi dimensioni (LLM), YOLO26 introduce l'ottimizzatore MuSGD, una combinazione ibrida di SGD e Muon, che produce sessioni di addestramento altamente stabili e una convergenza molto più rapida rispetto alle configurazioni precedenti di YOLOX.
- ProgLoss + STAL: queste funzioni di loss avanzate migliorano significativamente il riconoscimento degli oggetti piccoli, rendendo YOLO26 nettamente superiore per le riprese con droni e la robotica.
- Versatilità: a differenza di DAMO-YOLO, strettamente dedicato al rilevamento degli oggetti, YOLO26 gestisce senza soluzione di continuità la segmentazione delle istanze, la stima della posa, la classificazione e i riquadri di delimitazione orientati (OBB) nativamente all'interno dello stesso ecosistema ben mantenuto.
Facilità d'uso con Ultralytics#
L'API Python di Ultralytics semplifica l'esperienza degli sviluppatori. L'addestramento di un modello YOLO26 all'avanguardia richiede molto meno codice boilerplate ed evita le complesse pipeline di distillazione di DAMO-YOLO. Inoltre, rispetto ai modelli pesanti basati su Transformer, i modelli Ultralytics richiedono una quantità di memoria CUDA eccezionalmente ridotta durante l'addestramento.
from ultralytics import YOLO
# Load the latest Ultralytics YOLO26 nano model
model = YOLO("yolo26n.pt")
# Train the model on your custom dataset with one line of code
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run fast, NMS-free inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Export to ONNX or TensorRT seamlessly
model.export(format="onnx")Puoi annotare, addestrare e distribuire automaticamente i modelli sull'edge usando la Ultralytics Platform, che gestisce per te tutte le operazioni di versioning dei dati e provisioning delle GPU cloud.
Conclusioni#
La scelta tra DAMO-YOLO e YOLOX dipende da vincoli specifici: DAMO-YOLO offre rapporti velocità-precisione eccezionali su determinate GPU grazie al NAS, mentre YOLOX fornisce un design pulito e senza anchor, ideale per scenari edge leggeri.
Tuttavia, per i team che cercano una soluzione moderna, a prova di futuro e dotata di una comunità attiva, l'architettura Ultralytics YOLO26 è la scelta definitiva. Il suo design senza NMS, la rapida inferenza su CPU e l'API unificata per le attività di rilevamento, segmentazione e stima della posa la rendono senza pari per passare agevolmente dalla ricerca a una solida produzione nel mondo reale.
Per gli sviluppatori interessati a esplorare altre architetture moderne, consigliamo anche di dare un'occhiata a Ultralytics YOLO11 o a modelli basati su Transformer come RT-DETR, disponibili nella documentazione completa di Ultralytics.