YOLOv7 vs YOLOv10: Un confronto tecnico dettagliato
La selezione del modello di object detection giusto implica il bilanciamento di accuratezza, velocità e requisiti di deployment. Questa pagina fornisce un confronto tecnico dettagliato tra YOLOv7 e YOLOv10, due modelli significativi nel panorama del rilevamento di oggetti in tempo reale. Approfondiremo le loro differenze architetturali, le metriche di performance e i casi d'uso ideali per aiutarti a scegliere la soluzione migliore per i tuoi progetti di computer vision.
YOLOv7: Elevata precisione e velocità
YOLOv7, introdotto nel luglio 2022, ha rapidamente ottenuto riconoscimenti per il suo impressionante equilibrio tra velocità e precisione, stabilendo nuovi benchmark all'avanguardia all'epoca. Si è concentrato sull'ottimizzazione del processo di addestramento utilizzando "trainable bag-of-freebies" per migliorare la precisione senza aumentare i costi di inferenza.
Dettagli tecnici:
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 2022-07-06
- Arxiv: https://arxiv.org/abs/2207.02696
- GitHub: https://github.com/WongKinYiu/yolov7
- Documentazione: https://docs.ultralytics.com/models/yolov7/
Architettura e caratteristiche principali
YOLOv7 ha introdotto diversi miglioramenti architetturali e perfezionamenti dell'addestramento per raggiungere le sue prestazioni:
- Extended Efficient Layer Aggregation Networks (E-ELAN): Questo componente chiave nel backbone migliora la capacità della rete di apprendere feature diversificate controllando il percorso del gradiente, il che migliora la convergenza e l'accuratezza complessiva.
- Scalabilità del modello: Implementa metodi di ridimensionamento composto per modelli basati sulla concatenazione, consentendo una regolazione efficace della profondità e della larghezza del modello per adattarsi a diversi budget computazionali.
- Bag-of-Freebies addestrabile: YOLOv7 ha sfruttato tecniche avanzate durante l'addestramento, come le strategie di assegnazione delle etichette e le regolazioni della normalizzazione batch, per aumentare le prestazioni senza aggiungere alcun overhead durante l'inferenza.
- Testa Ausiliaria Coarse-to-fine: Il modello utilizza teste ausiliarie durante l'addestramento per migliorare la supervisione profonda e guidare il processo di apprendimento del modello in modo più efficace.
Punti di forza e debolezze
Punti di forza
- Bilanciamento tra alta precisione e velocità: YOLOv7 offre una forte combinazione di alta mAP e velocità di inferenza elevata, rendendolo adatto a molte applicazioni in tempo reale.
- Addestramento efficiente: Il modello incorpora tecniche di addestramento avanzate che migliorano le prestazioni senza aumentare significativamente le richieste computazionali durante l'inferenza.
- Consolidato: Essendo un modello maturo, beneficia di una base di utenti più ampia e di più risorse della comunità rispetto ai modelli più recenti.
Punti deboli
- Dipendenza da NMS: YOLOv7 si basa sulla Non-Maximum Suppression (NMS) per la post-elaborazione, il che aggiunge overhead computazionale e aumenta la latenza di inferenza.
- Complessità: L'architettura e le strategie di training, sebbene efficaci, possono essere complesse da comprendere appieno e ottimizzare per applicazioni personalizzate.
Casi d'uso
YOLOv7 è adatto per applicazioni impegnative in cui è fondamentale un equilibrio tra velocità e precisione:
- Sorveglianza avanzata: La sua elevata accuratezza è preziosa per identificare oggetti o minacce nei sistemi di sicurezza.
- Sistemi autonomi: Fornisce un rilevamento robusto per applicazioni come le auto a guida autonoma.
- Automazione industriale: Il modello può essere utilizzato per il rilevamento affidabile dei difetti nella produzione e per il controllo qualità.
YOLOv10: Rilevamento End-to-End in Tempo Reale
YOLOv10, introdotto a maggio 2024 dai ricercatori della Tsinghua University, rappresenta un significativo progresso nel rilevamento di oggetti in tempo reale. La sua principale innovazione è la creazione di una soluzione end-to-end eliminando la necessità di Non-Maximum Suppression (NMS), che riduce la latenza e migliora l'efficienza dell'implementazione.
Dettagli tecnici:
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Tsinghua University
- 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/
Architettura e caratteristiche principali
YOLOv10 introduce diverse innovazioni architetturali volte a ottimizzare il compromesso tra velocità e precisione:
- Addestramento senza NMS: Utilizza assegnazioni duali coerenti durante l'addestramento, consentendo prestazioni competitive senza la fase di post-elaborazione NMS. Ciò semplifica la pipeline di implementazione e riduce la latenza di inferenza.
- Progettazione guidata dall'efficienza-accuratezza olistica: Il modello ottimizza vari componenti, come l'head di classificazione e i livelli di downsampling, per ridurre la ridondanza computazionale e migliorare la capacità. Ciò include tecniche come il design a blocchi guidato dal rango e l'auto-attenzione parziale (PSA).
- Approccio Anchor-Free: Come altri modelli YOLO moderni, adotta un design di rilevatore anchor-free, che semplifica l'head di rilevamento e migliora la generalizzazione.
Punti di forza e debolezze
Punti di forza
- Elevata efficienza: Il design senza NMS e altre ottimizzazioni architetturali portano a un'inferenza più veloce, una latenza inferiore e un costo computazionale ridotto.
- Accuratezza Competitiva: Mantiene un'elevata accuratezza migliorando significativamente la velocità e riducendo le dimensioni del modello.
- Implementazione End-to-End: La rimozione di NMS semplifica la pipeline di implementazione, facilitandone l'integrazione nelle applicazioni.
Punti deboli
- Relativamente nuovo: Essendo un modello più recente, il supporto della community e il numero di esempi reali potrebbero essere inferiori rispetto a modelli consolidati come YOLOv7 o Ultralytics YOLOv8.
- Ottimizzazione per prestazioni ottimali: Ottenere i migliori risultati può richiedere un'attenta ottimizzazione degli iperparametri, potenzialmente beneficiando di risorse come i consigli per l'addestramento del modello.
Casi d'uso
L'attenzione di YOLOv10 all'efficienza in tempo reale la rende ideale per ambienti con risorse limitate:
- Applicazioni Edge AI: Perfetto per la distribuzione su dispositivi come NVIDIA Jetson o Raspberry Pi, dove la bassa latenza è fondamentale.
- Robotica: Consente una percezione più rapida per la navigazione e l'interazione, un aspetto chiave del ruolo dell'IA nella robotica.
- Droni autonomi: La sua architettura leggera e veloce è adatta per il rilevamento rapido di oggetti nei droni e in altri veicoli aerei senza pilota.
Confronto diretto delle prestazioni
Quando si confrontano YOLOv7 e YOLOv10, la differenza più significativa risiede nelle loro filosofie di progettazione. YOLOv7 punta a un equilibrio tra alta accuratezza e velocità, rendendolo un potente rilevatore per scopi generali. Al contrario, YOLOv10 dà la priorità all'efficienza computazionale e alla bassa latenza eliminando NMS, rendendolo una scelta superiore per le applicazioni in tempo reale su dispositivi edge.
La tabella seguente mostra che i modelli YOLOv10 raggiungono costantemente una latenza inferiore e richiedono meno parametri e FLOP rispetto ai modelli YOLOv7 a livelli di mAP simili. Ad esempio, YOLOv10b raggiunge un mAP di 52.7 con solo 6.54 ms di latenza, superando YOLOv7l, che ha un mAP simile ma una latenza maggiore.
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT10 (ms) |
parametri (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
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 |
Conclusione e raccomandazioni
Sia YOLOv7 che YOLOv10 sono modelli potenti, ma soddisfano esigenze diverse. YOLOv7 è un rilevatore robusto e preciso che rimane una scelta solida per le applicazioni in cui raggiungere un'alta mAP è una priorità. YOLOv10, con la sua innovativa architettura NMS-free, è il chiaro vincitore per le applicazioni che richiedono la massima efficienza e la minore latenza, specialmente nelle implementazioni end-to-end.
Per gli sviluppatori alla ricerca di un framework moderno, versatile e facile da usare, i modelli dell'ecosistema Ultralytics, come Ultralytics YOLOv8 e l'ultimo YOLO11, rappresentano spesso una scelta più interessante. Questi modelli offrono:
- Facilità d'uso: Un'API Python semplificata, una documentazione esaustiva e semplici comandi CLI.
- Ecosistema ben mantenuto: Sviluppo attivo, una forte comunità open source e integrazione con strumenti come Ultralytics HUB per un MLOps senza interruzioni.
- Versatilità delle attività: Supporto per molteplici attività oltre al rilevamento di oggetti, tra cui segmentazione, classificazione, stima della posa e rilevamento di oggetti orientati (OBB).
Esplora altri modelli
Se sei interessato ad altri modelli, consulta questi confronti aggiuntivi:
- YOLOv7 vs YOLOv8
- YOLOv10 contro YOLOv8
- YOLOv10 contro YOLOv9
- RT-DETR vs YOLOv7
- YOLOv7 vs YOLOv5
- Esplora gli ultimi modelli come YOLO11.