integrated computer solutions - qt developer days … by jeff leblanc user experience team lead @...

39
www.ics.com Integrated Computer Solutions Unleashing the Power of Modern Devices Developing Natural User Interfaces in Qt

Upload: ngocong

Post on 23-May-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

www.ics.com

Integrated Computer SolutionsUnleashing the Power of Modern Devices

DevelopingNatural User Interfaces

in Qt

Page 2: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Presented By

Jeff LeBlancUser Experience Team Lead @ ICS

Software developer for 20+ yearsCertified Qt trainer since 2003

Adjunct faculty at WPI teaching HCI

Contact me: [email protected]

Page 3: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Seen any good movies recently?

Page 4: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Looking to the Past

• Fiction has inspired innovation and design foryears• Jules Verne inspired Simon Lake• H.G. Welles inspires Robert Goddard

Page 5: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Looking to the Future

Make It So: InteractionDesign Lessons fromScience Fiction (Shedfroff,Noessel 2012)

http://www.scifiinteraces.com

Page 6: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Looking at Hollywood

• What they get wrong• A lot!!

“It’s a UNIX system!”- Jurrasic Park (1993)

Page 7: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Looking at Hollywood• When they get it right…

• Emotional impact, visceral appeal

• Norman describes three levels of emotionaldesign• Reflective• Behavioral• Visceral

Page 8: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Looking at Hollywood

Jayse Hansen - http://www.jayse.tv/

Page 9: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Inspirational Design

Page 10: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Natural User Interfaces

• A Natural User Interface (NUI) is a UI that• Becomes effectively invisible• Is based on natural elements

• Goes back to Steve Mann (70s, 80s)

Inspiration! Can we combine a NUI with AI tocreate an intelligent agent?

Page 11: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Inspirational Design

+ =

Page 12: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Intelligent Agents

• Artificial Intelligence: A Modern Approach(Russell, Norvig 2003)

Page 13: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Intelligent Agents

• Intelligent, or rational, agents work with theirenvironment• Perceive through sensors• Affect using actuators

Page 14: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Apple’s Agents

1987 – Knowledge Navigator

Today - Siri

Page 15: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Gartner Hype State - 2013

Smart machines, including “intelligent personal assistants” are expected to be a majortechnology trend for 2014

Page 16: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Goals of This Project

• Combining many differentmodalities• Input: voice, touch, gesture,

sensors• Output: multi-media

• Produce an experience asnatural as interacting in thereal world with anotherperson

Page 17: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Touch

Page 18: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Touch

• Interacting with a computerusing finger(s) instead ofpointing device (mouse)

• Touch differs from mouse• No tracking state, no hover• Multiple contact points possible• Reduced accuracy, especially at

borders• No physical affordance

Page 19: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Designing for Touch

• Plan for gestures and flicks• Support multi-touch• Design for the “fat finger”

problem• Larger targets, more space

between• Expand touch areas around

targets

Page 20: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Gestures

Page 21: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Gestures• Currently requires additional hardware,

specifically a depth camera such as• Microsoft Kinect• Creative Senz3D camera• Leap Motion

Page 22: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Gesture Cameras

• Stereo

• Infrared / structured light• Kinect

• Time-of-Flight• Creative / Senz3D

Page 23: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Designing for Gestures

• Creating gestural language• Arm fatigue• The “Live Mic” problem

• Unintentional gestures• false positives

• Unrecognized gestures• false negatives

Page 24: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Designing for Gestures

• Techniques to reduce false positives• Reserved / special actions• Clutching• Multi-modal input

• May detract from the naturalness of theexperience

Page 25: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Voice Interaction

Page 26: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Voice Input• Planning for different interaction modes

• Command• Limit vocabulary to intended command words• Upwards of 95% accuracy

• Dictation• Free form, speech to text• Upwards of 85% accuracy, training helps

• Agent• Combination of Command and Dictation• Interactive

Page 27: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Trust and Confidence

• Similar “Live Mic” issues to gesture• False positives

“My fellow Americans, I'm pleased to tell you today thatI've signed legislation that will outlaw Russia. We beginbombing in five minutes.” – Reagan, 1984

• Commands not being recognized• False negatives

Page 28: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Voice Output

• Voice Synthesis / Text-to-speech (TTS)• Degree of naturalness varies• Highly flexible

• Canned responses• Telephony systems• More natural, but limited

Page 29: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Case Study

• Build an “Intelligent” Agent• Model-based agent: store state of the world

• Intelligent Presentation Assistant (IPA)• AKA “Jarvis”

• Advance slides by gestures• Voice triggered actions

Page 30: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Intel Perceptual Computing SDK

• Intel initiative, started in 2012• Free SDK, limited hardware (only supports

Creative camera)• C++ based API• Contains voice, gesture tracking (with limited

fingers), facial recognition

Page 31: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Solution for the Live Mic

Use the SDK’s Facial Recognition capabilityto determine if someone is looking atcamera

Page 32: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Voice Recognition Issues

• Accuracy level has varied betweenversions of the SDK and target hardware

• Current solutions• False positives: reject matches below 48%

confidence level• Command mode• Hardware selection, tuning and filtering

Page 33: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Voice Recognition Accuracy

• In practice, simple commands recognizedwith 40% to 60% confidence

Page 34: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Voice Recognition Accuracy

• In practice, simple commands recognizedwith 40% to 60% confidence

Page 35: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Qt Integration

QML front-end(s), C++ backend

Page 36: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Qt Integration

• Put various recognition routines off in their ownQThreads• doWork() slots have the recognition loops

Page 37: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Qt Integration

• Create signal-based API for recognition• Gestures – swipeLeft(), swipeRight(), etc• Voice – voice(const QString&)• Face – facePresent(bool)

• XML parser for voice grammar• Canned voice output done with QMediaPlayer

Page 38: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Future Work• Explore other cameras / hardware

• Bluetooth headset mics• Kinect

• Native SDK very “Microsoft-centric” API, may need to useQAbstractNativeEventFilter or 3rd party libraries

• Leap Motion• Released in July ‘13, early Qt integration done

• Explore other voice APIs• Microsoft SAPI in progress• Headset mic vs array mic to reduce ambient noise

• Open source solutions for Linux support

Page 39: Integrated Computer Solutions - Qt Developer Days … By Jeff LeBlanc User Experience Team Lead @ ICS Software developer for 20+ years Certified Qt trainer since 2003 Adjunct faculty

Thanks for Attending