Resumé

Kinect Tests

Cristian Merighi () 0,00

Mani impiastricciate nella marmellata di Microsoft Kinect SDK (beta2), paciugando con gestures e speech recognition. Il tutto in attesa dell'imminente commercial release.
Questo articolo è da considerarsi obsoleto. Alcune funzionalità potrebbero non essere più disponibili e non è possibile aggiungere commenti.

Ho appena approcciato - come sviluppatore - il sistema Kinect nel suo complesso di hardware e relativo SDK, non mi definirei esattamente tempestivo! È stato infatti appena annunciato il rilascio del nuovo Kinect for Windows (HW + SW) per il prossimo 1° febbraio (2012).
Con ogni probabilità dunque, ciò che ho cercato d'imparare e soprattutto di implementare sull'attauale versione (beta2) dell'SDK sarà vetusta spazzatura non appena si conosceranno le nuove caratteristiche del nuovo Kinect.
Non ritengo comunque d'aver sprecato il (poco) tempo ultimamente impiegato: se non altro ora ho piena coscienza di ciò che è potenzialmente in grado d'offrire quest'interessante device.

Mi sono particolarmente applicato alle funzionalità di skeleton data tracking e di speech recognition.
Se da un lato le librerie audio sono da ritenersi complete ed esaustive per uno sviluppo "pulito" di comandi vocali, dall'altro le modalità di gestione delle gestures possono ritenersi un far-west decisionale: una terra di nessuno dove ogni tirannico dev può instaurare le proprie leggi e battere moneta... Scenario a dir poco entusiasmante, no?!

In quanto despota illuminato, il mio primo pensiero sull'attacco al problema è stato: "Non voglio che l'utente finale sia costretto a imparare un set di gestures particolari che io ho deciso di instaurare". Il secondo: "Voglio che la mia interfaccia sia sufficientemente intelligente da comprendere cosa l'utente ha intenzione di fare", al limite talmente intuitiva da rendere palese la calibrazione delle azioni da parte dell'utente stesso al fine di ottenere il risultato desiderato.
Bene, devo dunque costruire un sistema flessibile (ma diligentemente strutturato) di gestures "usuali" (penso a panning, sweeping, zooming...) ponendomi dalla parte della macchina per capire come identificare tali azioni.

Ho notato come un'azione "usuale" di solito si rivela in seguito a una sequenza di prodromiche azioni intermedie. Ad esempio, una gesture di <panning> si individua sì dal movimento orizzontale della mano, ma solo successivamente ad una gesture di <palming> (è il nome che ho affibiato all'elevazione della mano al di sopra del livello del gomito ad essa contiguo).
Prototipando tale idea in un sistema funzionante, ho prodotto il seguente class-diagram:

class diagram

Come user test per questo sistema embrionale di gestione delle gestures non poteva mancare il più classico dei "manipulator": il modellino della Terra in 3D!
Per la cronaca al gesture tracker coinvolto ho dato nome Manipulate3DGestureTracker, esso dipende a sua volta dalle gestures Grope (ehm..."palpeggio") e Grab. Il tracking sul Manipulate3D cessa quando si lasciano cadere le mani al di sotto del livello dei fianchi oppure (vedi video-esempio sotto) tramite comando vocale.

YouTube Video

Non mi rimane che aspettare l'imminente 1° febbraio per vedere come Microsoft renderà questo mio "capolavoro in divenire" assolutamente senza senso ed inutile... ;)

Take care. Bye.

feedback
 

Syndicate

Autore

Cristian Merighi facebook twitter google+ youtube

Ultimi articoli

Top rated

Archivio

Dove sono?

Autore

Cristian Merighi facebook twitter google+ youtube

Le mie letture

Feeds