• Nenhum resultado encontrado

Uma linguagem de domínio específico para descrição e reconhecimento de gestos usando sensores de profundidade

N/A
N/A
Protected

Academic year: 2021

Share "Uma linguagem de domínio específico para descrição e reconhecimento de gestos usando sensores de profundidade"

Copied!
103
0
0

Texto

(1)

“UMA LINGUAGEM DE DOMÍNIO ESPECÍFICO PARA DESCRIÇÃO E RECONHECIMENTO DE GESTOS USANDO SENSORES DE

PROFUNDIDADE” Por

DANIEL LEITE VIANA

Dissertação de Mestrado

Universidade Federal de Pernambuco posgraduacao@cin.ufpe.br www.cin.ufpe.br/~posgraduacao

(2)

UMA LINGUAGEM DE DOMÍNIO ESPECÍFICO PARA DESCRIÇÃO

E RECONHECIMENTO DE GESTOS USANDO SENSORES DE

PROFUNDIDADE

Trabalho apresentado ao Programa de Pós-graduação em Ciência da Computação do Centro de Informática da Univer-sidade Federal de Pernambuco como requisito parcial para obtenção do grau de Mestre em Ciência da Computação.

Orientador: Prof. Dr. André Luís de Medeiros Santos

RECIFE 2015

(3)

Catalogação na fonte

Bibliotecária Joana D’Arc Leão Salvador CRB4-532

V614l Viana, Daniel Leite.

Uma linguagem de domínio específico para descrição e reconhecimento de gestos usando sensores de profundidade / Daniel Leite Viana. – Recife: O Autor, 2015.

102 f.: fig., tab.

Orientador: André Luís de Medeiros Santos.

Dissertação (Mestrado) – Universidade Federal de Pernambuco. CIN, Ciência da Computação, 2015.

Inclui referências e apêndices.

1. Engenharia de software. 2. Linguagem de programação

(Computadores). 3. Linguagem de programação de domínio especifico (Computadores). I. Santos, André Luís de Medeiros (Orientador). II. Titulo.

005.1 CDD (22. ed.) UFPE-MEI 2015-110

(4)

Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco, sob o título “Uma Linguagem de Domínio Específico para Descrição e Reconhecimento de Gestos Usando Sensores de Profundidade” orientada pelo Prof. Andre Luis de Medeiros Santos e aprovada pela Banca Examinadora formada pelos professores:

______________________________________________ Profa. Veronica Teichrieb

Centro de Informática/UFPE

______________________________________________ Prof. Walter Franklin Marques Correia

Departamento de Design / UFPE

_______________________________________________ Prof. Andre Luis de Medeiros Santos

Centro de Informática / UFPE

Visto e permitida a impressão. Recife, 10 de agosto de 2015.

___________________________________________________ Profa. Edna Natividade da Silva Barros

Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.

(5)

e realizar muitos dos meus sonhos. A ele, cuja morte se deu precoce e repentinamente, dedico este trabalho.

(6)

A Deus pela minha vida e fé para alcançar o que muitas vezes pareceu inalcançável. Agradeço aos meus pais, Wilton (in memoriam) e Salomé, por serem exemplos de perseverança, sempre me incentivando a me graduar e agora pós-graduar. Obrigado pelo exemplo, confiança e amor! A minha mãe, em especial, por me entender nos momentos em que estive longe em busca dos meus sonhos. Meus pais são meus heróis.

Agradeço à minha tão amada esposa Lays, por todo o amor e carinho. Sua presença e compreensão nos (muitos) momentos difíceis me deram forças e coragem para erguer a cabeça e seguir em frente.

Eu gostaria de expressar gratidão especial ao meu orientador, Professor Doutor André Luís de Medeiros Santos, que acreditou que eu era capaz e me deu a oportunidade de realizar este trabalho me oferecendo todas as orientações necessárias e estando sempre disponível para interagir. Muito obrigado pelo tempo dedicado, constante paciência e ensinamentos durante todo o mestrado.

Agradeço aos funcionários, aos professores, e a todas as pessoas que fazem o Centro de Informática da Universidade Federal de Pernambuco. Obrigado por todos os recursos físicos e intelectuais disponibilizados que foram essenciais para o desenvolvimento desta pesquisa.

Aos professores Augusto Sampaio, Sérgio Soares, Silvio Meira e Verônica Teichrieb pelos ensinamentos nas disciplinas que tive oportunidade de cursar.

A Universidade Federal Rural de Pernambuco, pela liberação para elaboração deste trabalho.

Agradeço também aos meus irmãos, Dowsley e Danillo, que sempre foram amigos e companheiros insubstituíveis na minha vida.

Agradeço a toda família que sempre me apoiou e de quem me distanciei nesses anos. A realização de alguns sonhos muitas vezes acaba nos levando para mundos distantes.

Aos amigos com os quais sempre pude contar e compartilhar os sucessos e fracassos. Agradeço também ao meu animal de estimação, gato Snow, por alegrar a minha casa e com seus comportamentos inusitados tornar a minha vida mais leve.

Por fim, gostaria de manifestar minha eterna gratidão a todos aqueles que contribuíram de alguma forma para que eu estivesse agora redigindo esses agradecimentos e cujos nomes não menciono acima.

(7)

um movimento, cada pequena transferência de peso, cada gesto simples de qualquer parte do corpo revela alguma característica de nossa vida interior".

(8)

Sistemas baseados em gestos vêm se tornando uma alternativa para o desenvolvimento de aplicações mais intuitivas para os usuários, pois permitem a esses usuários interagirem de forma mais natural. Tais sistemas, em geral, requerem dispositivos de captura junto com alguma técnica de reconhecimento para que os gestos requeridos na interação natural sejam reconhecidos. A ausência de abstrações apropriadas para representação dos gestos dificulta as especificações de novas interações naturais. A representação de um gesto, quase sempre, envolve Aprendizagem de Máquina ou um avançado algoritmo de reconhecimento baseado nos dados da posição tridimensional do corpo humano fornecidos por sensores de profundidade, tal como o Microsoft Kinect. Além disso, as aplicações desenvolvidas tornam-se dependentes das bibliotecas de desenvolvimento dos dispositivos. Dessa forma, se o dispositivo for substituído por outro mais moderno ou de fabricante diferente quase todo o algoritmo de reconhecimento precisa ser reescrito.

O principal objetivo desta dissertação é a especificação e implementação da Linguagem para Especificação de Gestos (LEG), uma Domain-Specific Language (DSL) para a especificação e reconhecimento de gestos livres do corpo humano com suporte a diferentes dispositivos de profundidade. A LEG é uma linguagem declarativa, baseada na análise das interfaces gestuais para computador e no estudo das abstrações e representações do movimento humano, a fim de reduzir a complexidade no desenvolvimento de aplicações baseadas em gestos.

A implementação da linguagem foi realizada em duas etapas. Primeiro, foi criado um framework (Kinect Gesture) com a lógica para rastrear e identificar gestos descritos na linguagem. Na segunda etapa, foi definida a gramática e o interpretador foi construído. A abordagem adotada foi de DSL externa, sendo sua sintaxe textual e particular. A fim de avaliar a implementação proposta, 15 (quinze) gestos foram especificados em LEG e reconhecidos. Tendo como referência os resultados obtidos, chegou-se a conclusão que a linguagem apresentada neste trabalho diminuiu consideravelmente a complexidade necessária para realizar a especificação e o reconhecimento dos gestos.

Palavras-chave: Interação Humano-Computador. Interação Natural. Kinect. Reconhecimento de Gestos. Linguagens Específicas de Domínio. Programação Declarativa.

(9)

Systems Based-gestures are becoming an alternative to the development of more intuitive applications for users, because enable users to interact more naturally. Generally these systems need of capture devices together with some technique for gesture recognition. The lack of appropriate abstractions for the representation of gestures difficult to specifications of new natural interactions. For specify gesture, it is almost always necessary to acquire advanced knowledge in gesture recognition area and skills on chosen device and it is for this reason that the development of gestures is restricted. Often developers are using Machine Learning as support to creating database. Another approach is to create a recognition algorithm based on data from the depth sensor Kinect. Furthermore, due to the nature of the software development kits (SDK) provided by the hardware vendors to build gesture-based applications, the developed applications often become tightly coupled with the SDK. The result is that significant portions of the application need to be rewritten to run it on another device.

The main goal of this dissertation is to implement and evaluate GSL (Gesture Specific Language), a Domain-Specific Language for specification and identification of gestures with support to different depth sensors. GSL is a declarative programming language based on the analysis of gestural interfaces for computer and study of abstractions and representations of human movement, in order to reduce the complexity in application development based on gestures.

The development was conducted in two phases: the first was implemented a framework (Kinect Gesture) with logic for tracking and identify gestures. In the second phase, we built an grammar and a compiler. We adopted a external DSL approach, with specific and textual syntax. In order to evaluate the proposed implementation, we used GSL for specification and recognition of fifteen gestures. The results obtained show that GSL reduced considerably the complexity on perform the specification and the recognition of gestures.

Keywords: Human-Computer Interaction. Natural Interaction. Kinect. Gesture Recognition. Domain-Specific Languages. Declarative Programming.

(10)

1.1 Processo de Reconhecimento de Gestos. . . 18

2.1 Linha do tempo das tecnologias de interação. . . 22

2.2 Camadas para interpretação dos gestos. . . 32

2.3 Dispositivos de Rastreamento Anexo. . . 33

2.4 Dispositivos de Rastreamento Livre. . . 36

2.5 Modelos do Microsoft Kinect . . . 37

3.1 Planos e eixos do corpo humano. . . 50

3.2 Descrição de Expressividade da Labanotation . . . 52

3.3 Exemplo de sintaxe utilizada em Suma et al. (2013) . . . 54

3.4 Exemplo de sintaxe utilizada em Hachaj e Ogiela (2013) . . . 55

3.5 Exemplo de sintaxe utilizada em Figueiredo et al. (2014) . . . 56

4.1 Exemplo de código LEG . . . 60

4.2 Diagrama de Sintaxe das Cláusulas Principais de LEG . . . 61

4.3 Diagrama de Sintaxe da Cláusula relation de LEG . . . 62

4.4 Diagrama de Sintaxe da regra de tempo da Cláusula relation de LEG . . . 62

4.5 Diagrama de Sintaxe da Cláusula action de LEG . . . 63

4.6 Diagrama de Sintaxe da Declaração de Constantes de LEG . . . 64

4.7 Diagrama de Sintaxe da Declaração repeat de LEG . . . 65

4.8 Diagrama de Sintaxe de Comentários de LEG . . . 66

4.9 Arquitetura da linguagem LEG . . . 68

4.10 Estados de Rastreamento do Controlador de Gestos . . . 69

4.11 Coordenadas x, y, z e Mapa de Articulações . . . 70

4.12 Código em C# da transformação da matriz de rotação para objeto Quatérnio. . . 72

4.13 Código para modificar dispositivo/sensor da aplicação. . . 72

(11)

2.1 Especificações do Kinect for Windows v1 e v2 . . . 38

3.1 Resumo dos Trabalhos Relacionados . . . 57

4.1 Lógica de Coordenadas para Regra de Relação . . . 71

5.1 Resumo dos Sistemas Selecionados . . . 77

5.2 Exemplo de especificação de Gesto em LEG . . . 78

5.3 Resumo com os resultados da Avaliação . . . 79 5.4 Número de Linhas de Código usadas para especificar o reconhecimento de gestos 80

(12)

ANTLR Another Tool For Language Recognition. . . 67

API Application Programming Interface. . . 17

BNF Backus-Naur Form. . . 73

DLL Dynamic-Link Library. . . 67

DSL Domain-Specific Language. . . 17

FAAST Flexible Action and Articulated Skeleton Toolkit. . . 53

GDL Gesture Description Language. . . 54

IDE Integrated Development Environment. . . 47

IHC Interação Humano-Computador . . . 23

LEG Linguagem para Especificação de Gestos . . . 20

LoC Lines of Code. . . 80

LPPG Linguagem de Programação de Propósito Geral . . . 44

NUI Natural User Interface. . . 15

PC Personal Computer. . . 22

SDK Software Development Kit. . . 69

(13)

1 Introdução 15 1.1 Motivação . . . 15 1.1.1 Definição do Problema . . . 17 1.2 Objetivos . . . 19 1.3 Organização da Dissertação . . . 20 2 Interação Humano-Computador 21 2.1 Introdução . . . 21 2.2 Interação Humano-Computador . . . 22

2.2.1 Evolução dos Paradigmas de Interação . . . 24

2.2.2 Interação Natural . . . 27

2.2.3 Tipos de Interação Natural . . . 28

2.2.3.1 Interação baseada em Gestos . . . 29

2.3 Reconhecimento de Gestos . . . 31

2.3.1 Tecnologias para Rastreamento do Corpo Humano . . . 32

2.3.1.1 Dispositivos de Rastreamento Anexo . . . 33

2.3.1.2 Dispositivos de Rastreamento Livre . . . 34

2.3.1.3 O dispositivo Microsoft Kinect . . . 36

2.3.2 Reconhecimento de Gestos com Microsoft Kinect . . . 39

2.3.2.1 Reconhecimento por Comparação . . . 39

2.3.2.2 Reconhecimento por Algoritmo . . . 41

2.4 Considerações Finais do Capítulo . . . 42

3 Abstração do Movimento Humano 43 3.1 Introdução . . . 43

3.2 Abstração de Reconhecedores de Gestos . . . 44

3.2.1 Domain-Specific Languages . . . 44

3.3 Um Estudo das Representações do Movimento Humano . . . 47

3.3.1 Biomecânica . . . 48

3.3.2 Labanotation . . . 51

3.3.3 Descrevendo Movimento Humano na Computação . . . 52

3.3.4 Trabalhos Relacionados . . . 53

(14)

4 Solução proposta: DSL LEG 58 4.1 Requisitos da Linguagem . . . 58 4.2 A Sintaxe da Linguagem . . . 60 4.2.1 A Cláusula relation . . . 61 4.2.2 A Cláusula action . . . 63 4.2.3 Declaração de Constantes . . . 64 4.2.4 Declaração Repeat . . . 65 4.2.5 Comentários . . . 66 4.3 Implementação da Linguagem . . . 66 4.3.1 A Arquitetura da Linguagem . . . 67

4.3.2 Kinect Gesture: O Modelo Semântico da Linguagem . . . 68

4.3.2.1 Serviço de Reconhecimento de Gestos . . . 68

4.3.2.2 Sistema de Coordenadas e Orientação das Articulações . . . 70

4.3.2.3 Funções Matemáticas Utilizadas na Abstração . . . 71

4.3.2.4 Suporte a Diferentes Sensores de Profundidade . . . 72

4.3.3 O Interpretador da Linguagem . . . 72

4.3.3.1 Definição da Gramática da DSL LEG . . . 73

4.3.3.2 Análise Léxica e Sintática da Linguagem . . . 74

4.3.3.3 Análise Semântica . . . 74

4.3.4 Considerações Finais do Capítulo . . . 75

5 Avaliação Experimental 76 5.1 Metodologia e Projetos Selecionados . . . 76

5.2 Especificação e Resultados da Avaliação . . . 78

5.3 Análise e Conclusões sobre os Experimentos . . . 79

5.4 Considerações Finais do Capítulo . . . 81

6 Conclusões 82 6.1 Trabalhos Futuros . . . 83

Referências 86 Apêndice 92 A Palavras Reservadas de LEG 93 B Sintaxe Concreta de LEG 94 B.1 Regras . . . 94 C Diagrama de Classe do Kinect Gesture 97

(15)
(16)

1

Introdução

A democratização da informática se deve, entre outros fatores, a sua progressiva facilidade de utilização, e a interação entre humanos e computadores tem evoluído significativamente, mais especificamente nos últimos anos, onde houve uma grande mudança na forma como essa interação ocorre. São exemplos as telas sensíveis ao toque e sensores que reconhecem movimentos corporais e fala. Através desses, o usuário interage com a tecnologia da mesma forma como ele interage naturalmente com o mundo real. Isso é o emergente paradigma Natural User Interface(NUI) ou Interface Natural de Usuário (WIGDOR; WIXON, 2011).

No contexto do desenvolvimento de aplicações NUI, um dos pilares é a área de Reconhe-cimento de Gestos. Quando se fala em estudá-la, existe sempre a questão de como fazer para que o computador "entenda"um gesto. Um vasto conjunto de técnicas, métodos e abordagens podem ser utilizados. Mas, independentemente da técnica, para que um computador reconheça um gesto é necessário um dispositivo para capturar o usuário. Com os recentes dispositivos de sensoriamento tal como Microsoft Kinect, Leap Motion, é possível capturar mais informações úteis que auxiliam no reconhecimento, porém, estes dados estão em um nível baixo de abstração, ou seja, ainda é necessário um grande esforço por parte dos desenvolvedores na escrita de um algoritmo que interprete e posteriormente permita o reconhecimento de gestos específicos.

Por essas razões, desenvolver software que detecta um movimento é trabalhoso pois, requer um grande conhecimento para interpretar as informações dos sensores. Nosso trabalho é na área de Linguagens de Programação. Através da construção de abstrações dos modelos de representação do movimento humano, propomos uma linguagem para especificação e reconheci-mento de gestos. Com isso, buscamos diminuir a complexidade para implementação e execução de uma aplicação baseada no paradigma NUI.

1.1

Motivação

Aplicações baseadas em movimentos do corpo humano têm sido usadas em muitos do-mínios, tais como: Jogos (YIN et al., 2009), Acessibilidade (CHANG et al., 2012), Reabilitação (TSENG et al., 2014), Esporte e Treinamento (GAUTHIER; CRETU, 2014). Essas aplicações

(17)

permitem uma interação mais humana com a tecnologia. Mas, como todas as tecnologias, aplicações baseadas em gestos também possuem desafios.

Para o computador reconhecer um gesto do corpo humano, primeiramente é necessário identificar o usuário no ambiente e extrair informações úteis sobre o corpo dele. Isso é feito através de um hardware de captura que pode ser dotado de um sensor avançado para obter com mais precisão estas informações. Dispositivos como acelerômetros ou giroscópios anexados ao corpo do usuário são comuns. Mas o desconforto causado no usuário com acessórios anexos ao corpo torna a interação menos natural.

Outra abordagem é capturar o usuário sem a necessidade de um acessório anexo ao corpo. Comumente isso é feito usando câmeras de vídeo digitais. Mas, apesar de existirem modelos de alta resolução essas não são suscetíveis para a extração direta de informações do corpo do usuário, o que acarreta problemas como indeterminação da rotação do corpo, erros de dimensão e continuidade de movimentos.

A recente geração de dispositivos tal como Microsoft Kinect, Leap Motion, também permite capturar o usuário de forma mais natural. A vantagem é que esses dispositivos são dotados de sensores que capturam em tempo real um conjunto extra de informações, tal como um mapa tridimensional do posicionamento das articulações do esqueleto do usuário, o que permite uma maior precisão e eficiência na etapa de reconhecimento dos gestos.

No entanto, somente as informações sobre a localização tridimensional do corpo ou parte dele, não significa simplesmente que um gesto ou movimento seja reconhecido. Em outras palavras, o sensor, por si só, não interpreta o significado que possui o gesto humano.

Portanto, desenvolvedores de aplicações NUI precisam ainda especificar reconhecedores de gestos, que dão semântica as informações provenientes dos sensores. Isso é feito por uma técnica da área de Reconhecimento de Gestos. As técnicas tradicionais para este fim, de modo geral, são Reconhecimento por Comparação ou Reconhecimento por Algoritmo (WEBB; ASHLEY, 2012).

A mais utilizada é Reconhecimento por Comparação, que é baseada na área científica conhecida por Aprendizagem de Máquina. O caminho é "treinar"o computador para reconhecer o gesto. Essa abordagem geralmente é realizada com a gravação de imagens de um determinado gesto sendo executado por um conjunto de diferentes pessoas, posteriormente essas imagens são classificadas em uma base de dados e são comparadas com as imagens capturadas do dispositivo. Quando acontece uma combinação, determina-se que o gesto foi reconhecido. Esta técnica possui alguns inconvenientes:

 Necessita de diferentes pessoas e diferentes capturas para que o reconhecimento

torne-se eficaz. Com isso, a base de dados de análise de comparação dos gestos fica muito grande e o processo de treinamento torna-se custoso e demorado;

 Requer alto poder de processamento para comparação dos movimentos, o que pode

(18)

A outra técnica comum é descrever o gesto por Algoritmo. O desenvolvedor pensa cuidadosamente sobre o movimento que deve ser identificado e codifica um algoritmo com as etapas do movimento. Se todos os passos forem reconhecidos nos dados obtidos do sensor o gesto foi detectado. Infelizmente, esta técnica também têm significantes dificuldades.

 A primeira dificuldade está no fato de que o código fica de difícil entendimento pois

as Application Programming Interfaces (APIs)1dos dispositivos fornecem os dados do usuário em baixo nível. Por exemplo, para obter o ângulo de rotação do punho de um usuário, há que se fazer várias combinações de coordenadas e convertê-las em quatérnios2;

 Segundo, construir e manter estes gestos requer um conhecimento específico do

programador em relação as características dos dispositivos, que pode influenciar no reconhecimento do gesto;

 Por último, atualmente as aplicações baseadas em gestos são frequentemente

cons-truídas utilizando-se linguagens de programação de propósito geral, tal como C#, acrescidas de APIs para o dispositivo de sensoriamento utilizado. Se o dispositivo for substituído por outro mais moderno ou de fabricante diferente, certamente as aplicações terão que ser refeitas.

A Figura 1.1 mostra o processo envolvido no reconhecimento de um gesto, independente da técnica utilizada. O reconhecedor de gestos ativa o dispositivo e trata o fluxo de dados para comparar com as especificações feitas para a aplicação. Quando o gesto é detectado, o reconhecedor de gesto notifica a aplicação através de um evento.

1.1.1

Definição do Problema

Implementar reconhecedores de gestos é um problema bem conhecido na comunidade de pesquisa (RAUTARAY; AGRAWAL, 2012). Dentre as recentes propostas de solução, Domain-Specific Languages (DSLs)3têm sido adotadas como proposta para facilitar o desenvolvimento na área de Reconhecimento de Gestos (HOSTE; SIGNER, 2014).

De acordo com Mernik e Heering (2005) uma DSL permite desenvolver software para um determinado domínio de forma rápida e eficaz, produzindo programas que são fáceis de explicar, entender e manter.

O benefício mais importante do uso das DSLs é que o conhecimento de domínio é abstraído no nível certo. Partindo deste nível, os especialistas do domínio podem entender,

1API é uma interface de software que encapsula os detalhes de implementação para os outros softwares que

usarão os seus serviços.

2Conceito matemático utilizado para representação de rotações em três dimensões.

3Uma DSL (em português, Linguagem Específica de Domínio) é uma linguagem de programação com um

(19)

  AP L IC AÇ Ã O DRI V E R E A P I DO DI S P O S IT IV O HA R DW A RE DE SE N SO R IAM EN T O TÉCNICA DE RECONHECIMENTO DE GESTOS CAPTURA DADOS EM BAIXO NÍVEL GESTO RECONHECIDO REGISTRA EVENTOS USUÁRIO

Figura 1.1: Etapas de reconhecimento independente da técnica utilizada. Elaboração: O autor.

validar, e modificar o código, adaptando as necessidades específicas do domínio, o que torna as modificações mais fáceis de fazer e o seu impacto mais fácil de entender. Além de haver um aumento na flexibilidade, produtividade, confiabilidade e facilidade de utilização (DEURSEN; KLINT, 1998).

Quando escrevemos a descrição de um gesto, com uma DSL, estamos basicamente expressando elementos da sintaxe e semântica padronizada da abstração que foi feita de um modelo de representação de gestos. O que permite à implementação da linguagem uma posterior interpretação e reconhecimento do gesto.

Na área de Reconhecimento de Gestos corporais alguns trabalhos foram apresentados, tais como FAAST (SUMA et al., 2013), GDL (HACHAJ; OGIELA, 2013), PREPOSE (FI-GUEIREDO et al., 2014). Essas linguagens, por meio de uma abordagem declarativa, permitem descrever e reconhecer gestos do corpo humano sem se preocupar com detalhes de baixo nível. Isto representa um claro avanço em detecção de gestos.

Porém, os atuais trabalhos do estado da arte de DSL com reconhecimento de gestos, possuem limitadores em relação a descrição do movimento. Primeiramente, cada DSL possui uma sintaxe e semântica própria para descrever os gestos. Isto pode ser justificado, pois, até o momento, ainda não há um padrão de especificação formal de representação de gestos do corpo humano na computação. Alguns trabalhos tais como Mathias e Martell (2006) e Echtler, Klinker e Butz (2010) propõe uma notação computacional genérica para descrever gestos. O grande problema em propor uma representação única é prover a interoperabilidade de descritores dos diversos campos, tais como movimento de robôs, animação de personagens virtuais, psicologia, linguagens de sinais etc. Além disso, na área de Reconhecimento de Gestos, há que se considerar as limitações que os sensores impõem, pois só é viável expressar na descrição do gesto o que poderá ser reconhecível, ou seja, o que podemos capturar dos sensores.

(20)

entendida quando palavras-chaves são usadas, o que significa usar termos e conceitos necessários para descrever um gesto de forma mais aprofundada. Em resumo, a descrição de um gesto deve ser legível e ao mesmo suportar gestos complexos.

Para isso, realizamos um estudo das disciplinas e notações que têm lidado com a descrição de gestos do corpo humano já existentes, tal como: Hamill e Knutzen (2006). Também analisamos as soluções já produzidas na área da Computação para abstrair as primitivas e descritores que poderão tornar a descrição do gesto mais simples e completo. Dentro dessa análise, identificamos também que as linguagens utilizam o paradigma declarativo e poucas fornecem estruturas de controle que poderiam tornar a descrição de um gesto menos ambíguo, repetitivo e incondicional.

Outro empecilho é a arquitetura de implementação destas linguagens que desconsidera a independência de dispositivos no contexto do reconhecimento. O que poderia ser feito de forma similar a abordagem apresentada em Khandkar e Maurer (2010) que desacopla o hardware da linguagem. Da forma atual, se o dispositivo compatível com a linguagem for substituído por outro mais moderno ou de fabricante diferente, a implementação da linguagem terá que ser refeita.

Por essas razões, baseado nestas lacunas e considerando os critérios identificados por Hoste e Signer (2014), preferimos criar uma nova linguagem que propicie um modelo computaci-onal com um maior nível de abstração e que dê suporte a estruturas de controle na descrição dos gestos, enquanto fornece em tempo de execução o reconhecimento dos mesmos, independente do dispositivo de sensoriamento.

1.2

Objetivos

O principal objetivo deste trabalho é melhorar a especificação computacional de gestos corporais para reconhecimento por dispositivos de profundidade do tipo rastreamento livre como forma de reduzir a complexidade no desenvolvimento de aplicações baseadas em gestos.

Para isto, foram estabelecidos alguns objetivos específicos para alcançar o objetivo geral desta dissertação. São eles:

 Estudo detalhado sobre modelos de representação do movimento humano, a fim de

especificar um modelo computacional para os gestos e suas características.

 Baseado no estado da arte e da prática, demonstrar os requisitos e as técnicas para

reconhecimento de gestos, permitindo considerar as limitações dos dispositivos de sensoriamento para uma melhor abstração do domínio em questão.

 Baseado nos resultados dos objetivos anteriores, implementar uma linguagem de

programação de domínio específico com gramática, sintaxe e semântica próprias, considerando as representações já existentes acrescida de uma arquitetura de reco-nhecimento com diferentes hardwares de captura.

(21)

 Avaliação da solução apresentada, através da especificação e reconhecimento de

diferentes gestos provenientes de aplicações baseadas em gestos.

1.3

Organização da Dissertação

Para uma compreensão mais clara e objetiva da abordagem dissertativa, este trabalho foi estruturado em capítulos, organizados da seguinte forma:

O Capítulo 1 descreve a motivação para realização deste trabalho. Nele, foram explicita-dos a utilização e importância de interfaces gestuais, os desafios no processo de desenvolvimento das mesmas, bem como definição do problema e da proposta de solução do presente trabalho.

O Capítulo 2 aborda a temática de reconhecimento gestual. Neste sentido, inicialmente é apresentada uma descrição introdutória da evolução das interfaces de interação entre humano-computador até chegar ao paradigma de Interação Natural. Em seguida, discutimos os tipos de interação e mais especificamente a interação baseada em gestos. Posteriormente é abordado os dispositivos disponíveis para realizar a interação baseada em gestos, bem como o estado da prática no desenvolvimento de aplicações NUI.

O Capítulo 3 discorre sobre as soluções para facilitar o desenvolvimento de reconhecedo-res de gestos. Detalhamos o conceito de DSL, e as etapas para construção de uma. Abordamos as representações do movimento humano existentes e as disponíveis na área da Computação. Por fim, analisamos os trabalhos relacionados existentes fazendo uma análise comparativa com a proposta desta dissertação.

O Capítulo 4 expõe em detalhes a DSL de descrição de gestos humanos proposta neste trabalho, denominada Linguagem para Especificação de Gestos (LEG). Apresenta os recursos da linguagem LEG e uma série de exemplos ilustrando sua utilização. Após, são apresentados detalhes da arquitetura e etapas de implementação da linguagem.

O Capítulo 5 demonstra a avaliação experimental de uso da linguagem com objetivo de avaliar, na prática, a eficiência do reconhecimento considerando gestos livres do corpo humano para interação natural. Além disso, são discutidos os resultados obtidos, juntamente com uma análise acerca do uso da linguagem LEG.

O Capítulo 6 apresenta as conclusões desta pesquisa e indicação de algumas propostas de trabalhos futuros.

(22)

2

Interação Humano-Computador

2.1

Introdução

Neste capítulo, apresentamos uma revisão bibliográfica acerca dos assuntos relacionados ao problema e solução desta dissertação. Para isto, na Seção 2.2 relatamos uma breve evolução da interação humano computador até o período atual que resulta no paradigma de Interação Natural. Em seguida a Seção 2.3 descreve de forma geral o processo de reconhecimento de gestos por computador. Além disso, as Seções 2.3.1.1 e 2.3.1.2 apresentam os tipos de dispositivos disponíveis para realizar a interação baseada em gestos. Na Seção 2.3.1.3 o dispositivo Microsoft Kinect, que será utilizado na solução, é descrito em detalhes. A Seção 2.3.2 apresenta as técnicas e ferramentas de reconhecimento existentes para desenvolvimento de aplicações baseadas em gestos usando o Microsoft Kinect (v1 e v2) como sensor de profundidade. Ao final, na Seção 2.3.2.2 discutimos a abordagem de reconhecimento por algoritmo, que consiste no problema chave desta dissertação.

(23)

2.2

Interação Humano-Computador

Desde os primeiros computadores eletrônicos que eram usados por cartões perfurados as interfaces e as formas de interação entre humano e computador mudaram radicalmente. Os primeiros modelos não possuíam sequer um monitor de vídeo como dispositivo de saída e estavam associados a uma alta complexidade de uso.

Em grande parte essa mudança é resultado das pesquisas que visam estabelecer melhorias na relação entre humano e máquina. Dispositivos de hardware e interfaces de softwares que hoje são comuns, tais como: mouse, teclado, interface em janelas e monitor de vídeo, já estavam em estudo dentro da comunidade científica desde a década de 1960, porém, o produto comercial só aconteceu anos depois (MYERS, 1998). A Figura 2.1 ilustra onde e quando, aproximadamente, cada tecnologia surgiu.

1960   1965   1970   1975   1980   1985   1990   1995   2000  

Manipulação  de  Objetos  gráficos   Mouse   Interface  em  Janelas   Edição  de  Texto   Reconhecimento  de  Gestos  

1960   1965   1960   1960   1963   1980   1980   1980   1980   1977  

Produto  Comercial   Pesquisa  CienNfica  

Figura 2.1: Período aproximado de cada tecnologia de interação humano-computador, desde o conceito proveniente do meio científico até tornar-se um produto vendável. Fonte:

Myers (1998).

Apesar das pesquisas científicas voltadas a relação entre humano e computador estarem na base da computação digital, foi devido ao surgimento da computação pessoal, em 1980, que houve a necessidade de intensificar os esforços em pesquisas procurando aperfeiçoar e desenvolver novos modos de interação entre humano-computador (MYERS, 1998).

A computação pessoal rompeu a barreira dos grandes centros de processamento de dados. Os Computadores Pessoais1passaram a estar presentes nas residências como meio de entretenimento e nos escritórios como ferramentas de trabalho. Esse grande alcance dos PCs pode ser explicado principalmente pela nova maneira que a interação entre máquina e usuário ocorre. As características inovadoras são as interfaces gráficas mais intuitivas e dispositivos de

(24)

entrada que permitiam uma interação mais rápida, tal como mouse, teclado e monitor de vídeo (ROCHA; BARANAUSKAS, 2003).

Nesse contexto, de ruptura de paradigma com uma emergente quantidade de usuários, a importância da interação entre humano-computador atingiu maior repercussão e angariou o interesse de mais pesquisadores. O termo Interação Humano-Computador (IHC)2, foi adotado para descrever esse novo campo de estudo. Conforme Rocha e Baranauskas (2003), IHC pode ser definida como:

"disciplina relativa ao design, avaliação e implementação de sistemas compu-tacionais interativos para uso humano e aos fenômenos que os cercam".

Atualmente, a pesquisa em IHC envolve áreas de conhecimento como Psicologia, Filo-sofia e Ergonomia (ROCHA; BARANAUSKAS, 2003). Ao conseguir otimizar a relação entre humanos e máquinas através do entendimento do comportamento humano, IHC torna-se uma área essencial para evolução das interfaces que conhecemos hoje em dia (WIGDOR; WIXON, 2011). Hoje é possível interagir com um sistema computacional simplesmente falando ou realizando um gesto.

A evolução da interação entre humano-computador é um assunto muito importante para esta dissertação. Algumas aplicações têm estilos muito distintos de interação, e diferentes tipos de interação requerem diferentes interfaces que estão associadas a diferentes tipos de dispositivos de entrada e saída. O agrupamento dos conceitos e tecnologias de interação transpuseram fases que são formalmente definidas por paradigmas (WIGDOR; WIXON, 2011).

Entendendo os Paradigmas

Para motivar o leitor a pensar sobre a importância do desenvolvimento dos paradigmas, primeiro explicaremos o que significa o termo paradigma no contexto de IHC.

De acordo com Harrison, Tatar e Sengers (2007) o termo paradigma é uma forma para descrever "ondas"de pesquisa de uma área de estudo científico. Entende-se como paradigma de interação uma filosofia ou um conjunto de preocupações que um projetista de interação deve pensar sobre o modelo conceitual do projeto de interação de sistemas humano-computador (PREECE; ROGERS; SHARP, 2002).

Cada paradigma de interação possui características próprias que permitem inovação na relação entre humano e computador. Enquanto diferentes paradigmas focam em diferentes problemas, uma aplicação baseada em um certo paradigma pode co-existir com outra aplicação. Isso significa que um paradigma não substitui o outro. No entanto, cada paradigma leva uma experiência diferente de interação para a área de IHC (HARRISON; TATAR; SENGERS, 2007).

(25)

2.2.1

Evolução dos Paradigmas de Interação

A presente Seção fornece uma perspectiva de como e porquê evoluiu a interação entre humano-computador. Adotamos uma ênfase nos avanços e inovação providos por cada paradigma de interação, e não tanto na precisão histórica de quando foram introduzidos.

Segundo Dix et al. (2004) exitem quinze paradigmas diferentes, mas nem todos são bem definidos ou são subdivisões para suportar uma tecnologia específica, tal como o paradigma de interação por sensores, que está sob o paradigma de Interação Natural. Portanto, apresentamos a seguir uma breve explanação da evolução sobre os paradigmas relacionados e importantes para o tema desta dissertação.

Computação Pessoal

Conforme já discutimos na Seção 2.2 a década de 1980 marcou uma nova era com o início da computação pessoal. Os usuários pararam de compartilhar grandes computadores e começaram a ter acesso aos seus PCs. A Linha de Comando era a interface padrão dos primeiros computadores pessoais. A interação acontece ao registrar comandos por linhas "escritas"através do teclado. Atualmente esse tipo de interface não é muito comum, pois exige conhecimento prévio para ser utilizada, sendo ainda utilizada em aplicações de controle e configuração de Servidores e Kernel3dos sistemas operacionais (MYERS, 1998).

Com o advento e sucesso comercial imenso da computação pessoal, a ênfase foi para aumentar a usabilidade a fim de permitir que o usuário se envolvesse com mais do que uma linha de texto para controlar o computador.

Janelas e paradigma WIMP

Os seres humanos são capazes de pensar em mais de uma coisa ao mesmo tempo, e na realização de alguma tarefa, eles frequentemente interrompem a sua atual linha de pensa-mento para buscar alguma outra informação relacionada ao trabalho. O conceito de Janela foi usado como metáfora para representação desta divisão do pensamento logicamente separado no computador (DIX et al., 2004).

A noção de metáforas de interfaces foi introduzida para prover às pessoas um esquema do funcionamento da interface que representasse significados comuns. As metáforas funcionam como modelos naturais, nos permitindo usar conhecimento familiar de objetos concretos e experiências para dar estrutura a conceitos mais abstratos (ROCHA; BARANAUSKAS, 2003). Com esse novo conceito totalmente gráfico de uso do computador, foi possível diminuir a curva de aprendizado, comparando-se com a interface de linha de comando que requer comandos "decorados"digitados no teclado. Rapidamente o novo estilo de interação predominou no uso dos

(26)

computadores e o paradigma WIMP4, que é baseado em Janelas, Ícones, Menus e Apontadores foi estabelecido (DIX et al., 2004).

Um dos elementos centrais deste paradigma são os Ícones. Uma pequena figura que pode representar um objeto ou espaço dentro da tela. Outro elemento facilitador do paradigma WIMP é o Menu, que apresenta uma lista de opções ou comandos para o usuário escolher e operar o computador. O uso comum é prover acesso a várias operações, tais como salvar ou abrir um arquivo. O menu foi introduzido ainda na era da interface por linha de comando. Mas, com o advento dos Apontadores, eles ganharam diferentes mecanismos de interação.

O Apontador é um mecanismo de interação que em conjunto com um dispositivo contro-lador, tal como o mouse, permite interagir reproduzindo em um cursor o movimento humano de apontar para uma tela. Usuários podem selecionar, movimentar e redimensionar objetos gráficos com resposta constante do sistema. O mouse é o dispositivo de entrada mais comum usado para este tipo de interação, mas, outros dispositivos também podem ser usados com a mesma proposta, tal como joysticks, trackpads ou canetas digitais (MYERS, 1998).

Manipulação direta

Um paradigma diretamente relacionado ao WIMP é Manipulação direta. Esse termo é atribuído a Ben Shneiderman, que em 1982, utilizou-o para descrever o apelo dos gráficos em sistemas interativos. Sua premissa básica é que, assim como em um diálogo habitual entre os seres humanos, onde um responde depois de concordar com a proposta do outro, no diálogo entre o humano e o computador também deve ter mecanismos de reação rápida, de forma visual ou por áudio, a fim de fornecer informações de resposta para cada ação do usuário (DIX et al., 2004).

Mecanismo de resposta rápida é apenas uma característica de interação do paradigma de manipulação direta. Ben Shneiderman observando sistemas computacionais interativos de sucesso idealizou que alguns princípios deveriam ser incorporados no paradigma. Esses princípios para uma interface de manipulação direta foram resumidos por Dix et al. (2004), conforme os tópicos a seguir:

 Fácil visibilidade dos objetos de interesse.

 Ação incremental com resposta rápida sobre todas as ações.

 Reversibilidade de todas as ações, para que os usuários sejam encorajados a explorar,

sem preocupação, todo o sistema.

 Correção de todas as ações, de modo que cada ação do usuário é uma operação legal.  Substituição de comandos complexos por ações para manipular diretamente os objetos

visíveis (e, portanto, o nome de manipulação direta).

(27)

Uma consequência do paradigma manipulação direta é que já não há uma distinção clara entre entrada e saída. O que você vê em uma tela é a representação do computador para o produto final. Por exemplo, quando o usuário estiver usando um processador de texto, é capaz de ver que o documento na tela é uma representação fiel da cópia que será impressa. Esse conceito é conhecido pelo acrônimo WYSIWYG ("What You See Is What You Get"), que significa em português "O que você vê é o que você tem".

Para Rocha e Baranauskas (2003), a importância de uma interface WYSIWYG é a redução entre a intenção do usuário e o significado de expressão disponível na interface, pois, quanto mais estrutura de interface o usuário tiver que entender, maior será a distância que ele terá da interação proposta. Portanto, a interface deve ser revelada diretamente, ao invés do usuário ter que computá-la mentalmente para entender.

Computação ubíqua

O termo foi usado pela primeira vez em 1991, por Mark Weiser, o então cientista-chefe do Xerox PARC. Weiser observou que as tecnologias mais profundas são aquelas que se atrelam a vida cotidiana de uma maneira que tornam-se indistinguíveis no meio ambiente. Sendo assim, ao propor o paradigma de interação da computação ubíqua, sua visão era que os computadores tornariam-se invisíveis no ambiente, de modo que não teríamos mais consciência se gostaríamos, ou não, de usá-los (DIX et al., 2004).

No entanto, até o final do século 20, aproximadamente, o que prevaleceu como intera-ção computacional predominante, foram os paradigmas Janelas, WIMP e Manipulaintera-ção direta (PREECE; ROGERS; SHARP, 2002).

Conforme previsão da Lei de Moore5, o poder computacional de processamento dos computadores continuou evoluindo e seu tamanho e custo diminuindo, o que permitiu, em parte, criar novos dispositivos (ex.: smartphones, tablets, câmeras digitais), novas plataformas de comunicação (ex.: internet), novas infraestruturas amplamente disponíveis (ex.: GPS), novos dispositivos de interação (ex.: sensores de captura de movimento, voz e expressões faciais).

Essas tecnologias proporcionaram a capacidade de mover o usuário para além dos com-putadores pessoais, bem como, tornou-se possível explorar formas de interação mais invisível, não aos olhos do usuário, mas, sim de uma forma mais natural para o mesmo.

A real tendência da convergência dessas tecnologias coopera para tornar o sonho da computação ubíqua possível, porém, a premissa é que os computadores devem ser concebidos para serem integrados perfeitamente no mundo físico da forma que ampliem as capacidades humanas (DIX et al., 2004).

5Considerada uma teoria a respeito da evolução do hardware, apresentada em 1965, por Gordon Moore, um dos

(28)

2.2.2

Interação Natural

A história das interfaces de interação segue um caminho da complexidade para simpli-cidade, das máquinas projetadas com propósito científico usadas somente por programadores, para a computação ubíqua, disponível para qualquer pessoa o dia todo. Ainda, dentro dessa evolução de paradigmas que foi discutido na Seção anterior, está implícito que a comunicação entre pessoas e máquinas tem sido determinada principalmente por restrições tecnológicas, onde humanos se adaptam a interação "sugerida"pela máquina.

Porém, na real presença de sistemas computacionais em todos ambientes, exigir dos usuários um aprendizado específico para cada interface não faz muito sentido. Em termos de sensoriamento, já é possível fazer máquinas capazes de se adaptarem a linguagem humana.

O termo Interação Natural surge na intenção de explorar essas novas máquinas, capazes de oferecer sensoriamento e "entender"o Ser humano da mesma forma que ele é entendido no mundo real (WIGDOR; WIXON, 2011).

Definição

Por se tratar de um conceito recente, ainda não há na literatura uma definição única e universalmente aceita sobre o que exatamente é Interação Natural e, apesar de suposto, Interação Natural não é precisamente um paradigma como os discutidos na seção anterior.

Interação Natural é o caminho para criar paradigmas alternativos para guiar o futuro dos projetos de interação (VALLI, 2008), e isso não significa que o sistema deve imitar a realidade humana ou criar uma metáfora derivada de um conceito do mundo real. Tampouco serve de diretrizes para criar um novo tipo de interface para mouse ou teclado.

Valli (2008) define Interação Natural em termos de experiência humana: as pessoas se comunicam entre si através de gestos, expressões faciais e fala, da mesma forma que percebem o mundo olhando em volta, ouvindo e manipulando materiais físicos. O pressuposto-chave aqui é que as pessoas possam interagir com a tecnologia da maneira que interagem com a vida cotidiana, como a evolução cultural e educação ensinou-os a fazer.

Para Wigdor e Wixon (2011), refere-se ao comportamento do usuário e percepção do sistema durante a experiência de uso. Eles descrevem a seguinte analogia para exemplificar essa definição: em uma partida real de futebol, a bola é chutada diretamente para o gol. O goleiro por sua vez, se move exatamente na direção para agarrar a bola de uma forma tão familiar, que se sente como fosse parte do seu corpo. Caso esse exemplo acontecesse em uma simulação computacional, a Interação Natural deveria espelhar as capacidades do goleiro e satisfazer as suas expectativas dentro do contexto, no caso o jogo de futebol. A excelência é fazer isso no primeiro momento da interação, em vez de várias tentativas. Com isso, o usuário não percebe o sistema, este se torna da natureza do usuário.

(29)

interação em que as pessoas se comunicam naturalmente através de gestos. Mas, independente do ponto de vista, é importante destacar que Interação Natural não é apenas uma tendência, é uma realidade. Está sendo pesquisada, desenvolvida e aplicada. Para mostrar como isso está acontecendo, na próxima Seção, discutiremos os tipos de interação natural e como cada um permite a construção de interfaces mais natural para o Ser humano.

2.2.3

Tipos de Interação Natural

Como visto, Interação Natural não se trata de uma tecnologia, mas sim de uma experiência que pode ser criada usando tecnologia. Deste modo, é importante notar que, esta experiência está diretamente relacionada aos tipos de atividades que são naturais para o Ser humano. E, de um amplo ponto de vista, as atividades naturais são aquelas para os quais os seres humanos nascem preparados ou são comuns à humanidade de forma geral, por exemplo: falar, comer, andar e até mesmo sorrir ou chorar.

De fato, falar é natural ao ser humano, porém, essa atividade só se transforma em comunicação quando existe um idioma definido por um protocolo bem elaborado. Em outras palavras, as atividades naturais estão associadas a formas de expressões humanas que contemplam diferentes significados culturais e possuem origem ancestral. Logo, a interação será natural se considerar diferentes culturas e for capaz de processar diferentes significados com base no contexto (VALLI, 2008).

Além disso, o projeto de um sistema de interação deve considerar o tipo de interação que melhor expressa a experiência do público-alvo. E, sendo a interação feita por pessoas, dada a natureza humana, os tipos de interação que podem ser derivadas envolvem toque, comunicação verbal, expressões faciais e gestos (WIGDOR; WIXON, 2011). Reunimos breves explanações sobre cada uma a seguir:

 Toque: nesse tipo de interação, geralmente, os dispositivos de entrada são telas

sensíveis, onde o usuário usa os dedos das mãos para interagir com o sistema.

 Comunicação Verbal: usa-se a voz do usuário que é um meio comum para

comuni-cação humana. Normalmente é realizado sem equipamento junto ao corpo, usando um microfone. Reconhecimento de voz automático é uma característica fundamental para essa interface.

 Expressões faciais: sistemas de reconhecimento de expressões faciais, inferem, em

tempo real, as emoções do usuário, utilizando imagens do rosto capturadas por uma câmera.

 Gestos: Uma ideia bastante ampla é que um toque ou um sorriso pode ser considerado

um gesto humano. De fato, mas, o termo aqui é utilizado para identificar movimentos livres do corpo humano, ou parte dele (ex. braço) que expressa uma comunicação (ex.

(30)

acenar ou tchau). A execução de um gesto desse tipo é bastante rica em informações devido ao alto grau de liberdade do usuário (BUXTON; BILLINGHURST, 2011). Na identificação, pode ser utilizado uma grande variedade de sensores ou câmeras de vídeo. Mais à frente, abordamos em detalhe como é feita a interação baseada em gestos e como o presente trabalho visa contribuir para permitir interações mais naturais baseado nessa vertente.

Todos esses tipos transmitem uma sensação mais direta de liberdade para o usuário. Individualmente, cada tipo conduz a interação de forma mais conveniente dentro do contexto do usuário. Por exemplo, uma interação natural feita por gestos não faria sentido em um carro, pois, para dirigir o motorista requer, na maior parte do tempo, as duas mãos. Assim, mais viável é empregar comandos por voz ou telas sensíveis ao toque, não muito longe dos outros controles disponíveis ao condutor (WIGDOR; WIXON, 2011). Por outro lado, não é fácil para o usuário utilizar sistemas puramente baseados em comando de voz. Nem todo mundo sente-se confortável falando interacionalmente em público (REGO; MOREIRA; REIS, 2011).

A interação baseada em gestos possui movimentos inconscientes que podem ser consi-derados os mais naturais, uma vez que representam a forma mais espontânea e honesta do que acontece com o nosso corpo sem a gente pensar nisso (REGO; MOREIRA; REIS, 2011). Esta dissertação está relacionada com a criação de uma linguagem para especificar gestos no intuito de prover um ambiente de produtividade para desenvolver e explorar a interação baseada em gestos. Na próxima seção relatamos os principais fatores, vantagens e facilidades da interação baseada em gestos.

2.2.3.1 Interação baseada em Gestos

Gestos têm sido uma promissora abordagem desde as primeiras pesquisas na área de IHC. Uma demonstração muito inicial do conceito de reconhecimento de gestos está presente em Sketchpad (SUTHERLAND, 1964). A interação ocorre através de uma caneta óptica que se baseia no movimento do braço e mão do usuário para manipular objetos gráficos em uma tela de vídeo. Esse conceito de interação por gestos é similar ao uso do mouse em conjunto com o paradigma de Manipulação direta. Porém, na Interação Natural a ideia de interação por gestos é estendida a partir dos novos métodos para perceber e interpretar o movimento do corpo humano.

Na área de IHC a definição bastante comum de gestos é feita por Kurtenbach e Hulteen (1990), que registra:

"Gesto é um movimento do corpo que contém informações. Acenar tchau é um gesto. Pressionar a tecla de um teclado não é um gesto, porque o movimento de um dedo em sua maneira de bater uma tecla não é observado nem significativo. Tudo o que importa é qual tecla foi pressionada"(tradução livre).

Considerando o que foi discutido até agora sobre Interação Natural, podemos admitir que a forma com que a tecla foi pressionada também pode incluir informação, por exemplo:

(31)

a diferença da tecla ser pressionada sutilmente ou com força, poderia demonstrar, respectiva-mente, um sentimento de calma ou raiva, o que poderia ser interpretado pelo computador para ativar/desativar o alfabeto maiúsculo do teclado.

De qualquer forma, se considerarmos a tecla como comando, a pressão exercida na tecla não interfere, pois, o sinal referente a um caractere será o mesmo não importando como a tecla seja pressionada. Nesse caso, o gesto torna-se uma "manipulação"de um objeto, não comportando outro significado. Por outro lado, ao acenar tchau, o mesmo movimento pode ter significado diferente dependendo do contexto que é realizado. Por exemplo, alguém que está em um restaurante lotado e quer chamar atenção do garçom ou simplesmente um aceno de despedida (WEBB; ASHLEY, 2012)

Portanto, a comunicação por gestos expressam ideias, sentimentos e intenções, algumas vezes substituindo palavras e reforçando o discurso (BUXTON; BILLINGHURST, 2011). Nesta dissertação, estamos particularmente interessados em como os gestos denominados naturais podem ser utilizados na comunicação com sistemas computacionais, e isso não se trata da máquina revelar atitudes e sentimentos das pessoas. Se trata de gestos como comandos, que expressam intenções e descartam a necessidade de aprendizado e treinamento. Nesse contexto, faremos uso da seguinte definição proposta por Mitra e Acharya (2007):

"Gestos são movimentos corporais expressivos e significativos realizados atra-vés da movimentação dos dedos, mãos, braços, cabeça, face ou corpo com o objetivo de: 1) transmitir uma informação ou 2) interagir com o ambi-ente."(tradução livre).

Antes de relatarmos como a interação baseada em gestos ocorre com computadores é importante considerar o papel do gesto humano à comunicação humana. Por isso, no próximo tópico apresentamos uma perspectiva da literatura relacionada à psicologia e antropologia para categorizar os tipos de gestos e seus atributos.

Classificação dos Gestos Humanos

Cadoz (1994) determina que os gestos podem existir de forma independente ou envol-vendo objetos externos. Acenar, aplaudir ou apontar uma direção são gestos independentes no sentido de não ser necessário nenhum objeto para estes serem realizados. Logo, chutar uma bola, pegar, apertar, entregar, apontar e mover algo, dependem de um objeto externo. Partindo desse entendimento os gestos são ainda classificados quanto a sua funcionalidade e divididos em três categorias:

 semióticos: utilizados para comunicar uma informação significativa. É o tipo de

gesto comum na comunicação entre humanos;

 ergóticos: deriva da noção de modelar o mundo físico e criar artefatos. Utilizado

(32)

 epistêmicos: utilizados para aprender informações em relação à temperatura, pressão,

forma, orientação ou peso (sentido tátil).

Essa classificação fornece um molde bastante proveitoso no entendimento geral dos gestos humanos. Há outras classificações multidisciplinares. No entanto, pesquisas na área de Ciências da Computação quase sempre referenciam o trabalho de Cadoz (1994) e esta classificação foi a que se mostrou mais adequada à esta dissertação. Pois, estamos interessados em gestos ao ar livre que significam intenções ou comandos. Logo, teremos como foco os gestos semióticosque são utilizados para comunicar uma informação significativa. Rime e Schiaratura (1991) propõe a seguinte sub-classificação para os gestos semióticos:

 Simbólicos: gestos cujo significado é único dentro de uma mesma cultura. Como, por

exemplo, o gesto de aprovação feito ao se exibir a mão fechada apenas com o polegar voltado para cima. Linguagens de sinais também se enquadram nesta categoria;

 Dêiticos: gestos mais comumente utilizados em IHC, pois são aqueles utilizados para

apontar ou direcionar a atenção a um determinado evento ou objeto.

 Icônicos: estes são os gestos utilizados para transmitir informações quanto ao

tama-nho, forma ou orientação de um objeto em questão. É um tipo de gesto emblemático que pode especificar o ponto de vista a partir do qual uma ação é narrada.

 Pantomímicos: estes são os gestos realizados ao utilizarmos um objeto "invisível",

como em um jogo de mímica.

A complexa natureza dos gestos humanos possui diferentes representações em diferentes níveis. Nos gestos simbólicos é preciso compartilhar recursos sintáticos e semânticos suficientes entre os participantes para que a comunicação faça sentido. Os gestos icônicos devem estar acompanhados de um discurso para poder ser entendido. Os gestos pantomímicos por ter seu teor alusivo tornam-se, por vezes, uma tarefa complexa decifrá-los. Embora os gestos dêiticos também possam ser acompanhados de um discurso para ser entendido, comparando-os com as outras formas de gestos, esse pode ser considerado o de comunicação mais explícita e são os mais utilizados em interações computacionais (KARAM; SCHRAEFEL, 2005).

Para explorar o uso de gestos dêiticos em IHC é necessário fornecer os meios pelos quais eles possam ser interpretados por computadores. Na próxima Seção 2.3 apresentamos um levantamento das soluções e desafios para resolver os problemas de captura, representação e reconhecimento dos gestos humanos no contexto do desenvolvimento de software.

2.3

Reconhecimento de Gestos

A área de Reconhecimento de Gestos refere-se a todo o processo necessário para converter um gesto humano em comando (RAUTARAY; AGRAWAL, 2012). Esse processo envolve etapas

(33)

distintas de análise e processamento. Vatavu e Pentiuc (2008) identificou quatro camadas, que são referentes a: (1) execução do gesto no mundo real, (2) processo de aquisição ou captura dos dados, (3) interpretação e reconhecimento, (4) até o nível de aplicação que permite disparar uma ação associada ao gesto que foi executado. A Figura 2.2 mostra os diferentes níveis descritos neste parágrafo.   CAPTURA EXECUÇÃO DO GESTO MU N D O R E A L MODELO, INTERPRETAÇÃO E RECONHECIMENTO

APLICAÇÃO

IN T E R A Ç Ã O H U M A N O -CO M P UT A DO R

Figura 2.2: Partindo do formato bruto, o gesto é capturado por um dispositivo que repassa o fluxo de dados para camada acima, então os dados coletados são interpretados

de acordo com o gesto modelado e assim é realizado o reconhecimento. Por fim, caso o gesto seja reconhecido, um evento associado é acionado pela aplicação que está no nível

mais alto.

O principal desafio da área é lidar com a complexidade dos gestos. Reconhecer gestos envolve um considerável número de graus de liberdade do movimento humano, diferença de silhueta das pessoas e muitas variabilidades na velocidade de execução dos gestos. Além disso, é preciso também equilibrar a precisão-performance-utilidade de acordo com o tipo de aplicação (RAUTARAY; AGRAWAL, 2012).

O passo inicial para construir tais sistemas de reconhecimento de gestos é a decisão pela tecnologia que será usada para rastrear o corpo humano. A próxima seção engloba as tecnologias envolvidas nessa etapa.

2.3.1

Tecnologias para Rastreamento do Corpo Humano

Inicialmente, antes de tratarmos dos dispositivos de rastreamento do corpo humano, faremos uma breve consideração em relação ao corpo humano. O rastreamento humano permite capturar partes específicas, tal como expressões faciais (HJELMAS; LOW, 2001), movimentos das mãos e dos dedos (RAUTARAY; AGRAWAL, 2012), dos olhos (DUCHOWSKI, 2007), etc.

Quando tratamos de rastrear o corpo por inteiro, ao contrário do que pode ser entendido, não estamos abordando em conjunto todas as partes específicas. O foco são os membros e articulações do corpo humano. As técnicas para rastreamento de corpo inteiro são diferentes, por exemplo, do rastreamento dos olhos (KARAM, 2006).

Dessa forma, o trabalho aqui apresentado trata do rastreamento do corpo humano, considerando membros e articulações superiores e inferiores no contexto da Interação Natural Humano-Computador. Os gestos do corpo humano são, de forma geral, expressivos e tem

(34)

aplicabilidade extensa em IHC (BUXTON; BILLINGHURST, 2011). O que nos motiva à, na próxima seção, abordar as tecnologias tradicionais, bem como as de nova geração, que buscam perceber o corpo do usuário.

2.3.1.1 Dispositivos de Rastreamento Anexo

Uma das formas de capturar os movimentos corporais é através do uso de dispositivos anexos ao corpo, também chamados de dispositivos vestíveis. Em geral, acessórios desse tipo ficam presos ao corpo do usuário e sensores capturam informações do movimento humano. As in-formações são transmitidas por fio ou por tecnologias sem fio para uma central de processamento realizar a interpretação e reconhecimento. Abordamos alguns dispositivos comerciais recentes e de sucesso, bem como protótipos avançados que poderão se tornar, futuramente, tecnologias comerciais.

M.Y.O. (THALMICLABS, 2014) (ver Figura 2.3-A) é uma tecnologia comercial bastante recente para rastreamento da mão e antebraço. Foi lançado em Setembro de 2014. No caso deste aparelho, ele é usado em um dos antebraços (ou até mesmo em ambos) próximo ao cotovelo. Conforme o usuário realiza algum gesto o bracelete detecta a corrente elétrica emitida pela contração dos músculos do antebraço através de uma pulseira e envia a um computador via tecnologia sem fio. Os criadores citam, entre os usos, desde a substituição do mouse até mesmo o controle remoto de VANT6.

Figura 2.3: (A) M.Y.O. (THALMICLABS, 2014) (B) Digits (KIM et al., 2012) (C) Kit Wii Remote (NINTENDO, 2006) (D) Kit PlayStation Move (SONY, 2010) (E) Cyber

Glove III (CYBERGLOVESYSTEMS, 2015).

Ao tornar-se um produto comercial, independente do número de unidades comerciali-zadas, o M.Y.O. pode ser considerado um dispositivo de sucesso. A maior parte dos projetos

(35)

permanecem apenas como protótipos (DIPIETRO; SABATINI; DARIO, 2008). Um exemplo de protótipo que pode, futuramente, se tornar uma tecnologia comercial é o Digits (ver Fi-gura 2.3-B) (KIM et al., 2012). Desenvolvido por pesquisadores da Microsoft, Digits é um sensor de pulso para interações naturais. O protótipo apresentado recupera a posição da mão e dos dedos em três dimensões, sem a necessidade de uma luva. O dispositivo emite um feixe de luz infravermelho que combinado com uma central de processamento própria permite capturar infor-mações das articulações dos dedos. No entanto, se o protótipo chegar a um produto comercial, estas características podem ser diferentes. Em relação ao lançamento, nenhuma informação foi disponibilizada.

Para que um protótipo torne-se um produto viável, há diversos fatores que podem influ-enciar. O tempo necessário para o avanço e desenvolvimento das tecnologias são considerados. Além disso, dispositivos específicos para um cenário de interação mais restrito em conjunto com a plataforma o qual está inserido também podem colaborar na viabilidade do dispositivo.

Nesse contexto, um exemplo relevante de protótipos que tornaram-se dispositivos de sucesso são os controles para consoles de jogos que são concebidos para serem utilizados em aplicações de entretenimento em uma plataforma de videogame já consolidada comercialmente. Dois casos de sucesso recente são o Wii Remote (ver Figura 2.3-C) (NINTENDO, 2006), disponível desde 2006, e PlayStation Move (ver Figura 2.3-D) (SONY, 2010). Em ambos, o funcionamento é similar. Um segundo dispositivo fixo captura os sinais enviados por uma barra equipada com sensores inerciais, tal como acelerômetro e giroscópio. Desta forma, ambos os dispositivos funcionam bem na prática, com baixo tempo de resposta e alta precisão. Porém, a captura se restringe aos movimentos do braço e/ou antebraço.

Considerando a captura simultânea dos movimentos das mãos e dedos, o dispositivo comercial considerado mais preciso é o Cyber Glove III (CYBERGLOVESYSTEMS, 2015) (ver Figura 2.3-E) Dipietro, Sabatini e Dario (2008). Os dados dos gestos são coletados usando luvas que possuem 22 sensores que determinam a posição das mãos em três dimensões. Possui também central de processamento própria com opção por transmissão sem fio.

Esses dispositivos apresentados precisam estar de alguma forma anexo ao corpo do usuário. Com isso, o usuário precisa constantemente se preocupar com peso do aparelho, se está segurando e direcionando corretamente, se o acessório está fixo ao corpo para evitar lançá-lo para longe durante execução de um movimento rápido. Desta forma, mesmo bem projetados para o uso comum do corpo humano, estes dispositivos tendem a causar limitações de interação no usuário durante o uso.

Sendo o foco deste trabalho uma interação mais natural, tais dispositivos não são ideais. Existe outra forma de rastrear os movimentos corporais do usuário, deixando o corpo livre. 2.3.1.2 Dispositivos de Rastreamento Livre

Nesse escopo, os dispositivos de rastreamento livre são as câmeras comuns, sendo geralmente encontradas em computadores portáteis e dispositivos móveis. Também existem

(36)

dispositivos mais elaborados, com sensores que são capazes de capturar informações do corpo humano em três dimensões. No próximo tópico, abordaremos ambos, respectivamente.

Câmeras de Vídeo Digital

Uma forma comum é a captura de movimentos feita por uma câmera de vídeo que fornece uma sequência de imagens digitais. Nesse caso, o conjunto de imagens serve de fluxo de entrada de dados para que um algoritmo baseado em alguma técnica da área de reconhecimento de gestos possa interpretar e reconhecer os rápidos movimentos. O desafio é extrair de maneira eficiente informações úteis das imagens que possam ser interpretadas e posteriormente comparadas com um modelo pré-determinado para que aconteça o reconhecimento dos gestos (VATAVU; PENTIUC, 2008).

Quanto mais "brutos"os dados de entrada, mais complexo torna-se extrair essas informa-ções. Em outras palavras, quanto mais informações úteis forem coletadas, menor será o trabalho posterior para realizar uma interpretação e posterior reconhecimento dos gestos. Desse modo, a tendência dos recentes dispositivos de captura a distância, é apresentar sensores que capturam informações adicionais dos usuários (MITRA; ACHARYA, 2007).

Portanto, visando auxiliar o reconhecimento e aumentar a qualidade de captura, a recente geração de dispositivos possui sensores que são capazes de capturar o usuário em três dimensões. No próximo tópico apresentamos o conceito de captura por profundidade e modelos de dispositi-vos comercialmente disponíveis.

Dispositivos de Profundidade

Na imagem capturada de uma câmera comum os objetos não possuem profundidade. A cena possui apenas duas dimensões. Dispositivos dotados de sensores de profundidade são capazes de determinar a distância de qualquer objeto da cena capturada. Isso é feito, em geral, usando uma combinação de sensores de emissão e recepção de iluminação infravermelho.

Assim, quando o usuário se posiciona em frente ao sensor um subsistema embutido e treinado para este fim consegue identificá-lo e rastreá-lo, capturando a posição tridimensional do mesmo. A Figura 2.4 ilustra modelos que já estão à venda.

O Leap Motion (LEAPMOTION, 2012) (ver Figura 2.4-A), de tamanho reduzido, rastreia movimentos das duas mãos e de todos os dez dedos, sem precisar de nenhum contato manual ou toque. Utiliza sensores infravermelho para captura e consegue alcançar o usuário na distância de até um metro. A conexão ao computador é feita através de USB7.

Outro dispositivo para captura dos dedos e das mãos é a Intel RealSense 3D Camera (INTEL, 2014) (ver Figura 2.4-B). Essa é considerada a primeira câmera de três dimensões que já vem integrada a um notebook. Permite rastrear as mãos e as articulações dos dedos, o que a

(37)

Figura 2.4: (A) LeapMotion (LEAPMOTION, 2012), (B) Intel RealSense 3D Camera (INTEL, 2014), (C) ASUS Xtion PRO (ASUS, 2011)

torna, neste sentido, bastante similar ao Leap Motion. No entanto, o rastreamento é diferente. É feito pela combinação de uma câmera digital com uma câmera e projetor de infravermelho. Asim, consegue rastrear também expressões faciais, movimentos do antebraço e da cabeça.

Os dispositivos vistos até agora são para captura de partes específicas do corpo, tal como mãos e dedos. Mas, nosso trabalho possui foco na detecção de corpo inteiro. ASUS Xtion PRO (ASUS, 2011) (ver Figura 2.4-B) é uma solução disponível que permite rastrear o corpo do usuário.

Modelo escolhido

Em relação a estes dispositivos apresentados, todos são adequados ao que se propõem, pois já possuem aplicações variadas no mundo real. Entre as possíveis soluções, poderíamos ter optado pelo rastreamento por câmera de vídeo digital, mas, este dispositivo foi descartado por não fornecer informações adequadas para o reconhecimento de gestos complexos em três dimensões.

No nosso trabalho, onde o foco é rastreamento do corpo inteiro, ASUS Xtion PRO possui características desejáveis. No entanto, optamos pelo dispositivo com o maior número de usuários.

O dispositivo mais comum (encontrado facilmente) é o Microsoft Kinect (KINECT, 2014). As características que fazem do Kinect um dispositivo popular são: (1) possui custo acessível similar a outros periféricos utilizados em computadores, (2) contém softwares e suporte de desenvolvimento gratuitos e (3) recente atualização de hardware com o lançamento do novo modelo (Kinect v2). Portanto, este conjunto de características disponíveis no Kinect colabora para nossa escolha. Na próxima seção abordaremos em detalhes este dispositivo.

2.3.1.3 O dispositivo Microsoft Kinect

Lançado pela Microsoft em novembro de 2010, o Kinect (ver Figura 2.5-A) foi origi-nalmente desenvolvido para funcionar no console de jogos digitais XBOX 360. Rapidamente chamou a atenção das pessoas e especialmente da comunidade de desenvolvedores de software que vislumbraram novas aplicações e cenários de uso.

Referências

Documentos relacionados

Já com relação ao questionamento se à empresa tem feito o necessário para me manter motivado no desempenho das minhas atividades, 11,9% dos respondentes disseram concordar

cruzi cells demon- strated tryparedoxin peroxidase, involved in oxidative stress response, had important decreased expression in treated (that is, more expressed in control), as

Resultado: Ranking de Educação conforme pesquisa do Observatório Social do Brasil.. Ranking- EDUCAÇÃO

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem

 As equações do circuito mudam caso haja condução contínua ou não.. Retificador

Os Oficiais de Registro Civil das Pessoas Na- turais do Estado de São Paulo também têm competência para os atos notariais de reconhecimento de firma, autenticação de cópia

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

As pontas de contato retas e retificadas em paralelo ajustam o micrômetro mais rápida e precisamente do que as pontas de contato esféricas encontradas em micrômetros disponíveis