Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Come fare con YOLO

Abirami Vina

4 minuti di lettura

5 aprile 2024

Scoprite YOLO, un modello innovativo di rilevamento degli oggetti in grado di identificarli attraverso messaggi di testo. Scoprite come funziona YOLO e le sue applicazioni, e mettete mano a 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 appartenere al passato. L'AI Lab di Tencent ha rilasciato YOLO, un modello di rilevamento degli oggetti in tempo reale e a vocabolario aperto, il 31 gennaio 2024. YOLO è un modello a zero scatti, il che significa che è possibile eseguire inferenze di rilevamento di oggetti sulle immagini senza doverlo addestrare.

I modelli a zero scatti hanno il potenziale per cambiare il modo in cui affrontiamo le applicazioni di computer vision. In questo blog esploreremo il funzionamento e le potenzialità di YOLO e condivideremo un esempio pratico di codice per iniziare.

Uno sguardo al YOLO

È possibile passare al modello di YOLO un'immagine e un testo che descriva gli oggetti che si stanno cercando. Ad esempio, se si desidera trovare "una persona che indossa una maglietta rossa" all'interno di una foto, YOLO riceve questo input e si mette al lavoro.

L'architettura unica del modello combina tre elementi principali:

  • Un rilevatore basato sul sistema Ultralytics YOLOv8 per analizzare il contenuto visivo dell'immagine.
  • Un encoder di testo pre-addestrato da CLIP di OpenAI, specificamente progettato per comprendere il tuo prompt testuale. 
  • Una rete, la Vision-Language Path Aggregation Network (RepVL-PAN), che integra i dati dell'immagine elaborata con i dati testuali.

Il rilevatore YOLO analizza l'immagine in ingresso per identificare i 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 cross-modale a più livelli. Ciò consente a YOLO di detect e localizzare con precisione gli oggetti descritti nella richiesta all'interno dell'immagine.

Un esempio dei risultati di YOLO.

Vantaggi di scegliere YOLO

Uno dei maggiori vantaggi dell'utilizzo di YOLO è 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. Si possono evitare ore di raccolta dati, annotazioni, addestramento su GPU costose e così via.

Ecco alcuni altri vantaggi dell'utilizzo di YOLO:

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

Le applicazioni di YOLO

I modelli YOLO possono essere utilizzati per un'ampia gamma di applicazioni. Esploriamone alcune.

Controllo qualità nella produzione

I prodotti fabbricati su una catena di montaggio vengono controllati visivamente per individuare difetti prima di essere imballati. Il rilevamento dei difetti viene spesso eseguito manualmente, il che 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, sono state create speciali telecamere di visione artificiale e sistemi di IA per eseguire questi controlli. 

I modelli YOLO rappresentano un grande progresso 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 capacità di zero-shot. 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.

Un esempio di ispezione del tappo di una bottiglia.

Robotica

I modelli YOLO consentono 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, è in grado di riconoscere e identificare oggetti come sedie, tavoli o lampade, anche se non è stato addestrato specificamente su questi oggetti.

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

L'IA nell'industria automobilistica

L'industria automobilistica coinvolge molte parti in movimento e YOLO può essere utilizzato per diverse applicazioni automobilistiche. Ad esempio, per quanto riguarda la manutenzione delle auto, la capacità di YOLO di riconoscere un'ampia varietà di oggetti senza dover ricorrere all'etichettatura manuale o a un addestramento preliminare approfondito è estremamente utile. YOLO 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. Le capacità di YOLO di rilevare gli oggetti a scatto zero possono migliorare la capacità di un veicolo autonomo di detect e classify oggetti sulla strada, come pedoni, segnali stradali e altri veicoli, in tempo reale. In questo modo, può aiutare a detect 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 manutenzione delle scorte e dell'automazione dei processi. La capacità di Ultralytics YOLO di riconoscere un'ampia varietà di oggetti senza etichettatura manuale o un'estesa pre-formazione è estremamente utile per la gestione dell'inventario. 

Per esempio, nella gestione dell'inventario, YOLO è in grado di 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 in modo efficiente i livelli delle scorte e ottimizzare le operazioni della catena di approvvigionamento. 

Tutte le applicazioni sono uniche e dimostrano quanto YOLO possa essere utilizzato in modo esteso. Ora vediamo un esempio di codifica di YOLO.

Un'analisi dettagliata del codice

Come abbiamo già detto, YOLO può essere utilizzato per detect 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, ci concentriamo sulla parte in cui vengono individuate le parti dell'auto.

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

Per ulteriori istruzioni e best practice relative al processo di installazione, consultate la nostra guida all 'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLOv8, se incontrate qualche difficoltà, consultate la nostra guida sui problemi comuni per trovare soluzioni e suggerimenti.

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

La nostra immagine di input.

Quindi, importeremo il pacchetto necessario, inizializzeremo il nostro modello e imposteremo le classi che stiamo cercando nella nostra immagine di input. Qui, siamo interessati alle seguenti classi: auto, ruota, portiera dell'auto, specchietto retrovisore e targa.

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'unioneIoU) e la confidenza (conf) per eseguire un'inferenza sull'immagine. Infine, gli oggetti rilevati vengono salvati in un file chiamato "result.jpg".

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

La nostra immagine di output.

Se si preferisce vedere cosa può fare YOLO senza codificare, si può andare alla pagina dimostrativa di YOLO, caricare un'immagine di input e inserire le classi personalizzate. 

Leggete la nostra pagina dei documenti su YOLO per imparare a 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 portiere dell'auto non sono state rilevate?

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

Ecco alcune informazioni al riguardo:

  • YOLO potrebbe non aver bisogno di livelli di confidenza elevati per ottenere previsioni accurate, quindi la riduzione delle soglie di confidenza può migliorare i tassi di rilevamento.
  • Aggiungi classi a cui non sei interessato. Aiuterà a migliorare l'object detection primaria 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.
  • Menzionare i colori nelle lezioni per detect oggetti in base ai colori.
  • Descrivere le dimensioni degli oggetti nei messaggi può anche aiutare YOLO a identificare con maggiore precisione oggetti specifici.
  • 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 possono essere trasformati in uno strumento potente grazie alle loro capacità avanzate di rilevamento degli oggetti. Offrono grande efficienza, precisione e aiutano ad automatizzare diverse attività in varie applicazioni, come nell'esempio dell'identificazione di parti di automobili di cui abbiamo parlato.

Esplorate il nostro repository GitHub per saperne di più sui nostri contributi alla computer vision e all'IA. Se siete curiosi di sapere come l'IA sta ridisegnando settori come la tecnologia sanitaria , date un'occhiata alle nostre pagine dedicate alle soluzioni. Le possibilità offerte da innovazioni come YOLO sembrano essere infinite!

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis