mozzicone Disimballaggio di Yolov8: il capolavoro della visione artificiale virale di Ultralytics - Unite.AI
Seguici sui social

Intelligenza Artificiale

Disimballaggio di Yolov8: il capolavoro della visione artificiale virale di Ultralytics

mm
aggiornato on
Immagine in primo piano nel blog per YOLOv8

Fino ad ora, il rilevamento di oggetti nelle immagini utilizzava modelli di visione artificiale ha dovuto affrontare un grosso ostacolo di alcuni secondi di ritardo a causa del tempo di elaborazione. Questo ritardo ha ostacolato l’adozione pratica in casi d’uso come la guida autonoma. Tuttavia, il rilascio del modello di visione artificiale YOLOv8 da parte di Ultralytics ha superato il ritardo dell'elaborazione. Il nuovo modello è in grado di rilevare oggetti in tempo reale con precisione e velocità senza pari, rendendolo popolare nello spazio della visione artificiale.

Questo articolo esplora YOLOv8, le sue capacità e come puoi ottimizzare e creare i tuoi modelli attraverso il suo repository Github open source.

Yolov8 ha spiegato

YOLOv8-Ultralitici

YOLO (You Only Live Once) è un popolare modello di visione artificiale in grado di rilevamento e segmentazione di oggetti nelle immagini. Il modello ne ha attraversati diversi aggiornamenti in passato, con YOLOv8 che segna l'ottava versione.

Allo stato attuale, YOLOv8 si basa sulle capacità delle versioni precedenti introducendo nuove potenti funzionalità e miglioramenti. Ciò consente il rilevamento di oggetti in tempo reale nei dati immagine e video con maggiore accuratezza e precisione.

Dalla v1 alla v8: una breve storia

Yolov1: Rilasciata nel 2015, la prima versione di YOLO è stata introdotta come modello di rilevamento di oggetti a fase singola. Le funzionalità includevano la lettura del modello dell'intera immagine per prevedere ciascun riquadro di delimitazione in un'unica valutazione.

Yolov2: La versione successiva, rilasciata nel 2016, presentava prestazioni al top su benchmark come PASCAL VOC e COCO e funziona ad alte velocità (67-40 FPS). Potrebbe anche rilevare con precisione oltre 9000 categorie di oggetti, anche con dati di rilevamento specifici limitati.

Yolov3: Lanciato nel 2018, Yolov3 ha presentato nuove funzionalità come una rete dorsale più efficace, ancoraggi multipli e pooling piramidale spaziale per l'estrazione di funzionalità su più scala.

Yolov4: Con il rilascio di Yolov4 nel 2020, è stata introdotta la nuova tecnica di aumento dei dati Mosaic, che ha offerto capacità di formazione migliorate.

Yolov5: Rilasciato nel 2021, Yolov5 ha aggiunto nuove potenti funzionalità, tra cui l'ottimizzazione degli iperparametri e il monitoraggio integrato degli esperimenti.

Yolov6: Con il rilascio di Yolov6 nel 2022, il modello è diventato open source per promuovere lo sviluppo guidato dalla comunità. Sono state introdotte nuove funzionalità, come una nuova strategia di auto-distillazione e una strategia di Anchor-Aided Training (AAT).

Yolov7: Rilasciato nello stesso anno, nel 2022, Yolov7 ha migliorato il modello esistente in termini di velocità e precisione ed era il modello di rilevamento di oggetti più veloce al momento del rilascio.

Cosa rende YOLOv8 eccezionale?

Immagine che mostra il rilevamento del veicolo

La precisione senza pari e l'alta velocità di YOLOv8 fanno risaltare il modello di visione artificiale rispetto alle versioni precedenti. È un risultato epocale poiché ora gli oggetti possono essere rilevati in tempo reale senza ritardi, a differenza delle versioni precedenti.

Ma oltre a questo, YOLOv8 è dotato di potenti funzionalità, che includono:

  1. Architettura personalizzabile: YOLOv8 offre un'architettura flessibile che gli sviluppatori possono personalizzare per soddisfare le loro esigenze specifiche.
  2. Allenamento adattivo: Le nuove funzionalità di allenamento adattivo di YOLOv8, come il bilanciamento delle funzioni di perdita durante l'allenamento e le tecniche, migliorano il tasso di apprendimento. Prendiamo Adam, che contribuisce a una migliore precisione, una convergenza più rapida e prestazioni complessivamente migliori del modello.
  3. Analisi avanzata delle immagini: Attraverso la nuova segmentazione semantica e le funzionalità di previsione delle classi, il modello può rilevare attività, colore, consistenza e persino relazioni tra oggetti oltre alla funzionalità principale di rilevamento degli oggetti.
  4. Aumento dei dati: Le nuove tecniche di aumento dei dati aiutano ad affrontare aspetti delle variazioni dell'immagine come la bassa risoluzione, l'occlusione, ecc., in situazioni di rilevamento di oggetti nel mondo reale in cui le condizioni non sono ideali.
  5. Supporto della dorsale: YOLOv8 offre supporto per più backbone, tra cui CSPDarknet (backbone predefinito), EfficientNet (backbone leggero) e ResNet (backbone classico), tra cui gli utenti possono scegliere.

Gli utenti possono persino personalizzare la dorsale sostituendo CSPDarknet53 con qualsiasi altra architettura CNN compatibile con le dimensioni di input e output di YOLOv8.

Formazione e messa a punto YOLOv8

Il modello YOLOv8 può essere messo a punto per adattarsi a determinati casi d'uso o essere addestrato interamente da zero per creare un modello specializzato. Maggiori dettagli sulle modalità di formazione sono reperibili nel documentazione ufficiale.

Esploriamo come eseguire entrambe queste operazioni.

Ottimizzazione di YOLOV8 con un set di dati personalizzato

L'operazione di regolazione fine carica un modello preesistente e ne utilizza i pesi predefiniti come punto di partenza per l'addestramento. Intuitivamente parlando, il modello ricorda tutta la sua conoscenza precedente e l’operazione di messa a punto aggiunge nuove informazioni modificando i pesi.

Il modello YOLOv8 può essere messo a punto con il codice Python o tramite l'interfaccia a riga di comando (CLI).

1. Ottimizza un modello YOLOv8 utilizzando Python

Inizia importando il pacchetto Ultralytics nel tuo codice. Quindi, carica il modello personalizzato che desideri addestrare utilizzando il seguente codice:

Innanzitutto, installa la libreria Ultralytics dalla distribuzione ufficiale.

# Installa il pacchetto ultralytics da PyPI
pip installa ultralitici

Successivamente, esegui il seguente codice all'interno di un file Python:

da ultralitici importano YOLO

# Carica un modello
modello = YOLO('yolov8n.pt')  # carica un modello preaddestrato (consigliato per l'addestramento)

# Addestra il modello sul set di dati MS COCO
risultati = model.train(data='coco128.yaml', epoche=100, imgsz=640)

Per impostazione predefinita, il codice addestrerà il modello utilizzando il set di dati COCO per 100 epoche. Tuttavia, puoi anche configurare queste impostazioni per impostare la dimensione, l'epoca, ecc. in un file YAML.

Una volta addestrato il modello con le impostazioni e il percorso dati, monitora i progressi, testa e ottimizza il modello e continua ad addestrarlo nuovamente finché non vengono raggiunti i risultati desiderati.

2. Ottimizza un modello YOLOv8 utilizzando la CLI

Per addestrare un modello utilizzando la CLI, esegui il seguente script nella riga di comando:

yolo train model=yolov8n.pt data=coco8.yaml epoche=100 imgsz=640

Il comando CLI carica il modello `yolov8n.pt` preaddestrato e lo addestra ulteriormente sul set di dati definito nel file `coco8.yaml`.

Creare il tuo modello con YOLOv8

Esistono essenzialmente 2 modi per creare un modello personalizzato con il framework YOLO:

  • Formazione da zero: Questo approccio consente di utilizzare l'architettura YOLOv8 predefinita ma NON utilizzerà alcun peso pre-addestrato. La formazione avverrà da zero.
  • Architettura personalizzata: Modifichi l'architettura YOLO predefinita e addestri la nuova struttura da zero.

L'implementazione di entrambi questi metodi rimane la stessa. Per addestrare un modello YOLO da zero, esegui il seguente codice Python:

da ultralitici importano YOLO

# Carica un modello
model = YOLO('yolov8n.yaml')  # crea un nuovo modello da YAML

# Addestra il modello
risultati = model.train(data='coco128.yaml', epoche=100, imgsz=640)

Nota che questa volta abbiamo caricato un file ".yaml" invece di un file ".pt". Il file YAML contiene le informazioni sull'architettura per il modello e non viene caricato alcun peso. Il comando di addestramento inizierà ad addestrare questo modello da zero.

Per addestrare un'architettura personalizzata, è necessario definire la struttura personalizzata in un file ".yaml" simile a "yolov8n.yaml" sopra. Quindi, carichi questo file e addestri il modello utilizzando lo stesso codice di cui sopra.

Per saperne di più sul rilevamento degli oggetti tramite l'intelligenza artificiale e per rimanere informato sulle ultime tendenze dell'intelligenza artificiale, visita unire.ai.