Controllo verde
Link copiato negli appunti

Fare pratica con il sito YOLO-World

Scopri YOLO-World, un innovativo modello di rilevamento degli oggetti in grado di identificarli attraverso messaggi di testo. Scopri come funziona YOLO-World e le sue applicazioni e mettiti alla prova con un rapido esempio di codice.

I progetti di computer vision spesso richiedono molto tempo per l'annotazione dei dati e l'addestramento dei modelli di rilevamento degli oggetti. Ma questo potrebbe presto diventare un ricordo del passato. L'AI Lab 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 a zero scatti, il che significa che puoi eseguire inferenze di rilevamento di oggetti sulle immagini senza doverlo addestrare.

I modelli a scatto zero hanno il potenziale per cambiare il modo in cui affrontiamo le applicazioni di computer vision. In questo blog esploreremo il funzionamento di YOLO-World e i suoi potenziali utilizzi e condivideremo un esempio pratico di codice per iniziare.

Uno sguardo al mondo di YOLO

Puoi passare al modello YOLO-World un'immagine e un testo che descriva gli oggetti che stai cercando. Ad esempio, se sei interessato a trovare "una persona che indossa una camicia rossa" all'interno di una foto, YOLO-World recepisce questo input e si mette al lavoro.

L'architettura unica del modello combina tre elementi principali:

  • Un rilevatore basato sul modello di Ultralytics YOLOv8 modello di rilevamento degli oggetti, per analizzare il contenuto visivo dell'immagine
  • Un codificatore di testo pre-addestrato da CLIP di OpenAI, specificamente progettato per comprendere le richieste di testo. 
  • Una rete, la Vision-Language Path Aggregation Network (RepVL-PAN), che integra i dati di immagine elaborati con i dati di testo.

Il rilevatore YOLO scansiona l'immagine in ingresso per identificare potenziali oggetti. Il codificatore di testo trasforma la descrizione in un formato comprensibile al modello. Questi due flussi di informazioni vengono poi uniti attraverso il RepVL-PAN utilizzando una fusione multi-level cross-modality. Questo permette a YOLO-World di individuare e localizzare con precisione gli oggetti descritti nella tua richiesta all'interno dell'immagine.

Un esempio dei risultati di YOLO-World.

Vantaggi della scelta di YOLO-World

Uno dei maggiori vantaggi dell'utilizzo di YOLO-World è che non è necessario addestrare il modello per una classe specifica. Il modello ha già imparato da coppie di immagini e testi, quindi sa come trovare gli oggetti in base alle descrizioni. Puoi evitare ore di raccolta dati, annotazioni, addestramento su GPU costose e così via.

Ecco altri vantaggi dell'utilizzo di YOLO-World:

  • Prestazioni in tempo reale - YOLO-World supporta le prestazioni in tempo reale proprio come l'architettura originale di YOLO . È 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 è in grado di delineare e separare ordinatamente gli oggetti nelle immagini, anche se questi non sono stati specificamente indicati durante l'addestramento.
  • Efficienza - YOLO-World combina un'elevata precisione con l'efficienza computazionale, rendendolo pratico per le applicazioni del mondo reale. La sua architettura snella rende possibile il rilevamento rapido degli oggetti senza richiedere eccessiva potenza di elaborazione.

Le applicazioni di YOLO-World

YOLO-I modelli del mondo possono essere utilizzati per un'ampia varietà di applicazioni. Esploriamone alcune.

Controllo qualità nella produzione

I prodotti fabbricati in una catena di montaggio vengono controllati visivamente per individuare eventuali difetti prima di essere imballati. Il rilevamento dei difetti viene spesso effettuato a mano, il che richiede tempo e può portare a degli errori. Questi errori possono causare problemi come costi elevati e la necessità di riparazioni o richiami. Per risolvere questo problema, sono state create speciali telecamere di visione artificiale e sistemi di intelligenza artificiale per eseguire questi controlli. 

YOLO-I modelli del mondo sono un grande passo avanti in questo campo. Sono in grado di individuare i difetti dei prodotti anche quando non sono stati addestrati per quel problema specifico, grazie alle loro abilità a colpo zero. Ad esempio, una fabbrica che produce bottiglie d'acqua può facilmente identificare tra una bottiglia sigillata correttamente con un tappo e una bottiglia in cui il tappo è stato omesso o è difettoso utilizzando YOLO-World.

Un esempio di ispezione dei tappi di bottiglia.

Robotica

YOLO-I modelli del mondo permettono ai robot di interagire con ambienti non familiari. Senza essere addestrati su oggetti specifici che possono trovarsi in una stanza, possono comunque identificare gli oggetti presenti. Supponiamo quindi che un robot entri in una stanza in cui non è mai stato prima. Con un modello YOLO-World, è in grado di riconoscere e identificare oggetti come sedie, tavoli o lampade, anche se non è stato addestrato in modo specifico su questi oggetti.

Oltre a rilevare gli oggetti, YOLO-World può anche determinarne le condizioni, grazie alla funzione "prompt-then-detect". Ad esempio, nella robotica agricola , può essere utilizzato per identificare i frutti maturi rispetto a quelli non maturi, programmando il robot per rilevarli.

L'intelligenza artificiale nell'industria automobilistica

L'industria automobilistica coinvolge molte parti in movimento e YOLO-World può essere utilizzato per diverse applicazioni automobilistiche. Ad esempio, per quanto riguarda la manutenzione delle auto, la capacità di YOLO-World di riconoscere un'ampia varietà di oggetti senza dover ricorrere all'etichettatura manuale o a un addestramento preliminare è estremamente utile. YOLO-World può essere utilizzato per identificare le parti dell'auto che devono essere sostituite. Potrebbe anche automatizzare attività come i controlli di qualità, individuando difetti o pezzi mancanti nelle auto nuove.

Un'altra applicazione è il rilevamento di oggetti a scatto zero nelle auto a guida autonoma. YOLO-Le capacità di rilevamento a scatto zero di -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 a prevenire gli incidenti per un viaggio più sicuro. 

Un esempio di rilevamento di oggetti su una strada.

Gestione dell'inventario per i negozi al dettaglio

L'identificazione degli oggetti sugli scaffali dei negozi al dettaglio è una parte importante della tracciabilità dell'inventario, della gestione delle scorte e dell'automazione dei processi. Ultralytics YOLO-La capacità di -World di riconoscere un'ampia varietà di oggetti senza dover ricorrere all'etichettatura manuale o a un addestramento preliminare è estremamente utile per la gestione dell'inventario. 

Per esempio, nella gestione dell'inventario, YOLO-World può individuare e classificare rapidamente gli articoli su uno scaffale, come le diverse marche di bevande energetiche. I negozi al dettaglio possono tenere un inventario accurato, gestire i livelli delle scorte in modo efficiente e ottimizzare le operazioni della catena di approvvigionamento. 

Tutte le applicazioni sono uniche e dimostrano quanto YOLO-World possa essere utilizzato in modo esteso. Ora passiamo all'uso pratico di YOLO-World e diamo un'occhiata a un esempio di codifica.

Una passeggiata nel codice

Come abbiamo già detto, YOLO-World può essere utilizzato per individuare le diverse parti di un'auto da sottoporre a manutenzione. Un'applicazione di computer vision che rilevi le riparazioni necessarie comporterebbe lo scatto di una foto dell'auto, l'identificazione delle parti dell'auto, l'esame di ogni parte dell'auto per verificare la presenza di danni e la raccomandazione di riparazioni. Ogni parte di questo sistema utilizzerebbe diverse tecniche e approcci di intelligenza artificiale. Ai fini di questa guida al codice, concentriamoci sulla parte in cui vengono individuate le parti dell'auto.

Con YOLO-World puoi identificare le diverse parti di un'auto in un'immagine in meno di 5 minuti. Puoi estendere questo codice per provare diverse applicazioni utilizzando anche YOLO-World! Per iniziare, dobbiamo installare con pip il pacchettoUltralytics come mostrato di seguito.

# Install ultralytics package
pip install ultralytics

Per ulteriori istruzioni e buone pratiche relative al processo di installazione, consulta la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLOv8, se dovessi incontrare qualche difficoltà, consulta la nostra guida sui problemi comuni per trovare soluzioni e suggerimenti.

Una volta installato il pacchetto necessario, possiamo scaricare da Internet un'immagine su cui eseguire le nostre inferenze. Utilizzeremo l'immagine qui sotto.

La nostra immagine di input.

Quindi, importeremo il pacchetto necessario, inizializzeremo il nostro modello e imposteremo le classi che cerchiamo nell'immagine di input. In questo caso, siamo interessati alle seguenti classi: auto, ruota, portiera, specchietto e targa.

# Import YOLOWorld class from ultralytics module
from ultralytics import YOLOWorld

# Initialize the model with pre-trained weights
model = YOLOWorld('yolov8s-world')

# Set the classes you'd like to find in your image
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])

Utilizzeremo quindi il metodo predict, fornendo il percorso dell'immagine insieme ai parametri per il numero massimo di rilevamenti e le 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 chiamato "result.jpg".

# Run object detection for your custom classes on your image
results = model.predict('path_to_your_image.jpg', max_det=100, iou=0.01, conf=0.01)

# Save the results
results[0].save(filename='result.jpg')

La seguente immagine di output verrà salvata nei tuoi file.

La nostra immagine di output.

Se preferisci vedere cosa è in grado di fare YOLO-World senza dover ricorrere al codice, puoi andare alla pagina demo di YOLO-World, caricare un'immagine di input e inserire le classi personalizzate. 

Leggi la nostra pagina di documentazione su YOLO -World per sapere come salvare il modello con le classi personalizzate in modo da poterlo utilizzare direttamente in seguito senza dover inserire ripetutamente le classi personalizzate.

Hai notato che le porte dell'auto non sono state rilevate?

Se guardi di nuovo l'immagine di output, noterai che la classe personalizzata "porta dell'auto" non è stata rilevata. Nonostante i suoi grandi risultati, YOLO-World ha alcune limitazioni. Per combattere queste limitazioni e utilizzare il modello YOLO-World in modo efficace, è importante utilizzare i tipi di prompt testuali corretti. 

Ecco alcune informazioni al riguardo:

  • YOLO-Il mondo potrebbe non aver bisogno di livelli di confidenza elevati per ottenere previsioni accurate, quindi ridurre le soglie di confidenza può migliorare i tassi di rilevamento.
  • Aggiungi le classi che non ti interessano. Questo aiuterà a migliorare il rilevamento degli oggetti primari riducendo i falsi positivi per gli oggetti secondari.
  • Rilevare prima gli oggetti più grandi prima di concentrarsi sui dettagli più piccoli può migliorare l'accuratezza del rilevamento.
  • Cita i colori nelle tue lezioni per individuare gli oggetti in base ai colori.
  • Descrivere le dimensioni degli oggetti nei messaggi può anche aiutare YOLO-World a identificare con maggiore precisione 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 di YOLO-World possono essere trasformati in un potente strumento grazie alle loro avanzate capacità di rilevamento degli oggetti. Offrono grande efficienza, accuratezza e aiutano ad automatizzare diverse attività in varie applicazioni, come nell'esempio dell'identificazione di parti di automobili di cui abbiamo parlato.

Esplora il nostro repository GitHub per saperne di più sui nostri contributi alla computer vision e all'IA. Se sei curioso di sapere come l'IA sta rimodellando settori come quello della tecnologia sanitaria , dai un'occhiata alle nostre pagine dedicate alle soluzioni. Le possibilità offerte da innovazioni come YOLO-World sembrano essere infinite!

Logo di FacebookLogo di TwitterLogo di LinkedInSimbolo di copia-link

Leggi tutto in questa categoria

Costruiamo insieme il futuro
di AI!

Inizia il tuo viaggio nel futuro dell'apprendimento automatico