Touchscreens are everywhere in public spaces, from grocery store express checkouts to airline check-in counters. As COVID-19 has made people hesitant to touch public surfaces, which can act as vectors for the virus, you may wish to embrace contactless user interfaces for your customer-facing products. In this engineering-focused webinar, we’ll offer technical insight on how to emulate the touch experience via computer vision and gesture technology, and explain best practices to incorporate AirTouch into multimodal interfaces.
Creating Touchless HMIs Using Computer Vision for Gesture Interaction
1. October 15, 2020
Creating Touchless HMIs Using
Computer Vision Gesture Interaction
Germán Leon, Chief Experience Officer, Gestoos
Ryan Hampton, Software Engineer, ICS
2. About ICS
● Founded in 1987, currently 120 employees
● HQ in Boston; Field office in Sunnyvale
● We provide:
○ UX design services
○ UI development
○ Software development services
○ Linux and QNX platform and board support
○ Full end to end product realization
○ Qt training
● Delivering 70+ projects each year for global
brands
3. Inventing the Future
3
We help companies design,
develop, and productize
touch, gesture, and voice
enabled solutions that
dramatically improve
customer experience
Sophisticated patient monitor system
5. 2
T Y P E O F I N T E R A C T I O N S
ACTIVE INTERACTIONS
(GESTURE DETECTION)
• Active Interactions
• (Hand Gestures detection and Head
Gaze)
• Gesture for Answering calls
• Gesture for Taking photos
• Gesture for Control devices
• Gesture for Zooming in
• Gesture for Play and Pause
• Grabbing and Dropping
PASSIVE INTERACTIONS (MONITORING)
• Detect Presence
• Detect Violence
• Detect and prevent Accidents
• Smoking detection
• Tired driving and grades of subtle changes detection
• Driver Scoring
• Fault litigation
• Detect Vandalism
• Detect the number of people
• Detect and Classifications of any abnormal behavior
6. G E S T O O S . C O M / / I N F O @ G E S T O O S . C O M
ACTIVE
INTERACTIONS
7. 4
D E S I G N I N G A C T I V E I N T E R A C T I O N S
Active Interactions
• Presence
• Persistence
• Interactions
• Geometry - Designing with the Z access
• Sentience
• Multimodal interaction
3
11. 8
A W A R E N E S S O F I N T E R A C T I O N S
Victory
Gesture
“L”
Shape
Gesture
Volume
Up
Volume
Down
Pause Forward Backward “T” Shape
Gesture
Thumb
Left
Thumb
Up
Thumb
Down
Thumb
Right
Hand
Tracking
Open
Hand
Close
Hand
There are Multiple types of active interactions:
Static Gestures (Poses).
Two handed Gestures (Poses).
Pointing
Gesture
21. 18
M U LT I M O D A L I N T E R A C T I O N
3
Gestoos is a multimodal platform that can be integrated with other components
Volume
Up
Volume
Down
Wave
Hand
Push
Gesture
• Voice • Haptic Feedback • Biometrics
Face
Detection
Smile
Detection
22. C O M PA N Y C O N F I D E N T I A L / / G E S T O O S . C O M / / I N F O @ G E S T O O S . C O M
ACTIVITY
MONITORING
23. 2 0
GESTOOS - CREATOR // DESCRIPTION
Creator is a powerful, cutting edge Tool to
train any human activity
Better models developed faster and easier with less data
24. 2 1
GESTOOS - CREATOR // PROBLEM SOLVED AND MARKET SIZE
1. Lack of specialised computer vision and AI knowledge and expertise
in-house to build best in class models
2. Slow and expensive path to deployment due to high data acquisition
and annotation costs as well as a long iterative model development
process
3. Lack of accuracy and robustness despite large amounts of training
data, especially for the long tail of low probability events
4. Inability to modify or update models if outsourced from specialized
third parties, also limits depth of model understanding
Creator solves the main challenges companies
face in obtaining accurate & Robust ai models
25. 2 2
GESTOOS - CREATOR // NVIDIA HW, TOOLS AND INCEPTION PROGRAM
• Model training done in the cloud on Nvidia Tesla K80 GPUs
• Nvidia TensorRT used to optimise trained models for run time
inference engine
• Detection engine runs on systems using Nvidia HW local computing
modules such as Jetson Nano and Tx2
Hardware and tools used in both model
development and detection deployment
27. 2 4
GESTOOS - CREATOR // USER INTERFACE – DATA SETS
Users can connect any
data set to train new
behaviors.
These Data Sets can
also be customised as
Data Collections
28. 2 5
GESTOOS - CREATOR // USER INTERFACE – METADATA
Users can navigate
through the datasets
and insert metadata for
each video which can
then be used for
training
29. 2 6
GESTOOS - CREATOR // USER INTERFACE – ANNOTATION
The annotation tool
allows for simple
annotation and
labelling of any section
or part of a Video.
30. 2 7
GESTOOS - CREATOR // USER INTERFACE – TRAINING JOBS
Users can prepare
training jobs and launch
to create new models or
incrementally improve
existing models.
40. GreenHouse: UX-First Application Development
5
Figma UI & UX Design GreenHouse Development Desired Application
• Reduces time to generate assets
• Easy handoff from UX designers
• Or, design directly in GreenHouse
• Import Sketch, Photoshop, etc
• Platform agnostic Qt/QML code
• Enforces layered architecture
• Reusable, testable, simulatable code
• RPC support for remote backends and
simulations
• Import assets into GreenHouse
• Easily interface and bind data
• Add custom QML components
• Integrate unique backends
(Websockets, 0MQ, Mqtt, etc.)
41. Food Menu Proof-of-Concept
● Integrated Gestoos' library through a
GreenHouse Component Set Plugin
● A Component Set allows GreenHouse to
integrate any third party libraries or complex
component
● GestoosController posts Gestoos specific
events to Gestoos Area or any other registered
listeners.
● GestoosController also broadcasts Qt events
(like the QMouseEvent) to all program windows
so you don’t need any specific components
6
42. Integration with GestoosController Class
void GestoosController::on_cursor_event(const GestoosCursorState& cursor);
// Mouse Move, do for all windows available from QGuiApplication::allWindows()
QCoreApplication::postEvent(&window, new QMouseEvent {
QEvent::MouseMove, localPos, localPos, screenPos,
Qt::NoButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication },
Qt::HighEventPriority);
// Mouse Click, do for all windows available from QGuiApplication::allWindows() when the cursor is clicked
QCoreApplication::postEvent(&window, new QMouseEvent {
QEvent::MouseButtonPress, localPos, localPos, screenPos,
Qt::NoButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication },
Qt::HighEventPriority);
QCoreApplication::postEvent(&window, new QMouseEvent {
QEvent::MouseButtonRelease, localPos, localPos, screenPos,
Qt::NoButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication },
Qt::HighEventPriority);
7