YOLOv8 vs YOLOv10#
Il rilevamento degli oggetti in tempo reale si è evoluto rapidamente. Per sviluppatori e ricercatori che vogliono integrare nelle proprie pipeline i modelli di computer vision più efficienti e precisi, confrontare le architetture principali è essenziale. Questa guida confronta Ultralytics YOLOv8 e YOLOv10, esaminandone le differenze architetturali, le metriche prestazionali e gli scenari di deployment ideali, per aiutarti a prendere una decisione consapevole per il tuo prossimo progetto di IA.
Panoramica del modello: YOLOv8#
Introdotto come un importante passo avanti nella linea YOLO, YOLOv8 ha stabilito un nuovo standard per un framework unificato e versatile. È stato progettato da zero per supportare numerose attività oltre alle normali bounding box, diventando uno strumento flessibile per la computer vision moderna.
Dettagli di YOLOv8:
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 2023-01-10
- GitHub: https://github.com/ultralytics/ultralytics
- Documentazione: https://docs.ultralytics.com/models/yolov8
Architettura e punti di forza#
YOLOv8 ha introdotto una testa di rilevamento senza anchor e un backbone CSPDarknet rinnovato, migliorando notevolmente sia la precisione sia la latenza di inferenza. Eliminando le anchor box, il modello riduce il numero di previsioni delle box e accelera la soppressione non massima (NMS) durante la post-elaborazione.
Uno dei vantaggi principali di YOLOv8 è la sua versatilità. Mentre molti modelli si concentrano esclusivamente sul rilevamento degli oggetti, YOLOv8 supporta nativamente la segmentazione delle istanze, la classificazione delle immagini, la stima della posa e le bounding box orientate (OBB). Questo lo rende adatto alle pipeline a più fasi che richiedono contemporaneamente diversi tipi di comprensione visiva. Richiede inoltre meno memoria per l'addestramento rispetto alle architetture basate su Transformer come RT-DETR, consentendo ai ricercatori di addestrare modelli di grandi dimensioni su GPU consumer standard.
Panoramica del modello: YOLOv10#
Sviluppato dai ricercatori della Tsinghua University, YOLOv10 si proponeva di affrontare uno dei colli di bottiglia più persistenti della famiglia YOLO: la dipendenza dalla post-elaborazione NMS.
Dettagli su YOLOv10:
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Università Tsinghua
- 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 punti di forza#
L'innovazione principale di YOLOv10 è la strategia assegnazioni duali coerenti, che consente l'addestramento senza NMS e il deployment end-to-end. Eliminando la fase NMS, YOLOv10 riduce la latenza di inferenza, soprattutto sui dispositivi edge, dove le operazioni di post-elaborazione possono essere onerose dal punto di vista computazionale.
Inoltre, YOLOv10 adotta una progettazione olistica del modello, guidata dall'efficienza e dalla precisione, regolando attentamente il sovraccarico computazionale di ogni livello. Il risultato è un modello che richiede meno parametri e FLOP, pur raggiungendo una precisione media (mAP) competitiva. È un'ottima opzione per i casi d'uso che richiedono una latenza minima nelle attività di puro rilevamento.
Confronto delle prestazioni e delle metriche#
Nel confronto tra queste due architetture è fondamentale valutare i compromessi tra numero di parametri, FLOPs e precisione. Di seguito trovi il confronto esatto delle metriche di prestazione sul dataset COCO.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
Sebbene in questa tabella YOLOv10 raggiunga un mAP superiore con meno parametri a ogni scala, YOLOv8 offre un ecosistema più maturo e un supporto più ampio alle attività, risultando in generale più affidabile negli ambienti di produzione che richiedono più delle sole bounding box.
Ecosistema e metodologia di addestramento#
Nei flussi di lavoro ML moderni, spesso la vera differenza la fa l'ecosistema che circonda l'architettura. Scegliere un modello Ultralytics come YOLOv8 offre facilità d'uso e un'esperienza di sviluppo coerente.
Con un intuitivo SDK Python, gli sviluppatori possono gestire addestramento, convalida e deployment con il minimo sforzo. L'ecosistema Ultralytics è sottoposto a manutenzione attiva e offre aggiornamenti frequenti, documentazione completa sull'ottimizzazione degli iperparametri e un solido supporto della community su piattaforme come Discord e GitHub.
Esempio di codice: addestramento semplificato#
L'API Python di Ultralytics semplifica l'inizializzazione, l'addestramento e la convalida di entrambi i modelli. Nota che lo stesso flusso di lavoro si applica indipendentemente dall'architettura sottostante.
from ultralytics import YOLO
# Load a pretrained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model efficiently with automated learning rate scheduling
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device=0, # optimized CUDA memory usage
batch=16,
)
# Validate the model to check mAP metrics
metrics = model.val()
print(f"Validation mAP: {metrics.box.map}")
# Export to ONNX for edge deployment
model.export(format="onnx")Casi d'uso e consigli#
La scelta tra YOLOv8 e YOLOv10 dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle tue preferenze in termini di ecosistema.
Quando scegliere YOLOv8#
YOLOv8 è un'ottima scelta per:
- Distribuzione versatile multi-task: progetti che richiedono un modello collaudato per rilevamento, segmentazione, classificazione e stima della posa nell'ecosistema Ultralytics.
- Sistemi di produzione consolidati: ambienti di produzione esistenti già basati sull’architettura YOLOv8, con pipeline di distribuzione stabili e ben testate.
- Ampio supporto della community e dell’ecosistema: applicazioni che traggono vantaggio dagli estesi tutorial di YOLOv8, dalle integrazioni di terze parti e dalle risorse della community attiva.
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 senza GPU: Dispositivi privi di accelerazione GPU dedicata, sui quali l’inferenza CPU di YOLO26n, fino al 43% più veloce di YOLO11n, offre un vantaggio decisivo.
- 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: fare un passo avanti con YOLO26#
YOLOv8 è un modello versatile e completo, mentre YOLOv10 offre spunti utili sulle architetture senza NMS; tuttavia, il settore è andato avanti. Per ottenere il miglior equilibrio tra velocità, precisione e semplicità di deployment, Ultralytics consiglia YOLO26 per i nuovi progetti.
Rilasciato a gennaio 2026, YOLO26 combina i punti di forza dei suoi predecessori con diverse nuove funzionalità:
- Design end-to-end senza NMS: basandosi sull'addestramento senza NMS introdotto nei modelli YOLO da YOLOv10, YOLO26 offre un'inferenza opzionale senza NMS (
nms=False) per una distribuzione più veloce e semplice. - Rimozione della DFL: eliminare la Distribution Focal Loss semplifica l'esportazione del modello verso CoreML e i dispositivi edge.
- Ottimizzatore MuSGD: ispirato all'addestramento dei modelli linguistici di grandi dimensioni (LLM), questo ibrido di SGD e Muon converge più rapidamente e garantisce un addestramento più stabile.
- Inferenza CPU più rapida: YOLO26n offre un'inferenza CPU fino al 43% più veloce rispetto a YOLO11n, risultando adatto a Raspberry Pi e alle applicazioni IoT.
- ProgLoss + STAL: la Progressive Loss e l'assegnazione delle etichette consapevole degli oggetti piccoli (STAL) migliorano il rilevamento degli oggetti piccoli, fondamentale per le immagini aeree e la robotica.
Se stai valutando dei modelli, potrebbe interessarti anche YOLO11, il predecessore diretto di YOLO26, che resta un modello pronto per la produzione e ampiamente usato nelle soluzioni aziendali. Per i nuovi progetti, tuttavia, il percorso consigliato per annotare, addestrare e distribuire l'IA visiva è YOLO26 con Ultralytics Platform.