• Nenhum resultado encontrado

3.3 Um Estudo das Representações do Movimento Humano

3.3.4 Trabalhos Relacionados

DSLs para reconhecimento de gestos são mais comuns para o desenvolvimento de aplicações multi-toques, tal como Khandkar e Maurer (2010), uma linguagem que simplifica o processo de definir novos movimentos de toque dos dedos para telas sensíveis ao toque.

No contexto de gestos livres do corpo humano, alguns trabalhos têm sido apresenta- dos. Dentre às abordagens que são mais próximas da solução deste trabalho destacam-se as apresentadas em FAAST (SUMA et al., 2013), GDL (HACHAJ; OGIELA, 2013) e PREPOSE (FIGUEIREDO et al., 2014), os quais serão detalhados a seguir:

Flexible Action and Articulated Skeleton Toolkit (FAAST)

Suma et al. (2013) apresentam um framework para projetar e customizar interação baseadas em gestos através de uma solução que inclui, basicamente, uma interface gráfica para criação de gestos e um módulo de reconhecimento. A sintaxe proposta para a representação dos gestos usa um conjunto de regras em inglês que descrevem os atributos básicos de espaço e tempo do movimento do corpo humano. Cada expressão é formada por restrições, que podem

ser de posição, ângulo, velocidade e tempo.

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

A implementação dos gestos é feita usando uma interface gráfica que usa uma lista de elementos para representar os gestos. Cada item da lista é uma expressão em inglês e são construídos e editados por meio de caixas de diálogo com menus drop-down. A Figura 3.3 ilustra um exemplo de uso da sintaxe. Em (a), são exibidos a interface gráfica geral, enquanto em (b), visualiza-se um exemplo de caixa de diálogo para adicionar uma expressão.

Enquanto a lista de elementos concedido por esta interface parece ser bastante simples para usuários iniciantes, que não precisam compor representações gestuais sofisticadas, definir um gestos mais complexo não é trivial, pois o usuário tem que repetir cada expressão necessária por completo, não permitindo a reutilização do que já foi representado. Em outras palavras, não é possível decompor, nem aplicar mecanismos de repetição nas expressões determinadas pela solução. O que compromete o poder de expressão da representação gestual.

Outra limitação dessa solução é não possuir uma camada para apoiar outros dispositivos de rastreamento, apesar da descrição da estrutura do esqueleto ser em alto nível, há uma depen- dência em relação ao reconhecimento do gesto ao dispositivo suportado, no caso o Microsoft Kinect v1.

Gesture Description Language (GDL)

A GDL, relatada no trabalho de Hachaj e Ogiela (2013), apresenta uma linguagem para descrição de gestos humanos capaz de realizar o reconhecimento em tempo de execução. Todas as descrições são organizadas em arquivos de texto que são analisados por um analisador sintático. O Microsoft Kinect v1 é utilizado como dispositivo de captura e rastreamento dos movimentos do corpo humano.

Em GDL, um gesto é definido como uma série de poses estáticas que descrevem sequên- cias específicas de trajetória das articulações do corpo humano em um espaço tridimensional. Cada descrição é considerada uma regra lógica. A regra lógica pode ter dois valores: verdadeiro ou falso. Além de regras lógicas, GDL também contém regras numéricas que retornam valores

de ponto flutuante tridimensionais. A regra numérica pode se tornar uma regra lógica depois que é combinada com outra regra numérica por um operador relacional.

A Figura 3.4 ilustra um exemplo de uso da sintaxe de GDL que representa o gesto aplaudir - tocar repetidas vezes e em ritmo constante a palma das duas mãos.

Figura 3.4: Exemplo de sintaxe utilizada em Hachaj e Ogiela (2013)

A primeira regra, verifica se a distância entre as mãos é mais curta que 10 cm, a segunda regra verifica se a distância é maior ou igual a 10 cm, e a última regra verifica através dos operadores relacionais, acrescidos do tempo de execução de meio segundo para cada pose, se a sequência descrita é válida. Se todas as condições forem satisfeitas, a função retorna o valor lógico verdadeiro e isso significa que o gesto foi identificado.

O uso de constantes, presente nessa solução, permitem uma melhor composição de gestos complexos. Quando descrevemos uma pose estática, que é parte de um gesto, podemos reutilizar a mesma regra através da constante definida. Isso significa reduzir o esforço para representar gestos mais complexos, o que pode aumentar o poder de expressão e entendimento da descrição por outros desenvolvedores.

Por outro lado, a legibilidade das definições de cada pose são prejudicadas com o número excessivo de regras sintáticas que precisam ser seguidas para obter uma descrição correta do gesto, o que inclui por exemplo: parêntesis, colchetes, vírgulas, operadores numéricos (+, -, *, /, %), de relação (<, >, =, <=, =>, !=) etc.

Kammer et al. (2010) identificou que usuários das linguagens de definições de gestos associam um maior número de regras sintáticas à uma maior complexidade de uso. As definições de gestos são mais legíveis quando compreensíveis palavras-chave são usadas. O ideal é que a descrição de um gesto deve ser legível e ao mesmo suportar gestos complexos.

PREPOSE Language

Figueiredo et al. (2014) apresentam uma DSL para definir reconhecedores de gestos combinado com uma arquitetura de sistema que protege a privacidade do usuário contra apli- cações não confiáveis. Em PREPOSE, a expressão básica para representar um gesto é a pose. Cada pose é uma posição corpórea estática que pode conter informações que especificam as posições permitidas. Um conjunto de poses forma um gesto. Em tempo de execução, cada pose é comparada para determinar se a posição do corpo atual do usuário corresponde a pose especificada.

PREPOSEpossui uma série de descritores que podem representar em alto nível muitos gestos diferentes, tal como rotação, direção e velocidade do movimento. Cada pose é escrita

em inglês utilizando os termos dos membros e articulações do corpo disponíveis no Microsoft Kinect v2. A Figura 3.5 ilustra um exemplo de uso da sintaxe que representa o gesto aplaudir - tocar repetidas vezes e em ritmo constante a palma das duas mãos.

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

Este é o trabalho que mais se assemelha a proposta desta dissertação, pois o mesmo faz uso de uma sintaxe customizada com descritores de alto nível para especificar os gestos e realizar o processo de reconhecimento de gestos. No entanto, a arquitetura de implementação da linguagem não considera 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.

A tabela 3.1 apresenta um resumo das principais características dos trabalhos relaciona- dos, em comparação à linguagem aqui apresentada.