YOLO . YOLOv8: Evoluzione architettonica nel rilevamento degli oggetti
La ricerca del rilevamento degli oggetti in tempo reale ha portato a importanti innovazioni nella progettazione delle reti neurali. Due architetture di spicco che hanno plasmato questo panorama sonoYOLO, sviluppata dal team di ricerca di Alibaba, e YOLOv8, creata da Ultralytics. Questo confronto esplora le differenze tecniche tra questi modelli, esaminandone le strategie di addestramento, l'efficienza architettonica e l'idoneità all'implementazione.
DAMO-YOLO
Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
Organizzazione: Alibaba Group
Data: 23 novembre 2022
Arxiv: https://arxiv.org/abs/2211.15444v2
GitHub: YOLO
YOLOv8
Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione: Ultralytics
Data: 10/01/2023
GitHub: ultralytics
Documentazione: yolov8
Filosofie Architetturali
La differenza fondamentale tra questi due modelli risiede nella loro origine progettuale.YOLO in larga misura su strategie di ricerca automatizzate, mentre YOLOv8 la progettazione architettonica manuale attraverso test empirici approfonditi.
YOLO: Ricerca dell'architettura neurale (NAS)
YOLO un approccio basato sulla tecnologia denominato MAE-NAS (Method-Automated Efficiency Neural Architecture Search). Anziché progettare manualmente i blocchi, gli autori hanno utilizzato la ricerca dell'architettura neurale (Neural Architecture Search ) per individuare una struttura efficiente con specifici vincoli di latenza.
I componenti architettonici chiave includono:
- MAE-NAS Backbone: una struttura ottimizzata automaticamente per bilanciare la precisione di rilevamento con la velocità di inferenza.
- RepGFPN efficiente: una rete piramidale generalizzata (FPN) che utilizza la riparametrizzazione per migliorare la fusione delle caratteristiche senza aggiungere costi di inferenza.
- ZeroHead: una testa di rilevamento leggera progettata per ridurre il carico computazionale sugli strati finali di output.
- AlignedOTA: una strategia dinamica di assegnazione delle etichette che risolve il disallineamento tra attività di classificazione e regressione.
YOLOv8: Progettazione manuale perfezionata
YOLOv8 sull'eredità della YOLO , introducendo il modulo C2f (Cross-Stage Partial Bottleneck con due convoluzioni). Questo modulo è progettato per migliorare le informazioni sul flusso del gradiente, consentendo alla rete di apprendere caratteristiche più complesse pur rimanendo leggera.
Le caratteristiche architettoniche principali includono:
- Rilevamento senza ancoraggi: YOLOv8 gli anchor box, prevedendo direttamente i centri degli oggetti. Ciò semplifica il NMS e riduce il numero di iperparametri che gli utenti devono regolare.
- Testa disaccoppiata: separa i rami di classificazione e regressione, consentendo a ciascuno di convergere in modo più efficace.
- Mosaic Augmentation: una tecnica di addestramento avanzata che combina quattro immagini in una sola, costringendo il modello ad apprendere il contesto e l'invarianza di scala.
Metriche di performance
La tabella seguente mette a confronto le prestazioni diYOLO YOLOv8 COCO . MentreYOLO mAP impressionante mAP una distillazione intensiva, YOLOv8 offre YOLOv8 velocità di inferenza superiori e una minore complessità di implementazione.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| 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 |
Efficienza e complessità della formazione
Una distinzione fondamentale per gli sviluppatori è la pipeline di formazione.YOLO una sofisticata strategia di distillazione. Per ottenere risultati di alto livello, è necessario prima addestrare un grande modello "insegnante" che guidi i modelli "studenti" più piccoli. Sebbene ciò garantisca un'elevata precisione, complica notevolmente il flusso di lavoro di formazione, aumenta i requisiti GPU e prolunga i tempi di formazione.
Al contrario, Ultralytics danno priorità all'efficienza dell'addestramento. YOLOv8 un approccio "Bag of Freebies" in cui le scelte architetturali e le strategie di potenziamento (come MixUp Mosaic) garantiscono un aumento della precisione senza richiedere una pipeline di distillazione in più fasi. Ciò rende YOLOv8 più veloce da addestrare su hardware di livello consumer, abbassando la barriera di ingresso per i set di dati personalizzati.
Efficienza delle risorse
YOLO Ultralytics presentano in genere requisiti di memoria inferiori sia durante l'addestramento che durante l'inferenza rispetto ai complessi modelli basati su Transformer o alle pipeline di distillazione. Ciò consente di ottenere batch di dimensioni maggiori e sperimentazioni più rapide su GPU standard.
Il vantaggio dell'ecosistema Ultralytics
MentreYOLO contributi accademici innovativi, Ultralytics offre un vantaggio distintivo per lo sviluppo di applicazioni nel mondo reale.
Versatilità oltre ogni immaginazione
YOLO progettato principalmente per il rilevamento dei bounding box. Al contrario, il Ultralytics è nativamente multitasking. Una singola API consente agli sviluppatori di eseguire:
- Segmentazione delle istanze per un mascheramento preciso a livello di pixel.
- Stima della posa per il tracciamento dello scheletro.
- Riquadro di delimitazione orientato (OBB) per il rilevamento di oggetti aerei e ruotati.
- Classificazione delle immagini per la categorizzazione dell'intera immagine.
Facilità d'uso e di deployment
Ultralytics un'esperienza utente semplificata. Python consente l'addestramento, la convalida e l'implementazione in meno di cinque righe di codice. Inoltre, le ampie opzioni di esportazione consentono una conversione senza soluzione di continuità in ONNX, TensorRT, CoreML, TFLite e OpenVINO, garantendo che i modelli possano essere implementati su qualsiasi piattaforma, dai server cloud ai Raspberry Pi.
Il futuro della visione artificiale: YOLO26
Per gli sviluppatori alla ricerca della tecnologia più avanzata per il 2026, Ultralytics YOLO26. Basandosi sui successi di YOLOv8 YOLO11, YOLO26 introduce cambiamenti fondamentali nell'architettura per garantire velocità e stabilità.
Design End-to-End NMS-Free
A differenza diYOLO YOLOv8, che richiedono una post-elaborazione Non-Maximum Suppression (NMS) per filtrare i riquadri sovrapposti, YOLO26 è nativamente end-to-end. Questa innovazione, introdotta per la prima volta in YOLOv10, elimina NMS . Ciò si traduce in pipeline di implementazione semplificate e una minore latenza, in particolare in scenari con molti oggetti rilevati.
Ottimizzazione avanzata e funzioni di perdita
YOLO26 integra MuSGD Optimizer, un ibrido tra SGD Muon (ispirato alle innovazioni nella formazione LLM di Kimi K2 di Moonshot AI). Ciò garantisce la stabilità della formazione di modelli linguistici di grandi dimensioni alla visione artificiale, con conseguente convergenza più rapida. Inoltre, la rimozione della Distribution Focal Loss (DFL) e l'introduzione di ProgLoss e STAL (Soft Task-Aligned Loss) migliorano significativamente le prestazioni su oggetti di piccole dimensioni, una sfida comune nella robotica e nell'IoT.
Bilanciamento delle prestazioni
YOLO26 è ottimizzato per l'edge computing e offre CPU fino al 43% più veloce rispetto alle generazioni precedenti. Questo lo rende la scelta ideale per le applicazioni in esecuzione su dispositivi senza GPU dedicate, superando l'efficienza dei vecchi approcci basati su NAS.
Esempio di codice: Ultralytics
L'esempio seguente dimostra quanto sia facile per uno sviluppatore passare da una generazione di modelli all'altra utilizzando Ultralytics . Questa flessibilità consente un rapido benchmarking di YOLOv8 al più recente YOLO26 su un set di dati personalizzato.
from ultralytics import YOLO
# Load the models
model_v8 = YOLO("yolov8n.pt")
model_v26 = YOLO("yolo26n.pt") # Recommended for new projects
# Train YOLO26 on a custom dataset
# The MuSGD optimizer and ProgLoss are handled automatically
results = model_v26.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the NMS-free architecture
# No post-processing tuning required
prediction = model_v26("https://ultralytics.com/images/bus.jpg")
prediction[0].show()
Riepilogo
SiaYOLO YOLOv8 pietre miliari significative nel campo della visione artificiale.YOLO la potenza della ricerca dell'architettura neurale e della distillazione per ottenere un'elevata precisione. Tuttavia, per la maggior parte degli sviluppatori, dei ricercatori e delle imprese, Ultralytics YOLOv8, e in particolare il più recente YOLO26, offre un equilibrio superiore.
La combinazione di un ecosistema ben mantenuto, facilità d'uso, supporto versatile delle attività e funzionalità all'avanguardia come il rilevamento NMS rende Ultralytics scelta preferita per soluzioni AI scalabili e a prova di futuro. Gli sviluppatori alla ricerca di altre opzioni ad alte prestazioni potrebbero anche esplorare RT-DETR per una precisione basata su trasformatori o YOLO11 per una comprovata robustezza.