Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Assistive Context-Aware Toolkit (Portuguese)

373 visualizaciones

Publicado el

Slides da palestra apresentada na trilha .NET do TDC Florianópolis de 2016

Publicado en: Tecnología
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Assistive Context-Aware Toolkit (Portuguese)

  1. 1. Assistive Context- Aware ToolkitFelipe Pedroso
  2. 2. #IntelNoTDC #IntelNoTDC
  3. 3. #IntelNoTDC Agenda • Stephen Hawking e Intel • O que é o ACAT? • Detalhes Técnicos • Arquitetura • Criando Extensões • Como? • RealSense + ACAT • SharpSenses + ACAT
  4. 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. 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?
  6. 6. #IntelNoTDC Open Source http://01.org/ACAT https://github.com/01org/acat
  7. 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
  8. 8. #IntelNoTDC Arquitetura Apps ACAT Core Library ACAT Extension Library Extensions Extension Extension Extension ...
  9. 9. #IntelNoTDC Apps ACAT Qwerty ACAT Abc ACAT Tryout Talk Window
  10. 10. #IntelNoTDC ACAT Core Library - Componentes Word Prediction* Management UI Management AnimationsPanels Widgets Themes Text-to-Speech Management Talk Window Management *O ACAT utiliza o Presage, uma engine de predição de texto criada por Matteo Vescov. (http://presage.sourceforge.net)
  11. 11. #IntelNoTDC ACAT Core Library - Agentes
  12. 12. #IntelNoTDC ACAT Core Library - Atuadores 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
  13. 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. 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. 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
  16. 16. #IntelNoTDC Rastreamento (Posição) Landmarks (78 pontos) Pose / Orientação Expressões Reconhecimento Estimativa de pulso Intel® RealSense™ - Módulo de Face
  17. 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. 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. 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. 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. 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
  22. 22. Dúvidas?
  23. 23. #IntelNoTDC Referências • Stephen Hawking e 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 • Intel® RealSense™ : https://software.intel.com/en-us/realsense/home • SharpSenses*: https://github.com/SharpSenses/SharpSenses
  24. 24. MUITO OBRIGADO! #INTELNOTDC
  25. 25. BAckup
  26. 26. #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();

×