Notes on Natural Interfaces with @sarahkjork #devsum13

Sarah starts off her presentation, asking if anyone in the audience had seen Minority Report. Just as Tom Cruise controlled his system, not using mouse and keyboard, but by "owning it" by motioning and gesturing, it's now possible to design systems, that utilises available sensor technology to do that very same thing.

She then proceeds to show off the Kinect camera, pointing out its hardware capabilities and showing off the Kinect toolkit that  is supplied by the Kinect SDK.

The Kinect SDK supports up to 4 connected Kinects.

On the SkeletonFrameReady-event (called 30 times per seconds), we get skeleton data.

Using the Kinect Sensor's CoordinateMapper.MapSkeletonPointToDepthPoint, we can get a canvas position from the normalised values that is returned from the sensor.

Sarah continues on to show a Speech control system, featuring controlling a turtle with basic voice commands (walk forward, backward, left, right).

For speech recognition, you set up a rule set in XML where you define words that you'd like to react on. You have to define this grammar for the application to work, just as you have to define a target language. The engine itself invokes its event SpeechRecognized when it has successfully identified a phrase and SpeechRecognitionRejected when the engine is unable to interpret what you're trying to say.

Last up, is facial recognition
You can track individual points in your face, and also facial rotation. Now, the latter can be used to identify gestures such as nodding approvingly or shaking your head. Further, you can use the GetAnimationUnitCoefficients() to get values on whether or not the user is smiling or frowning, eye brows raised.

Sarah points out over and over again that natural interfaces are different for each user, why coding for it is really hard. You have to consider a lot of different scenarios and test on a lot of different people to make a viable product.


Whereas the X-Box system wants you to calibrate your Kinect before you use it, for Windows, this is something you will have to manage yourself.

Comments

Popular posts from this blog

Auto Mapper and Record Types - will they blend?

Unit testing your Azure functions - part 2: Queues and Blobs

Testing WCF services with user credentials and binary endpoints