Upload
felipe-pedroso
View
213
Download
2
Embed Size (px)
Citation preview
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