Provare YOLO-World in pratica
Scopri YOLO-World, un modello di rilevamento di oggetti in tempo reale con vocabolario aperto che individua oggetti a partire da prompt testuali, con esempi di applicazioni e un rapido esempio di codice.
Abirami Vina8 min di lettura
I progetti di visione artificiale spesso richiedono molto tempo per annotare i dati e addestrare modelli di rilevamento di oggetti. Ma le cose potrebbero cambiare presto. Il laboratorio di IA di Tencent ha rilasciato YOLO-World, un modello open-vocabulary per il rilevamento di oggetti in tempo reale, il 31 gennaio 2024. YOLO-World è un modello zero-shot, il che significa che puoi eseguire inferenze di rilevamento degli oggetti sulle immagini senza doverlo addestrare.
I modelli zero-shot hanno il potenziale per cambiare il nostro approccio alle applicazioni di visione artificiale. In questo articolo vedremo come funziona YOLO-World e quali sono i suoi potenziali usi, e condivideremo un esempio pratico di codice per aiutarti a iniziare.
Uno sguardo a YOLO-World#
Puoi fornire al modello YOLO-World un'immagine e un prompt testuale che descriva gli oggetti che cerchi. Per esempio, se vuoi trovare "una persona che indossa una maglietta rossa" in una foto, YOLO-World riceve questo input e avvia l'elaborazione.
L'architettura esclusiva del modello combina tre elementi principali:
- Un rilevatore basato sul modello di rilevamento degli oggetti Ultralytics YOLOv8, che analizza il contenuto visivo dell'immagine.
- Un encoder di testo preaddestrato da CLIP di OpenAI, progettato specificamente per comprendere il prompt testuale.
- Una rete, la rete di aggregazione dei percorsi visione-linguaggio riparametrizzabile (RepVL-PAN), che integra i dati dell'immagine elaborati con i dati testuali.
Il rilevatore YOLO analizza l'immagine di input per individuare gli oggetti potenziali. Il codificatore di testo trasforma la tua descrizione in un formato comprensibile al modello. I due flussi di informazioni vengono quindi uniti tramite RepVL-PAN con una fusione multimodale multilivello. In questo modo YOLO-World può rilevare e localizzare con precisione nell'immagine gli oggetti descritti nel tuo prompt.

Un esempio dei risultati di YOLO-World.
Vantaggi della scelta di YOLO-World#
Uno dei principali vantaggi di YOLO-World è che non devi addestrare il modello per una classe specifica. Il modello ha già appreso da coppie di immagini e testi, quindi sa trovare gli oggetti in base alle descrizioni. Puoi evitare ore di raccolta e annotazione dei dati, addestramento su GPU costose e altre attività simili.
Ecco altri vantaggi di YOLO-World:
- Prestazioni in tempo reale - YOLO-World offre prestazioni in tempo reale, proprio come l'architettura YOLO originale. È ideale per le applicazioni che richiedono il rilevamento immediato degli oggetti, come i veicoli autonomi e i sistemi di sorveglianza.
- Segmentazione di istanze - La versione originale di YOLO-World include varianti per la segmentazione; nel pacchetto Ultralytics, YOLO-World esegue il rilevamento, mentre YOLOE aggiunge la segmentazione di istanze open-vocabulary.
- Efficienza - YOLO-World combina un'elevata precisione con l'efficienza computazionale, rendendolo pratico per le applicazioni reali. La sua architettura snella consente di rilevare rapidamente gli oggetti senza richiedere una potenza di elaborazione eccessiva.
Le applicazioni di YOLO-World#
I modelli YOLO-World possono essere utilizzati in un'ampia varietà di applicazioni. Vediamone alcune.
Controllo qualità nella produzione#
I prodotti realizzati su una linea di assemblaggio vengono controllati visivamente per rilevare difetti prima del confezionamento. Spesso il rilevamento dei difetti viene eseguito manualmente, richiede tempo e può causare errori. Questi errori possono provocare problemi come costi elevati e la necessità di riparazioni o richiami. Per affrontare questa sfida, sono state sviluppate telecamere speciali per la visione artificiale e sistemi di IA che eseguono questi controlli.
I modelli YOLO-World rappresentano un grande progresso in questo ambito. Grazie alle loro capacità zero-shot, possono individuare difetti nei prodotti anche senza essere stati addestrati per quel problema specifico. Per esempio, una fabbrica che produce bottiglie d'acqua può utilizzare YOLO-World per distinguere una bottiglia chiusa correttamente con il tappo da una bottiglia con il tappo mancante o difettoso.

Un esempio di ispezione dei tappi delle bottiglie.
Robotica#
I modelli YOLO-World consentono ai robot di interagire con ambienti sconosciuti. Anche senza essere stati addestrati sugli oggetti specifici che potrebbero trovarsi in una stanza, riescono comunque a identificare gli oggetti presenti. Immagina, per esempio, che un robot entri per la prima volta in una stanza. Con un modello YOLO-World, può comunque riconoscere e identificare oggetti come sedie, tavoli o lampade, anche se non è stato addestrato specificamente su di essi.
Oltre al rilevamento degli oggetti, YOLO-World può anche determinarne le condizioni grazie alla funzionalità «prompt-then-detect». Per esempio, nella robotica agricola, può essere usato per distinguere i frutti maturi da quelli acerbi, programmando il robot affinché li rilevi.
IA nel settore automobilistico#
L'industria automobilistica comprende molti componenti in movimento e YOLO-World può essere utilizzato per diverse applicazioni automobilistiche. Per esempio, nella manutenzione delle auto, la capacità di YOLO-World di riconoscere un'ampia varietà di oggetti senza etichettatura manuale o preaddestramento esteso è molto utile. YOLO-World può identificare i componenti dell'auto da sostituire. Potrebbe persino automatizzare attività come i controlli di qualità, individuando difetti o parti mancanti nelle auto nuove.
Un'altra applicazione è il rilevamento zero-shot degli oggetti nelle auto a guida autonoma. Le capacità di rilevamento zero-shot di YOLO-World possono migliorare la capacità di un veicolo autonomo di rilevare e classificare in tempo reale gli oggetti sulla strada, come pedoni, segnali stradali e altri veicoli. In questo modo può aiutare a rilevare gli ostacoli e prevenire gli incidenti, rendendo il viaggio più sicuro.

Un esempio di rilevamento degli oggetti su una strada.
Gestione dell'inventario per i negozi al dettaglio#
Identificare gli oggetti sugli scaffali dei negozi è importante per monitorare l'inventario, mantenere le scorte e automatizzare i processi. Il rilevamento open-vocabulary di Ultralytics YOLO-World è utile anche per la gestione dell'inventario.
Per esempio, nella gestione dell'inventario, YOLO-World può individuare e classificare rapidamente i prodotti sugli scaffali, come diverse marche di bevande energetiche. I negozi al dettaglio possono mantenere accurato l'inventario, gestire efficacemente i livelli delle scorte e rendere più fluide le operazioni della catena di approvvigionamento.
Tutte queste applicazioni sono uniche e dimostrano quanto sia ampia la gamma di utilizzi di YOLO-World. Ora passiamo alla pratica con YOLO-World e vediamo un esempio di codice.
Una guida al codice#
Come abbiamo detto, YOLO-World può essere usato per rilevare diversi componenti di un'auto a fini di manutenzione. Un'applicazione di visione artificiale che rileva gli interventi di riparazione necessari richiederebbe di scattare una foto dell'auto, identificarne i componenti, esaminare ciascun componente per individuare eventuali danni e consigliare le riparazioni. Ogni parte del sistema utilizzerebbe tecniche e approcci di IA diversi. In questa guida al codice, ci concentreremo sul rilevamento dei componenti dell'auto.
Con YOLO-World puoi identificare i diversi componenti di un'auto in un'immagine in meno di 5 minuti. Puoi anche estendere questo codice per provare diverse applicazioni con YOLO-World! Per iniziare, dovremo installare con pip il pacchetto Ultralytics, come mostrato di seguito.
pip install ultralyticsPer ulteriori istruzioni e best practice sul processo di installazione, consulta la guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti richiesti per YOLOv8 riscontri difficoltà, consulta la guida ai problemi comuni per trovare soluzioni e suggerimenti.
Dopo aver installato il pacchetto necessario, possiamo scaricare un'immagine da Internet ed eseguire le inferenze su di essa. Useremo l'immagine qui sotto.

La nostra immagine di input.
Poi importeremo il pacchetto necessario, inizializzeremo il modello e imposteremo le classi che cerchiamo nell'immagine di input. In questo caso, ci interessano le seguenti classi: auto, ruota, portiera, specchietto retrovisore e targa.
Useremo quindi il metodo predict, fornendo il percorso dell'immagine insieme ai parametri per il numero massimo di rilevamenti e alle soglie di intersection over union (IoU) e di confidenza (conf) per eseguire l'inferenza sull'immagine. Infine, gli oggetti rilevati vengono salvati in un file denominato result.jpg.
from ultralytics import YOLOWorld
# Inizializza un modello YOLO-World
model = YOLOWorld("yolov8s-worldv2.pt")
# Definisci le classi personalizzate da rilevare
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])
# Esegui l'inferenza con un numero massimo di rilevamenti e soglie IoU e di confidenza
results = model.predict("path/to/image.jpg", max_det=100, iou=0.5, conf=0.25)
# Salva il risultato annotato
results[0].save("result.jpg")L'immagine di output seguente verrà salvata nei tuoi file.

La nostra immagine di output.
Se preferisci vedere cosa può fare YOLO-World senza scrivere codice, puoi visitare la pagina della demo di YOLO-World, caricare un'immagine di input e inserire le classi personalizzate.
Leggi la pagina della documentazione su YOLO-World per scoprire come salvare il modello con le classi personalizzate, così da poterlo riutilizzare direttamente in seguito senza dover inserire di nuovo le classi personalizzate.
Hai notato che le portiere dell'auto non sono state rilevate?#
Se osservi di nuovo l'immagine di output, noterai che la classe personalizzata «portiera» non è stata rilevata. Nonostante gli straordinari risultati ottenuti, YOLO-World presenta alcune limitazioni. Per superare queste limitazioni e usare efficacemente il modello YOLO-World, è importante scegliere i prompt testuali corretti.
Ecco alcuni suggerimenti:
- Per ottenere previsioni accurate, YOLO-World potrebbe non aver bisogno di livelli di confidenza elevati; quindi, abbassare le soglie di confidenza può migliorare il tasso di rilevamento.
- Aggiungi le classi che non ti interessano. Questo contribuirà a migliorare il rilevamento degli oggetti principali riducendo i falsi positivi per gli oggetti secondari.
- Rilevare prima gli oggetti più grandi e concentrarsi poi sui dettagli più piccoli può migliorare la precisione del rilevamento.
- Specifica i colori nelle classi per rilevare gli oggetti in base agli indizi cromatici.
- Descrivere le dimensioni degli oggetti nei prompt può aiutare YOLO-World a identificare con maggiore precisione oggetti specifici.
- I metodi di post-elaborazione, come filtrare le previsioni in base alle dimensioni o regolare i livelli di confidenza per ciascuna classe, possono migliorare ulteriormente i risultati del rilevamento degli oggetti.
Le possibilità sono infinite#
Nel complesso, le capacità avanzate di rilevamento degli oggetti rendono i modelli YOLO-World uno strumento potente. Offrono grande efficienza e precisione e aiutano ad automatizzare diverse attività in varie applicazioni, come abbiamo visto nell'esempio pratico dell'identificazione dei componenti dell'auto.
Sentiti libero di esplorare il nostro repository GitHub per saperne di più sui nostri contributi alla visione artificiale e all'AI. Se ti incuriosisce il modo in cui l'AI sta trasformando settori come la tecnologia sanitaria, scopri le nostre pagine dedicate alle soluzioni. YOLO-World apre molte nuove possibilità per la vision AI.
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










