Vai al contenuto

YOLO vs. YOLOv10: un'immersione profonda nell'evoluzione del rilevamento degli oggetti

La scelta del giusto modello di rilevamento degli oggetti è una decisione cruciale che influisce su tutto, dai costi di implementazione all'esperienza dell'utente. Questo confronto tecnico esplora le differenze tra YOLO, un modello basato sulla ricerca di Alibaba Group, e YOLOv10. YOLOv10, il più recente rilevatore end-to-end in tempo reale sviluppato dai ricercatori della Tsinghua University e integrato nell'ecosistema Ultralytics .

Sebbene entrambi i modelli mirino a ottimizzare il compromesso tra velocità e precisione, utilizzano strategie architettoniche molto diverse. Questa analisi approfondisce le loro specifiche tecniche, le metriche delle prestazioni e i casi d'uso ideali per aiutarvi a orientarvi nel complesso panorama della computer vision.

Metriche di performance

La tabella seguente fornisce un confronto diretto dell'efficienza e dell'accuratezza sul set di datiCOCO . I dati più significativi riguardano l'efficienza dei parametri e la velocità di inferenza, dove YOLOv10 dimostra vantaggi significativi grazie al suo design NMS.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3
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

YOLO: innovazione guidata dalla ricerca

Rilasciato alla fine del 2022, YOLO rappresenta uno sforzo significativo da parte di Alibaba Group per spingere i confini dei rilevatori di YOLO attraverso una ricerca avanzata dell'architettura neurale e nuove tecniche di fusione delle caratteristiche.

Dettagli tecnici:
Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, et al.
Organizzazione:Alibaba Group
Data: 2022-11-23
Arxiv:https://arxiv.org/abs/2211.15444v2
GitHubYOLO

Scopri di più su DAMO-YOLO

Architettura e caratteristiche principali

YOLO integra diversi concetti all'avanguardia per ottenere le sue prestazioni:

  1. Ricerca dell'architettura neurale (NAS): A differenza dei modelli con dorsali progettate manualmente, YOLO utilizza MAE-NAS per scoprire automaticamente strutture di rete efficienti, ottimizzando la profondità e la larghezza della rete per specifici vincoli hardware.
  2. Collo RepGFPN: Questa rete a piramide di caratteristiche impiega la ri-parametrizzazione per gestire in modo efficiente la fusione delle caratteristiche. Consente di creare strutture complesse in tempo di addestramento che collassano in blocchi più semplici in tempo di inferenza, mantenendo l'accuratezza e aumentando la velocità.
  3. ZeroHead e AlignedOTA: il modello utilizza un design "ZeroHead" per ridurre la complessità della testa di rilevamento e impiega AlignedOTA (Optimal Transport Assignment) per gestire l'assegnazione delle etichette durante l'addestramento, risolvendo i problemi di disallineamento tra i compiti di classificazione e regressione.

Considerazione della complessità

Sebbene YOLO introduca innovazioni notevoli, la sua dipendenza da NAS e componenti specializzati può rendere la pipeline di formazione più complessa e meno accessibile per gli sviluppatori che necessitano di una personalizzazione rapida o di un'implementazione su hardware diversi senza una messa a punto approfondita.

Punti di forza e debolezze

  • Punti di forza: YOLO offre una grande precisione, in particolare per quanto riguarda il tempo di rilascio, e ha introdotto concetti nuovi come il miglioramento della distillazione per i modelli più piccoli.
  • Punti deboli: L'ecosistema che circonda YOLO è legato principalmente al framework MMDetection, che può presentare una curva di apprendimento più ripida rispetto all'ecosistemaUltralytics , di facile utilizzo. Inoltre, richiede una post-elaborazione NMS tradizionale, che aggiunge latenza.

YOLOv10: l'era del rilevamento end-to-end in tempo reale

YOLOv10, rilasciato nel maggio 2024 dai ricercatori della Tsinghua University, rappresenta un cambiamento paradigmatico nella linea YOLO . Eliminando la necessità della soppressione non massimaNMS), raggiunge prestazioni realmente end-to-end, riducendo in modo significativo la latenza di inferenza.

Dettagli tecnici:
Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
Organizzazione:Tsinghua University
Data: 2024-05-23
Arxiv:https://arxiv.org/abs/2405.14458
GitHub:https://github.com/THU-MIG/yolov10
Docsultralytics


Per saperne di più su YOLOv10

Architettura e Innovazioni

YOLOv10 si concentra sull'efficienza olistica, sia per quanto riguarda l'architettura che la pipeline di post-elaborazione:

  1. ProgettazioneNMS: Grazie a una strategia chiamata Consistent Dual Assignments, YOLOv10 si addestra con assegnazioni di etichette sia uno-a-molti che uno-a-uno. Ciò consente al modello di prevedere una singola casella migliore per ogni oggetto durante l'inferenza, rendendo obsoleti gli NMS . Questo è un vantaggio fondamentale per l'inferenza in tempo reale, dove la post-elaborazione può spesso diventare un collo di bottiglia.
  2. Progettazione olistica di efficienza e precisione: L'architettura presenta una testa di classificazione leggera e un downsampling disaccoppiato per canale spaziale. Queste ottimizzazioni riducono la ridondanza computazionale, con conseguente riduzione dei FLOP e del numero di parametri rispetto alle generazioni precedenti.
  3. Progettazione dei blocchi guidata dal rango: Il modello adatta la progettazione dei blocchi interni in base alla ridondanza dei diversi stadi, utilizzando blocchi invertiti compatti (CIB) quando è necessaria l'efficienza e l'autoattenzione parziale (PSA) quando è fondamentale il miglioramento delle caratteristiche.

Facilità d'uso con Ultralytics

Uno dei vantaggi più significativi di YOLOv10 è la sua perfetta integrazione nell'ecosistemaUltralytics . Gli sviluppatori possono addestrare, convalidare e distribuire YOLOv10 utilizzando la stessa semplice API usata per YOLOv8 e YOLO11.

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Train the model on your custom dataset
model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

Analisi comparativa

Nel confronto tra YOLO e YOLOv10, la distinzione sta nell'approccio all'efficienza e nell'ecosistema operativo.

Velocità e latenza

YOLOv10 presenta un netto vantaggio in termini di latenza nel mondo reale. I modelli YOLO standard (e YOLO) richiedono la soppressione non massima (NMS) per filtrare le bounding box sovrapposte. Il tempo di esecuzione NMS varia in base al numero di oggetti rilevati, causando una latenza imprevedibile. Il design end-to-end di YOLOv10 garantisce una latenza deterministica, rendendolo superiore per le applicazioni critiche in termini di tempo, come la guida autonoma o la robotica industriale ad alta velocità.

Efficienza delle risorse

Come mostrato nella tabella delle prestazioni, YOLOv10s raggiunge un mAP più elevato (46,7%) rispetto a YOLO (46,0%) pur utilizzando meno della metà dei parametri (7,2M contro 16,3M). Questa riduzione dell'ingombro di memoria è fondamentale per l'implementazione in ambiente edge. I modelli Ultralytics sono rinomati per i loro requisiti di memoria ridotti sia durante l'addestramento che l'inferenza, consentendo l'addestramento su GPU di fascia consumer dove altre architetture potrebbero avere problemi con gli errori Out-Of-Memory (OOM).

Ecosistema e supporto

Mentre YOLO è un solido contributo accademico, YOLOv10 beneficia dell'ecosistema Ultralytics ben curato. Questo include:

  • Sviluppo attivo: Aggiornamenti frequenti e correzioni di bug.
  • Supporto della comunità: Un'enorme comunità di sviluppatori su GitHub e Discord.
  • Documentazione: Un'ampia documentazione che copre tutto, dall'aumento dei dati all'implementazione.
  • Efficienza dell'allenamento: Routine semplificate che supportano funzioni come la precisione mista automatica (AMP) e l'allenamento GPU .

Oltre il rilevamento

Se il vostro progetto richiede una versatilità che va oltre i bounding box, come la segmentazione delle istanze, la stima della posa o il rilevamento orientato degli oggetti (OBB), prendete in considerazione l'idea di esplorare YOLO11 o YOLOv8. Mentre YOLOv10 eccelle nel rilevamento puro, la più ampia famiglia Ultralytics offre soluzioni all'avanguardia per queste complesse esigenze di multitasking.

Casi d'uso ideali

Quando scegliere YOLOv10

  • Edge AI e IoT: Il basso numero di parametri (ad esempio, YOLOv10n con 2,3 milioni di parametri) lo rende perfetto per dispositivi come Raspberry Pi o NVIDIA Jetson.
  • Analisi video in tempo reale: L'eliminazione dell'NMS garantisce framerate costanti, essenziali per il monitoraggio del traffico o per i feed di sicurezza.
  • Sviluppo rapido: I team che hanno bisogno di passare rapidamente dai dati all'implementazione trarranno vantaggio dall'intuitività del sistema. ultralytics API Python e Ultralytics HUB.

Quando considerare DAMO-YOLO

  • Ricerca accademica: I ricercatori che studiano la ricerca di architetture neurali (NAS) o l'ottimizzazione di piramidi di caratteristiche possono trovare nell'architettura di YOLO un riferimento prezioso.
  • Pipeline legacy: I progetti già profondamente integrati nel framework MMDetection potrebbero trovare più facile adottare YOLO piuttosto che cambiare framework.

Conclusione

Entrambi i modelli rappresentano pietre miliari della computer vision. YOLO ha mostrato la potenza della NAS e della fusione avanzata delle caratteristiche nel 2022. Tuttavia, per le applicazioni moderne nel 2024 e oltre, YOLOv10 offre un pacchetto più interessante. La sua architettura end-to-end NMS risolve una strozzatura di lunga data nel rilevamento degli oggetti, mentre la sua integrazione nell'ecosistema Ultralytics ne garantisce l'accessibilità, la manutenibilità e la facilità di implementazione.

Per gli sviluppatori che cercano il miglior equilibrio tra velocità, accuratezza e facilità d'uso, YOLOv10versatile YOLO11-è la scelta migliore per la creazione di solide soluzioni di intelligenza artificiale.


Commenti