YOLOv7 vs YOLOv10#
Negli ultimi anni il settore della visione artificiale ha fatto rapidi progressi e la famiglia di modelli YOLO (You Only Look Once) ha guidato l'evoluzione del rilevamento degli oggetti in tempo reale. Per scegliere l'architettura giusta per i tuoi progetti di visione artificiale è necessario conoscere chiaramente le opzioni disponibili. Questo confronto tecnico illustra le principali differenze tra due architetture fondamentali: YOLOv7 e YOLOv10.
Introduzione ai modelli#
Entrambi i modelli rappresentano traguardi importanti nel rilevamento degli oggetti, ma adottano approcci fondamentalmente diversi per affrontare le sfide del settore.
YOLOv7: pioniere dei bag-of-freebies#
Rilasciato il 6 luglio 2022 dai ricercatori Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao dell'Institute of Information Science, Academia Sinica, YOLOv7 ha introdotto nuovi metodi per ottimizzare i rilevatori in tempo reale. La ricerca originale, descritta nel loro articolo accademico e pubblicata nel repository GitHub ufficiale, si concentrava sulla riparametrizzazione architetturale e su un "bag-of-freebies" addestrabile.
YOLOv7 sfrutta una rete estesa ed efficiente di aggregazione dei layer (E-ELAN) per guidare la rete nell'apprendimento di caratteristiche diversificate senza alterare il percorso del gradiente originale. Questo lo rende una scelta solida per i benchmark della ricerca accademica e per i sistemi che dipendono fortemente da GPU standard di fascia alta.
YOLOv10: rilevamento end-to-end in tempo reale#
Sviluppato da Ao Wang e colleghi della Tsinghua University, YOLOv10 è stato rilasciato il 23 maggio 2024. Come descritto nella sua pubblicazione su arXiv e nel repository GitHub di Tsinghua, questo modello elimina un collo di bottiglia di lunga data nel rilevamento degli oggetti: la soppressione non massima (NMS).
YOLOv10 ha introdotto assegnazioni duali coerenti per l'addestramento senza NMS, modificando la pipeline di post-elaborazione. La progettazione del modello, orientata in modo olistico a efficienza e precisione, riduce la ridondanza computazionale e produce un'architettura adatta ai dispositivi edge che richiedono una bassa latenza.
Confronto delle prestazioni e delle metriche#
Per analizzare le prestazioni dei modelli, è importante valutare i compromessi tra precisione, velocità e costo computazionale. La tabella seguente confronta le diverse dimensioni di questi modelli.
| 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 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
Analisi dei compromessi#
Le metriche precedenti rivelano un chiaro divario generazionale. YOLOv7x raggiunge un mAPval del 53,1%, ma richiede 71,3M di parametri e 189,9B FLOP. Al contrario, YOLOv10l supera tale precisione (53,2% mAP) usando circa un terzo dei parametri (24,4M) e molti meno FLOP (120,3B). Inoltre, YOLOv10n raggiunge 1,84 ms su una GPU T4 con TensorRT, risultando adatto all'analisi video in tempo reale e alle applicazioni mobili.
Casi d’uso nel mondo reale#
Le differenze architetturali tra questi modelli determinano i rispettivi casi d'uso ottimali.
Quando usare YOLOv7#
La ricca rappresentazione delle caratteristiche di YOLOv7 è adatta a scene complesse su hardware GPU. Casi d'uso come il monitoraggio del flusso del traffico nelle aree urbane densamente popolate, l'analisi di immagini satellitari o l'identificazione di difetti nell'automazione industriale pesante possono trarre vantaggio dalla sua architettura riparametrizzata. È inoltre ancora comune negli ambienti legacy basati su pipeline specifiche di PyTorch 1.x.
Quando usare YOLOv10#
Il design leggero e privo di NMS di YOLOv10 è adatto agli ambienti con risorse limitate, inclusi i dispositivi di edge computing come i moduli NVIDIA Jetson o un Raspberry Pi. Le prestazioni a bassa latenza lo rendono ideale per applicazioni rapide come l'analisi sportiva, la navigazione autonoma dei droni e lo smistamento robotizzato ad alta velocità sui nastri trasportatori.
I vantaggi dell’ecosistema Ultralytics#
Sebbene entrambi i modelli abbiano solide basi accademiche, YOLOv10 è più facile da addestrare e distribuire nell'ecosistema Ultralytics e sulla Ultralytics Platform. Sviluppare modelli di computer vision da zero è difficile e l'ecosistema Ultralytics semplifica il flusso di lavoro degli ingegneri del machine learning.
- Facilità d'uso: l'API Python di Ultralytics offre un'interfaccia unificata. Puoi addestrare, convalidare ed esportare modelli con poche righe di codice, evitando i conflitti tra dipendenze comuni nei repository accademici.
- Ecosistema ben mantenuto: la base di codice Ultralytics è in continuo sviluppo e gli utenti possono contare sulle integrazioni con strumenti ML diffusi come Weights & Biases per la registrazione dei dati o Gradio per creare rapidamente demo web.
- Requisiti di memoria: i rilevatori di oggetti basati su Transformer spesso consumano molta memoria CUDA durante l'addestramento. Al contrario, i modelli Ultralytics YOLO richiedono molta meno memoria, consentendo di usare dimensioni dei batch molto maggiori su hardware di fascia consumer.
- Versatilità: la pipeline Ultralytics non è limitata ai normali riquadri di delimitazione. Supporta la segmentazione delle istanze, la classificazione delle immagini, la stima della posa e i riquadri di delimitazione orientati nelle famiglie di modelli supportate, come YOLO11 e YOLOv8.
Esempio di addestramento semplificato#
Eseguire una pipeline di addestramento con Ultralytics è semplice. Che tu sfrutti la velocità senza NMS di YOLOv10 o un altro modello supportato, la sintassi rimane coerente (tieni presente che il pacchetto Ultralytics non supporta l'addestramento di YOLOv7):
from ultralytics import YOLO
# Carica il modello preferito (ad es., YOLOv10 Nano)
model = YOLO("yolov10n.pt")
# Addestra il modello sul dataset COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Esegui una previsione di inferenza su un'immagine di esempio
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Esporta in un formato adatto ai dispositivi edge, come ONNX
model.export(format="onnx")Casi d'uso e consigli#
La scelta tra YOLOv7 e YOLOv10 dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze per l'ecosistema.
Quando scegliere YOLOv7#
YOLOv7 è una scelta valida per:
- Benchmark accademici: riprodurre i risultati dello stato dell'arte del 2022 o studiare gli effetti di E-ELAN e delle tecniche del bagaglio di tecniche gratuite addestrabile.
- Ricerca sulla riparametrizzazione: esaminare convoluzioni riparametrizzate pianificate e strategie di scalabilità composta dei modelli.
- Pipeline personalizzate esistenti: progetti con pipeline ampiamente personalizzate e basate sull'architettura specifica di YOLOv7, difficili da ristrutturare.
Quando scegliere YOLOv10#
YOLOv10 è consigliato per:
- Rilevamento in tempo reale senza NMS: applicazioni che traggono vantaggio dal rilevamento end-to-end senza soppressione non massima, riducendo la complessità della distribuzione.
- Compromesso equilibrato tra velocità e precisione: progetti che richiedono un buon equilibrio tra velocità di inferenza e precisione di rilevamento con modelli di diverse dimensioni.
- Applicazioni con latenza costante: scenari di distribuzione in cui i tempi di inferenza prevedibili sono fondamentali, ad esempio nella robotica o nei sistemi autonomi.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la combinazione migliore di prestazioni ed esperienza per gli sviluppatori:
- Distribuzione edge senza NMS: applicazioni che richiedono inferenza costante a bassa latenza senza la complessità della post-elaborazione con soppressione non massima.
- Ambienti solo CPU: dispositivi senza accelerazione GPU dedicata, sui quali YOLO26n è fino al 43% più veloce di YOLO11n su CPU.
- Rilevamento di oggetti piccoli: scenari impegnativi come le immagini aeree da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano la precisione sugli oggetti minuscoli.
Il futuro: ecco YOLO26#
YOLOv7 e YOLOv10 sono tappe importanti, ma la frontiera dell'AI avanza continuamente. Rilasciato a gennaio 2026, Ultralytics YOLO26 è il modello consigliato per efficienza e accuratezza nelle distribuzioni edge e cloud.
Se oggi stai avviando un nuovo progetto di computer vision, YOLO26 è l'architettura consigliata. Si basa sui predecessori e introduce diverse innovazioni:
- Design end-to-end senza NMS: ispirata a YOLOv10, la testa opzionale uno-a-uno di YOLO26 (
nms=False) salta la post-elaborazione NMS, garantendo una latenza inferiore e più costante per la robotica in tempo reale. - Inferenza su CPU fino al 43% più veloce: rimuovendo il modulo Distribution Focal Loss (DFL), YOLO26 accelera l'esecuzione su hardware edge senza GPU; YOLO26n raggiunge una velocità su CPU fino al 43% superiore a YOLO11n, risultando adatto ai dispositivi IoT.
- Ottimizzatore MuSGD: ispirato alle recenti innovazioni nell'addestramento dei modelli linguistici di grandi dimensioni, YOLO26 integra una combinazione ibrida di SGD e Muon per un addestramento più stabile e una convergenza più rapida.
- ProgLoss + STAL: la funzione di perdita progressiva e l'assegnazione delle etichette consapevole degli oggetti piccoli migliorano il riconoscimento degli oggetti di piccole dimensioni, superando una debolezza storica delle generazioni precedenti di YOLO.
- Versatilità multi-task: YOLO26 supporta rilevamento, segmentazione delle istanze, segmentazione semantica, stima della profondità, classificazione, stima della posa e OBB, con ottimizzazioni specifiche per ogni attività, come Residual Log-Likelihood Estimation (RLE) per la stima della posa e funzioni di perdita angolare specializzate per il rilevamento preciso di OBB nelle immagini aeree.
Per gli ingegneri che cercano il miglior equilibrio tra velocità, accuratezza e semplicità di distribuzione, YOLO26 è il naturale aggiornamento dei modelli legacy.