OpenCV sui Google Glass… tempi NON ancora maturi!

Ho già sviluppato applicazioni su Android che utilizzassero la libreria OpenCv (release 2.4.5). Nonostante i buoni risultati ottenuti, ricordo quanto fosse pesante a livello di processore, e quanto fosse poco performante su uno smartphone. Non sto criticando la libreria, so bene che per queste cose c’è bisogno di un hardware adeguato e per ora (2013/2014) è difficile trovarlo negli smartphone.
Ricordo che il telefono si surriscaldava molto dopo solo pochi minuti di esecuzione dell’applicazione, i frame per second elaborati erano molto bassi (mi sembra intorno ai 5/10) e la batteria del dispositivo era messa a dura prova (più di una volta, nel periodo in cui stavo testando l’app, la batteria mi si è rincretinita passando da carica a scarica e viceversa nel giro di poco, fino a riprendersi dopo qualche giorno).

Beh, oggi ho appurato che niente è cambiato. Purtroppo.

Ho scaricato e installato sul progetto Eclipse la libreria OpenCV (versione 2.4.8) per Android, ma per farlo funzionare (un semplice tutorial) mancava ancora qualcosa: L’OpenCV Manager. Chi ha già utilizzato OpenCV su Android sa bene che prima di poter far funzionare i propri progetti OpenCV bisogna installare sul proprio dispositivo l’app “OpenCV Manager” scaricabile direttamente dal Play Store… il problema è che il Play Store non esiste sui Google Glass, o meglio: non in questa versione Explorer Edition. Cercando in lungo e largo, sono inciampato in questo articolo che mi ha indicato la giusta procedura per poter installare manualmente l’app Manager sui Glass tramite terminale.

Provando i primi esempi ho riscontrato che le performance non sono molto elevate, anzi.
Sinceramente non so perché ero fiducioso del fatto che si potesse utilizzare OpenCV sui Google Glass, ma ahimé posso assicurare che, allo stato attuale, OpenCV è improponibile, se non per prove temporanee di breve durata e con il caricabatteria alla mano!
Tralasciando il fatto che il sistema operativo che gira sui Glass (Android Kitkat 4.4 versione XE16) è molto instabile perché presenta vari bug e si riavvia da solo spesso e volentieri a causa di crash, le varie applicazioni provate (esempi banali) che utilizzavano la libreria OpenCV, dopo appena 2 o 3 minuti di esecuzione hanno cominciato a surriscaldare il dispositivo tanto da far comparire a schermo la scritta “Glass must cool down to run smoothly“. Non è niente di grave, l’ho già vista apparire altre volte, ma è evidente che i tempi non sono ancora maturi per sviluppare e proporre sul mercato applicazioni che presentano questo tipo di effetti collaterali così velocemente.
L’elaborazione di immagini è un processo molto elaborato che richiede molti calcoli, serve quindi un processore molto performante per poter eseguire questo tipo di operazioni e attualmente con l’hardware montato sui Glass, non ci siamo proprio.
I frame per second, dopo aver applicato qualche filtro, si aggirano tra i 1.4 e i 3.7 (molto scattoso) e lo sforzo che il dispositivo deve reggere per far girare un’applicazione OpenCV è esageratamente alto, assolutamente non utilizzabile in mobilità. La attuale batteria dei Glass non dura più di 45 minuti in video recording, quindi con OpenCV in esecuzione non gli darei più di 15 minuti, sempre che i Glass non si spengano preventivamente per evitare di bruciarsi.

Il modo migliore per poter fare image processing, quindi, è utilizzare i Glass solo come “interfaccia” e non come “mente”, questa l’idea di base: Catturare il flusso video tramite i Glass, spedire il flusso ad un server (computer o smartphone connesso tramite bluethoot o wifi), che lo elabora e che restituisce indietro il risultato dell’elaborazione.

L’evoluzione nel campo tecnologico corre alla velocità della luce, sono convinto che non passerà molto tempo prima che questo problema diventi solo un lontano ricordo, anche perché la funzionalità principale di uno schermo che può essere posizionato davanti alla vista è sicuramente quella di poter elaborare le immagini per restituire a schermo un risultato rielaborato in real time. Per esempio, si immagini di andare dal parrucchiere il quale invece che un catalogo cartaceo ti fa scegliere l’acconciatura direttamente dall’applicazione ufficiale del negozio che funziona semplicemente specchiandosi allo specchio. Tu indossi i Glass, ti specchi e vedi in real time direttamente sulla tua testa l’acconciatura scelta… scrollando a destra e  a sinistra cambi la tipologia di taglio e quando hai scelto lo comunichi al parrucchiere.. figo no?

Bando alle ciance… si comincia a sviluppare!

E’ passata una settimana e dopo i primi giorni di puro cazzeggio oggi ho finalmente cominciato a guardare l’aspetto “serio” di questo nuovo giocattolino, che è anche il motivo per cui ho deciso di acquistarli: svilupparci sopra.

Ci sono due modi per sviluppare app sui Glass.. Il primo è attraverso le Mirror API (che sono l’equivalente delle Web App per gli smartphone), il secondo è con il GDK (Glass Development Kit) che permette di realizzare app native a tutti gli effetti. Non sto qui ad elencare le differenze, ma chi è interessato può seguire questo link.

Su amazon.it/amazon.com/hoepli.it etc non si trova praticamente ancora nulla per quanto riguarda libri dedicati alla programmazione per i Glass, tranne un misero libricino di appena 100 pagine, attualmente solo in lingua inglese, chiamato “Programming Google Glass. The Mirror API”. Da qualche giorno, su amazon.com sono spuntate fuori alcune copertine che trattano questo argomento (anche GDK), con la dicitura “acquista in preordine” e pare che saranno disponibili a partire da giugno / luglio (sempre in inglese, per risorse in italiano dovremo aspettare 1 o 2 anni).

Tra i due approcci, quello che desta più la mia curiosità è il secondo, ovvero la realizzazione di app native utilizzando la GDK.
Anche se non c’è ancora niente in circolazione di prettamente dedicato, si tratta tuttavia di programmazione in Java su Android, quindi nulla di tanto diverso da quello che si farebbe per un’app nativa per smartphone, almeno credo, quindi spero di non aver grosse difficoltà (anche se non ne sono poi così sicuro ;P ).

Come prima cosa installerò la libreria OpenCV e proverò a guardare i primi esempi che ho trovato ai Glass che ho trovato in giro.

 

Primo giorno di Glass

Eccoci qui a distanza di un giorno dall’arrivo dei Glass, per raccontare le prime 24 ore passate con loro.

Gli occhiali sono arrivati ieri alle 12.52, ma fino a sera son stato ad una laurea (bravo Marco.. da 110 e lode!!) e non ho potuto spacchettarli, però appena tornato [ore 18.40] mi son fiondato in sala e ho cominciato l’unpackaging.
Come prima cosa ho rivoltato il pacco da cima a fondo per vedere se ci fossero danni esteriori (anche se ormai era inutile perché comunque era già stato ritirato da mio padre e se non lo aveva contestato subito ormai non ci sarebbe stato più niente da rivendicare in ogni caso), fortunatamente non c’era alcun danno visibile, nessuna bozza e tutto era ok.
Procedo quindi con l’apertura. Taglierino alla mano, prima a destra e poi a sinistra rimuovo lo scotch e apro la scatola.
PANICO.. vedo solo cartacce, ma poi dico “sveglia, non è mica il primo pacco che ricevi, le cartacce servono per attutire le botte”, quindi inizio a togliere tutte le carte di giornale e di plastica gonfiata che fanno da contorno fino a che… eccolo qui. Trovato il tesoro!
Trovai una sacchettina con all’interno i glass e una scatoletta contenente gli accessori (cuffie, due paia di lenti, una da sole e una trasparente).
Però cazzo manca ancora una cosa, così continuo a togliere le cartacce. Tolgo e tolgo ma alla fine arrivo al fondo e quello che cercavo purtroppo mancava!
Il tizio balordo non mi ha spedito la scatola originale dei Google Glass!!! Che nervoso… Anche se ero in ogni caso sollevato per il fatto che i Glass ci fossero, mi ha fatto perdere tutta la gioia del momento.
Con l’idea che poi avrei contattato il tipo per chiedere informazioni sulla scatola (che voglio ad ogni costo perché nessun collezionista mi ricomprerà a buon prezzo questo prototipo, tra 50 anni quando avrò bisogno di soldi per la sedia a rotelle motorizzata), inizio a provarli.
[ore 18.50] Li indosso. Non succede niente.
“Cazzo ho preso un pacco, sono rotti”.
Li ritolgo dalla testa, vedo un pulsante, provo a premerlo. Si accendono.
“Scusami tizio, ti ho voluto morto per 5 secondi, ingiustamente”.
Li rimetto e… figata vedo una scritta!
mmm “Low Battery”…
ok ho capito, li provo dopo.
Li ho messi in carica e nel frattempo ho scaricato l’applicazione myGlass per il mio iPad dall’AppStore americano (richiede account iTunes americano) che serve per cominciare la configurazione degli occhiali.
Tramite l’accoppiamento bluetooth tra l’app sul mio iPad e gli occhiali, è possibile avere alcune funzionalità, ad esempio con l’iPad ora posso scegliere nello store dei “GlassWare” (i glassware sono le app per i glass), le varie app che voglio installare sugli occhiali (non sono ancora molte), poi tramite gli occhiali è possibile utilizzare il gps del tablet per chiedere ai Glass di indicare la strada per andare dove si vuole, Roma, Milano etc semplicemente pronunciando: “Ok Glass, get directions to Rome”.
[Ore 19.20 circa]. Sono carichi. Li rimetto e comincio a smanettarci un po. Devo dire che non pesano molto una volta indossati… stringono un pochetto dietro le orecchie, ma non è un grosso problema.
Primo pensiero una volta addosso: “ok, e mo che faccio?”. Ci è voluto un pochetto per capirne le funzionalità: Nella parte laterale dei Glass c’è tipo un touch pad cliccabile attraverso il quale si possono dare istruzioni. E’ possibile scorrere il menu o selezionare una singola voce. La voce di default del menu mostra l’orario con una scritta tra virgolette in basso: “Ok, Glass” che sembra voler dire “pronunciami”. Non esito e dico ad alta voce: “OK GLASS”… magicamente succede qualcosa! La schermata cambia e appare una lista di opzioni pronunciabili… “take a picture”, “record a video” “get directions to..” etc. Pronuncio la prima: “TAKE A PICTURE”.. La mia scrivania venne immediatamente immortalata.
Imparato a fare le foto, ho continuato a giocherellarci un pochetto fino a vedere tutte le schermate del menu, c’è il meteo, gli impegni della settimana (presi direttamente dal su Google Calendar), la condizione della batteria, la lista delle foto fatte, un’elenco di news delle ultime ore etc…
Il giorno dopo, arrivato 10 minuti prima alla fermata del bus, non sapendo che fare li indosso e comincio a scattare un po di foto dei dintorni… Per non sembrare un imbecille che parla da solo, scattavo le foto con la funzionalità abilitata la sera prima attraverso la quale avviavo lo scatto facendo semplicemente l’occhiolino (tanto con le lenti da sole nessuno ci faceva caso). Figata assurda! peccato che però non funziona ancora tanto bene.
All’università è stata la volta di alcuni amici (e di amici degli amici)… effettivamente in una università di Informatica i Google Glass fanno abbastanza notizia, comunque tra una prova e l’altra, sono cominciati a partire caricamenti (involontari o non) di foto e video su facebook e gplus di foto scattate alla meno peggio ritraenti volti ripresi in pose alquanto imbarazzanti tanto che, nonostante son rimaste su facebook appena 30 secondi, giusto il tempo di cancellarle, ecco che da dietro la porta dell’aula in cui eravamo a provarli, si intravede la fila di altri amici che avendo visto le foto pubblicate su facebook con la scritta “foto caricata tramite Google Glass” si son fiondati per provarli. (a dimostrazione di quanto studiamo tutti quanti).
Come ultima prova abbiamo fatto partire una videocall su Hangout. Il mio amico mi invita, io dagli occhiali dico “Ok Glass, Answer call” e…. rimango estasiato!! Nello schermetto degli occhiali mi compare il mio amico di fronte al suo computer in video call con me!
Mi giro verso il suo computer e vedo sul monitor del suo pc che lui stava vedendo, in differita di 2 secondi, quello che io stavo riprendendo con i Glass! FIGATA PAUROSA.

Detto questo, vi lascio con un riassunto della giornata di oggi

Semprox Lab, abbiamo i Glass!

Il futuro è entrato per la porta di casa direttamente dall’America.
I Google Glass sono arrivati!
No, non intendo che sono stati presentati al mondo in qualche presentazione.. no!
cioè sì.. ma questo è successo nel 2012,  ecco il video della presentazione dei Google Glass, Aprile 2012.

Quello che intendo dire è che oggi sono arrivati a casa mia!

Posso toccarli, maneggiarli… indossarli!

Google Glass Semprox Lab
Io che non ho mai utilizzato un paio di occhiali in vita mia, nemmeno quelli da sole se non per qualche scampagnata in bicicletta a cielo aperto e sole a dirotto, proprio io, ora, ho qui davanti questo nuovo aggeggio che ancora nessuno conosce ma che presto, nel bene o nel male, saranno la quotidianità nella vita di tutti i giorni, di tutti quanti.

Il loro campo applicativo è così di diversa natura rispetto a qualsiasi altro accessorio che siamo abituati ad utilizzare, che ancora è difficile anche solo immaginare come sia possibile sfruttarli per far sì che la parola “utili” diventi uno degli attributi necessari per descriverli.

Cosa sono i Google Glass? non sono Smartphone, non sono fotocamere e non sono computer. Non sono nemmeno occhiali, cioè non principalmente. Sono dei dispositivi nuovi che si posizionano in un nuovo settore, che per quanto nuovo, non andrebbe paragonato a quanto già esistente.

Tuttavia, oggi come oggi, nel 2014, è difficile dire “i glass sono utili perché…”, poiché non ci sono ancora abbastanza applicazioni che permettano di sfruttarli, ma parlando da sviluppatore, posso dire che sono dei dispositivi che hanno grandi potenzialità e campi applicativi; mi viene da pensare sicuramente il settore ludico come prima cosa, ma anche in ambito lavorativo e di intrattenimento avrebbero grandi potenzialità. Basterà solo aspettare che le cose maturino, dare il tempo ai vari sviluppatori che sono riusciti ad entrarne in possesso, di realizzare le cose magnifiche che si potrebbero fare attraverso questi occhiali e il mondo comincerà finalmente a comprendere le grandi cose che si potranno fare con questi dispositivi.

Nonostante questo, pensandomi nel futuro tra 15 anni mi vedo sghignazzante. Conscio del fatto che tra 5/10 anni saranno completamente diversi, molto migliorati sia nell’aspetto estetico che in quello pratico e funzionale, quando mi ritroverò le immagini di questi cosi che ho per le mani ora dirò:
“Cavolo.. come sono riusciti questi affari talmente obsoleti a catturare così tanto la mia attenzione, in quel di Perugia nel 2014?”.
Saranno più piccoli e discreti. Saranno con un’infinità di funzionalità in più grazie ai nuovi sensori che ci verranno implementati… Saranno addosso a milioni di persone e non saranno prodotti solo da Google ma da tantissime altre aziende. Apple, Sony, Samsung e Microsoft ne avranno una propria versione e il mondo ne sarà invaso così come ora è saturo di smartphone.

Ricordo che 10 anni fa, nel 2004 -io facevo il secondo liceo- la grande novità di quei tempi era che gli smartpho… pardon, i cellulari più avanzati erano stati prodotti con la fotocamera integrata.
Era fenomenale! potevi fare delle cazzo di foto con il cellulare senza dover andare dal fotografo a farti sviluppare la pellicola per vedere cosa avevi fotografato….
Foto di qualità così schifosa che se le mettevi sul pc le vedevi di 2cm quadrati, ma erano la novità del momento.
Superate le foto, si affiancarono i video, poi fu la volta del bluetooth per scambiarsi i dati, di internet, delle videochiamate e bla bla… Certo, aspettare di far sviluppare le foto su pellicola, con l’ansia e l’effetto sorpresa, qualche volta forse era anche più bello..
Quante volte rullini avviati per metà e finiti dopo mesi hanno riportato alla luce, una volta fatti sviluppare, foto che si aveva pure dimenticato di aver fatto!
Di bello c’era quell’effetto attesa che ti rendeva contento il giorno del ritiro, o deluso se qualche foto era venuta sfocata o mossa, ma era parte del gioco, parte del rischio.
Sta di fatto che, nel bene o nel male, i cellulari hanno contribuito a questo grande cambiamento.
E così sarà con i Glass nell’arco di una decina d’anni.

Detto questo, da domani comincerò a dedicarmi alla programmazione per questo nuovo dispositivo, anche se non ho alcuna idea sul cosa fare.

Penso che comincerò dalla prima pagina del libro.

Google Glass

Proiettato nel futuro. Ho comprato i Google Glass.

7 Aprile 2014 ore 03.35.

Ancora sveglio.

No, non sto lavorando. Non stanotte.

Sono sveglio perché poco fa si è conclusa un asta su ebay che mi ha letteralmente proiettato nel futuro. Mi son finalmente deciso a comprare i Google Glass, Explorer Edition!

Per chi non lo sapesse, sono occhiali elettronici attraverso i quali vedi maggiori informazioni relativamente a quello che stai osservando, al quanto vistosi, immagino per niente confortevoli e sicuramente con pochi campi di utilizzo… ATTUALMENTE.

No eh? per averci speso 1200 euro non sembra che ne abbia fatto una ottima descrizione ma non importa perché non li ho comprati dal punto di vista di un utente consumatore, quindi non mi interessa l’aspetto estetico e/o d’apparenza che comportano, non in questo primo modello.
Lo scopo per cui li ho comprati non è per utilizzarli, ma per sfruttarli per farne un lavoro e in questo aspetto l’occhio di uno sviluppatore  vede mille potenzialità. Ridefinendoli nuovamente lo sviluppatore ti direbbe: “sono un dispositivo indossabile di realtà aumentata che con l’adeguato software può trovare spazio in mille scenari nella vita quotidiana di tutti i giorni, sia in ambito lavorativo, sia ludico, sia educativo”. Ed è questo il motivo per cui ho deciso di fare questo, costoso, investimento.
Il mio obiettivo è cominciare a realizzare già da ora qualche applicazione che possa rendere questo dispositivo un dispositivo fantastico.
Tuttavia altre persone potrebbero definirli in questo modo: “Sono un dispositivo che finirà di bruciare quel poco cervello che è rimasto al genere umano oggi giorno” e purtroppo mi sento di condividere in pieno anche questa terza definizione.
Sono anche io convinto, infatti, che tenere vicino alla testa un dispositivo elettronico del genere non faccia molto bene in termini di radiazioni e robe varie.. è uno dei 2 motivi per cui non uso il telefono cellulare da almeno 4/5 anni, ma non per questo ho smesso di realizzare applicazioni per iPhone.
D’altronde fintanto che la gente continua a utilizzare cellulari e smartphone a manetta, sparafleshandosi onde elettromagnetiche in ogni momento della giornata tenendolo:

  1. vicino all’orecchio (quando c’è una chiamata in corso);
  2. sotto al cuscino (quando si dorme);
  3. in tasca, vicino all’organo sessuale (in tutti gli altri momenti),

beh, sono convinto che, eccetto banali casi di ipocrisia, nessuno avrà il coraggio di dire che non vorrà utilizzare i Glass per il fatto che non facciano bene alla salute considerando tra l’altro che, al contrario di un telefono cellulare, i Google Glass non posseggono sim, e le onde elettromagnetiche non sono pertanto minimamente paragonabili a quelle di un cellulare.

Tornando a noi, pochi giorni fa mi è arrivato il libro “Programming Google Glass” che ho ordinato su hoepli.it, saranno sì e no 100 pagine in inglese, ma purtroppo non si trova altro ancora in circolazione. In italiano poi… Appena mi arriveranno i Glass che ho comprato dall’America, comincerò a spulciarlo un po…

Programming Google Glass, book
Libro Programming Google Glass che mi è arrivato qualche giorno fa. Ordinato su Hoepli.it a circa 10 euro

Non so ancora bene cosa riuscirò a realizzare e quali strumenti Google abbia messo a disposizione per poter realizzare applicazioni stratomegafighe per questi dispositivi. Non so quante difficoltà potrò trovare durante lo sviluppo e non ho ancora assolutamente alcuna idea che possa essere facilmente implementabile e allo stesso tempo affascinante. Quello che sò è che ormai li ho presi.

Qualcosa uscirà fuori, spero solo che sia meraviglioso!