Confronto tra DAMO-YOLO e YOLOv7#
La rapida evoluzione della computer vision ha prodotto modelli di rilevamento degli oggetti altamente 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, raggiungono i loro risultati attraverso paradigmi architetturali e metodologie di addestramento molto diversi.
Questo confronto tecnico completo esamina gli approcci distinti di entrambi i modelli, analizzandone le architetture, il potenziale di distribuzione e le metriche di prestazioni per aiutare gli ingegneri del machine learning a scegliere lo strumento giusto per le loro specifiche applicazioni di computer vision.
Origini e metadati dei modelli#
Prima di immergerci nell'analisi tecnica approfondita, è essenziale contestualizzare le origini di questi due modelli di computer vision.
DAMO-YOLO#
Sviluppato dai ricercatori di Alibaba Group, DAMO-YOLO è stato introdotto per ottimizzare sia la velocità sia la precisione attraverso 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#
Rilasciato come modello all'avanguardia a metà del 2022, YOLOv7 ha spinto oltre l'inferenza in tempo reale introducendo "bag-of-freebies" addestrabili senza aumentare i costi di distribuzione.
- 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
YOLOv7 è ufficialmente supportato nell'ecosistema Ultralytics, consentendo addestramento, validazione ed esportazione senza interruzioni tramite un'API unificata.
Innovazioni architetturali#
DAMO-YOLO: NAS e distillazione#
DAMO-YOLO integra diverse tecniche all'avanguardia orientate alla massima efficienza:
- Backbone NAS: utilizza la ricerca dell'architettura neurale (NAS) per progettare automaticamente backbone ottimali (MAE-NAS) adatti agli ambienti in cui la latenza è critica.
- RepGFPN efficiente: una rete piramidale generalizzata delle caratteristiche modificata, che migliora significativamente 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 sovraccarico computazionale.
- Miglioramento tramite distillazione: sfrutta ampiamente la distillazione della conoscenza durante l'addestramento per aumentare le prestazioni delle varianti di modello più piccole senza incrementarne il numero di parametri.
YOLOv7: E-ELAN e bag-of-freebies#
YOLOv7 ha adottato un approccio di ingegneria più strutturale, concentrandosi sull'ottimizzazione dei percorsi del gradiente e su solide strategie di addestramento.
- Architettura E-ELAN: la rete estesa di aggregazione efficiente dei livelli consente al modello di apprendere caratteristiche più diversificate controllando i percorsi del gradiente più brevi e più lunghi, garantendo una convergenza efficace dell'apprendimento.
- Ridimensionamento del modello: introduce un metodo di ridimensionamento composto pensato per i modelli basati sulla concatenazione, ridimensionando simultaneamente profondità e larghezza per mantenere l'allineamento strutturale.
- Bag-of-freebies addestrabili: impiega tecniche come le convoluzioni riparametrizzate (RepConv) senza connessioni identità e strategie dinamiche di assegnazione delle etichette, che aumentano la precisione durante l'addestramento senza influire sulla velocità di inferenza.
Analisi delle prestazioni#
Valutando la precisione media (mAP), la velocità e l'efficienza, entrambi i modelli mostrano metriche impressionanti, sebbene siano rivolti a segmenti leggermente diversi. YOLOv7 si concentra soprattutto sulla distribuzione su GPU ad alta precisione, mentre le strutture di DAMO-YOLO derivate da NAS puntano a una distribuzione aggressiva 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, mentre DAMO-YOLO offre varianti estremamente leggere, come il modello tiny con appena 8,5 M di parametri, YOLOv7 raggiunge un picco di precisione complessiva più elevato, con YOLOv7x che arriva a un notevole 53,1 mAP sul dataset COCO.
Il vantaggio dell'ecosistema Ultralytics#
Sebbene l'architettura teorica sia importante, la praticità di un modello è determinata dal suo ecosistema. I modelli supportati da Ultralytics, come YOLOv7, beneficiano di un ecosistema ben gestito e di una facilità d'uso senza pari.
- Bilanciamento delle prestazioni: i modelli Ultralytics raggiungono costantemente un compromesso ottimale tra velocità di inferenza e precisione di rilevamento, risultando ideali sia per i dispositivi edge sia per la distribuzione dei modelli basata sul cloud.
- Requisiti di memoria: a differenza dei modelli più pesanti basati su Transformer, i modelli YOLO di Ultralytics mantengono requisiti ridotti di memoria CUDA durante l'addestramento. Ciò consente dimensioni dei batch maggiori, semplificando il processo di addestramento anche su hardware di fascia consumer.
- Versatilità: il framework Ultralytics va oltre il rilevamento degli oggetti, includendo attività come la segmentazione delle istanze e la stima della posa, offrendo agli sviluppatori un toolkit completo per la computer vision.
Il pacchetto Ultralytics consente di passare senza interruzioni dai dataset a un modello completamente addestrato in pochi minuti, sfruttando data loader altamente ottimizzati e pesi preaddestrati.
Esempio di codice: addestramento di YOLOv7 con Ultralytics#
Integrare YOLOv7 nella tua pipeline di computer vision è estremamente semplice utilizzando l'API Python di Ultralytics.
from ultralytics import YOLO
# Load a pre-trained YOLOv7 model
model = YOLO("yolov7.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference and validate results
metrics = model.val()
predictions = model.predict("https://ultralytics.com/images/bus.jpg", save=True)Il nuovo standard: introduzione di YOLO26#
Sebbene YOLOv7 e DAMO-YOLO abbiano rappresentato importanti innovazioni nel 2022, il settore dell'AI per la visione si evolve rapidamente. Per i team che oggi avviano nuovi progetti, il modello consigliato è l'avanzato Ultralytics YOLO26, rilasciato a gennaio 2026.
YOLO26 introduce un salto generazionale in termini di prestazioni e usabilità, integrando innovazioni all'avanguardia:
- Design end-to-end senza NMS: YOLO26 è nativamente end-to-end. Eliminando la post-elaborazione della soppressione non massima (NMS), offre una logica di distribuzione più rapida e semplice, un cambio di paradigma inizialmente introdotto da YOLOv10.
- Ottimizzatore MuSGD: ispirato alle innovazioni dei modelli linguistici di grandi dimensioni, come Kimi K2 di Moonshot AI, YOLO26 utilizza una combinazione di SGD e Muon. Questo ottimizzatore garantisce dinamiche di addestramento altamente stabili e tassi di convergenza notevolmente più rapidi.
- Inferenza su CPU fino al 43% più veloce: grazie alla rimozione mirata della perdita focale della distribuzione (DFL) e a profondi miglioramenti strutturali, YOLO26 è fortemente ottimizzato per l'edge computing a basso consumo e supera le generazioni precedenti sull'hardware non dotato di GPU.
- ProgLoss + STAL: integra nuove funzioni di perdita avanzate che mirano esplicitamente a migliorare il riconoscimento degli oggetti piccoli, una capacità essenziale per le applicazioni di immagini aeree, robotica e monitoraggio della sicurezza.
- Miglioramenti specifici per attività: oltre al rilevamento standard, YOLO26 offre miglioramenti mirati per diverse attività, tra cui la prototipazione multiscala per la segmentazione, RLE per la stima della posa e perdite specifiche per gli angoli dei riquadri di delimitazione orientati (OBB).
Casi d'uso ideali#
La scelta dell'architettura giusta dipende interamente dall'ambiente di distribuzione di destinazione e dai vincoli del progetto.
Quando scegliere DAMO-YOLO:
- Lavori in ambienti edge fortemente vincolati e con risorse limitate, dove il numero complessivo di parametri deve essere mantenuto estremamente basso, ad esempio sui microcontrollori.
- Utilizzi pipeline di machine learning automatizzato integrate specificamente con i servizi cloud proprietari di Alibaba.
Quando scegliere YOLOv7:
- Disponi già di pipeline GPU legacy ottimizzate per l'inferenza ad alta precisione basata su anchor.
- Operi in ambienti in cui la precisione in tempo reale è fondamentale, come veicoli autonomi ad alta velocità o sistemi avanzati di robotica.
Quando scegliere YOLO26 (consigliato):
- Stai creando da zero una nuova applicazione di computer vision e hai bisogno del massimo livello di precisione disponibile, oltre che della massima velocità di inferenza su CPU/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 tutte le funzionalità della Ultralytics Platform per l'addestramento cloud, la gestione dei dataset e la distribuzione automatizzata.
Sfruttando il solido ecosistema dei modelli Ultralytics, gli sviluppatori possono ridurre drasticamente il tempo di ingegnerizzazione, ottenendo al contempo prestazioni predittive di alto livello per le loro applicazioni nel mondo reale.