SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Assistive Context-
Aware ToolkitFelipe Pedroso
#IntelNoTDC
Agenda
• Stephen Hawking and Intel
• What is ACAT?
• Technical Details
• Architecture
• Creating Extensions
• How to?
• RealSense + ACAT
• SharpSenses + ACAT
• Summary and Call 4 Action
#IntelNoTDC
• Professor Hawking first met Gordon
Moore during a conference in 1997,
where he was offered a computer
with an Intel processor
• Intel upgrades his computer every
couple of years and also supports
him all his hardware requirements
• A cross-disciplinary team from Intel
Labs developed ACAT to enable him
to communicate and perform all his
computer tasks more efficiently
Stephen Hawking and Intel
Images Sources:
http://www.astrosurf.com/luxorion/hawking-hommage9.htm
http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/
#IntelNoTDC
• Acronym for “Assistive Context-
Aware Toolkit”
• Enable people with disabilities to
communicate through keyboard
simulation, word prediction and
speech synthesis
• Developed by Intel Labs together
with Professor Hawking
• Customizable and Extensible
What is ACAT?
#IntelNoTDC
Open Source
http://01.org/ACAT
https://github.com/01org/acat
#IntelNoTDC
Tech Details
• Runs on Windows 7 or higher
• Code entirely written in C# using Visual 2012 (works fine on 2015) and
Microsoft .NET Framework 4.5
• Microsoft Office Interop Assemblies are used to interact with Office apps
• Some tools used to develop the project:
• CodeMaid
• StyleCop
• ReSharper
#IntelNoTDC
Architecture
Applications
ACAT Core Library
ACAT Extension Library
Extensions
Extension Extension Extension ...
#IntelNoTDC
Applications
ACAT Qwerty ACAT Abc ACAT Tryout
Talk Window
#IntelNoTDC
ACAT Core Library - Components
Word
Prediction*
Management
UI Management
AnimationsPanels Widgets Themes
Text-to-Speech
Management
Talk Window
Management
*ACAT is powered by Presage, the intelligent predictive text engine created by Matteo Vescov. (http://presage.sourceforge.net)
#IntelNoTDC
ACAT Core Library - Agents
#IntelNoTDC
ACAT Core Library - Actuators
Actuator
Management
Image Sources: http://www.psfk.com/2013/02/intel-stephen-hawking.html & https://commons.wikimedia.org/wiki/File:Assistive_device.JPG
Actuators
Proximity Sensor Assistive Switch Camera
#IntelNoTDC
ACAT Extensions Library
• Allows developers to extend the functionalities from ACAT
• Dynamically loaded during startup using reflection
• Needs to implement specific interfaces/base classes
Extension Types
UI
Word Predictors
Agents
Actuators
Text-to-Speech Spell Checkers
#IntelNoTDC
Creating an Actuator Extension
• Create a new “Class Library” project and add references to “ACATCore.dll”
and “ACATExtension.dll”
• Extend the classes “ActuatorBase” and “ActuatorSwitchBase” to interact with
ACAT
• Implement the abstract methods and the use the callbacks (Init, Resume,
Pause, Dispose) to run the code of your extension (threads, config, etc)
• Call the methods OnSwitchActivated (Hold/Press), OnSwitchDeactivated
(Release) or OnSwitchTriggered(Click) to sinalize the interaction from the
actuator
• Deploy your DLL to the extension folder and update the configuration files
#IntelNoTDC
Intel® RealSense™
Intel® RealSense™ SDK
Scene
Understanding
Enhanced
Photography
Augmented
Reality
Person & Face
Tracking
Gesture
Recognition
Background
Removal
Object
Recognition
and Tracking
Speech
Recognition
3D Object
Scanning
Hand & Blob
Tracking
User Facing World Facing
#IntelNoTDC
Tracking (Position)
Landmarks (78 landmarks)
Pose / Orientation
Expressions
Recognition
Pulse estimation
Intel® RealSense™ - Face Module
#IntelNoTDC
• Objective: create an actuator driven
by facial expressions
• Components:
• RealSenseExpressionTracker:
RealSense SDK implementation to
perceive the expressions and notify the
Actuator using events
• RealSenseActuator: translates the
intensity of the expressions to a button
behavior (pressed and released)
Intel® RealSense™ - ACAT Plugin
RealSense Actuator Extension
ExpressionTracker
Actuator Switch
Actuator
Management
#IntelNoTDC
• The Camera actuator extension is a
socket client that keeps looking for
the “ACAT Vision” app, that has a
socket server
• Simple protocol and it’s possible to
customize using config files
• ACAT Vision is not yet open-source,
but its code will be released in
upcoming releases
Another way to connect an actuator
ACAT Vision (Server)
Camera Actuator (Client)
Actuator
Management
#IntelNoTDC
• SharpSenses* is an open source C#
library that simplifies the
development of Intel® RealSense™
SDK apps.
• Created and maintained by André
Carlucci (Intel Black Belt & Software
Innovator)
• Available on Github* and NuGet*
SharpSenses*
#IntelNoTDC
• The idea is to create a ‘fake’ server,
that replicates the communication
between “ACAT Vision” and ACAT
• To notify that the input was triggered,
just send the string
“gesture=trigger;action=CT;conf=75;t
ime=<TIMESTAMP>”
• ACAT also sends some events back
to the server (HideUI, ShowUI,
ExitApp)
SharpSenses* + ACAT
ACAT Vision
Camera Actuator (Client)
Actuator
Management
‘Fake’ Server
SharpSenses
#IntelNoTDC
Summary & Call 4 Action
• ACAT is a really nice option to allow people with disabilities to communicate
with others
• Open Source: You can fork and extend ACAT for your needs!
• Extensions: let’s help other people with new actuators, applications agents and
new features 
• RealSense and SharpSenses can also drive acessibility apps.
Q/A
#IntelNoTDC
References
• Stephen Hawking and Intel
• http://iq.intel.com/behind-scenes-intel-keeps-stephen-hawking-talking/
• http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/
• ACAT
• https://github.com/01org/acat
• http://01.org/ACAT
• RealSense: https://software.intel.com/en-us/realsense/home
• SharpSenses: https://github.com/SharpSenses/SharpSenses
Thanks!
BAckup
#IntelNoTDC
ACAT Server
SharpSenses + ACAT
SharpSenses
bool canRun = true;
AcatServer acatServer = new AcatServer();
acatServer.Start();
acatServer.AcatNotificationReceived += (sender, a) => {
Console.WriteLine("Notification received from ACAT: {0}", a.NotificationType);
if (a.NotificationType == AcatNotificationType.ExitApp)
{
canRun = false;
}
};
ICamera camera = Camera.Create(Capability.FaceTracking, Capability.FacialExpressionTracking);
camera.Start();
camera.Face.LeftEye.Blink += (s,a) => {
Console.WriteLine("SharpSenses: detected a blink from left eye.");
acatServer.SendGestureMessage("CT", "trigger");
};
while (canRun) { }
acatServer.Stop();
Assistive Context-Aware Toolkit (English)

Weitere ähnliche Inhalte

Ähnlich wie Assistive Context-Aware Toolkit (English)

Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Luciano Resende
 
Using Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsUsing Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsLuciano Resende
 
Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Matt Ray
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...Rahul Krishna Upadhyaya
 
Managing kubernetes deployment with operators
Managing kubernetes deployment with operatorsManaging kubernetes deployment with operators
Managing kubernetes deployment with operatorsCloud Technology Experts
 
Ansible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIAnsible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIJoel W. King
 
On-Demand Cloud Computing for Life Sciences Research and Education
On-Demand Cloud Computing for Life Sciences Research and EducationOn-Demand Cloud Computing for Life Sciences Research and Education
On-Demand Cloud Computing for Life Sciences Research and EducationMatthew Vaughn
 
Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Koan-Sin Tan
 
Net Devops Overview
Net Devops OverviewNet Devops Overview
Net Devops OverviewJoel W. King
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesAndreas Katzig
 
oneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel ProductoneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel ProductTyrone Systems
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitIntel® Software
 
From Uc To Embedded
From Uc To EmbeddedFrom Uc To Embedded
From Uc To Embeddedguest0cf711
 
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017Luciano Resende
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTMarco Parenzan
 
Introduction to Open stack - An Overview
Introduction to Open stack - An Overview Introduction to Open stack - An Overview
Introduction to Open stack - An Overview SpringPeople
 
Why OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack Solution
Why OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack SolutionWhy OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack Solution
Why OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack SolutionElizabeth Sale
 
GDL OpenStack Community - Openstack Introduction
GDL OpenStack Community - Openstack IntroductionGDL OpenStack Community - Openstack Introduction
GDL OpenStack Community - Openstack IntroductionVictor Morales
 
Building a Thought Controlled Drone
Building a Thought Controlled DroneBuilding a Thought Controlled Drone
Building a Thought Controlled DroneJim McKeeth
 

Ähnlich wie Assistive Context-Aware Toolkit (English) (20)

Intel Developer Program
Intel Developer ProgramIntel Developer Program
Intel Developer Program
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
Using Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsUsing Elyra for COVID-19 Analytics
Using Elyra for COVID-19 Analytics
 
Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013Chef and OpenStack Workshop from ChefConf 2013
Chef and OpenStack Workshop from ChefConf 2013
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 
Managing kubernetes deployment with operators
Managing kubernetes deployment with operatorsManaging kubernetes deployment with operators
Managing kubernetes deployment with operators
 
Ansible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACIAnsible Tower | Docker | Cisco ACI
Ansible Tower | Docker | Cisco ACI
 
On-Demand Cloud Computing for Life Sciences Research and Education
On-Demand Cloud Computing for Life Sciences Research and EducationOn-Demand Cloud Computing for Life Sciences Research and Education
On-Demand Cloud Computing for Life Sciences Research and Education
 
Introduction to TensorFlow Lite
Introduction to TensorFlow Lite Introduction to TensorFlow Lite
Introduction to TensorFlow Lite
 
Net Devops Overview
Net Devops OverviewNet Devops Overview
Net Devops Overview
 
DevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile GamesDevOpsCon 2015 - DevOps in Mobile Games
DevOpsCon 2015 - DevOps in Mobile Games
 
oneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel ProductoneAPI: Industry Initiative & Intel Product
oneAPI: Industry Initiative & Intel Product
 
Overview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer KitOverview of the Intel® Internet of Things Developer Kit
Overview of the Intel® Internet of Things Developer Kit
 
From Uc To Embedded
From Uc To EmbeddedFrom Uc To Embedded
From Uc To Embedded
 
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
 
Time Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETTTime Series Anomaly Detection with Azure and .NETT
Time Series Anomaly Detection with Azure and .NETT
 
Introduction to Open stack - An Overview
Introduction to Open stack - An Overview Introduction to Open stack - An Overview
Introduction to Open stack - An Overview
 
Why OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack Solution
Why OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack SolutionWhy OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack Solution
Why OpenStack on UCS? An Introduction to Red Hat and Cisco OpenStack Solution
 
GDL OpenStack Community - Openstack Introduction
GDL OpenStack Community - Openstack IntroductionGDL OpenStack Community - Openstack Introduction
GDL OpenStack Community - Openstack Introduction
 
Building a Thought Controlled Drone
Building a Thought Controlled DroneBuilding a Thought Controlled Drone
Building a Thought Controlled Drone
 

Mehr von Felipe Pedroso

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformFelipe Pedroso
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaFelipe Pedroso
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitFelipe Pedroso
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.jsFelipe Pedroso
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot FrameworkFelipe Pedroso
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101Felipe Pedroso
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitFelipe Pedroso
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit Felipe Pedroso
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTTFelipe Pedroso
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDKFelipe Pedroso
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Felipe Pedroso
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Felipe Pedroso
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Felipe Pedroso
 
ADB: Um ator invisível
ADB: Um ator invisívelADB: Um ator invisível
ADB: Um ator invisívelFelipe Pedroso
 

Mehr von Felipe Pedroso (20)

Improved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis PlatformImproved Knowledge from Data: Building an Immersive Data Analysis Platform
Improved Knowledge from Data: Building an Immersive Data Analysis Platform
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 
Machine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML KitMachine Learning em Apps Android com ML Kit
Machine Learning em Apps Android com ML Kit
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Construindo Chatbots em Node.js
Construindo Chatbots em Node.jsConstruindo Chatbots em Node.js
Construindo Chatbots em Node.js
 
Testes A/B
Testes A/BTestes A/B
Testes A/B
 
Microsoft Bot Framework
Microsoft Bot FrameworkMicrosoft Bot Framework
Microsoft Bot Framework
 
Análise SWOT
Análise SWOTAnálise SWOT
Análise SWOT
 
Developer Relations 101
Developer Relations 101Developer Relations 101
Developer Relations 101
 
Simplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o RetrofitSimplificando chamadas HTTP com o Retrofit
Simplificando chamadas HTTP com o Retrofit
 
Introdução ao Retrofit
Introdução ao Retrofit Introdução ao Retrofit
Introdução ao Retrofit
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTT
 
Minicurso RealSense SDK
Minicurso RealSense SDKMinicurso RealSense SDK
Minicurso RealSense SDK
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"Minicurso "Jogos Multiplataforma com Javascript"
Minicurso "Jogos Multiplataforma com Javascript"
 
RealSense SDK
RealSense SDKRealSense SDK
RealSense SDK
 
Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8Palestra Game Engines para Windows 8
Palestra Game Engines para Windows 8
 
Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"Palestra "Game Engines para Javascript"
Palestra "Game Engines para Javascript"
 
Fat binaries
Fat binariesFat binaries
Fat binaries
 
ADB: Um ator invisível
ADB: Um ator invisívelADB: Um ator invisível
ADB: Um ator invisível
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Assistive Context-Aware Toolkit (English)

  • 2. #IntelNoTDC Agenda • Stephen Hawking and Intel • What is ACAT? • Technical Details • Architecture • Creating Extensions • How to? • RealSense + ACAT • SharpSenses + ACAT • Summary and Call 4 Action
  • 3. #IntelNoTDC • Professor Hawking first met Gordon Moore during a conference in 1997, where he was offered a computer with an Intel processor • Intel upgrades his computer every couple of years and also supports him all his hardware requirements • A cross-disciplinary team from Intel Labs developed ACAT to enable him to communicate and perform all his computer tasks more efficiently Stephen Hawking and Intel Images Sources: http://www.astrosurf.com/luxorion/hawking-hommage9.htm http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/
  • 4. #IntelNoTDC • Acronym for “Assistive Context- Aware Toolkit” • Enable people with disabilities to communicate through keyboard simulation, word prediction and speech synthesis • Developed by Intel Labs together with Professor Hawking • Customizable and Extensible What is ACAT?
  • 6. #IntelNoTDC Tech Details • Runs on Windows 7 or higher • Code entirely written in C# using Visual 2012 (works fine on 2015) and Microsoft .NET Framework 4.5 • Microsoft Office Interop Assemblies are used to interact with Office apps • Some tools used to develop the project: • CodeMaid • StyleCop • ReSharper
  • 7. #IntelNoTDC Architecture Applications ACAT Core Library ACAT Extension Library Extensions Extension Extension Extension ...
  • 8. #IntelNoTDC Applications ACAT Qwerty ACAT Abc ACAT Tryout Talk Window
  • 9. #IntelNoTDC ACAT Core Library - Components Word Prediction* Management UI Management AnimationsPanels Widgets Themes Text-to-Speech Management Talk Window Management *ACAT is powered by Presage, the intelligent predictive text engine created by Matteo Vescov. (http://presage.sourceforge.net)
  • 11. #IntelNoTDC ACAT Core Library - Actuators Actuator Management Image Sources: http://www.psfk.com/2013/02/intel-stephen-hawking.html & https://commons.wikimedia.org/wiki/File:Assistive_device.JPG Actuators Proximity Sensor Assistive Switch Camera
  • 12. #IntelNoTDC ACAT Extensions Library • Allows developers to extend the functionalities from ACAT • Dynamically loaded during startup using reflection • Needs to implement specific interfaces/base classes Extension Types UI Word Predictors Agents Actuators Text-to-Speech Spell Checkers
  • 13. #IntelNoTDC Creating an Actuator Extension • Create a new “Class Library” project and add references to “ACATCore.dll” and “ACATExtension.dll” • Extend the classes “ActuatorBase” and “ActuatorSwitchBase” to interact with ACAT • Implement the abstract methods and the use the callbacks (Init, Resume, Pause, Dispose) to run the code of your extension (threads, config, etc) • Call the methods OnSwitchActivated (Hold/Press), OnSwitchDeactivated (Release) or OnSwitchTriggered(Click) to sinalize the interaction from the actuator • Deploy your DLL to the extension folder and update the configuration files
  • 14. #IntelNoTDC Intel® RealSense™ Intel® RealSense™ SDK Scene Understanding Enhanced Photography Augmented Reality Person & Face Tracking Gesture Recognition Background Removal Object Recognition and Tracking Speech Recognition 3D Object Scanning Hand & Blob Tracking User Facing World Facing
  • 15. #IntelNoTDC Tracking (Position) Landmarks (78 landmarks) Pose / Orientation Expressions Recognition Pulse estimation Intel® RealSense™ - Face Module
  • 16. #IntelNoTDC • Objective: create an actuator driven by facial expressions • Components: • RealSenseExpressionTracker: RealSense SDK implementation to perceive the expressions and notify the Actuator using events • RealSenseActuator: translates the intensity of the expressions to a button behavior (pressed and released) Intel® RealSense™ - ACAT Plugin RealSense Actuator Extension ExpressionTracker Actuator Switch Actuator Management
  • 17. #IntelNoTDC • The Camera actuator extension is a socket client that keeps looking for the “ACAT Vision” app, that has a socket server • Simple protocol and it’s possible to customize using config files • ACAT Vision is not yet open-source, but its code will be released in upcoming releases Another way to connect an actuator ACAT Vision (Server) Camera Actuator (Client) Actuator Management
  • 18. #IntelNoTDC • SharpSenses* is an open source C# library that simplifies the development of Intel® RealSense™ SDK apps. • Created and maintained by André Carlucci (Intel Black Belt & Software Innovator) • Available on Github* and NuGet* SharpSenses*
  • 19. #IntelNoTDC • The idea is to create a ‘fake’ server, that replicates the communication between “ACAT Vision” and ACAT • To notify that the input was triggered, just send the string “gesture=trigger;action=CT;conf=75;t ime=<TIMESTAMP>” • ACAT also sends some events back to the server (HideUI, ShowUI, ExitApp) SharpSenses* + ACAT ACAT Vision Camera Actuator (Client) Actuator Management ‘Fake’ Server SharpSenses
  • 20. #IntelNoTDC Summary & Call 4 Action • ACAT is a really nice option to allow people with disabilities to communicate with others • Open Source: You can fork and extend ACAT for your needs! • Extensions: let’s help other people with new actuators, applications agents and new features  • RealSense and SharpSenses can also drive acessibility apps.
  • 21. Q/A
  • 22. #IntelNoTDC References • Stephen Hawking and Intel • http://iq.intel.com/behind-scenes-intel-keeps-stephen-hawking-talking/ • http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/ • ACAT • https://github.com/01org/acat • http://01.org/ACAT • RealSense: https://software.intel.com/en-us/realsense/home • SharpSenses: https://github.com/SharpSenses/SharpSenses
  • 25. #IntelNoTDC ACAT Server SharpSenses + ACAT SharpSenses bool canRun = true; AcatServer acatServer = new AcatServer(); acatServer.Start(); acatServer.AcatNotificationReceived += (sender, a) => { Console.WriteLine("Notification received from ACAT: {0}", a.NotificationType); if (a.NotificationType == AcatNotificationType.ExitApp) { canRun = false; } }; ICamera camera = Camera.Create(Capability.FaceTracking, Capability.FacialExpressionTracking); camera.Start(); camera.Face.LeftEye.Blink += (s,a) => { Console.WriteLine("SharpSenses: detected a blink from left eye."); acatServer.SendGestureMessage("CT", "trigger"); }; while (canRun) { } acatServer.Stop();

Hinweis der Redaktion

  1. Github* link: https://github.com/SharpSenses*/SharpSenses* NuGet* link: https://www.nuget.org/packages/SharpSenses*.