AO_437

Robotica AUTOMAZIONE OGGI 104 | APRILE 2022 AUTOMAZIONE OGGI 437 la telecamera diversi fotogrammi che ritraggono un volto, ne estrae le caratteristiche peculiari e le riconduce a uno stesso cluster a cui associare un identificativo o semplicemente il nome di una persona. Il riconoscimento successivo dello stesso volto, infatti, sarà tanto più affidabile quanto più è ampio il campione dei fotogrammi somministrati alla fase di apprendimento, me- glio se ritratti in posizioni leggermente differenti. Questa feature richiede che sia montato, a bordo del computer che muove l’InMoov, un database sui cui poter catalogare un numero molto vasto di fotogrammi in modo da poter in ogni momento aggiornare la fase dell’ap- prendimento per consentire la classificazione di un nuovo volto ma senza perdere la storia di quello che è stato già appreso. Natural Language Processing e Intent Recognition Un robot antropomorfo dalle dimensioni na- turali che si muove lungo 29 punti di snodo, che sa seguire un volto e riconoscerne i tratti distintivi sarebbe probabilmente già un bell’oggetto del desiderio per tanti. I più esigenti, però, si chiederebbero ora: si, ma sa capire quello che gli dico? Per far questo, ho aggiunto al software di InMoov un chatbot, un software che sviluppa un dialogo in base alle interazioni con un utente. La tecnologia abilitante alla base di un chatbot si chiama Natural Language Processing (NLP) e studia come ricondurre una frase in un concetto o intenzione estrapolando dalla frase even- tuali componenti variabili. A ogni intenzione, un dialogo opportunamente programmato può far corrispondere una domanda oppure un’asserzione, un’azione o una combinazione di queste. Esistono già sul mercato molte solu- zioni che consentono di codificare dei dialoghi uomo/macchina basati su linguaggio naturale. Alexa, ad esempio, è tra gli assistenti virtuali più gettonati in questo momento. Ad Alexa si parla in linguaggio naturale, anche con frasi differenti per la stessa intenzione. La soluzione che ho scelto per dotare il mio InMoov di un chatbot è IBM Watson, che ho integrato con il software a bordo di InMoov at- traverso API Rest contattabile su un endpoint esposto su Internet. In poche parole, affinché il robot capisca quello che gli si dice, il suo computer deve essere collegato a Internet. IBM Watson, infatti, è in grado di processare un testo e di classificarlo come una delle in- tenzioni che è stato addestrato a riconoscere attraverso frasi campione. Ma noi vogliamo che il robot sappia prima di tutto ascoltare e poi inviare la frase recepita al chatbot per ca- pire qual è l’intenzione dell’utente. Per questa operazione di conversione da parlato a testo ho utilizzato un altro microservizio, sempre di- sponibile su cloud, ma questa volta erogato da Microsoft Azure: Speech to Text. Quindi, quando si parla al robot, il software in- stallato nel tablet su InMoov contatta un servizio Microsoft Azure inviandogli uno stream audio e il servizio gli restituisce il testo corrispondente alla richiesta orale. A questo punto il software contatta un secondo servizio, Watson Assistant di IBM, passandogli il testo, tale servizio restitu- isce l’identificativo di un intento e/o una frase in risposta. Con questo identificativo il software cerca sul suo database la sequenza Ascii da in- viare alla seriale e quando la sequenza Ascii ar- riva alla seriale, il robot prende vita. Speech Synthesis Un chatbot normalmente interagisce con l’u- tente con cui dialoga ponendo domande, ri- spondendo o semplicemente pronunciando espressioni di circostanza. Naturalmente questa interazione botta e risposta e tutti i percorsi che possono essere attivati in un dialogo uomomac- china dovranno essere codificati inWatson. Affin- ché la risposta fornita da Watson sotto forma di Il face recognition consente di riconoscere uno specifico volto InMoov è progettato per interagire con lo spazio circostante, attraverso un sensore Kinect montato a livello del basso torace

RkJQdWJsaXNoZXIy Mzg4NjYz