YOLOv8 vs. DAMO-YOLO: Un confronto tecnico completo sui modelli di object detection
Il panorama della computer vision è in continua evoluzione, con nuove architetture che spingono i limiti di ciò che è possibile fare su dispositivi edge e cluster cloud su larga scala. In questo approfondimento tecnico, confrontiamo due modelli di object detection in tempo reale di rilievo: YOLOv8 e DAMO-YOLO. Esaminando le loro architetture, metriche di prestazione e metodologie di addestramento, gli ingegneri ML possono prendere decisioni informate per le proprie pipeline di distribuzione.
Background e origini dei modelli
Entrambi i modelli sono stati introdotti nello stesso periodo ma derivano da filosofie di progettazione e obiettivi di ricerca differenti.
Dettagli di YOLOv8
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2023-01-10
- GitHub: Repository GitHub di Ultralytics
- Documentazione: Documentazione ufficiale YOLOv8
Dettagli su DAMO-YOLO
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione: Alibaba Group
- Data: 23-11-2022
- Arxiv: Documento di ricerca su DAMO-YOLO
- GitHub: Repository GitHub di DAMO-YOLO
Innovazioni architettoniche
YOLOv8: Design versatile senza anchor
Ultralytics YOLOv8 ha introdotto miglioramenti significativi rispetto ai suoi predecessori, consolidando il suo status di modello all'avanguardia altamente affidabile. Presenta una head di rilevamento senza anchor, che riduce il numero di previsioni di riquadri e velocizza l'inferenza. L'architettura utilizza una head disaccoppiata, che separa le attività di objectness, classificazione e regressione, portando a previsioni dei bounding box più accurate.
Inoltre, YOLOv8 implementa Distribution Focal Loss (DFL) insieme alla loss CIoU, migliorando la capacità del modello di localizzare con precisione i confini degli oggetti, specialmente per target più piccoli o occlusi. Il suo backbone snello è altamente ottimizzato per l'esecuzione sia su GPU che su CPU.
DAMO-YOLO: Guidato dalla ricerca di architetture
DAMO-YOLO adotta un approccio diverso, facendo affidamento pesantemente sulla Neural Architecture Search (NAS) per progettare automaticamente il proprio backbone. Il team di Alibaba ha introdotto "MAE-NAS" per trovare strutture che offrano compromessi ottimali tra latenza e precisione specificamente sotto l'accelerazione TensorRT.
Il modello incorpora una RepGFPN (Reparameterized Generalized Feature Pyramid Network) per un'efficiente fusione delle feature e un design "ZeroHead" per ridurre al minimo il carico computazionale della head di rilevamento. Durante l'addestramento, sfrutta AlignedOTA per l'assegnazione delle etichette e si basa pesantemente su un complesso processo di knowledge distillation, che richiede un modello teacher più grande per supervisionare il modello student target.
Sebbene DAMO-YOLO ottenga metriche di latenza impressionanti tramite NAS e distillazione, ciò richiede significativamente più memoria CUDA e tempo di calcolo durante l'addestramento rispetto alla pipeline di addestramento single-stage altamente ottimizzata di YOLOv8.
Prestazioni e metriche
Quando distribuisci modelli di computer vision in produzione, bilanciare la precisione (mAP) con la velocità di inferenza è fondamentale. La tabella sottostante illustra le prestazioni di entrambi i modelli su varie dimensioni.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOP (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
YOLOv8 dimostra un equilibrio prestazionale eccezionale. Il modello YOLOv8n (nano) richiede solo 3,2 milioni di parametri rispetto agli 8,5 milioni di DAMO-YOLOt, rendendolo nettamente superiore per dispositivi mobili o ambienti con requisiti di memoria rigorosi. Inoltre, YOLOv8 offre una gamma più ampia di dimensioni, scalando fino al YOLOv8x altamente accurato per carichi di lavoro basati su cloud.
Esperienza dello sviluppatore ed ecosistema
Facilità d'uso ed efficienza di addestramento
Uno dei maggiori fattori di differenziazione è l'esperienza utente. L'ecosistema Ultralytics è progettato per la velocità di sviluppo. Addestrare un modello YOLOv8 personalizzato richiede un utilizzo di memoria molto basso e può essere eseguito tramite un'API Python unificata o un'interfaccia a riga di comando.
Al contrario, riprodurre l'addestramento potenziato dalla distillazione di DAMO-YOLO richiede spesso di navigare in file di configurazione complessi e gestire il tracciamento degli esperimenti multi-stage tra teacher e student.
Ecco un esempio di quanto sia semplice addestrare, convalidare ed esportare YOLOv8 utilizzando Python:
from ultralytics import YOLO
# Load a pre-trained YOLOv8 nano model
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="cpu")
# Export the trained model to ONNX format
path = model.export(format="onnx")Versatilità attraverso le attività di visione
DAMO-YOLO è costruito rigorosamente per il rilevamento di oggetti con bounding box. Al contrario, l'architettura YOLOv8 supporta nativamente molteplici attività. Semplicemente scambiando i pesi del modello, puoi eseguire Instance Segmentation, Image Classification e Pose Estimation senza modificare la codebase di distribuzione sottostante. Questa versatilità rende i modelli Ultralytics molto più pratici per applicazioni complesse.
Casi d'uso reali
Quando utilizzare YOLOv8
La combinazione di velocità, precisione e facilità di distribuzione di YOLOv8 lo rende ideale per:
- Smart Retail Analytics: Eseguire object tracking per monitorare il comportamento dei clienti o automatizzare i controlli dell'inventario.
- Robotica agricola: Sfruttare le sue ottime prestazioni su hardware vario per identificare colture o parassiti in tempo reale.
- Diagnostica sanitaria: Utilizzare l'instance segmentation per mappare anomalie nelle immagini mediche in modo rapido e accurato.
- Distribuzioni Edge: L'integrazione perfetta con formati di esportazione come OpenVINO e CoreML consente a YOLOv8 di brillare su dispositivi vincolati.
Quando utilizzare DAMO-YOLO
DAMO-YOLO può essere vantaggioso in scenari di nicchia, in particolare:
- Ricerca accademica NAS: Per team che studiano la riparametrizzazione o metodologie di progettazione architettonica automatizzata.
- Pipeline strettamente legate alla GPU: Applicazioni che girano esclusivamente su hardware NVIDIA specifico dove le strutture NAS sono state pesantemente ottimizzate per i limiti di esecuzione di TensorRT.
Casi d'uso e raccomandazioni
Scegliere tra YOLOv8 e DAMO-YOLO dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze dell'ecosistema.
Quando scegliere YOLOv8
YOLOv8 è una scelta solida per:
- Deployment multi-attività versatile: Progetti che richiedono un modello comprovato per rilevamento, segmentazione, classificazione e stima della posa all'interno dell'ecosistema Ultralytics.
- Sistemi di produzione stabiliti: Ambienti di produzione esistenti già costruiti sull'architettura YOLOv8 con pipeline di deployment stabili e ben testate.
- Ampio supporto comunitario ed ecosistemico: Applicazioni che beneficiano degli ampi tutorial, integrazioni di terze parti e risorse comunitarie attive di YOLOv8.
Quando scegliere DAMO-YOLO
DAMO-YOLO è consigliato per:
- Analisi video ad alto throughput: elaborazione di flussi video ad alto FPS su infrastrutture GPU NVIDIA fisse dove il throughput batch-1 è la metrica principale.
- Linee di produzione industriale: scenari con rigorosi vincoli di latenza GPU su hardware dedicato, come l'ispezione della qualità in tempo reale sulle linee di assemblaggio.
- Ricerca sulla Neural Architecture Search: studio degli effetti della ricerca automatizzata dell'architettura (MAE-NAS) e dei backbone riparametrizzati efficienti sulle prestazioni di rilevamento.
Quando scegliere Ultralytics (YOLO26)
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la migliore combinazione di prestazioni ed esperienza di sviluppo:
- Deployment Edge senza NMS: Applicazioni che richiedono un'inferenza coerente e a bassa latenza senza la complessità della post-elaborazione con Non-Maximum Suppression.
- Ambienti solo CPU: Dispositivi senza accelerazione GPU dedicata, dove l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di piccoli oggetti: Scenari complessi come immagini di droni aerei o analisi tramite sensori IoT dove ProgLoss e STAL migliorano significativamente l'accuratezza su oggetti minuscoli.
Guardando al futuro: I nuovi modelli Ultralytics
Sebbene YOLOv8 rimanga un cavallo di battaglia altamente affidabile, il campo della computer vision si muove rapidamente. Dovresti considerare anche di esplorare le nuove generazioni:
YOLO26: L'ultima generazione, Ultralytics YOLO26, rappresenta un cambio di paradigma. Introduce un design nativamente End-to-End NMS-Free, eliminando completamente i colli di bottiglia della latenza associati alla post-elaborazione Non-Maximum Suppression. Alimentato dal nuovo ottimizzatore MuSGD (un ibrido di SGD e Muon) e da funzioni di loss specializzate ProgLoss + STAL, YOLO26 ottiene un addestramento straordinariamente stabile e un riconoscimento notevolmente migliorato degli oggetti piccoli. Con la DFL Removal (Distribution Focal Loss rimossa per un'esportazione semplificata e una migliore compatibilità con dispositivi edge/a basso consumo), le modifiche architettoniche forniscono fino al 43% di inferenza CPU più veloce rispetto alle generazioni precedenti, rendendolo la scelta definitiva per il moderno edge computing.
YOLO11: Un'altra eccellente alternativa, Ultralytics YOLO11 offre perfezionamenti architettonici incrementali rispetto a YOLOv8 e rimane un modello robusto e ampiamente adottato nella community.
Pronto a portare i tuoi modelli dal prototipo alla produzione? Utilizza la piattaforma Ultralytics per annotare automaticamente i dataset, tracciare gli esperimenti e distribuire i modelli senza problemi sul cloud o su dispositivi edge.
In conclusione, mentre DAMO-YOLO offre interessanti approfondimenti accademici sulla ricerca di architetture, i modelli Ultralytics forniscono un ecosistema significativamente più maturo, versatile e facile da usare per gli sviluppatori. Sia che tu rimanga con la stabilità comprovata di YOLOv8 o che passi alla velocissima architettura NMS-free di YOLO26, la suite Ultralytics rimane la scelta principale per la visione AI in tempo reale.