Metti alla prova YOLO-World
Scopri YOLO-World, un innovativo modello di rilevamento degli oggetti in grado di identificarli tramite prompt testuali. Esplora il funzionamento e le applicazioni di YOLO-World e prova un rapido esempio di codice.

I progetti di visione artificiale spesso richiedono molto tempo per annotare i dati e addestrare modelli di rilevamento degli oggetti. Ma presto tutto questo potrebbe appartenere al passato. Il laboratorio di IA di Tencent ha rilasciato YOLO-World, un modello di rilevamento degli oggetti in tempo reale e a vocabolario aperto, 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 possono cambiare il modo in cui affrontiamo le applicazioni di visione artificiale. In questo blog esploreremo il funzionamento di YOLO-World e i suoi possibili utilizzi, condividendo anche un esempio pratico di codice per aiutarti a iniziare.
Uno sguardo a YOLO-World#
Puoi passare al modello YOLO-World un'immagine e un prompt testuale che descriva gli oggetti che stai cercando. Ad esempio, se vuoi trovare "una persona che indossa una maglietta rossa" all'interno di una foto, YOLO-World riceve questo input e si mette al lavoro.
L'architettura esclusiva del modello combina tre elementi principali:
- Un rilevatore basato sul modello di rilevamento degli oggetti Ultralytics YOLOv8, per analizzare il contenuto visivo dell'immagine.
- Un encoder testuale pre-addestrato da CLIP di OpenAI, progettato specificamente per comprendere il tuo prompt testuale.
- Una rete, la rete di aggregazione dei percorsi visione-linguaggio (RepVL-PAN), che integra i dati elaborati dell'immagine con i dati testuali.
Il rilevatore YOLO analizza l'immagine di input per identificare gli oggetti potenziali. L'encoder testuale trasforma la tua descrizione in un formato comprensibile al modello. Questi due flussi di informazioni vengono quindi uniti tramite RepVL-PAN usando una fusione multimodale incrociata multilivello. In questo modo YOLO-World rileva e localizza con precisione nell'immagine gli oggetti descritti nel tuo prompt.

Un esempio di risultati di YOLO-World.
Vantaggi della scelta di YOLO-World#
Uno dei principali vantaggi dell'utilizzo di YOLO-World è che non devi addestrare il modello per una classe specifica. Ha già appreso da coppie di immagini e testi, quindi sa come trovare gli oggetti in base alle descrizioni. Puoi evitare ore di raccolta e annotazione dei dati, di addestramento su GPU costose e così via.
Ecco altri vantaggi dell'utilizzo di YOLO-World:
- Prestazioni in tempo reale - YOLO-World supporta 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 delle istanze - YOLO-World può delineare e separare con precisione gli oggetti nelle immagini, anche se tali oggetti non sono stati insegnati esplicitamente durante l'addestramento.
- Efficienza - YOLO-World combina un'elevata accuratezza con l'efficienza computazionale, risultando pratico per le applicazioni del mondo reale. La sua architettura ottimizzata rende possibile un rapido rilevamento degli oggetti senza richiedere una potenza di elaborazione eccessiva.
Le applicazioni di YOLO-World#
I modelli YOLO-World possono essere utilizzati per un'ampia varietà di applicazioni. Esploriamone alcune.
Controllo qualità nella produzione#
I prodotti fabbricati su una linea di assemblaggio vengono controllati visivamente per individuare eventuali difetti prima di essere imballati. Il rilevamento dei difetti viene spesso eseguito manualmente, richiede tempo e può portare a errori. Questi errori possono causare problemi come costi elevati e la necessità di riparazioni o richiami. Per aiutare in questo compito, sono state create speciali telecamere per la visione artificiale e sistemi di IA in grado di eseguire questi controlli.
I modelli YOLO-World rappresentano un grande progresso in questo ambito. Grazie alle loro capacità zero-shot, possono trovare difetti nei prodotti anche quando non sono stati addestrati per quello specifico problema. Ad esempio, una fabbrica che produce bottiglie d'acqua può distinguere facilmente, usando YOLO-World, tra una bottiglia sigillata correttamente con un tappo e una bottiglia senza tappo o con un tappo difettoso.

Un esempio di ispezione dei tappi delle bottiglie.
Robotica#
I modelli YOLO-World permettono ai robot di interagire con ambienti sconosciuti. Anche senza essere addestrati su oggetti specifici presenti in una stanza, possono comunque identificare quali oggetti sono presenti. Supponiamo, ad esempio, che un robot entri in una stanza in cui non è mai stato prima. Con un modello YOLO-World, può comunque riconoscere e identificare oggetti come sedie, tavoli o lampade, anche se non è stato addestrato specificamente su questi elementi.
Oltre al rilevamento degli oggetti, YOLO-World può anche determinarne le condizioni, grazie alla sua funzionalità «prompt-then-detect». Per esempio, nella robotica agricola, può essere utilizzato per distinguere i frutti maturi da quelli non maturi programmando il robot affinché li rilevi.
L'IA nell'industria automobilistica#
L'industria automobilistica coinvolge molte parti in movimento e YOLO-World può essere utilizzato per diverse applicazioni automobilistiche. Ad esempio, nella manutenzione delle auto, la capacità di YOLO-World di riconoscere un'ampia varietà di oggetti senza etichettatura manuale o un pre-addestramento esteso è estremamente utile. YOLO-World può essere utilizzato per identificare le parti dell'auto che devono essere sostituite. Potrebbe persino automatizzare attività come i controlli qualità, individuando difetti o componenti 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, per un viaggio più sicuro.

Un esempio di rilevamento degli oggetti su una strada.
Gestione dell'inventario nei punti vendita#
L'identificazione degli oggetti sugli scaffali dei punti vendita è una parte importante del monitoraggio dell'inventario, del mantenimento delle scorte e dell'automazione dei processi. La capacità di Ultralytics YOLO-World di riconoscere un'ampia varietà di oggetti senza etichettatura manuale o un pre-addestramento esteso è estremamente utile per la gestione dell'inventario.
Ad esempio, nella gestione dell'inventario, YOLO-World può individuare e categorizzare rapidamente gli articoli su uno scaffale, come diverse marche di bevande energetiche. I punti vendita possono mantenere un inventario accurato, gestire efficacemente i livelli delle scorte e ottimizzare le operazioni della catena di approvvigionamento.
Tutte le applicazioni sono uniche e mostrano quanto ampiamente possa essere utilizzato YOLO-World. Ora mettiamo alla prova YOLO-World e diamo un'occhiata a un esempio di codice.
Una panoramica del codice#
Come abbiamo accennato prima, YOLO-World può essere utilizzato per rilevare diverse parti di un'auto a fini di manutenzione. Un'applicazione di visione artificiale che rileva eventuali riparazioni necessarie dovrebbe scattare una foto dell'auto, identificare le parti dell'auto, esaminare ogni parte per individuare eventuali danni e consigliare le riparazioni. Ogni parte di questo sistema utilizzerebbe tecniche e approcci di IA diversi. Ai fini di questa panoramica del codice, concentriamoci sulla fase in cui vengono rilevate le parti dell'auto.
Con YOLO-World puoi identificare diverse parti di un'auto in un'immagine in meno di 5 minuti. Puoi anche estendere questo codice per provare diverse applicazioni usando YOLO-World. Per iniziare, dovremo installare il pacchetto Ultralytics con pip, come mostrato di seguito.
Per ulteriori istruzioni e best practice relative al processo di installazione, consulta la nostra guida Installazione di Ultralytics. Se durante l'installazione dei pacchetti richiesti per YOLOv8 riscontri difficoltà, consulta la nostra guida ai Problemi comuni per trovare soluzioni e suggerimenti.
Dopo aver installato il pacchetto necessario, possiamo scaricare un'immagine da Internet su cui eseguire le nostre inferenze. Useremo l'immagine seguente.

La nostra immagine di input.
Poi importeremo il pacchetto necessario, inizializzeremo il modello e imposteremo le classi che stiamo cercando nell'immagine di input. In questo caso, ci interessano le seguenti classi: auto, ruota, portiera dell'auto, specchietto dell'auto e targa.
Useremo quindi il metodo predict, fornendo il percorso dell'immagine insieme ai parametri per il numero massimo di rilevamenti e alle soglie per l'intersezione sull'unione (IoU) e la confidenza (conf), per eseguire un'inferenza sull'immagine. Infine, gli oggetti rilevati vengono salvati in un file denominato '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 Demo di YOLO-World, caricare un'immagine di input e inserire le classi personalizzate.
Leggi la nostra pagina della documentazione su YOLO-World per scoprire come salvare il modello con le classi personalizzate, così da poterlo usare direttamente in seguito senza inserire ripetutamente le classi personalizzate.
Hai notato che le portiere dell'auto non sono state rilevate?#
Se guardi di nuovo l'immagine di output, noterai che la classe personalizzata “portiera dell'auto” non è stata rilevata. Nonostante i suoi grandi risultati, YOLO-World presenta alcune limitazioni. Per contrastare queste limitazioni e utilizzare efficacemente il modello YOLO-World, è importante usare i tipi corretti di prompt testuali.
Ecco alcune indicazioni al riguardo:
- YOLO-World potrebbe non aver bisogno di livelli di confidenza elevati per produrre previsioni accurate, quindi ridurre le soglie di confidenza può migliorare i tassi di rilevamento.
- Aggiungi classi che non ti interessano. Ciò contribuirà a migliorare il rilevamento degli oggetti principale riducendo i falsi positivi relativi agli oggetti secondari.
- Rilevare prima gli oggetti più grandi, prima di concentrarsi sui dettagli più piccoli, può migliorare l'accuratezza del rilevamento.
- Indica i colori nelle tue classi per rilevare gli oggetti in base agli indizi cromatici.
- Descrivere le dimensioni degli oggetti nei prompt può inoltre aiutare YOLO-World a identificare più accuratamente oggetti specifici.
- I metodi di post-elaborazione, come il filtraggio delle previsioni in base alle dimensioni o la regolazione dei livelli di confidenza per classe, possono migliorare ulteriormente i risultati del rilevamento degli oggetti.
I limiti sono infiniti#
Nel complesso, i modelli YOLO-World possono diventare uno strumento potente grazie alle loro avanzate capacità di rilevamento degli oggetti. Offrono grande efficienza e accuratezza e aiutano ad automatizzare diverse attività in varie applicazioni, come nell'esempio di identificazione delle parti dell'auto che abbiamo analizzato concretamente.
Sentiti libero di esplorare il nostro repository GitHub per saperne di più sui nostri contributi alla visione artificiale e all'IA. Se sei curioso di sapere come l'IA stia trasformando settori come la tecnologia sanitaria, consulta le nostre pagine dedicate alle soluzioni. Le possibilità offerte da innovazioni come YOLO-World sembrano infinite!









