Vai al contenuto

Ultralytics YOLOv10 . YOLOv5: Evoluzione del rilevamento di oggetti in tempo reale

La scelta del modello di rilevamento degli oggetti più adatto richiede un equilibrio tra efficienza architettonica, vincoli di implementazione e supporto della comunità. Questo confronto completo esplora le differenze tecniche tra YOLOv10, una svolta accademica nel rilevamento end-to-end, e YOLOv5, il leggendario standard industriale che ha ridefinito la facilità d'uso nella visione artificiale.

Entrambi i modelli rappresentano un significativo passo avanti nella YOLO . Mentre YOLOv5 lo standard di riferimento in termini di esperienza utente e affidabilità, YOLOv10 i limiti della latenza rimuovendo la soppressione non massima (NMS) dalla pipeline di inferenza. Per gli sviluppatori alla ricerca delle ultime novità in termini di velocità e architettura end-to-end, il nuovo Ultralytics si basa su queste fondamenta con un'ottimizzazione superiore per i dispositivi edge.

Confronto delle metriche di performance

La tabella seguente evidenzia i compromessi in termini di prestazioni tra le due architetture. YOLOv10 offre YOLOv10 una maggiore precisione (mAP) ed elimina NMS , mentre YOLOv5 una scelta altamente competitiva grazie al suo ampio supporto di implementazione e alla sua maturità.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

YOLOv10: l'innovatore end-to-end

YOLOv10 un cambiamento paradigmatico eliminando la necessità della soppressione non massima (NMS) durante la post-elaborazione. Ciò consente un'implementazione realmente end-to-end, riducendo la latenza e la complessità dell'inferenza.

Caratteristiche architettoniche chiave

  • FormazioneNMS: utilizza assegnazioni doppie coerenti per la formazione NMS, consentendo al modello di prevedere direttamente riquadri di delimitazione distinti.
  • Progettazione olistica dell'efficienza: ottimizza vari componenti (come la colonna vertebrale e il collo) per ridurre la ridondanza computazionale.
  • Downsampling con disaccoppiamento spaziale-canale: migliora la conservazione delle informazioni durante il ridimensionamento della mappa delle caratteristiche.
  • Progettazione a blocchi guidata dal rango: adatta le fasi dei blocchi per ridurre la ridondanza sulla base dell'analisi intrinseca del rango.

Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
Organizzazione:Università di Tsinghua
Data: 23/05/2024
Link:Arxiv | GitHub

Latenza end-to-end

Rimuovendo NMS, YOLOv10 riduce YOLOv10 la variazione di inferenza. Nelle YOLO standard, NMS al numero di oggetti rilevati, causando potenzialmente picchi di latenza in scene affollate. Il tempo di output costante YOLOv10 lo rende ideale per sistemi in tempo reale con budget temporali rigidi.

Scopri di più su YOLOv10

YOLOv5: lo standard del settore

Rilasciato da Ultralytics 2020, YOLOv5 il settore non solo grazie alla sua architettura, ma anche alla sua accessibilità. Ha dato priorità a un'esperienza "pronta all'uso" senza soluzione di continuità, a una solida esportabilità e a un enorme ecosistema di supporto.

Punti di Forza Chiave

  • Ecosistema maturo: un'ampia documentazione, tutorial e il supporto della community facilitano la risoluzione dei problemi.
  • Ampia compatibilità: il supporto all'esportazione per TFLite, CoreML, ONNX e TensorRT l'implementazione praticamente su qualsiasi hardware, dai iOS alle TPU edge.
  • Versatilità: supporto nativo per la segmentazione delle istanze e la classificazione delle immagini insieme al rilevamento.
  • Stabilità della formazione: nota per essere robusta alle variazioni degli iperparametri e convergere in modo affidabile su diversi set di dati personalizzati.

Autore: Glenn Jocher
Organizzazione:Ultralytics
Data: 26/06/2020
Link:GitHub | Documentazione

Scopri di più su YOLOv5

Confronto dettagliato

Architettura e Training

YOLOv10 ottimizzazioni simili a Transformer e una distintività avanzata a livello di canale per ottenere un'elevata precisione con un numero inferiore di parametri. La sua strategia di "assegnazione doppia coerente" gli consente di apprendere l'abbinamento uno a uno durante l'addestramento, eliminando il NMS .

YOLOv5 una classica struttura CSPDarknet con PANet neck, ottimizzata per garantire un equilibrio tra velocità e precisione. Utilizza il rilevamento basato su anchor, che richiede un' attenta regolazione dell'anchor box per ottenere prestazioni ottimali su set di dati unici, anche se la sua funzione di evoluzione automatica dell'anchor gestisce automaticamente questo aspetto per la maggior parte degli utenti.

Casi d'Uso e Applicazioni nel Mondo Reale

Scenari ideali per YOLOv10:

  • Folle ad alta densità: dove NMS rallenta l'elaborazione a causa della sovrapposizione di molti riquadri.
  • Robotica a bassa latenza: dove un tempo di inferenza costante è fondamentale per i circuiti di controllo.
  • Ricerca accademica: per lo studio dei meccanismi di rilevamento end-to-end e delle strategie di assegnazione delle etichette.

Scenari ideali per YOLOv5:

  • Distribuzione mobile: pipeline collaudate per iOS Android iOS che utilizzano TFLite CoreML.
  • Ispezione industriale: dove la stabilità a lungo termine e la riproducibilità sono più importanti della mAP all'avanguardia.
  • Progetti per principianti: il punto di partenza più semplice per gli studenti che imparano la visione artificiale.

Facilità d'uso ed ecosistema

YOLOv5 grazie alla sua integrazione Ultralytics . Gli utenti possono visualizzare i cicli di addestramento con Comet , track e implementare i modelli senza soluzione di continuità. La Ultralytics semplifica ulteriormente questo processo offrendo un'interfaccia senza codice per la gestione dei set di dati e l'addestramento dei modelli.

Sebbene YOLOv10 integrato nelPython Ultralytics , consentendo una sintassi familiare, si tratta principalmente di un contributo accademico. Di conseguenza, potrebbe non ricevere la stessa frequenza di aggiornamenti o lo stesso livello di manutenzione Ultralytics principali come YOLO11 o l'avanguardistico YOLO26.

Esempi di Codice

Entrambi i modelli condividono Ultralytics unificata, che consente di passare facilmente da uno all'altro per il benchmarking.

from ultralytics import YOLO

# Load a pretrained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")

# Train YOLOv10 on a custom dataset
model_v10.train(data="coco8.yaml", epochs=100, imgsz=640)

# Load a pretrained YOLOv5 model (via the v8/v11/26 compatible loader)
model_v5 = YOLO("yolov5nu.pt")

# Train YOLOv5 using the modern Ultralytics engine
model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)

Conclusione: Quale Scegliere?

Se la tua priorità è la precisione all'avanguardia e la coerenza della latenza, specialmente in scene affollate, YOLOv10 è una scelta eccellente. Le sue innovazioni architetturali offrono uno sguardo sul futuro del rilevamento NMS.

Tuttavia, se avete bisogno di una soluzione collaudata con guide di implementazione complete, ampio supporto hardware e massima stabilità, YOLOv5 rimane una soluzione potente.

Agli sviluppatori che desiderano il meglio di entrambi i mondi –inferenza end-to-end NMS, accuratezza superiore e il pieno supporto Ultralytics – consigliamo vivamente di esplorare YOLO26. YOLO26 incorpora il design NMS introdotto da YOLOv10 lo migliora con l'ottimizzatore MuSGD e funzioni di perdita ottimizzate per CPU fino al 43% più veloce.

Scopri altri modelli

  • YOLO11: La precedente generazione SOTA, che offre un'eccellente versatilità in tutte le attività.
  • RT-DETR: un rilevatore in tempo reale basato su trasformatore che rimuove anche NMS.
  • YOLO26: il modello più recente e avanzato di Ultralytics, dotato di elaborazione end-to-end e ottimizzazione edge.

Commenti