DAMO-YOLO vs YOLOv5#
L'evoluzione della visione artificiale è stata caratterizzata da un'innovazione continua nel rilevamento degli oggetti in tempo reale. Oggi, sviluppatori e ricercatori devono scegliere tra una moltitudine di architetture nella progettazione delle pipeline di visione. Questo confronto tecnico completo esamina le differenze tra DAMO-YOLO e Ultralytics YOLOv5, mettendone in evidenza le rispettive architetture, metodologie di addestramento, metriche delle prestazioni e scenari di distribuzione ideali.
Introduzione a DAMO-YOLO#
Rilasciato da Alibaba Group, DAMO-YOLO ha introdotto diverse tecniche innovative mirate a superare i limiti della velocità e della precisione del rilevamento.
- Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
- Organizzazione: Alibaba Group
- Data: 23 novembre 2022
- Arxiv: 2211.15444v2
- GitHub: tinyvision/DAMO-YOLO
- Documentazione: README.md
Innovazioni architetturali#
DAMO-YOLO è basato su una struttura di Neural Architecture Search (NAS). Gli autori hanno utilizzato MAE-NAS per progettare automaticamente backbone che bilanciano latenza e accuratezza. Il modello introduce un efficiente RepGFPN (Reparameterized Generalized Feature Pyramid Network) che migliora la fusione delle feature su diverse scale. Inoltre, DAMO-YOLO incorpora un design "ZeroHead", eliminando complesse teste di predizione multi-ramificazione a favore di una struttura più semplice ed efficiente che si affida pesantemente alla riparametrizzazione durante l'inferenza.
Per migliorare l'addestramento, il modello utilizza AlignedOTA per l'assegnazione delle etichette e un processo avanzato di distillazione, in cui un modello "insegnante" più grande guida il modello "studente" più piccolo per ottenere una precisione maggiore.
Introduzione a Ultralytics YOLOv5#
Ultralytics YOLOv5 è una delle architetture di visione più adottate al mondo, rinomata per la sua stabilità, facilità d'uso e ampio ecosistema di distribuzione.
- Autori: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 26 giugno 2020
- GitHub: ultralytics/yolov5
- Documentazione: Documentazione di YOLOv5
Lo standard dell'ecosistema#
YOLOv5 ha ridefinito lo standard di usabilità del settore. Costruito nativamente in PyTorch, utilizza un backbone CSPNet altamente ottimizzato e un neck PANet per una solida aggregazione delle caratteristiche. Sebbene abbia preceduto la tendenza verso modelli privi di anchor osservata nei modelli successivi, il suo approccio basato su anchor, altamente perfezionato e affiancato dall'apprendimento automatico delle anchor, garantisce prestazioni eccellenti fin dal primo utilizzo.
La vera forza di YOLOv5 risiede nel suo ecosistema ben mantenuto. Si integra perfettamente con strumenti di tracking come Comet e Weights & Biases, e supporta esportazioni con un clic verso formati come ONNX, TensorRT e CoreML.
YOLOv5 è incredibilmente facile da addestrare su dataset personalizzati. L'API ottimizzata riduce gli ostacoli nel passaggio dal prototipo alla produzione, rendendolo uno dei preferiti dei team di engineering agili.
Confronto di prestazioni e metriche#
Nel confrontare questi modelli, è fondamentale considerare l'equilibrio tra precisione media media (mAP), velocità di inferenza e numero di parametri.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (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 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Analisi dei compromessi#
DAMO-YOLO raggiunge punteggi mAP impressionanti rispetto alle sue dimensioni in termini di parametri, beneficiando ampiamente della fase di addestramento tramite distillazione. Tuttavia, questo avviene a scapito dell'efficienza di addestramento. Il processo di distillazione in più fasi richiede prima l'addestramento di un modello insegnante di grandi dimensioni, aumentando significativamente il tempo necessario di calcolo su GPU e l'utilizzo della VRAM.
Al contrario, YOLOv5 offre eccellenti requisiti di memoria. I modelli Ultralytics YOLO sono noti per il minore utilizzo della memoria durante l'addestramento e l'inferenza rispetto alle pipeline di distillazione complesse o ai modelli basati su Transformer come RT-DETR. Ciò consente di addestrare YOLOv5 in modo efficiente su hardware di livello consumer o in ambienti cloud accessibili come Google Colab.
Applicazioni nel mondo reale e versatilità#
La scelta dell'architettura giusta dipende spesso dall'ambiente di distribuzione.
Dove DAMO-YOLO eccelle#
DAMO-YOLO è rigorosamente un modello di object detection. È una scelta eccellente per la ricerca accademica, in particolare per i team che studiano la Neural Architecture Search o per coloro che mirano a riprodurre le tecniche di riparametrizzazione descritte nel documento. Se un progetto dispone di ampie risorse computazionali per eseguire la fase di addestramento per distillazione ed è focalizzato unicamente sull'estrarre l'ultima frazione di accuratezza per i bounding box 2D, DAMO-YOLO è un forte contendente.
Il vantaggio di Ultralytics#
Per la produzione nel mondo reale, la facilità d'uso e la versatilità dei modelli Ultralytics li rendono la scelta preferita. Sebbene YOLOv5 rimanga un punto di riferimento per il rilevamento e la classificazione delle immagini, il più ampio ecosistema Ultralytics consente agli sviluppatori di passare facilmente da un'attività all'altra.
Ad esempio, le iterazioni più recenti della famiglia Ultralytics supportano nativamente la segmentazione delle istanze, la stima della posa e il rilevamento dei riquadri delimitatori orientati (OBB). Questa capacità multi-attività garantisce ai team la possibilità di utilizzare una singola API Python unificata per pipeline complesse, come la combinazione del riconoscimento automatico delle targhe con la segmentazione dei veicoli.
Casi d'uso e raccomandazioni#
La scelta tra DAMO-YOLO e YOLOv5 dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze relative all'ecosistema.
Quando scegliere DAMO-YOLO#
DAMO-YOLO è una scelta solida 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 YOLOv5#
YOLOv5 è consigliato per:
- Sistemi di produzione collaudati: implementazioni esistenti in cui sono apprezzati il lungo storico di stabilità di YOLOv5, la documentazione estesa e l'enorme supporto della community.
- Addestramento con risorse limitate: ambienti con risorse GPU limitate, in cui la pipeline di addestramento efficiente di YOLOv5 e i requisiti di memoria inferiori sono vantaggiosi.
- Ampio supporto dei formati di esportazione: progetti che richiedono l'implementazione in numerosi formati, tra cui ONNX, TensorRT, CoreML e TFLite.
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.
Il futuro: passare a YOLO26#
Sebbene YOLOv5 sia leggendario e DAMO-YOLO offra interessanti spunti accademici, lo stato dell'arte si è evoluto. Rilasciato a gennaio 2026, Ultralytics YOLO26 rappresenta un enorme passo avanti per la comunità della visione artificiale.
YOLO26 affronta i tradizionali colli di bottiglia della distribuzione all'edge e dell'instabilità dell'addestramento:
- Design end-to-end senza NMS: YOLO26 elimina nativamente la post-elaborazione della soppressione non massima. Questa innovazione semplifica la logica di distribuzione e riduce drasticamente la variabilità della latenza, rendendolo ideale per la robotica ad alta velocità e i sistemi autonomi.
- Ottimizzatore MuSGD: Ispirato alle innovazioni nell'addestramento degli LLM (come Kimi K2 di Moonshot AI), YOLO26 utilizza l'ottimizzatore MuSGD (un ibrido di SGD e Muon). Ciò garantisce sessioni di addestramento altamente stabili e una convergenza sensibilmente più rapida.
- Inferenza su CPU fino al 43% più veloce: Rimuovendo strategicamente la perdita focale della distribuzione (DFL), YOLO26 raggiunge velocità nettamente superiori su CPU e dispositivi edge rispetto ai predecessori come YOLO11 e YOLOv8.
- ProgLoss + STAL: Queste funzioni di perdita avanzate producono miglioramenti significativi nel riconoscimento degli oggetti piccoli, fondamentale per l'analisi di immagini aeree riprese da droni e dei flussi di dati dei sensori IoT.
Esempio di codice: la semplicità in azione#
Il pacchetto Ultralytics consente di addestrare e distribuire modelli con poche righe di codice. Che tu utilizzi YOLOv5 o esegua l'upgrade al consigliato YOLO26, l'interfaccia rimane coerente e intuitiva.
from ultralytics import YOLO
# Load the state-of-the-art YOLO26 small model
model = YOLO("yolo26s.pt")
# Train on a custom dataset effortlessly
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image and display results
predictions = model("https://ultralytics.com/images/bus.jpg")
predictions[0].show()
# Export the model for edge deployment
model.export(format="onnx")Conclusioni#
Sia DAMO-YOLO sia YOLOv5 hanno contribuito in modo significativo al panorama della visione artificiale. DAMO-YOLO dimostra la potenza della Ricerca dell'architettura neurale e della distillazione, rendendolo interessante per i ricercatori. Tuttavia, YOLOv5 rimane una soluzione estremamente efficace e pratica grazie al suo equilibrio delle prestazioni, ai bassi requisiti di memoria e all'ineguagliabile facilità d'uso.
Per gli sviluppatori che oggi iniziano nuovi progetti, la raccomandazione è sfruttare la Ultralytics Platform e adottare YOLO26. Combina l'amato ecosistema intuitivo di YOLOv5 con innovazioni architetturali rivoluzionarie, garantendo precisione di alto livello e un'inferenza fulminea per le applicazioni di IA cloud ed edge. Gli sviluppatori potrebbero anche valutare altri modelli efficienti come YOLOv6 o YOLOX, a seconda dei vincoli specifici dell'hardware legacy.