YOLOv8 vs YOLOv6.0: Un confronto tecnico
La scelta del modello ottimale di rilevamento degli oggetti è un passo fondamentale per la realizzazione di applicazioni di computer vision robuste. Questo confronto dettagliato esplora le differenze architettoniche, le metriche delle prestazioni e i casi d'uso ideali di Ultralytics YOLOv8 e YOLOv6.0. Sebbene entrambi i modelli siano nati nello stesso periodo e mirino a risolvere problemi simili, si differenziano in modo significativo per la filosofia di progettazione, la versatilità e gli ecosistemi che li supportano.
Ultralytics YOLOv8
Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione: Ultralytics
Data: 2023-01-10
GitHub: ultralytics
Documenti: https:yolov8
Ultralytics YOLOv8 rappresenta un significativo passo avanti nell'evoluzione dell'architettura YOLO . Progettato come un framework unificato, supporta un'ampia gamma di attività di computer vision oltre al semplice rilevamento, tra cui la segmentazione delle istanze, la stima della posa e la classificazione. Il suo design incentrato sull'utente privilegia la facilità d'uso, rendendo l'IA all'avanguardia accessibile agli sviluppatori di qualsiasi livello.
Architettura e caratteristiche principali
YOLOv8 introduce un meccanismo di rilevamento senza ancore, che semplifica la testa del modello e riduce il numero di iperparametri necessari per l'addestramento. Questo approccio migliora la generalizzazione di oggetti di forme e dimensioni diverse. L'architettura presenta una spina dorsale e un collo all'avanguardia che utilizzano un modulo C2f, che migliora il flusso di gradienti e l'integrazione delle caratteristiche rispetto alle precedenti iterazioni.
Punti di forza
- Versatilità senza pari: A differenza di molti concorrenti, YOLOv8 non si limita al rilevamento degli oggetti. Supporta in modo nativo la segmentazione dell'istanza, la classificazione dell'immagine, la stima della posa e le attività di oriented bounding box (OBB) all'interno di un'unica base di codice.
- Efficienza superiore: Come evidenziato nei benchmark delle prestazioni, YOLOv8 raggiunge un'accuratezza maggioremAP) con meno parametri e FLOP. Ciò si traduce in un minor fabbisogno di memoria sia in fase di addestramento che di inferenza, un vantaggio fondamentale rispetto ai modelli più pesanti basati su trasformatori.
- Facilità d'uso: il modello è racchiuso in un'APIPython e in un'interfaccia a riga di comandoCLI) semplificate, che consentono agli utenti di addestrare, convalidare e distribuire i modelli con un codice minimo.
- Ecosistema robusto: Supportato da UltralyticsYOLOv8 beneficia di aggiornamenti continui, di un'ampia documentazione e di una vivace comunità. Ciò garantisce la sostenibilità e il supporto a lungo termine per le implementazioni aziendali.
Punti deboli
- Rilevamento di oggetti piccoli: Anche se molto capaci, i rilevatori a fase singola come YOLOv8 possono occasionalmente avere difficoltà con oggetti estremamente piccoli o occlusi rispetto ai rilevatori a due fasi specializzati e costosi dal punto di vista computazionale.
YOLOv6.0
Autori: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu e Xiangxiang Chu
Organizzazione: Meituan
Data: 2023-01-13
Arxiv: https://arxiv.org/abs/2301.05586
GitHub: YOLOv6
Docs: https:ultralytics
YOLOv6.0 è un framework per il rilevamento di oggetti sviluppato da Meituan, specificamente progettato per applicazioni industriali in cui la velocità di inferenza su hardware dedicato è una priorità. Si concentra sull'ottimizzazione del compromesso tra velocità e precisione, impiegando tecniche avanzate per massimizzare l'utilizzo GPU .
Architettura e caratteristiche principali
L'architettura di YOLOv6 incorpora un design consapevole dell'hardware, utilizzando strutture Rep-Block (ri-parametrizzazione) che consentono alla rete di avere rami complessi durante l'addestramento, ma di ripiegare in una struttura più semplice e veloce durante l'inferenza. Utilizza inoltre una strategia di autodistillazione per aumentare l'accuratezza senza incorrere in costi aggiuntivi di inferenza.
Punti di forza
- Velocità di inferenzaGPU : il modello è altamente ottimizzato per le prestazioni GPU , in particolare su hardware NVIDIA , il che lo rende un candidato forte per gli scenari industriali con budget di latenza rigorosi.
- Supporto alla quantizzazione: YOLOv6 enfatizza il supporto per la quantizzazione dei modelli, fornendo strumenti per distribuire i modelli su hardware con precisione computazionale limitata.
- Ottimizzazione mobile: Con varianti come YOLOv6Lite, il framework offre soluzioni personalizzate per endpoint mobili e CPU.
Punti deboli
- Ambito di attività limitato: YOLOv6 si concentra principalmente sul rilevamento degli oggetti. Manca del supporto nativo per la segmentazione, la stima della posa e il tracciamento che caratterizza l'ecosistema Ultralytics .
- Intensità delle risorse: Per ottenere un'accuratezza paragonabile a quella di YOLOv8, i modelli di YOLOv6 spesso richiedono un numero significativamente maggiore di parametri e di FLOP, con un conseguente maggiore overhead computazionale durante l'addestramento.
- Comunità e manutenzione: Pur essendo open-source, l'ecosistema è meno attivo rispetto a quello di Ultralytics, il che può comportare una risoluzione più lenta dei problemi e un numero inferiore di risorse apportate dalla comunità.
Confronto delle prestazioni
La tabella seguente presenta un confronto diretto delle metriche delle prestazioni sul set di datiCOCO . Questi dati sottolineano l'efficienza di Ultralytics YOLOv8, che offre costantemente un'elevata precisione media (mAP) con una ridotta complessità del modello.
| 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.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
Analisi delle metriche
- Efficienza: YOLOv8 dimostra un'efficienza dei parametri superiore. Ad esempio, YOLOv8s raggiunge un competitivo 44,9 mAP con solo 11,2M di parametri, mentre YOLOv6.0s richiede 18,5M di parametri, il 65%in più, perottenere un mAP virtualmente identico di 45,0. Ciò si traduce in costi di archiviazione inferiori e aggiornamenti più rapidi sui dispositivi edge.
- Carico di calcolo: analogamente, in termini di FLOPs (Floating Point Operations), YOLOv8m opera con 78,9B FLOPs rispetto agli 85,8B di YOLOv6.0m, rendendo il modello Ultralytics più leggero dal punto di vista computazionale, pur ottenendo un mAP più elevato (50,2 vs 50,0).
- Velocità: mentre YOLOv6.0 mostra velocità di inferenza grezze leggermente superiori sulle GPU T4 grazie al suo design specializzato e consapevole dell'hardware, YOLOv8 offre eccellenti prestazioni CPU grazie a ONNX, fondamentale per le implementazioni in cui le GPU non sono disponibili.
Formazione e usabilità
Una delle differenze principali tra questi modelli è l'esperienza dello sviluppatore. Ultralytics dà priorità a un flusso di lavoro privo di attriti, evidente nel modo in cui i modelli vengono addestrati e distribuiti.
Flusso di lavoro unificato
Ultralytics offre un'API coerente per tutte le attività. Che si tratti di rilevamento, segmentazione o stima della posa, la sintassi rimane la stessa, riducendo drasticamente la curva di apprendimento.
Facilità d'uso con Ultralytics
YOLOv8 può essere integrato in un progetto con poche righe di codice. L'SDK Python gestisce automaticamente il caricamento dei dati, l'incremento e la configurazione della pipeline di addestramento.
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Per contro, sebbene YOLOv6 sia efficace, spesso richiede una configurazione più manuale e la gestione delle dipendenze tipica dei repository accademici, che può rallentare la prototipazione rapida e l'integrazione di MLOps.
Casi d'uso ideali
Quando scegliere Ultralytics YOLOv8
- Applicazioni diverse: Quando il progetto richiede qualcosa di più dei semplici riquadri di delimitazione, come la segmentazione di oggetti o la stima di punti chiave, le capacità multitasking di YOLOv8 sono indispensabili.
- Distribuzione Edge e Cloud: Grazie alle sue modalità di esportazione, YOLOv8 si distribuisce senza problemi su TFLite, ONNX, CoreML e TensorRT, coprendo tutto, dai telefoni cellulari ai server cloud.
- Sviluppo rapido: Per i team che hanno bisogno di iterare rapidamente, l'ampia documentazione e il supporto attivo della comunità riducono al minimo i tempi di inattività e la risoluzione dei problemi.
Quando scegliere YOLOv6.0
- Hardware industriale specifico: se l'ambiente di distribuzione è strettamente controllato e utilizza hardware che beneficia specificamente delle architetture Rep-Block (come alcune configurazioni di GPU ), YOLOv6 potrebbe offrire guadagni di velocità marginali.
- Sistemi preesistenti: Per le pipeline esistenti già costruite intorno ai formati di input/output specifici di YOLOv6, dove la rifattorizzazione non è fattibile.
Conclusione
Mentre YOLOv6.0 rimane un forte concorrente nella nicchia specifica del rilevamento di oggetti industriali, Ultralytics YOLOv8 offre una soluzione più completa, efficiente e a prova di futuro per la maggior parte dei progetti di computer vision. La sua capacità di fornire un'accuratezza superiore con un minor numero di parametri, unita a un ecosistema fiorente e al supporto per molteplici attività di visione, lo rende la scelta consigliata per sviluppatori e ricercatori.
Per chi vuole esplorare le ultime novità in fatto di tecnologia di visione computerizzata, è possibile consultare il sito YOLO11che perfeziona ulteriormente l'efficienza e le prestazioni stabilite da YOLOv8. Inoltre, il confronto con modelli basati su trasformatori come RT-DETR possono fornire ulteriori informazioni sulle moderne architetture di rilevamento.