YOLOv10 vs YOLOv9#
L'evoluzione della visione artificiale in tempo reale è stata caratterizzata da continue innovazioni in termini di velocità, precisione ed efficienza architetturale. Quando valuti le soluzioni moderne per la tua prossima distribuzione, confrontare YOLOv10 e YOLOv9 offre uno spaccato interessante di due approcci diversi alla risoluzione dei colli di bottiglia del deep learning. YOLOv9 punta a massimizzare il flusso delle informazioni del gradiente durante l'addestramento, mentre YOLOv10 introduce per primo un design nativo end-to-end che elimina completamente gli ostacoli della post-elaborazione tradizionale.
Questa guida completa analizza le innovazioni architetturali, le metriche prestazionali e i casi d'uso ideali per aiutare sviluppatori e ricercatori a scegliere il modello più adatto alle proprie attività di visione artificiale.
YOLOv10: pioniere del rilevamento end-to-end senza NMS#
Sviluppato per risolvere i colli di bottiglia della latenza dei rilevatori di oggetti tradizionali, YOLOv10 introduce una rivoluzionaria architettura end-to-end che elimina nativamente la necessità della soppressione non massima (NMS).
Dettagli tecnici e origine:
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Tsinghua University
- Data: 23 maggio 2024
- Collegamenti: Pubblicazione su Arxiv, Repository GitHub, Documentazione Ultralytics
Architettura e punti di forza#
Il contributo più significativo di YOLOv10 al settore è la strategia coerente di doppia assegnazione per l'addestramento senza NMS. Eliminando NMS, il modello riduce drasticamente la latenza dell'inferenza, soprattutto sui dispositivi edge, dove la post-elaborazione può rallentare l'intera pipeline. Ottimizza diversi componenti sia in termini di efficienza sia di precisione, dando vita a un modello che offre un notevole compromesso tra velocità e numero di parametri. Per esempio, la variante YOLOv10-S è particolarmente veloce e adatta all'analisi video ad alta velocità e alla navigazione robotica in tempo reale.
Punti deboli#
Sebbene il design senza NMS sia innovativo per il rilevamento dei riquadri di delimitazione, YOLOv10 è ottimizzato principalmente come rilevatore di oggetti puro. Non offre la versatilità pronta all'uso dei nuovi ecosistemi che supportano nativamente la segmentazione di istanze o la stima della posa.
Quando prepari YOLOv10 per la produzione, esporta sempre il modello in formati ottimizzati come TensorRT o ONNX. Eseguire i pesi PyTorch non convertiti in fase di distribuzione può rallentare l'inferenza più del previsto a causa delle operazioni sui grafi non ottimizzate.
YOLOv9: informazioni di gradiente programmabili#
Prima di YOLOv10, YOLOv9 aveva introdotto nuovi concetti architetturali per risolvere il problema del collo di bottiglia delle informazioni, intrinseco alle reti neurali profonde, consentendo un utilizzo dei parametri molto efficiente.
Dettagli tecnici e origine:
- Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 21 febbraio 2024
- Collegamenti: Pubblicazione su Arxiv, Repository GitHub, Documentazione Ultralytics
Architettura e punti di forza#
YOLOv9 introduce Programmable Gradient Information (PGI) insieme a Generalized Efficient Layer Aggregation Network (GELAN). PGI assicura che le informazioni cruciali sui target non vadano perse mentre i dati attraversano gli strati profondi della rete, generando gradienti affidabili per l'aggiornamento dei pesi. GELAN massimizza l'efficienza dei parametri della rete. Insieme, queste innovazioni consentono a YOLOv9 di raggiungere una precisione media (mAP) molto elevata sul dataset MS COCO, spesso superando modelli più pesanti pur utilizzando meno FLOP. È un modello eccezionale per i ricercatori che puntano a massimizzare le metriche di precisione teoriche.
Punti deboli#
Nonostante l'elevata accuratezza, YOLOv9 si affida ancora alla post-elaborazione standard con NMS. Ciò significa che, sebbene le operazioni della rete neurale siano rapide, il filtraggio finale dei riquadri di delimitazione può introdurre una latenza variabile, a seconda della densità degli oggetti nella scena. Inoltre, rispetto ai modelli successivi, il processo di addestramento può essere particolarmente esigente in termini di memoria e richiedere risorse GPU più potenti per la messa a punto su dataset personalizzati.
Confronto delle prestazioni#
La tabella seguente mostra le metriche principali di entrambi i modelli. Nota che YOLOv10 in genere raggiunge una latenza inferiore tramite TensorRT, mentre YOLOv9 spinge al limite la precisione nella configurazione più grande.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
La prossima generazione: perché YOLO26 è la scelta migliore#
YOLOv9 e YOLOv10 sono traguardi notevoli, ma il panorama del machine learning evolve rapidamente. Negli ambienti di produzione moderni, gli sviluppatori si affidano sempre più all'ecosistema integrato e ben mantenuto della Piattaforma Ultralytics. Nel 2026, la scelta migliore per la ricerca e le aziende è il nuovo YOLO26.
YOLO26 riprende i concetti fondamentali dei suoi predecessori e li valorizza con un'esperienza utente semplificata, un'API intuitiva e requisiti di memoria durante l'addestramento nettamente inferiori rispetto alle ingombranti architetture basate su Transformer.
Innovazioni chiave di YOLO26#
- Design end-to-end senza NMS: basandosi sulle innovazioni di YOLOv10, YOLO26 supporta l'inferenza end-to-end nativa, evitando la post-elaborazione NMS con
nms=Falseper semplificare la distribuzione e ottenere profili di latenza altamente deterministici. - Inferenza su CPU fino al 43% più veloce: ottimizzato fin da subito per l'Edge AI, è la scelta ideale per i sistemi embedded privi di GPU dedicate.
- Ottimizzatore MuSGD: un innovativo approccio ibrido tra SGD e Muon (ispirato alle ottimizzazioni per i modelli linguistici di grandi dimensioni), che garantisce processi di addestramento molto stabili e tempi di convergenza incredibilmente rapidi.
- Rimozione di DFL: eliminando Distribution Focal Loss, YOLO26 semplifica il processo di esportazione del modello e migliora notevolmente la compatibilità con i dispositivi a basso consumo e i vari framework di distribuzione edge.
- Miglioramenti specifici per attività: a differenza dei rilevatori specializzati in una singola attività, YOLO26 è uno strumento versatile e potente. Utilizza la funzione di perdita per la segmentazione semantica per migliorare la precisione a livello di pixel, Residual Log-Likelihood Estimation (RLE) per una stima della posa impeccabile e una funzione di perdita angolare specifica per risolvere i problemi dei riquadri di delimitazione orientati (OBB).
Implementazione pratica#
Addestrare e distribuire questi modelli con l'SDK Python è semplice. L'esempio seguente mostra come sfruttare i processi di addestramento altamente efficienti dell'ecosistema Ultralytics, che gestisce automaticamente la pianificazione degli iperparametri e l'allocazione ottimale della memoria.
from ultralytics import YOLO
# Carica il modello all'avanguardia consigliato
model = YOLO("yolo26n.pt") # Compatibile anche con 'yolov10n.pt' o 'yolov9c.pt'
# Addestra il modello in modo efficiente su un dataset personalizzato
train_results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0, batch=16)
# Esegui un'inferenza ultraveloce
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Esporta in ONNX per semplificare la distribuzione edge
model.export(format="onnx")Casi d'uso e consigli#
La scelta tra YOLOv10 e YOLOv9 dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze per l'ecosistema.
Quando scegliere YOLOv10#
YOLOv10 è una scelta valida 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 YOLOv9#
YOLOv9 è consigliato per:
- Ricerca sui colli di bottiglia informativi: progetti accademici che studiano le informazioni di gradiente programmabili (PGI) e le architetture di rete di aggregazione efficiente generalizzata dei livelli (GELAN).
- Studi sull'ottimizzazione del flusso del gradiente: ricerche incentrate sulla comprensione e sulla riduzione della perdita di informazioni nei livelli delle reti profonde durante l'addestramento.
- Benchmark di rilevamento ad alta precisione: scenari in cui le prestazioni di YOLOv9 nei benchmark COCO servono come riferimento per confrontare le architetture.
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.
Conclusione#
YOLOv9 e YOLOv10 offrono entrambi vantaggi specifici. YOLOv9 dimostra come massimizzare l'efficienza dei parametri della rete e il flusso teorico del gradiente, ottenendo una precisione di altissimo livello. YOLOv10, invece, è il pioniere accademico del rilevamento end-to-end dei riquadri di delimitazione, senza la penalità di latenza di NMS.
Tuttavia, per gli sviluppatori che cercano l'equilibrio perfetto tra prestazioni, versatilità e facilità d'uso, è fondamentale passare ai modelli più recenti. Grazie all'ottimizzatore MuSGD avanzato, alle funzionalità ProgLoss + STAL per rilevare meglio gli oggetti piccoli e al supporto completo multi-task, YOLO26 è la soluzione all'avanguardia definitiva per ogni sfida di visione artificiale nel mondo reale.