IBM CLOUD: Come utilizzare il servizio di Watson Visual Recognition

Questo articolo è il quarto di una serie scritta in collaborazione con Raoul Alfredo Rocher e Massimo Loaldi. Come IT Solution Architect in ambito Cloud e Intelligenza artificiale vogliamo proporvi alcune brevi review per facilitare l'uso e l'adozione di tecnologie emergenti e innovative.

IBM Cloud è la piattaforma cloud di IBM che aiuta gli sviluppatori a realizzare e ad eseguire applicazioni e servizi innovativi. Oggi approfondiremo l’area tecnologica della Visual Recognition (riconoscimento di immagini), nello specifico vedremo come utilizzare e muovere i primi passi con il servizio di intelligenza artificiale Watson Visual Recognition sulla piattaforma cloud di IBM. 

Come spiegato nell’articolo relativo ai moduli di intelligenza artificiale di IBM, Watson non è altro che un servizio di intelligenza artificiale, suddiviso in moduli. Ogni servizio di Watson è responsabile di un dominio specifico di intelligenza artificiale. Essi sono moduli componibili ed integrabili tra loro all’interno di soluzioni esistenti. 

Requisito necessario per il proseguo della lettura e per la creazione delle risorse è essere in possesso dell’account IBM Cloud. Se non si disponesse dell’account seguire il tutorial per la creazione di un free account.

Dopo aver eseguito il login alla piattaforma IBM Cloud tramite il link, recarsi nel catalogo nella sezione AI, successivamente cliccare sul quadrato Visual Recognition, esattamente come indicato nell’immagine sottostante.

No alt text provided for this image

Per accedere all’interfaccia grafica di Watson Visual Recognition è necessario recarsi nella pagina del servizio direttamente dall’elenco risorse e cliccare sul bottone blu come da immagine sottostante.

No alt text provided for this image

Il servizio di Watson studio verrà spiegato nei prossimi articoli, per il momento basterà sapere che Watson studio è il mezzo più semplice con la quale interagire per addestrare il servizio Watson Visual Recognition. Se il modulo Watson Studio non è presente, allora è necessario crearlo attraverso una procedura guidata molto semplice. L’interfaccia grafica è il metodo più semplice per eseguire il training dell’istanza di Visual Recognition, è comunque possibile addestrare il servizio anche tramite chiamate curl oppure tramite chiamate API REST nei più comuni linguaggi di programmazione come Java, Python, ecc... 

In questo tutorial seguiremo passo passo l’addestramento tramite Watson studio tramite user-interface. La prima schermata che vi si presenta davanti è la seguente:

No alt text provided for this image

Watson Visual Recognition permette di eseguire due tipi di operazioni: 

Classificazione di immagini oppure Object detection.

Il funzionamento della classificazione delle immagini viene eseguito con l’aiuto di classificatori. Essi possono essere creati da zero e addestrati con immagini proprie, oppure si possono scegliere dei classificatori pre-trainati attingendo dalla base dati di IBM. In quest’ultimo caso è possibile scegliere tra classificatore generale, classificatore di cibo e classificatore di immagini con contenuti espliciti. (Si tenga presente che il contenuto dei servizi è in costante mutamento, pertanto potrebbero esserci delle variazioni).

Per creare un nuovo classificatore cliccare su create model, assegnargli un nome. In ogni classificatore posso definire una o più classi(categorie a cui appartiene una certa immagine, es. Frutta, macchina ecc). Ogni classe dovrà necessariamente contenere almeno 10 immagini di esempio. Nell’esercizio rappresentato nell’immagine sottostante sono state create 3 classi: Umido, Plastica, Vetro. La classe negativa invece è una classe creata automaticamente dal sistema, all’interno di quest’ultima dovranno ricadere tutte le immagini che non appartengono alle altre classi.

No alt text provided for this image

Per poter addestrare il modello inseriamo le 10 immagini per ogni classe semplicemente cliccando sulla classe e successivamente trascinando nell’area verde (vedi immagine di seguito) dal proprio computer un file zip contenente le immagini ( in alternativa si possono inserire tutte le immagini e successivamente cliccare sul pulsante aggiungi al modello.)

No alt text provided for this image

Una volta caricate tutte le immagini per tutte e tre le classi del classificatore, è necessario ritornare alla schermata principale di Watson studio e cliccare Train Model per far partire il training della rete neurale (Questo processo impiega diversi minuti). Per testare il classificatore recarsi semplicemente nella sezione di test, successivamente eseguire il Drag and Drop delle immagini di test dal proprio pc e aspettare qualche istante. Ad oggi risultano gratuite le prime 1000 classificazioni/test (Si tenga presente che il contenuto dei servizi è in costante mutamento, pertanto potrebbero esserci delle variazioni), successivamente sarà necessario sottoscrivere un piano per il servizio. In base all’accuratezza del modello è possibile rilasciarlo oppure riaddestrarlo. In quest’ultimo caso è possibile aggiungere/modificare/eliminare le immagini nelle classi e re-trainare il modello. 

Dopo che il modello ha raggiunto un livello di accuratezza sufficiente e di conseguenza è in grado di classificare correttamente le immagini custom, è possibile sfruttare snippet di codici generati automaticamente da Watson per incapsularli all’interno delle proprie applicazioni in modo tale che da effettuare delle chiamate API. Questo avviene in modo completamente sicuro all’interno del cloud IBM dove al nostro modello è associata quindi una API key con le credenziali del nostro account. Gli snippet di codice vengono generati automaticamente da Watson per i principali linguaggi di programmazione come Python, Java, Ruby.

No alt text provided for this image

l training per l’object detection è decisamente diverso rispetto alla classificazione. Anzitutto si crea un nuovo classificatore per l’object detection come rappresentato nell’immagine cliccando nell’apposito bottone blu. Il passo successivo è quello di aggiungere le immagini di addestramento (il procedimento è analogo a quello della classificazione con il facile Drag and Drop dal proprio computer alla pagina web). Una volta caricate tutte le immagini per l’object detection, il training dovrà essere eseguito definendo con il proprio mouse aree rettangolari di interesse all’interno di ogni singola foto. Ad ogni area è associato un tag che identifica l’oggetto. Oggetti uguali avranno lo stesso tag. Una stessa immagini potrà avere diverse aree con tag differenti. Il modello che si esporterà avrà dunque come input un’immagine, successivamente confronterà l’input con il modello definito tramite object detection, e restituirà in output una struttura dati json che avrà tante voci quante sono i tag. Ogni voce sarà associata ad una percentuale, che rappresente la percentuale di presenza di quel tag all’interno dell’immagine in input, ovviamente basandosi sempre sul modello. Il training del classificatore Object Detection dovrà avvenire selezionando “aggiungi oggetto” nel riquadro in alto a destra, selezionando l’area rettangolare all’interno dell’immagine dove si trova l’oggetto e assegnandogli un nome del tag. Se ci sono altri oggetti dello stesso tipo selezionare ancora l’area con l’oggetto, in alternativa cliccare su Done.  

Nell’esempio sono state identificate due tipologie di oggetti: Giornali e Cartone.

No alt text provided for this image

Una volta eseguito il training è possibile testare il funzionamento dell’object detection (procedimento analogo al training della classificazione). 

 Successivamente anche il processo di test è analogo a quello della classificazione. Se l’algoritmo di Deep Learning Object Detection riconosce gli oggetti in modo corretto è possibile esportare lo snippet di codice da integrare nella nostra applicazione. 

La guida di riferimento IBM Visual Recognition è disponibile al link: 

https://cloud.ibm.com/apidocs/visual-recognition/visual-recognition-v3?code=python


To view or add a comment, sign in

Explore topics