YOLOv8 vs DAMO-YOLO#
Il panorama della visione artificiale è in continua evoluzione e nuove architetture ampliano i limiti di ciò che è possibile sui dispositivi edge e nei grandi cluster cloud. In questo approfondimento tecnico confrontiamo due importanti modelli di rilevamento di oggetti 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 distribuzione.
Origini e contesto dei modelli#
Entrambi i modelli sono stati introdotti più o meno nello stesso periodo, ma derivano da filosofie progettuali e obiettivi di ricerca differenti.
Dettagli su 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: Articolo di ricerca su DAMO-YOLO
- GitHub: Repository GitHub di DAMO-YOLO
Innovazioni architetturali#
YOLOv8: architettura versatile senza anchor#
Ultralytics YOLOv8 ha introdotto miglioramenti significativi rispetto ai predecessori, consolidandosi come modello all'avanguardia e altamente affidabile. Include una testa di rilevamento senza anchor, che riduce il numero di riquadri previsti e velocizza l'inferenza. L'architettura utilizza una testa disaccoppiata che separa le attività di classificazione e regressione, ottenendo previsioni dei riquadri di delimitazione più precise.
Inoltre, YOLOv8 implementa la Distribution Focal Loss (DFL) insieme alla loss CIoU, migliorando la capacità del modello di localizzare con precisione i contorni degli oggetti, soprattutto quelli piccoli o parzialmente occlusi. Il backbone semplificato è altamente ottimizzato sia per l'esecuzione su GPU che su CPU.
DAMO-YOLO: basato sulla ricerca architetturale#
DAMO-YOLO adotta un approccio diverso e si affida ampiamente alla ricerca automatica delle architetture neurali (NAS) per progettare automaticamente il proprio backbone. Il team Alibaba ha introdotto "MAE-NAS" per individuare strutture che offrano il compromesso ottimale tra latenza e precisione, in particolare con l'accelerazione TensorRT.
Il modello integra RepGFPN (Reparameterized Generalized Feature Pyramid Network) per fondere le caratteristiche in modo efficiente e una progettazione "ZeroHead" per ridurre al minimo il carico computazionale della testa di rilevamento. Durante l'addestramento utilizza AlignedOTA per l'assegnazione delle etichette e si affida a un complesso processo di distillazione della conoscenza, che richiede un modello insegnante più grande per supervisionare il modello studente di destinazione.
DAMO-YOLO raggiunge metriche di latenza notevoli grazie alla NAS e alla distillazione, ma durante l'addestramento richiede molta più memoria CUDA e tempo di calcolo rispetto alla pipeline di addestramento in un'unica fase, altamente ottimizzata, di YOLOv8.
Prestazioni e metriche#
Quando distribuisci modelli di visione artificiale in produzione, è fondamentale bilanciare la precisione (mAP) e la velocità di inferenza. La tabella seguente illustra le prestazioni dei due modelli nelle 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.1 |
| 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 offre un equilibrio eccezionale tra prestazioni. Il modello YOLOv8n (nano) richiede solo 3,2 milioni di parametri, contro gli 8,5 milioni di DAMO-YOLOt, risultando nettamente superiore per dispositivi mobili o ambienti con rigidi vincoli di memoria. Inoltre, YOLOv8 offre una gamma più ampia di dimensioni, fino al modello YOLOv8x, altamente preciso e adatto ai carichi di lavoro basati su cloud.
Esperienza per gli sviluppatori ed ecosistema#
Facilità d'uso ed efficienza dell'addestramento#
Uno dei principali fattori distintivi è l'esperienza utente. L'ecosistema Ultralytics è progettato per accelerare il lavoro degli sviluppatori. Addestrare un modello YOLOv8 personalizzato richiede pochissima memoria e può essere eseguito tramite un'API Python unificata o un'interfaccia a riga di comando.
Riprodurre l'addestramento di DAMO-YOLO basato sulla distillazione richiede invece spesso di destreggiarsi tra file di configurazione complessi e gestire il tracciamento degli esperimenti in più fasi con modelli insegnante e studente.
Ecco un esempio di quanto sia semplice addestrare, convalidare ed esportare YOLOv8 usando Python:
from ultralytics import YOLO
# Carica un modello YOLOv8 nano preaddestrato
model = YOLO("yolov8n.pt")
# Addestra il modello sul dataset COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="cpu")
# Esporta il modello addestrato in formato ONNX
path = model.export(format="onnx")Versatilità nelle attività di visione#
DAMO-YOLO è progettato esclusivamente per il rilevamento di oggetti tramite riquadri di delimitazione. L'architettura YOLOv8, invece, supporta nativamente più attività. Basta sostituire i pesi del modello perché gli sviluppatori possano eseguire la segmentazione delle istanze, la classificazione delle immagini e la stima della posa senza modificare il codice di distribuzione 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à, precisione e facilità di distribuzione di YOLOv8 lo rende ideale per:
- Analisi per il commercio al dettaglio intelligente: usare il tracciamento degli oggetti per monitorare il comportamento dei clienti o automatizzare il controllo delle scorte.
- Robotica agricola: sfruttarne le prestazioni elevate su hardware diversi per identificare colture o parassiti in tempo reale.
- Diagnostica sanitaria: usare la segmentazione delle istanze per mappare anomalie nelle immagini mediche in modo rapido e preciso.
- Distribuzioni edge: la perfetta integrazione con formati di esportazione come OpenVINO e CoreML permette a YOLOv8 di eccellere sui dispositivi con risorse limitate.
Quando usare DAMO-YOLO#
DAMO-YOLO può essere utile in scenari di nicchia, in particolare:
- Ricerca accademica sulla NAS: per i team che studiano la riparametrizzazione o le metodologie di progettazione automatizzata delle architetture.
- Pipeline vincolate esclusivamente alla GPU: applicazioni eseguite solo su hardware NVIDIA specifico, per il quale le strutture NAS sono state ampiamente ottimizzate entro i limiti di esecuzione di TensorRT.
Casi d'uso e consigli#
La scelta tra YOLOv8 e DAMO-YOLO dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze relative all'ecosistema.
Quando scegliere YOLOv8#
YOLOv8 è un'ottima scelta per:
- Distribuzioni versatili e multi-attività: progetti che richiedono un modello collaudato per rilevamento, segmentazione, classificazione e stima della posa nell’ecosistema Ultralytics.
- Sistemi di produzione consolidati: ambienti di produzione esistenti già basati sull’architettura YOLOv8, con pipeline di distribuzione stabili e ben 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 della community attiva.
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 con batch di dimensione 1 è la metrica principale.
- Linee di produzione industriale: scenari con rigidi vincoli di latenza GPU su hardware dedicato, come l'ispezione della qualità in tempo reale sulle linee di assemblaggio.
- Ricerca sulla ricerca di architetture neurali: studio degli effetti della ricerca automatizzata delle architetture (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 combinazione migliore di prestazioni ed esperienza per gli sviluppatori:
- Distribuzione edge senza NMS: applicazioni che richiedono inferenza costante a bassa latenza senza la complessità della post-elaborazione con soppressione non massima.
- Ambienti con sola CPU: dispositivi senza accelerazione GPU dedicata, sui quali l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di oggetti di piccole dimensioni: scenari complessi come le immagini aeree acquisite da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano notevolmente la precisione sugli oggetti molto piccoli.
Uno sguardo al futuro: i modelli Ultralytics più recenti#
YOLOv8 resta un modello estremamente affidabile, ma il settore della visione artificiale evolve rapidamente. Gli utenti dovrebbero valutare anche le generazioni più recenti:
YOLO26: l'ultima generazione, Ultralytics YOLO26, rappresenta un cambio di paradigma. Introduce un'architettura end-to-end senza NMS nativa (nms=False) che elimina i colli di bottiglia della latenza associati alla post-elaborazione con la soppressione non massima. Grazie al nuovo ottimizzatore MuSGD (un ibrido di SGD e Muon) e alle funzioni di loss specializzate ProgLoss + STAL, YOLO26 garantisce un addestramento notevolmente stabile e un riconoscimento degli oggetti piccoli molto più efficace. Con la rimozione di DFL (la Distribution Focal Loss viene rimossa per semplificare l'esportazione e migliorare la compatibilità con dispositivi edge e a basso consumo), le modifiche architetturali consentono un'inferenza su CPU fino al 43% più veloce rispetto alle generazioni precedenti, rendendolo la scelta ideale per l'edge computing moderno.
YOLO11: un'altra ottima alternativa, Ultralytics YOLO11 offre miglioramenti architetturali graduali rispetto a YOLOv8 e resta un modello solido, ampiamente adottato dalla community.
Vuoi portare i tuoi modelli dal prototipo alla produzione? Usa la piattaforma Ultralytics per annotare automaticamente i dataset, monitorare gli esperimenti e distribuire i modelli senza problemi nel cloud o sui dispositivi edge.
In conclusione, DAMO-YOLO offre spunti accademici interessanti sulla ricerca architetturale, ma i modelli Ultralytics forniscono un ecosistema molto più maturo, versatile e adatto agli sviluppatori. Che tu scelga la comprovata stabilità di YOLOv8 o passi all'architettura YOLO26 senza NMS e velocissima, la gamma Ultralytics resta la scelta d'eccellenza per l'IA visiva in tempo reale.