- O documento discute o ACAT (Assistive Context-Aware Toolkit), um software de código aberto desenvolvido pela Intel para ajudar pessoas com limitações físicas a se comunicar e interagir com computadores através de teclados virtuais e reconhecimento de expressões faciais.
- O ACAT pode ser estendido por meio de plugins que adicionam novas funcionalidades como atuadores controlados por câmeras e reconhecimento facial da Intel RealSense.
- O SharpSenses é uma biblioteca que simplifica o uso do SDK RealSense e
3. #IntelNoTDC
Agenda
• Stephen Hawking e Intel
• O que é o ACAT?
• Detalhes Técnicos
• Arquitetura
• Criando Extensões
• Como?
• RealSense + ACAT
• SharpSenses + ACAT
4. #IntelNoTDC
• O Professor Hawking conheceu
Gordon Moore durante uma conferência
em 1997, aonde ele ofereceu um PC
com processador Intel
• Desde então seu hardware é atualizado
periodicamente, mas o capacidade de
interagir está se deteriorando
• Um time multi-disciplinar foi convocado
para criar uma solução que permitisse
ele se comunicar e interagir de maneira
mais eficiente
Stephen Hawking e Intel
Fontes Imagens:
http://www.astrosurf.com/luxorion/hawking-hommage9.htm
http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/
5. #IntelNoTDC
• Acrônimo para “Assistive Context-
Aware Toolkit”
• Permitir que pessoas com limitações
físicas se comuniquem e controlem
o computador através de um teclado
virtual, predição de palavras e
síntese de voz
• Desenvolvido pela Intel Labs em
conjunto com o Professor Hawking
• Extensível e customizável
O que é o ACAT?
7. #IntelNoTDC
Alguns detalhes técnicos
• Roda no Windows 7 ou superior
• Código escrito em C# usando Visual 2012 (funciona na 2015) e Microsoft*
.NET Framework 4.5
• Microsoft* Office Interop Assemblies são usados para interagir com as apps
do Office (Word e Outlook)
• Algumas ferramentas utilizadas no desenvolvimento:
• CodeMaid
• StyleCop
• ReSharper
13. #IntelNoTDC
ACAT Extensions Library
• Permite criar extensões/plugins para o ACAT
• São carregadas dinamicamente durante o startup do aplicativo (reflection)
• Possui as classes base e interfaces necessárias para implementar plugins
Tipos de Extensão
UI
Word Predictors
Agents
Actuators
Text-to-Speech Spell Checkers
14. #IntelNoTDC
Criando um Atuador
• Criar um projeto do tipo “Class Library” e adicionar referências para as DLLs
“ACATCore.dll” e “ACATExtension.dll”
• Estender as classes “ActuatorBase” e “ActuatorSwitchBase”
• Implementar os métodos abstratos e usar os callbacks (Init, Resume, Pause,
Dispose) para rodar a sua extensão (threads, configutação, etc)
• Chamar os métodos OnSwitchActivated (Press), OnSwitchDeactivated
(Release) ou OnSwitchTriggered(Click) para sinalizar a interação do usuário
com o seu atuador
• Fazer o deploy da sua DLL para a pasta de extensões e atualizar arquivos de
configuração
15. #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
17. #IntelNoTDC
• Objetivo: criar um atuador que é
controlado por expressões faciais
• Componentes:
• RealSenseExpressionTracker: Utiliza
o RealSense SDK para perceber as
expressões do usuário e notifica o
atuador utilizando eventos
• RealSenseActuator: “traduz” a
intensidade das expressões em um
“comportamento de botão” (press e
release)
Intel® RealSense™ - ACAT Plugin
RealSense Actuator Extension
ExpressionTracker
Actuator Switch
Actuator
Management
18. #IntelNoTDC
• O atuador de câmera que vem com
o ACAT é um cliente de socket que
espera a app “ACAT Vision”, que é
um servidor de socket
• A comunicação tem um protocolo
simples e customizável através de
arquivos de configuração
• O “ACAT Vision” ainda não é open
source, mas o código será liberado
nas próximas versões
Another way to connect an actuator
ACAT Vision (Server)
Camera Actuator (Client)
Actuator
Management
19. #IntelNoTDC
• O SharpSenses* é uma biblioteca
open source escrita em C# que
simplifica o desenvolvimento de
apps que usam o Intel®
RealSense™ SDK.
• Criada e mantida pelo André
Carlucci (Intel Black Belt e Software
Innovator), coordenador da trilha de
.NET
• Disponível no Github* e NuGet*
SharpSenses*
20. #IntelNoTDC
• A idéia é criar um server “fake”, que
replica a comunicação/protocolo do
“ACAT Vision”
• Para notificar a ação do usuário
basta enviar a string
“gesture=trigger;action=CT;conf=75;t
ime=<TIMESTAMP>”
• O ACAT também envia alguns
eventos para o servidor (HideUI,
ShowUI, ExitApp)
SharpSenses* + ACAT
ACAT Vision
Camera Actuator (Client)
Actuator
Management
‘Fake’ Server
SharpSenses
21. #IntelNoTDC
Sumário
• ACAT é uma boa opção para ajudar pessoas com limitações a se comunicar e
interagir com seus computadores
• Open Source: Você está mais do que convidado em criar seu fork do ACAT ou
criar novos plugins
• Extensões: vamos ajudar as pessoas com novos atuadores, agentes e novas
funcionalidades
• O Intel® RealSense™ e o SharpSenses* podem ajudar a criar aplicações
mais acessíveis