Link to this sectionYOLOv8 contro DAMO-YOLO#
Il panorama della computer vision è in costante evoluzione, con nuove architetture che spingono i confini di ciò che è possibile ottenere su dispositivi edge e massicci cloud cluster. In questo approfondimento tecnico, confrontiamo due modelli di object detection in tempo reale di spicco: YOLOv8 e DAMO-YOLO. Esaminando le loro architetture, le metriche di performance e le metodologie di addestramento, gli ingegneri ML possono prendere decisioni informate per i loro pipeline di distribuzione.
Link to this sectionBackground e origini dei modelli#
Entrambi i modelli sono stati introdotti nello stesso periodo, ma derivano da filosofie di progettazione e obiettivi di ricerca differenti.
Link to this sectionDettagli di YOLOv8#
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 10-01-2023
- GitHub: Repository GitHub di Ultralytics
- Documentazione: Documentazione Ufficiale di YOLOv8
Link to this sectionDettagli di DAMO-YOLO#
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione: Alibaba Group
- Data: 23-11-2022
- Arxiv: Articolo di ricerca su DAMO-YOLO
- GitHub: Repository GitHub di DAMO-YOLO
Link to this sectionInnovazioni architettoniche#
Link to this sectionYOLOv8: Design versatile senza anchor#
Ultralytics YOLOv8 ha introdotto miglioramenti significativi rispetto ai suoi predecessori, consolidando il suo status di modello all'avanguardia estremamente affidabile. È dotato di una head di rilevamento senza anchor, che riduce il numero di previsioni dei box e accelera l'inferenza. L'architettura utilizza una head disaccoppiata, che separa i compiti di objectness, classificazione e regressione, portando a previsioni dei bounding box più accurate.
Inoltre, YOLOv8 implementa Distribution Focal Loss (DFL) insieme alla CIoU loss, migliorando la capacità del modello di localizzare con precisione i confini degli oggetti, specialmente per i target più piccoli o occlusi. Il suo backbone snello è altamente ottimizzato sia per l'esecuzione su GPU che su CPU.
Link to this sectionDAMO-YOLO: Guidato dalla ricerca dell'architettura#
DAMO-YOLO adotta un approccio diverso, facendo forte affidamento sulla Neural Architecture Search (NAS) per progettare automaticamente il suo backbone. Il team di Alibaba ha introdotto "MAE-NAS" per trovare strutture che offrano compromessi ottimali tra latenza e accuratezza, specificamente sotto l'accelerazione TensorRT.
Il modello incorpora una RepGFPN (Reparameterized Generalized Feature Pyramid Network) per una fusione efficiente 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 label e si affida pesantemente a un complesso processo di knowledge distillation, che richiede un modello teacher più grande per supervisionare il modello student target.
Sebbene DAMO-YOLO raggiunga metriche di latenza impressionanti tramite NAS e distillation, ciò richiede una memoria CUDA e tempi di calcolo significativamente maggiori durante l'addestramento rispetto alla pipeline di addestramento a stadio singolo altamente ottimizzata di YOLOv8.
Link to this sectionPrestazioni e metriche#
Quando distribuisci modelli di computer vision in produzione, bilanciare l'accuratezza (mAP) con la velocità di inferenza è fondamentale. La tabella sottostante illustra le performance di entrambi i modelli su varie dimensioni.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | params (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 eccezionale equilibrio nelle performance. 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 rigorosi requisiti di memoria. Inoltre, YOLOv8 offre una gamma più ampia di dimensioni, scalando fino al modello YOLOv8x, altamente accurato, per carichi di lavoro basati su cloud.
Link to this sectionEsperienza dello sviluppatore ed ecosistema#
Link to this sectionFacilità d'uso ed efficienza nell'addestramento#
Uno dei fattori di differenziazione più importanti è l'esperienza utente. L'ecosistema Ultralytics è progettato per la velocità di sviluppo. L'addestramento di un modello YOLOv8 personalizzato richiede un utilizzo di memoria molto basso e può essere eseguito tramite una API Python unificata o un'interfaccia a riga di comando.
Al contrario, riprodurre l'addestramento potenziato dalla distillation di DAMO-YOLO richiede spesso la navigazione in complessi file di configurazione e la gestione di experiment tracking multi-stadio tra teacher e student.
Ecco un esempio di quanto sia semplice addestrare, validare 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")Link to this sectionVersatilità tra le attività di visione#
DAMO-YOLO è costruito rigorosamente per l'object detection tramite bounding-box. Al contrario, l'architettura di YOLOv8 supporta nativamente molteplici task. Semplicemente sostituendo i pesi del modello, gli sviluppatori possono eseguire Instance Segmentation, Image Classification e Pose Estimation senza modificare la loro codebase di distribuzione sottostante. Questa versatilità rende i modelli Ultralytics molto più pratici per applicazioni complesse.
Link to this sectionCasi d'uso nel mondo reale#
Link to this sectionQuando usare YOLOv8#
La combinazione di velocità, accuratezza 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 performance su hardware eterogeneo per identificare colture o parassiti in tempo reale.
- Diagnostica sanitaria: Utilizzare la instance segmentation per mappare anomalie nelle immagini mediche in modo rapido e accurato.
- Distribuzioni Edge: L'integrazione fluida con formati di esportazione come OpenVINO e CoreML permette a YOLOv8 di brillare su dispositivi vincolati.
Link to this sectionQuando usare DAMO-YOLO#
DAMO-YOLO può essere utile in scenari di nicchia, in particolare:
- Ricerca accademica NAS: Per team che studiano metodologie di ri-parametrizzazione o di progettazione automatizzata dell'architettura.
- Pipeline strettamente legate alla GPU: Applicazioni in esecuzione esclusivamente su hardware NVIDIA specifico, dove le strutture NAS sono state pesantemente ottimizzate per i limiti di esecuzione di TensorRT.
Link to this sectionCasi 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.
Link to this sectionQuando scegliere YOLOv8#
YOLOv8 è una scelta solida per:
- Distribuzione 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 consolidati: Ambienti di produzione esistenti già costruiti sull'architettura YOLOv8 con pipeline di distribuzione stabili e ben testate.
- Ampio supporto dalla community ed ecosistema: Applicazioni che beneficiano degli estesi tutorial di YOLOv8, integrazioni di terze parti e risorse attive della community.
Link to this sectionQuando scegliere DAMO-YOLO#
DAMO-YOLO è raccomandato per:
- Video Analytics ad alto throughput: Elaborazione di flussi video ad alto FPS su infrastruttura GPU NVIDIA fissa 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 di qualità in tempo reale sulle linee di assemblaggio.
- Ricerca sulla Neural Architecture Search: Studiare gli effetti della ricerca automatizzata dell'architettura (MAE-NAS) e delle efficienti backbone riparametrizzate sulle prestazioni di rilevamento.
Link to this sectionQuando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la migliore combinazione di prestazioni ed esperienza per gli sviluppatori:
- Implementazione Edge senza NMS: Applicazioni che richiedono un'inferenza costante e a bassa latenza senza la complessità della post-elaborazione della soppressione dei non massimi.
- Ambienti solo CPU: Dispositivi senza accelerazione GPU dedicata, dove l'inferenza CPU fino al 43% più veloce di YOLO26 fornisce un vantaggio decisivo.
- Rilevamento di oggetti piccoli: Scenari impegnativi come immagini di droni aerei o analisi di sensori IoT in cui ProgLoss e STAL aumentano significativamente la precisione su oggetti minuscoli.
Link to this sectionGuardando al futuro: 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 NMS-Free End-to-End nativo, eliminando completamente i colli di bottiglia di latenza associati al post-processing della Non-Maximum Suppression. Alimentato dal nuovo MuSGD Optimizer (un ibrido di SGD e Muon) e da speciali funzioni di perdita ProgLoss + STAL, YOLO26 raggiunge un addestramento notevolmente stabile e un riconoscimento degli oggetti piccoli drasticamente migliorato. Con la Rimozione DFL (Distribution Focal Loss rimossa per un'esportazione semplificata e una migliore compatibilità con dispositivi edge/basso consumo), i ritocchi architettonici forniscono fino al 43% di inferenza CPU più rapida rispetto alle generazioni precedenti, rendendolo la scelta definitiva per l'edge computing moderno.
YOLO11: Un'altra eccellente alternativa, Ultralytics YOLO11 offre raffinamenti 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 interruzioni sul cloud o su dispositivi edge.
In conclusione, mentre DAMO-YOLO offre interessanti spunti accademici sulla ricerca architettonica, i modelli Ultralytics forniscono un ecosistema significativamente più maturo, versatile e facile da usare per gli sviluppatori. Che tu scelga la comprovata stabilità di YOLOv8 o l'aggiornamento alla velocissima architettura senza NMS di YOLO26, la suite Ultralytics rimane la scelta principale per la vision AI in tempo reale.