DAMO-YOLO vs YOLOv7#
La rapida evoluzione della visione artificiale ha prodotto modelli di rilevamento degli oggetti molto efficienti, progettati per bilanciare precisione e costo computazionale. Due modelli degni di nota, introdotti nel 2022, sono DAMO-YOLO e YOLOv7. Sebbene entrambi mirino a superare i limiti delle attività di visione in tempo reale, ottengono i risultati con paradigmi architetturali e metodologie di addestramento molto diversi.
Questo confronto tecnico completo esamina gli approcci distinti dei due modelli, analizzandone architetture, potenziale di implementazione e metriche prestazionali, per aiutare gli ingegneri di machine learning a scegliere lo strumento giusto per le loro specifiche applicazioni di visione artificiale.
Origini e metadati dei modelli#
Prima di approfondire l'analisi tecnica, è essenziale inquadrare le origini di questi due modelli di visione artificiale.
DAMO-YOLO#
Sviluppato da ricercatori di Alibaba Group, DAMO-YOLO è stato introdotto per ottimizzare sia la velocità sia la precisione tramite la ricerca automatizzata dell'architettura e la distillazione.
- 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
YOLOv7#
Presentato come modello all'avanguardia a metà del 2022, YOLOv7 ha ulteriormente migliorato l'inferenza in tempo reale introducendo tecniche "bag-of-freebies" addestrabili senza aumentare i costi di implementazione.
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 6 luglio 2022
- Arxiv: 2207.02696
- Documentazione: Documentazione di YOLOv7
Ultralytics non pubblica pesi o file YAML di YOLOv7, quindi YOLOv7 non può essere addestrato in modo nativo con il pacchetto Ultralytics. I modelli YOLOv7 addestrati nel repository upstream possono essere esportati in ONNX o TensorRT ed eseguiti per l'inferenza con Ultralytics.
Innovazioni architetturali#
DAMO-YOLO: NAS e distillazione#
DAMO-YOLO integra diverse tecniche all'avanguardia mirate alla massima efficienza:
- Backbone NAS: usa la ricerca dell'architettura neurale (NAS) per progettare automaticamente backbone ottimali (MAE-NAS), adattati agli ambienti in cui la latenza è fondamentale.
- RepGFPN efficiente: una rete piramidale generalizzata delle caratteristiche modificata, che migliora notevolmente l'efficienza della fusione delle caratteristiche su più scale.
- ZeroHead e AlignedOTA: integra una testa di rilevamento leggera e una strategia ottimizzata di assegnazione delle etichette (AlignedOTA) per ridurre il carico computazionale.
- Miglioramento tramite distillazione: sfrutta ampiamente la distillazione della conoscenza durante l'addestramento per potenziare le prestazioni delle varianti più piccole del modello senza aumentarne il numero di parametri.
YOLOv7: E-ELAN e bag-of-freebies#
YOLOv7 ha adottato un approccio più orientato all'ingegneria strutturale, concentrandosi sull'ottimizzazione dei percorsi dei gradienti e su strategie di addestramento robuste.
- Architettura E-ELAN: la rete estesa ed efficiente di aggregazione degli strati consente al modello di apprendere caratteristiche più diversificate controllando i percorsi dei gradienti più brevi e più lunghi, garantendo una convergenza efficace dell'apprendimento.
- Ridimensionamento del modello: introduce un metodo di ridimensionamento composto, adattato ai modelli basati sulla concatenazione, che ridimensiona simultaneamente profondità e larghezza per mantenere l'allineamento strutturale.
- Bag-of-freebies addestrabili: utilizza tecniche come le convoluzioni riparametrizzate (RepConv) senza connessioni di identità e strategie dinamiche di assegnazione delle etichette, che aumentano la precisione durante l'addestramento senza influire sulla velocità di inferenza.
Analisi delle prestazioni#
Nel valutare la precisione media (mAP), la velocità e l'efficienza, entrambi i modelli mostrano metriche impressionanti, anche se si rivolgono a segmenti leggermente diversi. YOLOv7 si concentra soprattutto sulle implementazioni su GPU ad alta precisione, mentre le strutture di DAMO-YOLO derivate da NAS puntano a implementazioni aggressive a bassa latenza su CPU e dispositivi edge.
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Come mostrano le metriche, DAMO-YOLO offre varianti estremamente leggere, come il modello tiny con appena 8,5 milioni di parametri, mentre YOLOv7 raggiunge un picco di precisione complessiva superiore: YOLOv7x ottiene l'impressionante risultato di 53,1 mAP sul dataset COCO.
I vantaggi dell’ecosistema Ultralytics#
Sebbene l'architettura teorica sia importante, la praticità di un modello dipende dal suo ecosistema. I modelli Ultralytics nativi come YOLO26 beneficiano di un ecosistema mantenuto con cura e di una semplicità d'uso senza pari.
- Equilibrio delle prestazioni: i modelli Ultralytics trovano con costanza un compromesso ottimale tra velocità di inferenza e precisione del rilevamento, risultando ideali sia per i dispositivi edge sia per l'implementazione dei modelli nel cloud.
- Requisiti di memoria: a differenza dei modelli più pesanti basati su Transformer, i modelli Ultralytics YOLO richiedono poca memoria CUDA durante l'addestramento. Questo consente di usare dimensioni di batch maggiori e semplifica il processo di addestramento anche su hardware di fascia consumer.
- Versatilità: il framework Ultralytics va oltre il rilevamento degli oggetti e supporta attività come la segmentazione di istanze e la stima della posa, offrendo agli sviluppatori un toolkit completo per la visione artificiale.
Il pacchetto Ultralytics consente di passare senza interruzioni dai dataset a un modello completamente addestrato in pochi minuti, sfruttando caricamento dei dati altamente ottimizzato e pesi preaddestrati.
Esempio di codice: eseguire YOLOv7 con Ultralytics#
Dopo aver convertito un'esportazione ONNX upstream di YOLOv7 come descritto negli esempi di utilizzo di YOLOv7, puoi eseguirla con l'API Python di Ultralytics.
from ultralytics import YOLO
# Carica un modello ONNX di YOLOv7 convertito per Ultralytics
model = YOLO("yolov7-ultralytics.onnx", task="detect")
# Esegui l'inferenza
predictions = model.predict("https://ultralytics.com/images/bus.jpg", save=True)Il nuovo standard: ecco YOLO26#
YOLOv7 e DAMO-YOLO hanno rappresentato importanti progressi nel 2022, ma il settore dell'IA per la visione evolve rapidamente. Per i team che avviano nuovi progetti oggi, il modello consigliato è l'avanzato Ultralytics YOLO26, rilasciato a gennaio 2026.
YOLO26 segna un salto generazionale in termini di prestazioni e usabilità, integrando innovazioni all'avanguardia:
- Design end-to-end senza NMS: YOLO26 offre una testa end-to-end nativa (
nms=False). Eliminando la post-elaborazione della soppressione dei massimi non locali (NMS), consente una logica di implementazione più semplice e veloce: un cambio di paradigma introdotto inizialmente da YOLOv10. - Ottimizzatore MuSGD: ispirato alle innovazioni dei modelli linguistici di grandi dimensioni, come Kimi K2 di Moonshot AI, YOLO26 utilizza un ibrido di SGD e Muon. Questo ottimizzatore garantisce dinamiche di addestramento molto stabili e tassi di convergenza notevolmente più rapidi.
- Inferenza su CPU fino al 43% più veloce: grazie alla rimozione mirata della Distribution Focal Loss (DFL) e a importanti miglioramenti strutturali, YOLO26 è fortemente ottimizzato per l'edge computing a basso consumo e supera le generazioni precedenti sull'hardware senza GPU.
- ProgLoss + STAL: integra nuove funzioni di perdita avanzate, mirate esplicitamente a migliorare il riconoscimento degli oggetti piccoli, una capacità essenziale per applicazioni di immagini aeree, robotica e monitoraggio della sicurezza.
- Miglioramenti specifici per attività: oltre al rilevamento standard, YOLO26 introduce miglioramenti mirati per diverse attività, tra cui la prototipazione multi-scala per la segmentazione, RLE per la stima della posa e funzioni di perdita angolare specifiche per i riquadri delimitatori orientati (OBB).
Casi d'uso ideali#
La scelta dell'architettura giusta dipende interamente dall'ambiente di implementazione di destinazione e dai vincoli del progetto.
Quando scegliere DAMO-YOLO:
- Lavori in ambienti edge fortemente vincolati e con risorse limitate, in cui il numero grezzo di parametri deve essere estremamente basso (ad esempio, sui microcontrollori).
- Utilizzi pipeline di machine learning automatizzato integrate appositamente con i servizi cloud proprietari di Alibaba.
Quando scegliere YOLOv7:
- Hai pipeline GPU legacy già ottimizzate per l'inferenza basata su anchor e ad alta precisione.
- Operi in ambienti in cui la precisione in tempo reale è fondamentale, come i veicoli autonomi ad alta velocità o la robotica avanzata.
Quando scegliere YOLO26 (consigliato):
- Stai sviluppando da zero una nuova applicazione di visione artificiale e hai bisogno di soluzioni all'avanguardia sia in termini di precisione sia di velocità di inferenza su CPU e dispositivi edge.
- Hai bisogno di una distribuzione rapida e senza interruzioni, ad esempio esportando in CoreML o TensorRT, senza dover gestire i vincoli degli operatori NMS.
- Vuoi sfruttare appieno le funzionalità della Ultralytics Platform per l'addestramento nel cloud, la gestione dei dataset e la distribuzione automatizzata.
Sfruttando il solido ecosistema di modelli Ultralytics, gli sviluppatori possono ridurre drasticamente i tempi di progettazione e ottenere prestazioni predittive di alto livello nelle applicazioni del mondo reale.