• Nenhum resultado encontrado

3.3 Um Estudo das Representações do Movimento Humano

4.3.3 O Interpretador da Linguagem

4.3.3.3 Análise Semântica

A análise semântica é uma fase subsequente à análise sintática. Em LEG é realizada através de código embarcado, onde um bloco de código estrangeiro é inserido nas regras não terminais da gramática com expressões a serem executadas como consequência do reconheci- mento de determinada regra. Isso permite executar ações de código C# diretamente no modelo semântico sem precisar gerar código intermediário que preencha o modelo.

5Recurso da BNF que força com que as regras sejam analisadas em ordem e que qualquer regra que case primeiro

Ao mesclar estes códigos, ambas as implementações permanecem independentes, mas, há que existir o mapeamento entre as regras e o código estrangeiro a ser executado na gramática, pois, essa fusão está além daquilo que a gramática pode expressar.

4.3.4

Considerações Finais do Capítulo

Este capítulo apresentou um visão geral da implementação da DSL LEG, além da arquitetura de implementação que é dividida em dois projetos, sendo o projeto principal o framework, responsável pela semântica da linguagem, e o projeto do interpretador, responsável pela gramática, análise léxica/sintática e, consequentemente, pelo mapeamento das sentenças para o modelo semântico da linguagem LEG. O interpretador foi implementado com apoio do ANTLR, e cada etapa de análise foi descrita, desde a análise léxica até a análise semântica. Dos requisitos apresentados na Seção 4.1, todos foram implementados. Assim, para formalizar o resultado, resumimos a seguir a situação de cada um.

Na linguagem LEG, a modularização é feita com cada declaração representando uma ação independente. A composição forma o gesto agrupando cada ação modularizada. É pos- sível realizar uma customização das declarações ao permitir ao desenvolvedor estender uma especificação de gesto com especificação temporal através da cláusula relation que representa especificação espacial. LEG possui uma legibilidade fácil para seres humanos, utilizando termos que são comuns a maioria das pessoas para descrever o corpo humano. O requisito de confia- bilidadefoi posto em prática através do encapsulamento com DLL. O requisito de vinculação dinâmicafoi parcialmente atendido porque as constantes atribuídas representam apenas valores concretos.

O próximo capítulo apresenta uma avaliação experimental utilizando a LEG para desen- volvimento de aplicações baseadas em gestos.

5

Avaliação Experimental

Este capítulo apresenta uma avaliação experimental de uso da linguagem LEG envol- vendo três projetos de sistemas baseados em gestos do corpo humano e descritos na literatura, onde foi identificado a oportunidade de especificação de 15 gestos na linguagem LEG. O obje- tivo é avaliar, na prática, a eficiência do reconhecimento considerando cada gesto em tempo de execução. Para tanto, este capítulo está organizado da seguinte forma: inicialmente, a Seção 5.1 apresenta a metodologia aplicada e os projetos selecionados à avaliação experimental. A Seção 5.2 apresenta, em detalhes, a especificação em LEG e posterior avaliação de cada gesto. Por fim, na Seção 5.3 são discutidos os resultados obtidos, juntamente com uma análise acerca do uso da linguagem LEG.

5.1

Metodologia e Projetos Selecionados

Para avaliar o funcionamento de LEG, é necessário que se tenha algum parâmetro de referência que indique quais deveriam ser os resultados. No contexto do problema de especifica- ção de gestos, para definir esta referência, pode-se utilizar a premissa de que as descrições de entrada são corretas, uma vez que o objetivo não é avaliar a corretude das declarações, mas sim o processo de reconhecimento.

Contudo, a avaliação das descrições de entrada poderiam ser comparadas com as feitas por outras Linguagens para especificação de gesto através de um estudo experimental que envolvesse voluntários selecionados de forma aleatória. Porém, alguns fatores levam a impossibilidade desta comparação. Primeiramente algumas particularidades de LEG não estão disponíveis em outras soluções, tais como: (i) suporte a diferentes sensores de profundidade; (ii) declaração de constatantes; e (iii) estruturas de repetição.

Além disso, dos trabalhos apresentados na Seção 3.3.4 do Capítulo 3, Suma et al. (2013) e Hachaj e Ogiela (2013) fornecem IDEs de implementação que podem ser utilizadas para especificações de gestos. Porém, o primeiro permite realizar apenas declaração com o módulo de reconhecimento restrito a IDE, e o segundo disponibiliza apenas o módulo de escrita, impossibilitando assim realizar comparações de performance. Já o trabalho de Figueiredo et

al. (2014) não disponibiliza nenhum módulo ou IDE livremente. Diante destes fatores, não foi possível comparar este trabalho com os demais.

Dessa forma, para montar um cenário de avaliação da linguagem proposta, foi feita uma busca por projetos de sistemas baseados em interação natural que contivessem gestos comuns para controles de aplicações. Foram selecionados 15 gestos a partir de três diferentes projetos heterogêneos, considerando diferentes domínios de aplicação, o que proporcionou uma maior variedade nos gestos requeridos para interação natural e, portanto, uma maior abrangência da avaliação experimental proposta. A tabela 5.1 apresenta um resumo contendo o nome, descrição e gestos utilizados dos sistemas selecionados.

Tabela 5.1: Resumo dos Sistemas Selecionados

Nome do Projeto Descrição Gestos Utilizados

1.Kinoogle

(Kamel Boulos

et al., 2011)

Aplicação baseada em gestos para con- trolar globos virtuais 3D (Google Earth) através do Microsoft Kinect.

Shuffle, Pinch, Rotate arms, Zoom In, Zoom Out, Push, Pull 2.NUI in Real-World

(SUBRAMANIAN, 2015)

Aplicação que permite interação natu- ral em uma sala de aula de uma escola pública da Índia.

Pause, Wave, Spread, Cross arms

3.CineFut (REIS et al., 2014)

Um Jogo virtual de futebol com o ob- jetivo de aumentar o engajamento no aprendizado dos alunos em aulas de Fí- sica do ensino médio no Brasil.

Walk, Step, Kick, Leg Up

Após o estudo dos trabalhos para seleção dos gestos, foi criado, através da linguagem LEG a especificação para cada um deles. Com os gestos especificados foi possível avaliar se o processo de reconhecimento proposto neste trabalho está funcionando de maneira adequada da seguinte forma:

 O experimento utilizado para avaliação dos algoritmos de reconhecimento para

detecção dos gestos consiste em realizar 10 (dez) vezes o mesmo gesto e verificar a eficácia do reconhecimento de cada gesto especificado.

Na primeira execução de qualquer aplicação na plataforma .NET, os objetos são alocados em memória influenciando no tempo final de processamento da aplicação o que torna o primeiro teste sempre mais lento que os demais. Portanto, houve o descarte da primeira rodada de teste para evitar qualquer tipo de influência nos resultados.

Consideramos também um ambiente comum para todo processo de avaliação experimen- tal. O ambiente era fechado, sem incidência de luz natural, e iluminado por luz artificial do tipo fluorescente.

Todos os testes foram realizados em um computador desktop com processador Intel® Core(™) i7 3.40 GHz, com memória de 8 GB RAM e processamento executado sobre o sistema operacional Windows 7 Enterprise x64.