YOLOv10 vs DAMO-YOLO#
Quando si creano pipeline moderne di visione artificiale, scegliere l'architettura di rilevamento di oggetti in tempo reale giusta è fondamentale. In questa analisi tecnica completa esaminiamo le architetture, le metriche di prestazione e i casi d'uso ideali di YOLOv10 e DAMO-YOLO. Entrambi i modelli rappresentano un notevole passo avanti nelle capacità di rilevamento degli oggetti, ma seguono percorsi architetturali diversi per raggiungere i propri obiettivi.
Che il tuo progetto richieda la distribuzione su hardware edge AI con risorse limitate o la massima accuratezza su GPU cloud, comprendere le caratteristiche specifiche di queste architetture ti aiuterà a prendere una decisione consapevole.
Alla scoperta di YOLOv10#
Introdotto dai ricercatori della Tsinghua University, YOLOv10 ha rivoluzionato la famiglia YOLO adottando un approccio nativamente end-to-end, che elimina di fatto la necessità della soppressione dei massimi non locali (NMS) durante la post-elaborazione.
Dettagli su YOLOv10:
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Università Tsinghua
- Data: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- Documentazione: https://docs.ultralytics.com/models/yolov10
Caratteristiche architetturali principali#
L'innovazione principale di YOLOv10 è la strategia assegnazione doppia coerente per l'addestramento senza NMS. I rilevatori di oggetti tradizionali si affidano ampiamente a NMS per filtrare i riquadri di delimitazione sovrapposti, introducendo una latenza imprevedibile, un importante collo di bottiglia per le applicazioni in tempo reale come i veicoli autonomi e la robotica ad alta velocità. Prevedendo direttamente un solo riquadro di delimitazione ottimale per oggetto, YOLOv10 ottiene un'inferenza prevedibile e a latenza bassissima.
Inoltre, il modello adotta un design olistico guidato dall'efficienza e dall'accuratezza. L'architettura ottimizza vari componenti, tra cui un head di classificazione leggero e un downsampling disaccoppiato tra spazio e canali, riducendo notevolmente la ridondanza computazionale. Ne risulta un'architettura con meno parametri e FLOPs, che mantiene una precisione media (mAP) competitiva.
Esempio d'uso#
YOLOv10 è profondamente integrato nell'ecosistema Ultralytics ed è quindi molto semplice da usare tramite il pacchetto Python di Ultralytics.
from ultralytics import YOLO
# Carica un modello nano YOLOv10 pre-addestrato
model = YOLO("yolov10n.pt")
# Addestra il modello sul dataset COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Esegui l'inferenza su un'immagine di test
results = model("https://ultralytics.com/images/bus.jpg")
# Esporta il modello in formato TensorRT
model.export(format="engine", quantize=16)Alla scoperta di DAMO-YOLO#
Sviluppato dal gruppo Alibaba, DAMO-YOLO si concentra sulla ricerca di strutture di rete altamente efficienti tramite la ricerca automatizzata dell'architettura neurale (NAS), con l'obiettivo di spingere la frontiera di Pareto tra velocità e accuratezza.
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: https://arxiv.org/abs/2211.15444v2
- GitHub: https://github.com/tinyvision/DAMO-YOLO
Caratteristiche architetturali principali#
DAMO-YOLO introduce diverse tecnologie innovative pensate per le applicazioni industriali. Il modello si basa sul backbone MAE-NAS, generato tramite una ricerca guidata dalla massima entropia. Questo processo automatizzato individua strutture di backbone che rispettano rigorosamente i budget computazionali predefiniti, bilanciando accuratamente accuratezza e latenza di inferenza.
Inoltre, l'architettura utilizza un neck Efficient RepGFPN. Questa rete piramidale delle caratteristiche è progettata per migliorare la fusione delle caratteristiche a scale diverse, aspetto fondamentale per attività complesse come l'analisi di immagini aeree, in cui le dimensioni degli oggetti variano notevolmente. A completamento di questo approccio, DAMO-YOLO implementa ZeroHead, un head di rilevamento minimalista che riduce drasticamente la complessità dei livelli di previsione finali, risparmiando tempo di calcolo prezioso durante l'inferenza.
Confronto delle prestazioni#
Quando si valutano le architetture per il rilevamento di oggetti, trovare il giusto compromesso tra velocità di inferenza, efficienza dei parametri e accuratezza del rilevamento è fondamentale. La tabella seguente confronta le prestazioni di YOLOv10 e DAMO-YOLO nelle rispettive dimensioni dei modelli.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| 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 |
Come mostrano i benchmark, YOLOv10 offre costantemente latenze eccellenti su TensorRT, in particolare nella variante nano, richiedendo molti meno parametri e FLOPs rispetto ai modelli comparabili di DAMO-YOLO. Sebbene la variante tiny di DAMO-YOLO offra un mAP elevato, l'efficienza dei parametri e la latenza di inferenza della famiglia YOLOv10 costituiscono un chiaro vantaggio negli ambienti di distribuzione con risorse limitate.
Casi d'uso e consigli#
La scelta tra YOLOv10 e DAMO-YOLO dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle tue preferenze in fatto di ecosistema.
Quando scegliere YOLOv10#
YOLOv10 è una scelta valida per:
- Rilevamento in tempo reale senza NMS: applicazioni che traggono vantaggio dal rilevamento end-to-end senza soppressione non massima, riducendo la complessità della distribuzione.
- Compromesso equilibrato tra velocità e precisione: progetti che richiedono un buon equilibrio tra velocità di inferenza e precisione di rilevamento con modelli di diverse dimensioni.
- Applicazioni con latenza costante: scenari di distribuzione in cui i tempi di inferenza prevedibili sono fondamentali, ad esempio nella robotica o nei sistemi autonomi.
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.
I vantaggi di Ultralytics#
Sebbene entrambi i modelli siano tecnicamente notevoli, per scegliere un'architettura da mettere in produzione bisogna considerare più delle sole metriche assolute. Sviluppare con modelli supportati nativamente dall'ecosistema Ultralytics offre vantaggi impareggiabili a sviluppatori e ricercatori.
Facilità d'uso e un ecosistema mantenuto con cura#
A differenza dei repository accademici indipendenti, spesso abbandonati, Ultralytics offre un ecosistema solido e aggiornato attivamente. Configurare ambienti complessi per modelli che dipendono fortemente da pipeline NAS può essere complicato. Ultralytics offre invece un'API Python standardizzata e intuitiva, una potente CLI e un'ampia documentazione. Questo riduce drasticamente il time-to-market delle soluzioni di visione personalizzate.
Efficienza dell'addestramento e requisiti di memoria#
L'addestramento di modelli di grandi dimensioni può diventare rapidamente costoso dal punto di vista computazionale. Le architetture YOLO di Ultralytics sono note da tempo per il basso consumo di memoria CUDA durante l'addestramento e l'inferenza. Questa efficienza consente agli sviluppatori di addestrare modelli su hardware consumer o istanze cloud convenienti, senza incorrere in errori di memoria esaurita, comuni con i modelli basati su Transformer come RT-DETR.
Ultralytics si integra nativamente con i principali strumenti MLOps. Puoi monitorare facilmente i progressi dell'addestramento del tuo modello grazie alle integrazioni con Weights & Biases, Comet o ClearML, senza dover aggiungere codice boilerplate.
Versatilità in diverse attività#
Un limite significativo di molti modelli di rilevamento specializzati è il loro ambito ristretto. Nell'ecosistema Ultralytics non sei limitato al solo rilevamento di oggetti. Gli strumenti si estendono facilmente a diverse attività di visione artificiale, tra cui la segmentazione di istanze, la classificazione delle immagini, la stima della posa e il rilevamento con riquadri di delimitazione orientati (OBB).
Uno sguardo al futuro: l'evoluzione di YOLO26#
YOLOv10 ha introdotto l'inferenza senza NMS e DAMO-YOLO ha mostrato la potenza della ricerca NAS, ma il campo della visione artificiale evolve rapidamente. Agli sviluppatori in cerca della soluzione più avanzata consigliamo di provare Ultralytics YOLO26.
Rilasciato come successore definitivo di YOLO11, YOLO26 si basa sulle fondamenta senza NMS gettate da YOLOv10, ma le sviluppa in modo significativo.
I principali progressi di YOLO26 includono:
- Inferenza su CPU fino al 43% più veloce: ottimizzata appositamente per l'edge computing e i dispositivi a basso consumo.
- Rimozione della DFL: la Distribution Focal Loss è stata rimossa, semplificando le esportazioni e migliorando la compatibilità con diverse destinazioni di distribuzione.
- Ottimizzatore MuSGD: un ibrido di SGD e Muon che porta la stabilità avanzata dell'addestramento degli LLM e una convergenza più rapida direttamente nella visione artificiale.
- ProgLoss + STAL: funzioni di loss notevolmente migliorate che affinano il riconoscimento degli oggetti piccoli, fondamentale in casi d'uso come l'agricoltura e il telerilevamento.
Grazie alla rinnovata Ultralytics Platform, gli sviluppatori possono annotare i dati, addestrare e distribuire senza difficoltà modelli di nuova generazione come YOLO26 in pochi clic, mantenendo la pipeline di visione artificiale all'avanguardia e pronta per il futuro.