assistive context-aware toolkit (portuguese)

27
Assistive Context-Aware Toolkit Felipe Pedroso

Upload: felipe-pedroso

Post on 12-Apr-2017

213 views

Category:

Technology


2 download

TRANSCRIPT

PowerPoint Presentation

Assistive Context-Aware ToolkitFelipe Pedroso

#IntelNoTDC

1

#IntelNoTDC

#IntelNoTDCAgendaStephen Hawking e IntelO que o ACAT?Detalhes TcnicosArquiteturaCriando ExtensesComo?RealSense + ACATSharpSenses + ACAT

#IntelNoTDC

3

O Professor Hawking conheceu Gordon Moore durante uma conferncia em 1997, aonde ele ofereceu um PC com processador IntelDesde ento seu hardware atualizado periodicamente, mas o capacidade de interagir est se deteriorandoUm time multi-disciplinar foi convocado para criar uma soluo que permitisse ele se comunicar e interagir de maneira mais eficienteStephen Hawking e IntelFontes Imagens: http://www.astrosurf.com/luxorion/hawking-hommage9.htm http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/

#IntelNoTDCAcrnimo para Assistive Context-Aware ToolkitPermitir que pessoas com limitaes fsicas se comuniquem e controlem o computador atravs de um teclado virtual, predio de palavras e sntese de vozDesenvolvido pela Intel Labs em conjunto com o Professor HawkingExtensvel e customizvelO que o ACAT?

#IntelNoTDC

5

Open Source

http://01.org/ACAThttps://github.com/01org/acat

#IntelNoTDC

6

Alguns detalhes tcnicosRoda no Windows 7 ou superiorCdigo escrito em C# usando Visual 2012 (funciona na 2015) e Microsoft* .NET Framework 4.5Microsoft* Office Interop Assemblies so usados para interagir com as apps do Office (Word e Outlook)Algumas ferramentas utilizadas no desenvolvimento:CodeMaidStyleCopReSharper

#IntelNoTDC

7

ArquiteturaAppsACAT Core LibraryACAT Extension LibraryExtensionsExtensionExtensionExtension...

#IntelNoTDC

8

Apps

ACAT QwertyACAT AbcACAT TryoutTalk Window

#IntelNoTDC

9

ACAT Core Library - Componentes

Word Prediction* ManagementUI Management

AnimationsPanelsWidgetsThemesText-to-Speech ManagementTalk Window Management*O ACAT utiliza o Presage, uma engine de predio de texto criada por Matteo Vescov. (http://presage.sourceforge.net)

#IntelNoTDC

10

ACAT Core Library - Agentes

#IntelNoTDC

11

ACAT Core Library - Atuadores

Actuator ManagementImage Sources: http://www.psfk.com/2013/02/intel-stephen-hawking.html & https://commons.wikimedia.org/wiki/File:Assistive_device.JPGActuators

Proximity SensorAssistive SwitchCamera

#IntelNoTDC

12

ACAT Extensions LibraryPermite criar extenses/plugins para o ACATSo carregadas dinamicamente durante o startup do aplicativo (reflection)Possui as classes base e interfaces necessrias para implementar pluginsTipos de ExtensoUIWord PredictorsAgentsActuatorsText-to-SpeechSpell Checkers

#IntelNoTDC

13

Criando um AtuadorCriar um projeto do tipo Class Library e adicionar referncias para as DLLs ACATCore.dll e ACATExtension.dllEstender as classes ActuatorBase e ActuatorSwitchBase Implementar os mtodos abstratos e usar os callbacks (Init, Resume, Pause, Dispose) para rodar a sua extenso (threads, configutao, etc)Chamar os mtodos OnSwitchActivated (Press), OnSwitchDeactivated (Release) ou OnSwitchTriggered(Click) para sinalizar a interao do usurio com o seu atuadorFazer o deploy da sua DLL para a pasta de extenses e atualizar arquivos de configurao

#IntelNoTDCIntel RealSense

Intel RealSense SDKScene UnderstandingEnhancedPhotographyAugmented RealityPerson & Face TrackingGesture RecognitionBackground RemovalObject Recognition and TrackingSpeech Recognition3D Object ScanningHand & Blob TrackingUser Facing

World Facing

#IntelNoTDC

15

Rastreamento (Posio)Landmarks (78 pontos)Pose / OrientaoExpressesReconhecimentoEstimativa de pulso

Intel RealSense - Mdulo de Face

#IntelNoTDCObjetivo: criar um atuador que controlado por expresses faciaisComponentes:RealSenseExpressionTracker: Utiliza o RealSense SDK para perceber as expresses do usurio e notifica o atuador utilizando eventosRealSenseActuator: traduz a intensidade das expresses em um comportamento de boto (press e release)

Intel RealSense - ACAT PluginRealSense Actuator ExtensionExpressionTrackerActuatorSwitch

Actuator Management

#IntelNoTDC

17

O atuador de cmera que vem com o ACAT um cliente de socket que espera a app ACAT Vision, que um servidor de socketA comunicao tem um protocolo simples e customizvel atravs de arquivos de configuraoO ACAT Vision ainda no open source, mas o cdigo ser liberado nas prximas verses

Another way to connect an actuatorACAT Vision (Server)Camera Actuator (Client)

Actuator Management

#IntelNoTDCO 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 Disponvel no Github* e NuGet*

SharpSenses*

#IntelNoTDCGithub* link: https://github.com/SharpSenses*/SharpSenses* NuGet* link: https://www.nuget.org/packages/SharpSenses*. 19

A idia criar um server fake, que replica a comunicao/protocolo do ACAT VisionPara notificar a ao do usurio basta enviar a string gesture=trigger;action=CT;conf=75;time=O ACAT tambm envia alguns eventos para o servidor (HideUI, ShowUI, ExitApp)

SharpSenses* + ACATACAT VisionCamera Actuator (Client)

Actuator ManagementFake ServerSharpSenses

#IntelNoTDCSumrioACAT uma boa opo para ajudar pessoas com limitaes a se comunicar e interagir com seus computadoresOpen Source: Voc est mais do que convidado em criar seu fork do ACAT ou criar novos pluginsExtenses: vamos ajudar as pessoas com novos atuadores, agentes e novas funcionalidades O Intel RealSense e o SharpSenses* podem ajudar a criar aplicaes mais acessveis

#IntelNoTDC

21

Dvidas?

#IntelNoTDC

22

RefernciasStephen Hawking e Intelhttp://iq.intel.com/behind-scenes-intel-keeps-stephen-hawking-talking/http://www.wired.com/2015/01/intel-gave-stephen-hawking-voice/ ACAThttps://github.com/01org/acathttp://01.org/ACAT Intel RealSense : https://software.intel.com/en-us/realsense/homeSharpSenses*: https://github.com/SharpSenses/SharpSenses

#IntelNoTDC

23

MUITO OBRIGADO! #INTELNOTDC

#IntelNoTDC

24

BAckup

#IntelNoTDCACAT ServerSharpSenses + ACATSharpSensesbool 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();

#IntelNoTDC

#IntelNoTDC

27