YOLOv7 vs YOLOv10#
Negli ultimi anni il settore della computer vision ha registrato progressi notevoli, guidati dalla famiglia di modelli YOLO (guarda una sola volta) nel rilevamento di oggetti in tempo reale. Per scegliere l'architettura giusta per i tuoi progetti di computer vision è necessario comprendere a fondo le opzioni disponibili. In questo confronto tecnico completo, esamineremo le differenze principali tra due architetture fondamentali: YOLOv7 e YOLOv10.
Introduzione ai modelli#
Entrambi i modelli rappresentano tappe significative nella storia dell'intelligenza artificiale, ma adottano approcci fondamentalmente diversi per affrontare le sfide del rilevamento di oggetti.
YOLOv7: pioniere dei bag-of-freebies#
Pubblicato il 6 luglio 2022 dai ricercatori Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao dell'Institute of Information Science dell'Academia Sinica, YOLOv7 ha segnato un cambio di paradigma nell'ottimizzazione delle reti neurali. La ricerca originale, descritta nel loro articolo accademico e disponibile nel loro repository GitHub ufficiale, si concentrava soprattutto 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 dal suo team presso la Tsinghua University, YOLOv10 è stato pubblicato 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 di oggetti: la soppressione dei non massimi (NMS).
YOLOv10 ha introdotto assegnazioni duali coerenti per l'addestramento senza NMS, modificando radicalmente la pipeline di post-elaborazione. Grazie a una strategia di progettazione del modello olistica, basata sull'efficienza e sull'accuratezza, YOLOv10 riduce la ridondanza computazionale. Ne risulta un'architettura progettata appositamente per i dispositivi edge che richiedono una latenza estremamente bassa.
Confronto delle prestazioni e delle metriche#
Quando si analizzano le prestazioni dei modelli, è fondamentale valutare i compromessi tra precisione, velocità e costo computazionale. La tabella seguente mostra il confronto tra 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 riportate sopra rivelano un netto divario generazionale. YOLOv7x raggiunge un mAPval molto elevato, pari al 53,1%, ma richiede 71,3M di parametri e 189,9B FLOPs. Al contrario, YOLOv10l supera tale accuratezza (53,2% mAP) con circa un terzo dei parametri (24,4M) e molti meno FLOPs (120,3B). Inoltre, YOLOv10n, altamente ottimizzato, offre una velocità di inferenza sorprendente di 1,84 ms, che lo rende ideale per l'analisi video in tempo reale e le applicazioni mobili.
Casi d’uso nel mondo reale#
Le differenze architetturali tra questi modelli determinano i rispettivi casi d'uso ottimali.
Quando usare YOLOv7#
Grazie alla ricca rappresentazione delle caratteristiche, YOLOv7 eccelle negli ambienti molto complessi. Casi d'uso come il monitoraggio del flusso del traffico nelle aree urbane densamente popolate, l'analisi di immagini satellitari o l'individuazione di difetti nell'automazione manifatturiera pesante traggono vantaggio dalla sua solida riparametrizzazione strutturale. È inoltre molto apprezzato negli ambienti legacy già profondamente integrati con pipeline specifiche basate su PyTorch 1.12.
Quando usare YOLOv10#
Il design leggero e senza NMS di YOLOv10 si distingue negli ambienti con risorse limitate. È particolarmente consigliato per i dispositivi di edge computing, come NVIDIA Jetson Nano o Raspberry Pi. Le sue 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 radici accademiche, il vero potenziale di YOLOv10 emerge quando viene utilizzato all'interno della piattaforma unificata Ultralytics. Sviluppare modelli di computer vision da zero è notoriamente difficile, ma l'ecosistema Ultralytics offre un'esperienza senza pari agli ingegneri di machine learning.
- Semplicità d'uso: l'API Python di Ultralytics offre un'interfaccia unificata. Puoi addestrare, convalidare ed esportare modelli con poche righe di codice, evitando i complessi problemi di dipendenze tipici dei repository accademici.
- Ecosistema mantenuto attivamente: Ultralytics garantisce che il codice sottostante sia sviluppato attivamente. Gli utenti possono contare su integrazioni fluide con strumenti ML diffusi, come Weights & Biases per la registrazione dei dati o Gradio per creare rapidamente demo web.
- Requisiti di memoria: durante l'addestramento, i rilevatori di oggetti basati su Transformer consumano spesso enormi quantità di memoria CUDA. Al contrario, i modelli Ultralytics YOLO richiedono molta meno memoria, consentendo di usare batch size molto più grandi su hardware di fascia consumer.
- Versatilità: la pipeline Ultralytics non si limita ai riquadri di delimitazione standard. Supporta senza problemi la stima della posa, la segmentazione delle istanze 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 è estremamente semplice. Che tu sfrutti la velocità senza NMS di YOLOv10 o un altro modello supportato, la sintassi resta coerente (nota 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 con sola CPU: dispositivi senza accelerazione GPU dedicata, sui quali l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di oggetti di piccole dimensioni: scenari complessi come le immagini aeree acquisite da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano notevolmente la precisione sugli oggetti molto piccoli.
Il futuro: ecco YOLO26#
YOLOv7 e YOLOv10 sono traguardi notevoli, ma la frontiera dell'IA continua ad avanzare. Pubblicato a gennaio 2026, Ultralytics YOLO26 è il nuovo standard indiscusso di efficienza e accuratezza per tutti gli scenari di distribuzione edge e cloud.
Se oggi stai avviando un nuovo progetto di computer vision, YOLO26 è l'architettura consigliata. Raccoglie l'eredità dei modelli precedenti e introduce diverse innovazioni rivoluzionarie:
- Design end-to-end senza NMS: ispirandosi a YOLOv10, la testa opzionale one-to-one di YOLO26 (
nms=False) salta la post-elaborazione NMS, garantendo un'inferenza a latenza ultra bassa per la robotica deterministica in tempo reale. - Inferenza su CPU fino al 43% più veloce: rimuovendo strategicamente il modulo Distribution Focal Loss (DFL), YOLO26 accelera notevolmente l'esecuzione su hardware edge computing privo di GPU, risultando una soluzione potente per i dispositivi IoT.
- Ottimizzatore MuSGD: ispirato alle recenti innovazioni nell'addestramento dei modelli linguistici di grandi dimensioni, YOLO26 integra una combinazione di SGD e Muon, stabilizzando i percorsi di addestramento e garantendo una convergenza più rapida.
- ProgLoss + STAL: queste funzioni di loss avanzate migliorano sensibilmente il riconoscimento degli oggetti piccoli, superando una debolezza storica delle generazioni YOLO precedenti.
- Versatilità senza pari: YOLO26 offre ottimizzazioni native specifiche per le attività, come la stima della log-verosimiglianza residua (RLE) per il tracciamento della posa e funzioni di loss angolari specializzate per il rilevamento preciso di OBB nelle immagini aeree.
Per gli ingegneri che cercano il massimo equilibrio tra velocità, accuratezza e semplicità di distribuzione, passare dai modelli legacy a YOLO26 offre un vantaggio competitivo immediato e misurabile.