DAMO-YOLO vs YOLOv10: L'evoluzione del rilevamento di oggetti in tempo reale efficiente
Il campo della computer vision ha assistito a una rapida evoluzione nelle architetture di rilevamento di oggetti in tempo reale. Confrontando DAMO-YOLO e YOLOv10, osserviamo due filosofie distinte nella progettazione dei modelli: ricerca automatizzata dell'architettura contro ottimizzazione end-to-end senza NMS. Sebbene entrambi spingano i confini della precisione e della velocità, le loro strutture sottostanti e i casi d'uso ideali differiscono significativamente.
DAMO-YOLO: Ricerca sull'architettura neurale su larga scala
Sviluppato da Alibaba Group, DAMO-YOLO è emerso come un potente rilevatore focalizzato sullo sfruttamento della scoperta automatizzata per l'efficienza strutturale.
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Data: 23 novembre 2022
- Arxiv: 2211.15444v2
- GitHub: tinyvision/DAMO-YOLO
Punti salienti dell'architettura
DAMO-YOLO si affida pesantemente alla Neural Architecture Search (NAS) per bilanciare prestazioni e latenza. Il suo backbone, chiamato MAE-NAS, utilizza una ricerca evolutiva multi-obiettivo sotto rigorosi budget computazionali per trovare la profondità e la larghezza ottimali dei layer.
Per gestire la fusione delle feature su diverse scale, il modello impiega un efficiente RepGFPN (Reparameterized Generalized Feature Pyramid Network). Questo design con neck pesante è particolarmente esperto nell'estrarre complesse gerarchie spaziali, rendendolo utile in scenari come l'analisi delle immagini aeree. Inoltre, DAMO-YOLO introduce la ZeroHead, una head di rilevamento snella che riduce pesantemente la complessità dei layer di previsione finale, basandosi su un robusto processo di potenziamento della distillazione durante l'addestramento.
DAMO-YOLO utilizza spesso un processo di distillazione della conoscenza multi-stadio. Richiede l'addestramento di un modello "insegnante" più pesante per guidare il modello "studente" più piccolo, che estrae un mAP (mean Average Precision) più elevato ma aumenta significativamente il tempo di calcolo GPU richiesto.
YOLOv10: Pionieristico nel rilevamento oggetti end-to-end
Rilasciato un anno e mezzo dopo, YOLOv10 ha introdotto un cambio di paradigma eliminando completamente la necessità della Non-Maximum Suppression (NMS) durante l'inferenza.
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Tsinghua University
- Data: 23 maggio 2024
- Arxiv: 2405.14458
- Documentazione: Ultralytics YOLOv10
Punti salienti dell'architettura
La caratteristica distintiva di YOLOv10 sono le sue assegnazioni duali coerenti per l'addestramento senza NMS. I rilevatori tradizionali prevedono molteplici bounding box sovrapposti per un singolo oggetto, richiedendo la NMS per filtrare i duplicati. Questo passaggio di post-elaborazione crea un collo di bottiglia, specialmente sui dispositivi edge. YOLOv10 risolve questo problema consentendo al modello di prevedere naturalmente un singolo bounding box accurato per oggetto.
Gli autori si sono anche concentrati su una progettazione del modello olistica orientata all'efficienza e alla precisione. Analizzando attentamente la ridondanza computazionale nelle architetture esistenti, hanno ottimizzato il backbone e la head per ridurre il numero di FLOPs e parametri. Questo design leggero assicura che YOLOv10 offra un'eccezionale latenza di inferenza quando esportato in formati come TensorRT o OpenVINO.
Prestazioni e benchmark
La tabella sottostante illustra le metriche di prestazione grezze sul dataset COCO. I migliori valori complessivi in ogni colonna sono evidenziati in grassetto.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOP (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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
Sebbene DAMO-YOLO si difenda bene in termini di precisione, YOLOv10 fornisce costantemente una latenza inferiore e pesi del modello significativamente più piccoli. Ad esempio, YOLOv10s ottiene un mAP leggermente superiore (46,7%) rispetto a DAMO-YOLOs (46,0%) utilizzando meno della metà dei parametri (7,2M contro 16,3M). I minori requisiti di memoria rendono YOLOv10 una scelta eccezionalmente versatile per i sistemi embedded.
Efficienza di addestramento e usabilità
Nel passare dalla ricerca accademica alla produzione, la facilità d'uso è fondamentale. Il processo di distillazione multi-stadio e le complesse configurazioni NAS di DAMO-YOLO possono comportare ripide curve di apprendimento per i team di ingegneria.
Conversely, YOLOv10 benefits immensely from being fully integrated into the Ultralytics Python SDK. Training a custom model involves minimal boilerplate code. Ultralytics handles data augmentation, hyperparameter tuning, and experiment tracking automatically.
from ultralytics import YOLO
# Load a pretrained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train on a custom dataset with built-in validation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image seamlessly
prediction = model("path/to/image.jpg")
prediction[0].show()Utilizzare l'ecosistema Ultralytics consente agli sviluppatori di passare da un prototipo a un modello ONNX esportato in poche righe di codice, bypassando le complesse configurazioni di ambiente richieste dai framework più vecchi.
Casi d'uso reali
- Smart Retail (DAMO-YOLO): La precisione di DAMO-YOLO è ben adatta ad ambienti server ad alta densità che analizzano il comportamento dei clienti dove le GPU sono abbondanti e i colli di bottiglia della NMS in tempo reale sono gestibili.
- Veicoli autonomi (YOLOv10): L'architettura senza NMS garantisce una latenza deterministica e prevedibile, che è fondamentale per i sistemi di sicurezza nella guida autonoma.
- Industrial Automation (YOLOv10): Detecting defects on fast-moving assembly lines requires models that maximize real-time inference speeds without consuming vast VRAM, making YOLOv10 a prime candidate for edge deployment.
Casi d'uso e raccomandazioni
Scegliere tra DAMO-YOLO e YOLOv10 dipende dai tuoi specifici requisiti di progetto, dai vincoli di distribuzione e dalle preferenze dell'ecosistema.
Quando scegliere DAMO-YOLO
DAMO-YOLO è una scelta valida 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 YOLOv10
YOLOv10 è consigliato per:
- Rilevamento in tempo reale senza NMS: Applicazioni che traggono vantaggio dal rilevamento end-to-end senza Non-Maximum Suppression, riducendo la complessità di deployment.
- Compromessi equilibrati tra velocità e accuratezza: Progetti che richiedono un solido equilibrio tra velocità di inferenza e accuratezza di rilevamento su varie scale del modello.
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
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.
La prossima generazione: entra Ultralytics YOLO26
Sebbene YOLOv10 abbia gettato le basi per il rilevamento senza NMS, la tecnologia si è evoluta rapidamente. Per le applicazioni moderne, il modello Ultralytics YOLO26 offre prestazioni e usabilità senza pari, prendendo il meglio dalle generazioni precedenti e perfezionandolo per la produzione.
YOLO26 features a strictly natively end-to-end design, eliminating NMS post-processing for simpler deployment pipelines across edge devices. Furthermore, the removal of Distribution Focal Loss (DFL) has dramatically improved compatibility with low-power edge AI hardware.
Sul fronte dell'addestramento, YOLO26 introduce l'ottimizzatore MuSGD, un ibrido ispirato alle tecniche di addestramento dei modelli linguistici di grandi dimensioni (LLM). Ciò garantisce un addestramento più stabile e una convergenza più rapida. In combinazione con le funzioni di perdita ProgLoss + STAL, YOLO26 mostra notevoli miglioramenti nel riconoscimento di piccoli oggetti, una caratteristica critica per la conservazione della fauna selvatica e le operazioni con droni.
Fondamentalmente, YOLO26 non è solo un rilevatore di oggetti. Offre miglioramenti specifici per task su tutta la linea, supportando nativamente l'Instance Segmentation, la Pose Estimation utilizzando la Residual Log-Likelihood Estimation (RLE) e perdite angolari specializzate per gli Oriented Bounding Boxes (OBB). Con un'inferenza CPU fino al 43% più veloce rispetto ai suoi predecessori, è la scelta definitiva per i team di ingegneria agili.
Per la gestione centralizzata, l'annotazione e l'addestramento su cloud dei modelli YOLO26, la piattaforma Ultralytics fornisce un'interfaccia intuitiva che semplifica l'intero ciclo di vita della computer vision.
Gli sviluppatori interessati a esplorare altri recenti progressi possono anche valutare Ultralytics YOLO11 o il framework RT-DETR basato su transformer per scenari che richiedono soluzioni architettoniche distinte.