YOLOv10 contro YOLOv7: Progresso dell'architettura di rilevamento oggetti in tempo reale
L'evoluzione della famiglia YOLO (You Only Look Once) ha costantemente spinto i confini della computer vision, bilanciando velocità e accuratezza per le applicazioni in tempo reale. Questo confronto esplora i cambiamenti architettonici e le differenze di performance tra YOLOv10, un modello all'avanguardia rilasciato da ricercatori della Tsinghua University, e YOLOv7, un modello altamente influente sviluppato da Academia Sinica. Mentre entrambi i modelli hanno dato un contributo significativo al campo dell'object detection, impiegano strategie distinte per raggiungere i loro obiettivi di performance.
Evoluzione delle architetture dei modelli
La transizione da YOLOv7 a YOLOv10 segna un cambio di paradigma nel modo in cui le reti neurali gestiscono la post-elaborazione e l'integrazione delle caratteristiche.
YOLOv10: La rivoluzione senza NMS
YOLOv10, rilasciato il 23 maggio 2024 da Ao Wang, Hui Chen e altri della Tsinghua University, introduce una rivoluzionaria strategia di training NMS-free. Tradizionalmente, i detector di oggetti si basano sulla Non-Maximum Suppression (NMS) per filtrare i bounding box duplicati, il che può creare un collo di bottiglia nella latenza di inferenza.
YOLOv10 utilizza Assegnazioni Duali Coerenti per l'addestramento senza NMS, consentendo al modello di prevedere direttamente istanze di oggetti univoche. In combinazione con una progettazione del modello olistica guidata dall'efficienza-accuratezza, ottimizza vari componenti, tra cui l'head di classificazione leggero e il downsampling disaccoppiato spaziale-canale, per ridurre la ridondanza computazionale.
YOLOv7: Ottimizzato per Bag-of-Freebies addestrabile
YOLOv7, rilasciato il 6 luglio 2022 da Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao di Academia Sinica, si concentra sull'ottimizzazione del processo di addestramento senza aumentare il costo di inferenza. Ha introdotto la Extended Efficient Layer Aggregation Network (E-ELAN), che migliora la capacità di apprendimento della rete controllando il percorso del gradiente.
YOLOv7 sfrutta pesantemente i "Bag-of-Freebies", metodi che migliorano l'accuratezza durante l'addestramento senza influire sulla velocità di inferenza, e le tecniche di ridimensionamento del modello che combinano i parametri in modo efficiente. Sebbene sia molto efficace, la sua dipendenza dalla tradizionale post-elaborazione NMS significa che la sua latenza end-to-end è spesso superiore alle più recenti architetture NMS-free.
Confronto tecnico delle prestazioni
Durante la valutazione di questi modelli, emergono schemi distinti in termini di efficienza e capacità di detect grezza. In generale, YOLOv10 offre un'efficienza superiore, raggiungendo valori di mAP (Precisione Media Media) simili o migliori con un numero significativamente inferiore di parametri e tempi di inferenza più rapidi rispetto a YOLOv7.
La tabella seguente delinea le metriche chiave sul dataset COCO.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Approfondimento sull'efficienza
I dati evidenziano un vantaggio fondamentale di YOLOv10 in ambienti con risorse limitate. YOLOv10m raggiunge una precisione quasi identica (51,3% mAP) a YOLOv7l (51,4% mAP), ma lo fa con meno della metà dei parametri (15,4M contro 36,9M) e FLOPs significativamente inferiori (59,1B contro 104,7B).
Latenza e throughput
La rimozione della fase NMS da parte di YOLOv10 riduce drasticamente la varianza della latenza che si osserva spesso in scene affollate. In applicazioni come i veicoli autonomi o la sorveglianza con droni, dove ogni millisecondo conta, il tempo di inferenza prevedibile di YOLOv10 offre un vantaggio fondamentale per la sicurezza. YOLOv7 rimane competitivo in termini di throughput su GPU di fascia alta, ma consuma più memoria e potenza di calcolo per ottenere risultati comparabili.
Casi d'uso e applicazioni
Le differenze architetturali dettano gli scenari di implementazione ideali per ciascun modello.
Scenari ideali per YOLOv10
- Edge AI: Grazie al suo basso numero di parametri e ai FLOP, YOLOv10 è perfetto per dispositivi come Raspberry Pi o NVIDIA Jetson.
- Analisi video in tempo reale: L'elevata velocità di inferenza supporta l'elaborazione ad alto FPS per la gestione del traffico e l'analisi al dettaglio.
- Robotica: Una latenza inferiore si traduce in tempi di reazione più rapidi per le attività di navigazione e manipolazione dei robot.
Scenari ideali per YOLOv7
- Sistemi legacy: I progetti già integrati con il codebase YOLOv7 potrebbero trovarlo abbastanza stabile da mantenere senza refactoring immediato.
- Rilevamento per scopi generali: Per le implementazioni lato server in cui la VRAM è abbondante, i modelli più grandi di YOLOv7 forniscono ancora solide capacità di detection, anche se sono meno efficienti delle nuove alternative come YOLO11.
Il vantaggio di Ultralytics
Sebbene entrambi i modelli siano potenti, sfruttare l'ecosistema Ultralytics offre vantaggi distinti per sviluppatori e ricercatori. Il framework Ultralytics standardizza l'interfaccia per l'addestramento, la convalida e l'implementazione, rendendo significativamente più facile passare da un modello all'altro e valutare le performance.
Facilità d'uso ed efficienza di training
Una delle principali barriere nel deep learning è la complessità delle pipeline di training. I modelli Ultralytics, tra cui YOLOv10 e YOLO11, utilizzano un'API python semplificata che gestisce automaticamente l'aumento dei dati, l'ottimizzazione degli iperparametri e l'esportazione.
- API semplice: Addestra un modello in poche righe di codice.
- Efficienza della memoria: Le ottimizzazioni Ultralytics spesso si traducono in un minore utilizzo della memoria CUDA durante l'addestramento rispetto alle implementazioni raw.
- Pesi pre-addestrati: L'accesso a modelli pre-addestrati di alta qualità su ImageNet e COCO accelera il transfer learning.
Versatilità tra le attività
I modelli Ultralytics moderni vanno oltre la semplice detect di bounding box. Supportano Instance Segmentation, Pose Estimation, Oriented Object Detection (OBB) e Classification all'interno dello stesso framework. Questa versatilità è un vantaggio chiave rispetto ai repository standalone più datati.
Esempio di codice: Esecuzione di YOLOv10 con Ultralytics
Il seguente esempio dimostra la semplicità di utilizzo dell'API Ultralytics per caricare un modello YOLOv10 pre-addestrato ed eseguire l'inferenza. Questa facilità d'uso contrasta con la configurazione più manuale spesso richiesta per le architetture più datate come YOLOv7.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Conclusione e raccomandazioni
Per i nuovi progetti, YOLOv10 o l'ancora più avanzato YOLO11 sono le scelte consigliate. L'architettura NMS-free di YOLOv10 offre un equilibrio superiore tra velocità e precisione, rendendolo altamente adattabile alle moderne esigenze di edge computing. Affronta i colli di bottiglia della latenza delle generazioni precedenti, riducendo al contempo l'impronta computazionale.
Sebbene YOLOv7 rimanga una pietra miliare rispettata nella storia della computer vision, la sua architettura è meno efficiente rispetto agli standard odierni. Gli sviluppatori che cercano le migliori prestazioni, la manutenzione a lungo termine e la facilità di implementazione troveranno l'ecosistema Ultralytics —con i suoi continui aggiornamenti e l'ampio supporto di strumenti— l'ambiente più produttivo per la creazione di soluzioni di vision AI.
Scopri di più
- Confronto tra YOLOv10 e YOLOv8
- Confronto tra YOLOv10 e YOLOv9
- YOLO11: L'ultima novità nel detect in tempo reale
- Guida all'esportazione di modelli in TensorRT