YOLOv5 vs YOLOv10#
Il campo della visione artificiale in tempo reale ha conosciuto una crescita esponenziale negli ultimi anni, con diverse architetture che hanno ampliato i limiti di ciò che è possibile fare sull'hardware moderno. Nella valutazione delle architetture all'avanguardia, il confronto tra YOLOv5 e YOLOv10 evidenzia un significativo passo evolutivo nel campo del rilevamento degli oggetti. Questa analisi tecnica approfondita esamina i loro paradigmi architetturali, i compromessi in termini di prestazioni e il modo in cui puoi sfruttare questi strumenti negli ambienti di produzione.
Approfondimento sull'architettura#
Comprendere le differenze strutturali tra questi modelli è fondamentale per implementarli in modo efficiente nel mondo reale.
Ultralytics YOLOv5: lo standard del settore#
Introdotto da Ultralytics, YOLOv5 è da tempo riconosciuto per il suo equilibrio senza pari tra velocità, accuratezza e accessibilità.
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: Repository di YOLOv5
- Documentazione: Documenti YOLOv5
YOLOv5 si basa su un meccanismo di rilevamento basato su anchor, combinato con un backbone CSPDarknet profondamente ottimizzato. Questa architettura si affida ampiamente a operazioni standard supportate da quasi tutti i motori di inferenza, il che la rende estremamente versatile. Il suo principale punto di forza è l'SDK Python di Ultralytics, che offre un'esperienza utente semplificata, un'API intuitiva e una documentazione completa. Inoltre, i requisiti di memoria inferiori di YOLOv5 rispetto ai modelli basati su Transformer consentono di eseguire rapidamente il training su GPU di fascia consumer senza l'elevato consumo di VRAM.
YOLOv10: un nuovo paradigma#
Sviluppato da ricercatori della Tsinghua University, YOLOv10 mirava ad affrontare specifici colli di bottiglia della latenza presenti nelle architetture precedenti.
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Tsinghua University
- Data: 2024-05-23
- ArXiv: 2405.14458
- GitHub: Repository di YOLOv10
- Documentazione: Documentazione di YOLOv10
La caratteristica distintiva di YOLOv10 è il suo design nativamente privo di NMS (soppressione non massima). Utilizzando assegnazioni duali coerenti durante il training, il modello elimina la necessità del post-processing NMS durante l'inferenza. Questa riduzione teorica della latenza è molto vantaggiosa per le implementazioni eseguite su hardware di fascia alta con la potente accelerazione NVIDIA TensorRT, anche se può introdurre complessità strutturali per i dispositivi edge.
Sebbene YOLOv10 offra interessanti novità architetturali, i modelli Ultralytics come YOLOv5 e il più recente YOLO26 sono supportati nativamente nella Piattaforma Ultralytics, che offre un'efficienza di training superiore, l'evoluzione automatica degli iperparametri e numerose opzioni di esportazione pronte all'uso.
Analisi delle prestazioni#
Nel confronto tra questi modelli, l'equilibrio tra accuratezza (mAP) e costo computazionale (latenza e numero di parametri) determina il caso d'uso migliore. Di seguito è riportato il confronto tecnico delle prestazioni sul dataset COCO.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| 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 |
YOLOv10 raggiunge chiaramente un mAP50-95 più elevato a parità di dimensioni, sfruttando il design moderno del modello, incentrato sull'efficienza e sull'accuratezza. Tuttavia, YOLOv5 mantiene una latenza estremamente competitiva, soprattutto nei livelli Nano e Small, il che lo rende altamente affidabile per gli ambienti embedded con risorse limitate, come la linea NVIDIA Jetson o le CPU standard tramite OpenVINO.
Metodologie di addestramento ed ecosistema#
Il valore di un modello è strettamente legato all'ecosistema che lo circonda. Ultralytics mantiene un ecosistema eccezionalmente curato, che supporta una gamma molto ampia di attività. Mentre YOLOv10 si concentra esclusivamente sul rilevamento degli oggetti 2D, Ultralytics supporta nativamente la segmentazione delle istanze, la classificazione delle immagini, la stima della posa e i riquadri di delimitazione orientati (OBB).
Inoltre, il training di un modello Ultralytics richiede un overhead di memoria significativamente inferiore rispetto ai metodi concorrenti basati su Transformer, mantenendo il ciclo di sviluppo rapido ed economico.
Esecuzione del codice senza interruzioni#
Il training, la validazione e l'esportazione dei modelli sono unificati in un'unica API. Puoi passare da un modello all'altro modificando semplicemente una stringa.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model for baseline testing
model_v5 = YOLO("yolov5s.pt")
# Load a YOLOv10 model for comparison
model_v10 = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset efficiently
results = model_v5.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device="0", # Automatically utilizes PyTorch CUDA acceleration
batch=16,
)
# Export to ONNX for CPU inference deployment
model_v5.export(format="onnx", simplify=True)Casi d'uso e raccomandazioni#
La scelta tra YOLOv5 e YOLOv10 dipende dai requisiti specifici del tuo progetto, dai vincoli di implementazione e dalle tue preferenze in fatto di ecosistema.
Quando scegliere YOLOv5#
YOLOv5 è una scelta eccellente per:
- Sistemi di produzione collaudati: implementazioni esistenti in cui sono apprezzati il lungo storico di stabilità di YOLOv5, la documentazione estesa e l'enorme supporto della community.
- Addestramento con risorse limitate: ambienti con risorse GPU limitate, in cui la pipeline di addestramento efficiente di YOLOv5 e i requisiti di memoria inferiori sono vantaggiosi.
- Ampio supporto dei formati di esportazione: progetti che richiedono l'implementazione in numerosi formati, tra cui ONNX, TensorRT, CoreML e TFLite.
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 accuratezza: progetti che richiedono un equilibrio efficace tra velocità di inferenza e accuratezza del rilevamento su diverse dimensioni del modello.
- Applicazioni a latenza coerente: scenari di distribuzione in cui sono fondamentali tempi di inferenza prevedibili, come la robotica o i sistemi autonomi.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la migliore combinazione di prestazioni ed esperienza per gli sviluppatori:
- Deployment edge senza NMS: applicazioni che richiedono un'inferenza coerente e a bassa latenza senza la complessità della post-elaborazione con Soppressione non massima.
- Ambienti esclusivamente CPU: dispositivi privi di accelerazione GPU dedicata, dove l'inferenza su CPU fino al 43% più veloce di YOLO26 offre un vantaggio decisivo.
- Rilevamento di oggetti piccoli: scenari complessi come le immagini aeree riprese da droni o l'analisi di sensori IoT, in cui ProgLoss e STAL migliorano significativamente l'accuratezza sugli oggetti di piccole dimensioni.
Il futuro: Ultralytics YOLO26#
Sebbene YOLOv5 abbia rivoluzionato l'accessibilità e YOLOv10 abbia ampliato i limiti dell'architettura priva di NMS, lo stato dell'arte continua a evolversi. Per i nuovi progetti, ti consigliamo vivamente Ultralytics YOLO26, rilasciato a gennaio 2026.
YOLO26 combina l'affidabilità dell'ecosistema Ultralytics con innovazioni rivoluzionarie:
- Design end-to-end privo di NMS: Integrando direttamente il paradigma privo di NMS nel framework Ultralytics, YOLO26 semplifica l'implementazione e garantisce una latenza inferiore.
- Inferenza su CPU fino al 43% più veloce: Grazie alla rimozione della perdita focale della distribuzione (DFL), YOLO26 è notevolmente più veloce sui dispositivi edge privi di GPU.
- Ottimizzatore MuSGD: Ispirato alle innovazioni del training degli LLM di Moonshot AI, l'ottimizzatore MuSGD offre una stabilità senza precedenti e una convergenza rapida.
- ProgLoss + STAL: Queste nuove funzioni di perdita migliorano drasticamente il riconoscimento degli oggetti di piccole dimensioni, un aspetto fondamentale in ambiti come le immagini acquisite da droni e la robotica.
Puoi gestire, addestrare e implementare YOLO26 direttamente tramite la Piattaforma Ultralytics.
Conclusioni#
La scelta tra YOLOv5 e YOLOv10 spesso si riduce ai vincoli specifici del progetto. YOLOv10 offre un mAP eccellente a ricercatori e applicazioni che sfruttano la potenza di calcolo grezza delle GPU. Al contrario, YOLOv5 rimane uno strumento affidabile e altamente compatibile per le implementazioni standard.
Tuttavia, il campo della visione artificiale è dinamico. Per ottenere il miglior equilibrio possibile tra prestazioni, versatilità e facilità d'uso, gli sviluppatori dovrebbero orientarsi verso Ultralytics YOLO26. Riunisce la velocità dell'inferenza priva di NMS con l'ecosistema Ultralytics, solido e ampiamente documentato, garantendo che le tue soluzioni di IA per la visione siano a prova di futuro. Per casi d'uso specializzati, gli sviluppatori possono anche esplorare YOLO11 per una robustezza generale o RT-DETR per una precisione basata su Transformer.