Modelli e piattaforme di IA
Scomporre Yolov8: il capolavoro di computer vision di Ultralytics

Fino ad ora, la rilevazione di oggetti nelle immagini utilizzando modelli di computer vision ha incontrato un grande ostacolo a causa del ritardo di alcuni secondi dovuto al tempo di elaborazione. Questo ritardo ha ostacolato l’adozione pratica in casi d’uso come la guida autonoma. Tuttavia, il modello di computer vision YOLOv8 rilasciato da Ultralytics ha superato il ritardo di elaborazione. Il nuovo modello può rilevare oggetti in tempo reale con un’accuratezza e una velocità senza precedenti, rendendolo popolare nello spazio della computer vision.
Questo articolo esplora YOLOv8, le sue capacità e come è possibile adattarlo e creare modelli personalizzati attraverso il suo repository open-source Github.
Yolov8 Spiegato
YOLO (You Only Live Once) è un modello di computer vision popolare in grado di rilevare e segmentare oggetti nelle immagini. Il modello ha subito diverse aggiornamenti nel passato, con YOLOv8 che segna l’8ª versione.
Come si presenta, YOLOv8 si basa sulle capacità delle versioni precedenti introducendo nuove funzionalità potenti e miglioramenti. Ciò consente la rilevazione di oggetti in tempo reale nei dati di immagini e video con maggiore accuratezza e precisione.
Dalla versione 1 all’8: una breve storia
Yolov1: Rilasciato nel 2015, la prima versione di YOLO è stata introdotta come modello di rilevamento di oggetti a singolo stadio. Le funzionalità includevano il modello che leggeva l’intera immagine per prevedere ogni bounding box in una sola valutazione.
Yolov2: La versione successiva, rilasciata nel 2016, presentava una performance di alto livello su benchmark come PASCAL VOC e COCO e operava a velocità elevate (67-40 FPS). Poteva anche rilevare con accuratezza oltre 9000 categorie di oggetti, anche con dati di rilevamento limitati.
Yolov3: Lanciato nel 2018, Yolov3 presentava nuove funzionalità come una rete backbone più efficace, più anchor e spatial pyramid pooling per l’estrazione di caratteristiche multi-scala.
Yolov4: Con il rilascio di Yolov4 nel 2020, è stata introdotta la nuova tecnica di data augmentation Mosaic, che offriva capacità di addestramento migliorate.
Yolov5: Rilasciato nel 2021, Yolov5 aggiungeva funzionalità potenti, tra cui l’ottimizzazione degli iperparametri e il tracciamento degli esperimenti integrato.
Yolov6: Con il rilascio di Yolov6 nel 2022, il modello è stato 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 addestramento assistita da anchor (AAT).
Yolov7: Rilasciato nello stesso anno, 2022, Yolov7 ha migliorato il modello esistente in termini di velocità e accuratezza ed era il modello di rilevamento di oggetti più veloce al momento del rilascio.
Cosa rende YOLOv8 unico?

La velocità e l’accuratezza senza precedenti di YOLOv8 lo rendono un modello di computer vision che si distingue dalle versioni precedenti. È un risultato notevole, poiché gli oggetti possono ora essere rilevati in tempo reale senza ritardi, a differenza delle versioni precedenti.
Ma oltre a ciò, YOLOv8 offre funzionalità potenti, che includono:
- Architettura personalizzabile: YOLOv8 offre un’architettura flessibile che gli sviluppatori possono personalizzare in base alle loro esigenze specifiche.
- Addestramento adattivo: Le nuove capacità di addestramento adattivo di YOLOv8, come il bilanciamento della funzione di perdita durante l’addestramento e le tecniche, migliorano la velocità di apprendimento. Ad esempio, Adam contribuisce a una maggiore accuratezza, una convergenza più rapida e una migliore prestazione del modello in generale.
- Analisi di immagini avanzata: Grazie alle nuove capacità di segmentazione semantica e predizione di classi, il modello può rilevare attività, colore, texture e anche relazioni tra oggetti oltre alla sua funzionalità di rilevamento di oggetti di base.
- Augmentazione dei dati: Le nuove tecniche di augmentazione dei dati aiutano a gestire aspetti di variazioni di immagini come bassa risoluzione, occlusione, ecc., in situazioni di rilevamento di oggetti nel mondo reale in cui le condizioni non sono ideali.
- Supporto per backbone: YOLOv8 offre supporto per più backbone, tra cui CSPDarknet (backbone predefinito), EfficientNet (backbone leggero) e ResNet (backbone classico), che gli utenti possono scegliere.
Gli utenti possono anche personalizzare il backbone sostituendo il CSPDarknet53 con qualsiasi altra architettura di rete neurale compatibile con le dimensioni di input e output di YOLOv8.
Addestramento e personalizzazione di YOLOv8
Il modello YOLOv8 può essere adattato per adattarsi a casi d’uso specifici o addestrato completamente da zero per creare un modello personalizzato. Ulteriori dettagli sulle procedure di addestramento possono essere trovati nella documentazione ufficiale.
Esaminiamo come è possibile eseguire entrambe queste operazioni.
Personalizzazione di YOLOV8 con un set di dati personalizzato
L’operazione di personalizzazione carica un modello preesistente e utilizza i suoi pesi predefiniti come punto di partenza per l’addestramento. Intuitivamente, il modello ricorda tutta la sua conoscenza precedente e l’operazione di personalizzazione aggiunge nuove informazioni regolando i pesi.
Il modello YOLOv8 può essere personalizzato con il codice Python o attraverso l’interfaccia a riga di comando (CLI).
1. Personalizzazione di 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:
Prima, installa la libreria Ultralytics dalla distribuzione ufficiale.
| # Installa il pacchetto ultralytics da PyPI pip install ultralytics |
Successivamente, esegui il seguente codice all’interno di un file Python:
| from ultralytics import YOLO
# Carica un modello # Addestra il modello sul set di dati MS COCO |
Per impostazione predefinita, il codice addestrerà il modello utilizzando il set di dati COCO per 100 epoche. Tuttavia, è possibile configurare queste impostazioni per impostare la dimensione, l’epoca, ecc., in un file YAML.
Una volta addestrato il modello con le tue impostazioni e il percorso dei dati, monitora i progressi, testa e regola il modello e continua ad addestrare fino a quando non si raggiungono i risultati desiderati.
2. Personalizzazione di un modello YOLOv8 utilizzando la CLI
Per addestrare un modello utilizzando la CLI, esegui lo script seguente nella riga di comando:
| yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640 |
Il comando CLI carica il modello pre-addestrato `yolov8n.pt` e lo addestra ulteriormente sul set di dati definito nel file `coco8.yaml`.
Creazione di un modello personalizzato con YOLOv8
Ci sono fondamentalmente 2 modi per creare un modello personalizzato con il framework YOLO:
- Addestramento da zero: Questo approccio consente di utilizzare l’architettura YOLOv8 predefinita ma non utilizza pesi pre-addestrati. L’addestramento avverrà da zero.
- Architettura personalizzata: Si regola l’architettura YOLO di default e si addestra 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:
| from ultralytics import YOLO
# Carica un modello # Addestra il modello |
Nota che questa volta abbiamo caricato un file `.yaml` invece di un file `.pt`. Il file YAML contiene le informazioni sull’architettura del modello e non vengono caricati pesi. Il comando di addestramento inizierà l’addestramento di questo modello da zero.
Per addestrare un’architettura personalizzata, è necessario definire la struttura personalizzata in un file `.yaml` simile al `yolov8n.yaml` sopra. Quindi, si carica questo file e si addestra il modello utilizzando lo stesso codice di sopra.
Per saperne di più sulla rilevazione di oggetti utilizzando l’AI e per rimanere aggiornati con le ultime tendenze dell’AI, visita unite.ai.













