YOLOv8 vs DAMO-YOLO#
Il panorama della computer vision è in continua evoluzione, con nuove architetture che ampliano costantemente i limiti di ciò che è possibile fare sui dispositivi edge e su enormi cluster cloud. In questo approfondimento tecnico, confrontiamo due importanti modelli di object detection in tempo reale: YOLOv8 e DAMO-YOLO. Esaminandone le architetture, le metriche di prestazione e le metodologie di addestramento, gli ingegneri ML possono prendere decisioni consapevoli per le proprie pipeline di deployment.
Contesto e origini dei modelli#
Entrambi i modelli sono stati introdotti all'incirca nello stesso periodo, ma derivano da filosofie progettuali e obiettivi di ricerca diversi.
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 di YOLOv8
Dettagli su DAMO-YOLO#
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione: Alibaba Group
- Data: 2022-11-23
- Arxiv: Documento di Ricerca su DAMO-YOLO
- GitHub: Repository GitHub di DAMO-YOLO
Innovazioni architetturali#
YOLOv8: design versatile senza ancore#
Ultralytics YOLOv8 ha introdotto miglioramenti significativi rispetto ai suoi predecessori, consolidando il proprio status di modello all'avanguardia altamente affidabile. Include una detection head senza ancore, che riduce il numero di predizioni dei box e accelera l'inferenza. L'architettura utilizza una head disaccoppiata, che separa le attività di objectness, classificazione e regressione, producendo predizioni delle bounding box più accurate.
Inoltre, YOLOv8 implementa la Distribution Focal Loss (DFL) insieme alla loss CIoU, migliorando la capacità del modello di localizzare con precisione i confini degli oggetti, soprattutto nel caso di target più piccoli o occlusi. Il suo backbone ottimizzato è altamente efficiente sia per l'esecuzione su GPU sia su CPU.
DAMO-YOLO: guidato dalla ricerca dell'architettura#
DAMO-YOLO adotta un approccio diverso e si affida ampiamente alla Ricerca automatica dell'architettura (NAS) per progettare automaticamente il proprio backbone. Il team di Alibaba ha introdotto "MAE-NAS" per individuare strutture che offrano il compromesso ottimale tra latenza e accuratezza, in particolare con l'accelerazione TensorRT.
Il modello integra una RepGFPN (rete piramidale generalizzata delle caratteristiche riparametrizzata) per una fusione efficiente delle caratteristiche e un design "ZeroHead" per ridurre al minimo il carico computazionale della detection head. Durante l'addestramento, sfrutta AlignedOTA per l'assegnazione delle label e si basa ampiamente su un complesso processo di distillazione della conoscenza, che richiede un modello teacher più grande per supervisionare il modello student target.
Sebbene DAMO-YOLO raggiunga metriche di latenza impressionanti tramite NAS e distillazione, ciò richiede molta più memoria CUDA e tempo di calcolo durante l'addestramento rispetto alla pipeline di addestramento a singolo stadio altamente ottimizzata di YOLOv8.
Prestazioni e metriche#
Quando si distribuiscono modelli di computer vision in produzione, è fondamentale bilanciare l'accuratezza (mAP) con la velocità di inferenza. La tabella seguente illustra le prestazioni di entrambi i modelli in diverse dimensioni.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (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 eccezionale tra le prestazioni. Il modello YOLOv8n (nano) richiede solo 3,2 milioni di parametri rispetto agli 8,5 milioni di DAMO-YOLOt, risultando di gran lunga superiore per i dispositivi mobili o gli ambienti con requisiti di memoria stringenti. Inoltre, YOLOv8 offre una gamma più ampia di dimensioni, fino al modello YOLOv8x, altamente accurato, per i carichi di lavoro basati sul cloud.
Esperienza degli sviluppatori ed ecosistema#
Facilità d'uso ed efficienza dell'addestramento#
Uno dei principali fattori di differenziazione è l'esperienza utente. L'ecosistema Ultralytics è progettato per velocizzare il lavoro degli sviluppatori. Addestrare un modello YOLOv8 personalizzato richiede un utilizzo della memoria molto ridotto e può essere eseguito tramite un'API Python unificata o un'interfaccia a riga di comando.
Al contrario, riprodurre l'addestramento di DAMO-YOLO potenziato dalla distillazione richiede spesso di gestire file di configurazione complessi e il tracciamento degli esperimenti teacher-student in più fasi.
Ecco un esempio di quanto sia semplice addestrare, validare ed esportare YOLOv8 usando 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à tra le attività di visione artificiale#
DAMO-YOLO è progettato esclusivamente per l'object detection tramite bounding box. Al contrario, l'architettura YOLOv8 supporta nativamente diverse attività. Sostituendo semplicemente i pesi del modello, gli sviluppatori possono eseguire la segmentazione delle istanze, la classificazione delle immagini e la stima della posa senza modificare la codebase di deployment sottostante. Questa versatilità rende i modelli Ultralytics molto più pratici per le applicazioni complesse.
Casi d'uso nel mondo reale#
Quando usare YOLOv8#
La combinazione di velocità, accuratezza e facilità di deployment di YOLOv8 lo rende ideale per:
- Analisi intelligente del retail: eseguire il tracking degli oggetti per monitorare il comportamento dei clienti o automatizzare i controlli dell'inventario.
- Robotica agricola: sfruttare le sue eccellenti prestazioni su hardware diversi per identificare colture o parassiti in tempo reale.
- Diagnostica sanitaria: usare la segmentazione delle istanze per mappare in modo rapido e accurato le anomalie nelle immagini mediche.
- Deployment edge: l'integrazione perfetta con formati di esportazione come OpenVINO e CoreML consente a YOLOv8 di eccellere sui dispositivi con risorse limitate.
Quando usare DAMO-YOLO#
DAMO-YOLO può essere utile in scenari specifici, in particolare:
- Ricerca Accademica sulla NAS: Per i team che studiano la riparametrizzazione o le metodologie di progettazione automatica dell'architettura.
- Pipeline vincolate esclusivamente alla GPU: applicazioni eseguite esclusivamente su specifici hardware NVIDIA, in cui le strutture NAS sono state fortemente ottimizzate per i limiti di esecuzione di TensorRT.
Casi d'uso e raccomandazioni#
La scelta tra YOLOv8 e DAMO-YOLO dipende dai requisiti specifici del tuo progetto, dai vincoli di deployment e dalle tue preferenze in termini di ecosistema.
Quando scegliere YOLOv8#
YOLOv8 è una scelta ottimale per:
- Implementazione versatile multi-attività: Progetti che richiedono un modello collaudato per rilevamento, segmentazione, classificazione e stima della posa all'interno dell'ecosistema Ultralytics.
- Sistemi di produzione consolidati: Ambienti di produzione esistenti già basati sull'architettura YOLOv8, con pipeline di implementazione stabili e ampiamente testate.
- Ampio supporto della community e dell'ecosistema: Applicazioni che traggono vantaggio dagli estesi tutorial di YOLOv8, dalle integrazioni di terze parti e dalle risorse attive della community.
Quando scegliere DAMO-YOLO#
DAMO-YOLO è consigliato per:
- Analisi video ad alta produttività: Elaborazione di flussi video ad alto FPS su infrastrutture GPU NVIDIA fisse, dove la produttività con 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 ricerca dell'architettura neurale: Studio degli effetti della ricerca automatizzata dell'architettura (MAE-NAS) e dei backbone efficienti riparametrizzati 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 per gli sviluppatori:
- Deployment edge senza NMS: applicazioni che richiedono un'inferenza coerente e a bassa latenza senza la complessità della post-elaborazione con Soppressione non massima.
- Ambienti esclusivamente CPU: dispositivi privi di accelerazione GPU dedicata, dove l'inferenza su CPU fino al 43% più veloce di YOLO26 offre un vantaggio decisivo.
- Rilevamento di oggetti piccoli: scenari complessi come le immagini aeree riprese da droni o l'analisi di sensori IoT, in cui ProgLoss e STAL migliorano significativamente l'accuratezza sugli oggetti di piccole dimensioni.
Uno sguardo al futuro: i nuovi modelli Ultralytics#
Sebbene YOLOv8 rimanga un modello estremamente affidabile e collaudato, il settore della computer vision si evolve rapidamente. Dovresti prendere in considerazione anche le generazioni più recenti:
YOLO26: l'ultima generazione, Ultralytics YOLO26, rappresenta un cambio di paradigma. Introduce un design nativamente end-to-end senza NMS, eliminando completamente i colli di bottiglia della latenza associati al post-processing della soppressione non massima. Grazie al nuovo ottimizzatore MuSGD (un ibrido di SGD e Muon) e alle funzioni di loss specializzate ProgLoss + STAL, YOLO26 raggiunge un addestramento notevolmente stabile e un riconoscimento degli oggetti piccoli molto migliorato. Con la rimozione della DFL (Distribution Focal Loss rimossa per semplificare l'esportazione e migliorare la compatibilità con i dispositivi edge e a basso consumo), gli aggiornamenti architetturali offrono un'inferenza su CPU fino al 43% più veloce rispetto alle generazioni precedenti, rendendolo la scelta definitiva per l'edge computing moderno.
YOLO11: un'altra eccellente alternativa, Ultralytics YOLO11 offre perfezionamenti architetturali incrementali rispetto a YOLOv8 e rimane un modello robusto e ampiamente adottato dalla community.
Pronto a portare i tuoi modelli dal prototipo alla produzione? Usa la Ultralytics Platform per annotare automaticamente i dataset, monitorare gli esperimenti e distribuire i modelli senza interruzioni sul cloud o sui dispositivi edge.
In conclusione, sebbene DAMO-YOLO offra interessanti spunti accademici sulla ricerca delle architetture, i modelli Ultralytics forniscono un ecosistema significativamente più maturo, versatile e adatto agli sviluppatori. Che tu scelga la comprovata stabilità di YOLOv8 o passi all'architettura senza NMS e incredibilmente veloce di YOLO26, la suite Ultralytics rimane la scelta principale per l'AI di visione in tempo reale.