Intel® RealSense™ 3D Hands-on Lab Roma 2015: la tecnologia del futuro è a portata di webcam
Siamo continuamente spinti a pensare al futuro come un luogo dove l’uomo sarà affiancato, al lavoro come nella vita quotidiana, da macchine intelligenti. Film futuristici ci mostrano come questi prodotti innovativi vengano guidati e comandati dalle persone parlandoci oppure eseguendo gesti e movimenti del corpo. In base alle espressioni del viso, saranno addirittura in grado di capire il nostro stato d’animo e comportarsi di conseguenza.
Se ti dicessi che l’altro giorno ho fatto un salto nel futuro, mi crederesti? Ebbene si, mi sono trovato a faccia a faccia con uno di questi computer, sembrava uscito dal film Minority Report: ponendomi davanti a lui capiva, prima, che ero stupito, poi, che ero contento: lo sapevo perché appariva il testo sul video in base alle espressioni del mio volto. Muovendo una mano e il cursore si è alzato. Chiudendo le dita pollice e indice, ho preso e trascinato un’icona sopra una cartellina. E’ stato a questo punto che il computer mi ha parlato chiedendomi se desideravo che l’icona venisse copiata o spostata: ho detto “copiala” e il sistema ha eseguito.
Il futuro è già qui. Tutte queste funzionalità sono già disponibili grazie alla tecnologia Intel® RealSense™ 3D: attraverso quella che sembra essere una comune webcam per computer, i segnali audio e video captati, vengono tradotti e decifrati in un flusso informativo contenente le informazioni quali voce, gesti e fisionomia di chi vi si pone davanti. Questi dati possono essere utilizzati per programmare un applicativo che esegua dei comandi in base alle azioni compiute da un utente. Ed è proprio quello che ci è stato chiesto di realizzare durante l’Intel® RealSense™ 3D Hands-on Lab a cui ho partecipato: il lavoro migliore si sarebbe aggiudicato un portatile Asus con tecnologia Intel® RealSense™ 3D.
Tom Cruise in Minority Report
Alle 9:00 ero davanti all’ingresso dell’Impact Hub Roma. Mi sono accreditato e sono entrato nella sala. Intorno avevo tantissimi giovani in gamba che erano stati selezionati come me dalla Intel per partecipare a questo evento. L’ambiente creativo, tipico dei FabLab, mi ha solleticato subito la voglia di mettermi all’opera: nella sala ogni postazione era già pronta con un notebook (con a bordo un processore Intel i5), l’alimentatore e la webcam “prodigiosa” prodotta da Creative e integrante la tecnologia Intel® RealSense™ 3D.
Parliamo di hardware perché il fulcro di tutta la piattaforma sono due camere 3D, rispettivamente i modelli Intel® RealSense™ Camera F200 e R200. La F200, quella da noi utilizzata per le prove e mostrata nella foto seguente, è una Front Facing Camera, cioè una camera che può essere utilizzata direttamente dall'utente poiché è posizionata frontalmente allo stesso (da qui il prefisso F del nome).
Intel® RealSense™ 3D camera F200
La R200, invece, è una World Facing Camera o Rear Camera (da qui la lettera R all'inizio del nome) cioè una camera che viene posizionata nella parte posteriore dei device (tipicamente dei tablet) in grado di inquadrare, quindi, il mondo circostante.
Intel® RealSense™ 3D camera R200
Le prime ore della mattina sono state dedicate a studiare le varie tipologie di integrazione disponibili per realizzare il software utilizzando diversi linguaggi di programmazione: C++, C#, Java e Javascript. Ci sono state date le informazioni necessarie per capire come gestire il flusso di informazioni inviate dalla webcam a nostra disposizione e per convertire i segnali in comandi operativi. Per poterci lavorare è comunque indispensabile avere installato sul PC a cui è collegata la camera il relativo SDK. Per approfondire puoi leggerti questo articolo in italiano sul sito della Intel: “Intel® RealSense™ SDK - Primo Contatto”.
Per i linguaggi C++, C# e Java, l’IDE di riferimento è Microsoft Visual Studio. Per chi invece come me ha intenzione di utilizzare il dispositivo con applicazioni HTML5 e Javascript, può produrre il codice anche con un semplice editor di testo. Il mio preferito è Notepad++, rinomato editor open source, configurabile a piacimento con i numerosi plugin disponibili che ne aggiungono le più svariate funzionalità.
Un grazie particolare a Matteo Valoriani CEO di Fifth Element, Marco Dal Pino di Intel Corporation e Massimo Bonanni di eXagile che ci hanno illustrato la parte teorica con semplicità e senza mai annoiare.
Vediamo ora quali sono le caratteristiche hardware minime che deve avere il PC su cui abbiamo intenzione di utilizzare i dispositivi RealSense™ e il relativo SDK:
- Processore Intel® Core™ di quarta generazione (Haswell o successivo)
- 8 GB di spazio libero su disco fisso
- Sistema operativo Microsoft Windows 8.1-10 a 64 bit in modalità desktop
- USB 3.0 per la camera
Come vedi, la dotazione minima necessaria è molto esigente, questo potrebbe essere un limite affinché si sviluppino velocemente applicativi per questa tecnologia. Evidentemente la potenza di calcolo per gestire il flusso di informazioni deve essere elevata. Questo significa inoltre che non è possibile sviluppare applicativi per prodotti meno esosi in termini di energia, o che non utilizzino processori Intel. Quindi se hai intenzione di acquistare una delle camere disponibili, fai attenzione ai requisiti minimi.
Dopo la teoria, la trattoria: Intel ci ha offerto un pranzetto a base di pasta fredda e verza mista. Tutto molto buono. Complimenti anche ai ragazzi e alle ragazze di BeMyApp sempre molto gentili e disponibili.
Intel® RealSense™ 3D | pausa pranzo
Il pomeriggio è iniziata la maratona informatica. Dopo le indicazioni di rito ci siamo messi tutti a macinare codice per cercare di realizzare qualcosa di abbastanza spettacolare e utile in modo da convincere la giuria sulle proprie capacità e sperare di aggiudicarsi il notebook in premio.
Tu ora invece puoi mettere un +1 o un Mi piace. A te non costa nulla ed in più aiuti la causa informando tutti i tuoi amici... grazie in anticipo!
Il tempo a disposizione non era molto così ho pensato di cercare in rete qualche esempio guida. Poi mi sono ricordato che di esempi ne avevo a disposizione in locale, infatti sul PC era installato l’SDK con tutte le demo. Tra le altre ho scelto quella che utilizzava Javascript per catturare i gesti delle mani. L’idea era quella di realizzare un semplice giochino in cui il giocatore, muovendo la mano avanti e indietro sullo schermo, avrebbe simulato il palleggio di una palla, facendola rimbalzare sullo schermo.
Forse un problema elettrico o non so cos’altro, ma sfortuna ha voluto che la camera in mia dotazione dopo poco si è spenta e non si è più riaccesa! Così me ne è stata data un’altra in sostituzione e ho potuto continuare a sperimentare.
Prima di tutto ho cercato nel codice esistente della demo il punto in cui venivano recuperate le informazioni dei gesti dell’utente. Poi ho inserito una procedura per rilevare il gesto “tap” relativo al movimento avanti-indietro della mano. Per verificare che l’evento si generasse ho impostato una variabile che si incrementava di una unità ogni qualvolta effettuavo il gesto in questione e il "tap" veniva intercettato.
Intel® RealSense™ 3D | dettaglio del codice
Purtroppo devo far notare che la camera mi ha creato non pochi problemi. Infatti più volte, al lancio dell’applicativo (aggiornando il browser), mi appariva l’errore di “inizializzazione fallita” bloccando sul nascere l’esecuzione del codice. Ho modificato più volte variabili, funzioni e quant’altro pensando che dipendesse da come avevo concepito il software, con notevoli difficoltà per altro visto che la tastiera aveva la disposizione dei tasti diversa dal solito e il mouse non era disponibile. Poi però, riavviando il PC, tutto tornava a funzionare a dovere, confermando il fatto che era la camera ad “incepparsi”.
Programma di prova che ho fatto per intercettare le gestures captate dalla camera F200
Non so se sono stato particolarmente sfortunato o se la camera o il PC avevano dei problemi, fatto sta che ho perso un sacco di tempo inutilmente a cercare di risolverli con il risultato di non essere riuscito a concludere qualcosa di concreto. Poco male: per fortuna il mitico Francesco Baldassarri di Intel Corporation ci ha permesso di tenere la camera per poter continuare a sperimentare comodamente a casa.
Intel® RealSense™ 3D | presentazione dei lavori finali
In conclusione è arrivato il momento della presentazione dei lavori finali: c’era chi aveva creato un semplice simulatore di guida da gestire con i movimenti del corpo, chi un rilevatore di espressioni facciali con emoticons, chi un programma per supportare bambini affetti da autismo… insomma, diversi progetti più o meno interessanti.
Personalmente trovo difficile credere che l’utente comune, quello che usa il PC per giocare o per scrivere email e qualche documento su Word, utilizzi davvero le potenzialità rese disponibili dalla tecnologia Intel® RealSense™ 3D. Mentre invece potrebbe essere un valore aggiunto notevole in tutti quei casi in cui si ha la necessità di utilizzare il PC ma non si ha la possibilità di farlo nel modo tradizionale. Come suggerito da un partecipante, ci potrebbe essere il caso di un chirurgo che mentre opera il paziente può scorrere la cartella clinica dello stesso semplicemente spostando gli occhi e cliccare sbattendo le palpebre. Utile e funzionale!
Se sei interessato alla tecnologia tieni d’occhio:
- Impact Hub è una rete di spazi fisici dove imprenditori, creativi e professionisti possono accedere a risorse, lasciarsi ispirare dal lavoro di altri, condividere idee innovative, sviluppare relazioni utili e individuare opportunità di mercato. Segui gli eventi di Impact Hub Roma, un ottimo punto di partenza per iniziare nuovi progetti.
- BeMyApp organizza da anni Hackathons, Workshops e altri eventi, in tutto il mondo, nell’ambito della tecnologia. Se sei interessato a queste tematiche ti consiglio di tenere d’occhio la pagina sugli eventi italiani di BeMyApp.