PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf ·...

28
PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIAS ENGENHARIA DE COMPUTAÇÃO HAND FLOW CURITIBA – PR 2011

Transcript of PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf ·...

Page 1: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁ

CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIAS

ENGENHARIA DE COMPUTAÇÃO

HAND FLOW

CURITIBA – PR

2011

Page 2: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

2

GEAN FRANCESCO DEROSSO CHU

GILBERTO JOSÉ VERONA FILHO

HAND FLOW

INTERAÇÃO HOMEM-MÁQUINA POR MEIO DE GESTOS MANUAIS NATURAIS

Esta documentação de projeto final será apresentada à disciplina de Projeto Final II como nota integrante do segundo semestre sendo parte do projeto final de curso.

Professor: Luiz A. de P. Lima Jr.,

___________________________________________

ALCEU DE SOUZA BRITTO JR.

Professor-Orientador

CURITIBA – PR

2011

Page 3: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

3

Sumário

Resumo ............................................................................................................................. 4

Introdução ........................................................................................................................ 4

Detalhamento do Problema ............................................................................................. 6

Detalhamento do Projeto ................................................................................................. 8

Treinamento da Rede ................................................................................................... 8

Utilização no Framework ............................................................................................ 14

Procedimento de Treinamento da Rede ........................................................................ 19

Aplicação ......................................................................................................................... 20

Procedimentos de Teste e Validação do Projeto ........................................................... 21

Resultados ...................................................................................................................... 22

Conclusão........................................................................................................................ 23

Referências Bibliográficas ............................................................................................... 24

Anexo A - Plano de Testes .............................................................................................. 25

Anexo B – Validação da Rede Neural ............................................................................. 27

Page 4: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

4

Resumo

Sistemas de interface homem-máquina têm sido objeto de pesquisa científica

há vários anos. As pesquisas nesta área buscam melhores maneiras de traduzir a

vontade do usuário em comando para o sistema sendo operado. Neste contexto,

gestos manuais naturais podem ser utilizados como interface em sistemas

computacionais, entretanto, deve-se desenvolver uma maneira de rastrear a mão do

usuário e identificar os gestos utilizados como comandos, de modo que seja possível

tomar as ações adequadas. Este projeto apresenta um método baseado em técnicas

de visão computacional para, por meio de uma câmera e sensor de profundidade,

identificar a mão do usuário, rastrear sua posição e identificar gestos de comando

produzidos pela mesma.

Introdução

A interação homem-máquina vem sendo um assunto pesquisado desde o início

da computação, sendo que diferentes aplicações dependem de diferentes tipos de

interação entre o usuário e algum dispositivo. Mesmo que grande parte das operações

com dispositivos computacionais possa ser realizada por meio de teclado e mouse,

diferentes tipos de interações podem vir a aumentar consideravelmente a

produtividade do usuário em determinada tarefa.

Mesmo possuindo alto grau de complexidade, gestos manuais são movimentos

bastante naturais aos seres humanos, e possuem alta precisão. Desta forma, gestos

podem ser utilizados como interface em uma grande gama de aplicações,

possibilitando executar tarefas complexas através de comandos gestuais bastante

intuitivos ao usuário.

Devido a grande complexidade dos movimentos manuais humanos, sistemas

capazes de reconhecer gestos em grau satisfatório de detalhamento, porém utilizando

recursos computacionais moderados, são um desafio.

Este projeto teve como objetivo o desenvolvimento de um sistema de interação

homem-máquina, utilizando gestos manuais naturais como entrada para aplicações

computacionais. O sistema é capaz de determinar a posição espacial da mão em três

Page 5: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

5

dimensões e de reconhecer movimentos mecânicos pré-determinados, como

deslocamentos circulares ou lineares. O sistema é, ainda, capaz de diferenciar posições

da mão baseado na posição ou configuração dos dedos, permitindo reconhecer

posições como mão aberta, fechada, entre outros.

Este documento está organizado da seguinte maneira:

•Detalhamento do Problema

Nesta seção são levantados os requisitos do sistema de interação

homem-máquina proposto, bem como problemas que haviam de ser

solucionados para a implementação do mesmo.

•Detalhamento do Projeto

Descrição do modelo lógico do sistema, apresentando seu mecanismo

de operação por meio de blocos funcionais e diagramas bem como uma

explicação de como cada bloco deve ser implementado.

Procedimento de Treinamento da Rede

Descrição do protocolo seguido nas coletas de dados para treinamento

da rede neural, bem como do processo de treinamento.

•Aplicação

Descrição da aplicação proposta para apresentação final do projeto.

•Procedimentos de teste e validação do projeto

Plano de teses para cada bloco lógico do sistema, bem como critério de

aceitação de funcionamento.

Resultados

Resultados obtidos com a finalização do projeto e análise da precisão do

sistema.

Conclusão

Considerações finais sobre o sistema.

Page 6: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

6

Detalhamento do Problema

A identificação de gestos manuais naturais pode ser utilizada para o controle de

sistemas computacionais, entretanto é necessário que se estabeleça um universo finito

de entradas no sistema, de forma que seja possível caracterizar tais entradas e as

ações correspondentes. Como o sistema sugerido opera como uma interface genérica

para diversas aplicações, o mesmo deve possuir tipos de entrada de comandos

flexíveis o suficiente para permitir que seja utilizado em vários tipos de dispositivos.

Assim definiu-se que o sistema deveria ser capaz de:

• Rastrear a posição da mão em três dimensões;

• Identificar o movimento de “push”, caracterizado por um rápido e curto

deslocamento aproximando-se e, então,se afastando da câmera;

• Identificar os gestos:

1. Mão Aberta

Figura 1 - Gesto Mão Aberta

Page 7: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

7

2. Mão Fechada

Figura 2 - Gesto Mão Fechada

3. Dois Dedos

Figura 3 - Gesto Dois Dedos

Como o sistema emprega uma câmera para o reconhecimento de comandos de

entrada, algumas precauções foram tomadas, como luminosidade ambiente, distância

entre o usuário e a câmera do sistema, e a inclinação da câmera em relação ao

usuário. Foram implementados também mecanismos para evitar a ocorrência de

interpretações errôneas de comandos e rotinas de interpretação dos comandos que

permitam um tempo de resposta satisfatório.

Page 8: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

8

Detalhamento do Projeto

O projeto utiliza uma rede neural para realizar o reconhecimento de gestos do

usuário. Sendo assim, o projeto divide-se em duas etapas lógicas: a) o treinamento da

rede neural; e b) a utilização da rede treinada em um framework.

Treinamento da Rede

O sistema de treinamento é composto por uma câmera, a qual fornece os

frames de imagens de profundidade contendo exemplos de mãos para a realização do

treinamento; um sistema de coleta de dados, responsável por reconhecer o exemplo

de mão e armazená-lo no formato de padrão para treinamento; um sistema de

treinamento, que utiliza o arquivo de padrões para treinar a rede; e finalmente, um

sistema responsável por converter a rede treinada em código para compilação.

Figura 4 – Diagrama de Treinamento da Rede Neural

Câmera:

Neste projeto a câmera possui, internamente, um sensor de profundidade com

resolução de 640x480 e taxa de captura de quadros de 30 fps. A transmissão dos

quadros da câmera é feita por uma interface USB. É importante salientar que neste

grupo nenhum processamento das imagens para detecção de padrões é realizado.

Coleta de Dados:

Esta etapa é responsável por criar exemplos para o treinamento da rede neural.

O usuário informa explicitamente ao sistema o gesto a ser executado, de modo que

este pode então armazenar o padrão de mão do usuário e associar ao gesto que

representa. Para processamento e interpretação dos quadros recebidos, utilizou-se as

USB

Câmera Coleta de Dados Treinamento

.pat .net

Código Rede

Marcação

Page 9: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

9

bibliotecas OpenCV e OpenNi, ambas de desenvolvimento livre. Esta etapa é

organizada da seguinte maneira:

Figura 5 – Diagrama de Coleta de Dados

Aguarda Mão:

Inicialmente realiza-se um protocolo de sincronia, onde o usuário realiza um

movimento de push, informando ao sistema qual é o objeto no campo tridimensional

visível, que representa a mão do usuário. A biblioteca OpenNI automaticamente

identifica o movimento e reconhece o objeto como sendo a mão do usuário.

Sem UsuárioSem Usuário

Handle OpenNI

Usuário Encontrado

Usuário Encontrado

Posição Mão

Buscando Usuário

Figura 6 – Diagrama de Detecção de Usuário

USB Aguarda Mão

Marcação de

Gestos

Arquivo .pat Marcação

Page 10: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

10

Marcação de Gestos:

Nesta etapa o usuário apresenta sua mão formando gestos com os quais deseja

treinar o sistema, associando um número de identificação para cada tipo de gesto. O

resultado desta etapa é um arquivo de padrões que relaciona o padrão de mão

observado pelo sistema e o gesto que ele representa.

Inicia ColetaInicia Coleta

Frame

Isola Faixa de Profundidade

X,Y,Z da mão

Isola Mão

Normaliza Mão

Marca Gesto

Armazena Padrão

Armazena Padrão

Marcação de Gesto

Figura 7 – Diagrama de Coleta de Padrões

Page 11: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

11

O primeiro passo é o isolamento dos objetos na mesma faixa de profundidade

da mão. Para tanto se cria uma matriz com a mesma resolução da imagem e, sabendo-

se a coordenada Z da mão, marca-se cada posição da matriz com 1 ou 0, indicando se o

pixel da imagem encontra-se ou não na mesma faixa de profundidade da mão.

Considera-se que um pixel está na mesma faixa de profundidade caso esteja a uma

margem de diferença de profundidade configurável pelo usuário.

Matriz(i,j)=1Matriz(i,j)=1

Pixel(i,j) na mesma faixa de Z? Matriz(i,j)=0Matriz(i,j)=0

Sim

Não

Fim da Imagem?

FimFim

Sim

Não

Figura 8 – Diagrama de Coleta de Padrões

No passo seguinte utiliza-se a biblioteca OpenCV para identificar todos os blobs

na matriz resultante, obtendo-se uma coleção de objetos que descrevem todos os

objetos na matriz. Com isso, pode-se verificar em qual destes objetos as coordenadas X

e Y da mão se encontram, de modo que se pode identificar qual destes objetos de fato

representa a mão do usuário. Cada blob é descrito por meio de um polígono, de modo

que, para reduzir-se o custo computacional da verificação das coordenadas X e Y nos

blobs, realiza-se a comparação com o menor retângulo que consegue abranger todo o

blob.

Page 12: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

12

Pixel(X,Y) pertence a Retângulo(i)? FimFim

Sim

Não

Detecta Contornos

Detecta Contornos

Define Retângulo(i) para Contorno(i)

Define Retângulo(i) para Contorno(i)

Figura 9 – Diagrama de Detecção de Contornos da Mão

A rede neural planejada possui 400 neurônios de entrada, sendo que cada um

deverá receber um pixel de uma imagem 20x20 pixels. Sabendo-se qual retângulo

contém o objeto que representa a mão, o passo seguinte é normalizar o retângulo

para o tamanho 20x20 pixels, esticando e achatando as dimensões da imagem de

modo a transformá-la a este formato.

O passo final é escrever no arquivo de saída o valor de cada pixel, onde 1

representa a presença da mão e 0 representa a ausência, e associar a este conjunto de

pixels o gesto realizado no momento. Desta forma, juntando-se vários casos de gestos,

obtém-se um arquivo de padrões (.pat) que deverá ser utilizado no treinamento da

rede.

Treinamento

Nesta etapa, utiliza-se o arquivo de padrões para realizar o treinamento da

rede neural que deverá realizar a classificação dos gestos manuais. A rede neural

planejada deve possuir 400 neurônios de entrada, cada um representando um pixel da

imagem da mão, uma ou mais camadas escondidas, e 3 neurônios de saída,

representando cada um dos gestos possíveis. O software utilizado para o treinamento

da rede é o JavaNNS. O processo de criação e treinamento da rede é demonstrado na

Figura 10.

Page 13: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

13

Tools Create Layers

Input

Hidden

Output

Criação da Rede

Treinamento da Rede

File Open (.pat)

Tools

Carregar Arquivo de Padrões

Treinar Rede

Control Pannel

Connections Feed-Forward

InitializingRandom Weights

Init

Learning Backpropagation

Step width

Max. Non propagated

error

Cicles

Steps

Shuffle

Learn All

File Save (.net)

Salvar Rede

Figura 10 – Diagrama de Criação e Treinamento da Rede Neural

Page 14: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

14

Para obter bons resultados, foi gerada uma grande base de treinamento,

buscando coletar amostras de mãos de diferentes posições. O treinamento da rede foi

realizado testando diversas combinações de configuração de rede, bem como

diferentes valores para número de ciclos, tamanho do passo, etc., de modo a alcançar

uma taxa elevada de acertos, mas sem causar overfitting, que é uma situação onde a

rede torna-se “viciada”, perdendo a capacidade de avaliar amostras fora das do grupo

de treinamento.

Para avaliar a qualidade da rede foi utilizado um novo grupo de amostras,

buscando verificar a capacidade da rede de discernir amostras diferentes das utilizadas

no treinamento.

Código da Rede

Para finalizar a etapa de criação da rede neural, utilizou-se o software snns2c,

do pacote SNNS, que toma como entrada um arquivo descritor de rede neural (.net), e

gera uma função em linguagem C que avalia um vetor de entrada de tamanho igual ao

número de neurônios de entrada da rede e retorna um vetor de tamanho igual ao

número de neurônios de saída da rede. Este vetor de saída contém em cada posição a

probabilidade da entrada da rede ser pertencente a cada uma das classes de gestos

representadas na rede.

Utilização no Framework

Em uma visão mais geral, pode-se separar o sistema em três grupos, Câmera,

Framework e Aplicação.

Figura 11 – Diagrama de Utilização do Framework

Câmera Framework Aplicação

Page 15: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

15

Câmera:

Mesmo sistema de câmera já descrito no processo de treinamento.

Framework:

Módulos responsáveis por interpretar os quadros recebidos para realizar a

detecção de mão, rastreamento e reconhecimento de padrões, passando os resultados

obtidos à Aplicação. Para processamento e interpretação dos quadros recebidos são

utilizadas as mesmas bibliotecas já citadas anteriormente. Este Framework está

organizado da seguinte maneira:

Figura 12 – Diagrama do Framework

Aguarda Mão:

Realiza o mesmo processo de espera por uma entrada do usuário já descrito

nas etapas de treinamento da rede neural.

Detecção de Movimentos:

Baseado na posição da mão em três dimensões é possível reconhecer um grupo

de movimentos, como deslocamentos, movimentos circulares, entre outros. A própria

biblioteca OpenNI implementa um mecanismo de Callback em que atribui-se a uma

função o tratamento de cada movimento. A biblioteca OpenNI fornece suporte a

outros tipos de movimento, mas no escopo deste projeto, apenas os tratamentos de

movimentos de “push” serão suportados. Na ocorrência da detecção do movimento, a

biblioteca executa a função atribuída ao tratamento do mesmo.

Aguarda Mão

Detecção de

Gestos

Detecção de

Movimento Movimentos

driver X, Y, Z

Gestos

Page 16: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

16

Movimento Detectado

Movimento Detectado

Encerra Tratador

Encerra Tratador

Tratador do Movimento (Aplicação)Handle OpenNI

Figura 13 – Diagrama Detecção Padrão do Framework

Detecção de Blobs:

Sabendo-se a profundidade (coordenada Z) em que a mão se encontra,

eliminam-se da imagem todos os objetos que não estejam na mesma faixa de

profundidade, obtendo-se assim um conjunto de blobs, ou seja, objetos de interesse.

O mecanismo de detecção de blobs é o mesmo descrito da etapa de treinamento da

rede neural.

Sabendo-se as coordenadas X e Y da mão, eliminam-se todos os blobs

irrelevantes, deixando apenas o blob que representa a mão do usuário, como já

explicado anteriormente na etapa de treinamento do sistema.

Com base no formato da mão do usuário, determina-se, por meio de uma

avaliação utilizando a rede neural treinada, qual gesto representa. A avaliação da rede

neural resulta em um vetor de 3 posições, cada qual representando a probabilidade de

o gesto avaliado ser um dos treinados na rede.

Page 17: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

17

Novo frameNovo frame

Frame

Isola Faixa de Profundidade

X,Y,Z da mão

Isola Mão

Normaliza Mão

Identifica Gesto

Informa Aplicação

Informa Aplicação

Figura 14 – Diagrama de Detecção dos Blobs

Ao detectar o gesto sendo efetuado, o sistema insere o gesto dentro de um

buffer de eleição. Apenas quando todas as posições do buffer informarem que o

usuário está realizando determinado gesto, é que este esta informação é exteriorizada

à aplicação.

O sistema foi feito de modo a ser facilmente configurável pelo usuário. Em um

arquivo denominado “config.h” o usuário pode ajustar:

Page 18: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

18

Tamanho da mão, em pixels, que o sistema deve utilizar;

Quantidade de gestos que a rede deve interpretar;

Tamanho do buffer de eleição que determina se um gesto detectado é válido

ou não;

Período das amostragens, em milissegundos;

Porcentagem mínima de certeza da rede neural para que uma amostra seja

aceita;

Faixa de profundidade em que a mão do usuário deve ser analisada a partir de

seu centro.

Page 19: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

19

Procedimento de Treinamento da Rede

Para treinar a rede neural utilizada no projeto, utilizou-se dados de mão de 6

voluntários. Cada voluntário seguiu o protocolo descrito abaixo, para coleta dos dados:

Distância entre o usuário e a câmera deve ser de 1,5m +- 20cm.

Altura da palma da mão do usuário em relação à câmera deve ser de 1m +-

20cm.

Usuário deve buscar manter a palma da mão virada em direção à câmera. É

permitida uma variação de ângulo de aproximadamente 30⁰ em qualquer eixo.

Ao todo foram coletadas cerca de 20000 amostras de mãos dos voluntários,

empregando gestos manuais variados.

Page 20: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

20

Aplicação

A aplicação escolhida para demonstrar o funcionamento do sistema é uma

interface de um mouse padrão onde: a) o movimento da mão com a palma aberta –

Gesto 1 - movimentará a seta do mouse na tela do computador o fechamento da mão;

b) Gesto 2 - caracterizará um clique do botão esquerdo do mouse e a utilização do

dedão e do dedo indicador formando um L; e c) Gesto 3 – caracterizará o clique do

botão direito do mouse.

Adicionalmente, outra aplicação foi desenvolvida com o intuito de demonstrar

os recursos do sistema utilizando uma interface visual mais amigável. Nesta aplicação,

uma imagem representando os gestos do usuário é mostrada na tela no momento em

que o usuário realiza o gesto manual. Caso o sistema não consiga encontrar a mão do

usuário, uma imagem de “interrogação” é mostrada na tela. Para representar a

capacidade do sistema de detectar as coordenadas x, y e z da mão do usuário, as

imagens que ilustram o gesto sendo realizado são movimentadas e alteradas de

acordo com a posição da mão.

Page 21: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

21

Procedimentos de Teste e Validação do Projeto

Os testes do sistema foram realizados utilizando uma amostra de potenciais

usuários, buscando diversificar o máximo possível a variação do formato e tamanho

das mãos destes a fim de verificar possíveis problemas na rede neural que detecta os

gestos manuais do usuário ativo no sistema.

A validação foi feita baseada na porcentagem de sucesso na leitura e

interpretação de gestos dos usuários, considerando uma taxa aceitável de erros

estipulada em 90% de acertos com um usuário que possua a mão em formato padrão

com os cinco dedos e tamanho médio de 20 cm entre o punho e a extremidade do

dedo médio e 20 cm entre as extremidades do dedão e do dedo mindinho.

O Plano de Testes encontra-se em anexo a este documento.

Page 22: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

22

Resultados

Para avaliar a eficiência da detecção de gestos do sistema, uma base de dados

de validação foi coletada com amostras de mão de quatro voluntários. No total, 42

amostras foram coletadas, empregando os três gestos detectáveis pelo sistema. Do

total de amostras, apenas 7,14% apresentaram taxa de certeza da rede abaixo de 90%.

No entanto, avaliando-se o percentual de certeza de cada amostra, verificou-se que

destas, em 66,6% dos casos o maior percentual estava correto, mesmo que abaixo de

90%. Por este motivo, foi dada ao usuário a opção de configuração do percentual de

certeza aceito pelo sistema. Uma análise mais detalhada dos resultados da validação

encontra-se no Anexo B.

Page 23: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

23

Conclusão

Com o sistema concluído pode-se entender o quão poderosa esta ferramenta

de interação homem-máquina se apresenta. Afinal, pode-se utilizá-la no dia a dia

simplesmente com o uso de um computador sem a utilização de um objeto físico, no

caso, o mouse ou teclado, para interação com o usuário. Além disto, tal sistema

também pode ser utilizado com fins mais nobres como o controle de robôs para

manipulação de sustâncias perigosas, por exemplo.

Page 24: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

24

Referências Bibliográficas

STENGER, B.; THAYANANTHAN, A.; TORR, P.H.S.; CIPOLLA, R.;Model-based hand

tracking using a hierarchical Bayesian filter.Pattern Analysis and Machine Intelligence,

IEEE Transactions on Volume: 28, Issue: 9. Digital Object Identifier:

10.1109/TPAMI.2006.189. Publication Year: 2006, Page(s): 1372 – 1384.

EL-SAWAH, A.; GEORGANAS, N.D.; PETRIU, E.M.; A Prototype for 3-D Hand

Tracking and Posture Estimation.Instrumentation and Measurement, IEEE Transactions

on Volume: 57, Issue: 8. Digital Object Identifier: 10.1109/TIM.2008.925725.

Publication Year: 2008, Page(s): 1627 – 1636.

PHAN THE BAO; NGUYEN THANH BINH; TU DUY KHOA; A New Approach to

Hand Tracking and Gesture Recognition by a New Feature Type and HMM. Fuzzy

Systems and Knowledge Discovery, 2009.FSKD '09. Sixth International Conference on

Volume: 4. Digital Object Identifier: 10.1109/FSKD.2009.276. Publication Year: 2009,

Page(s): 3 – 6.

MONI, M.A.; ALI, A.B.M.S.; HMM based hand gesture recognition: A review on

techniques and approaches. Computer Science and Information Technology,

2009.ICCSIT 2009. 2nd IEEE International Conference on Digital Object Identifier:

10.1109/ICCSIT.2009.5234536 Publication Year: 2009, Page(s): 433 – 437.

ONG, S.C.W.; RANGANATH, S.; Automatic sign language analysis: a survey and

the future beyond lexical meaning. Pattern Analysis and Machine Intelligence, IEEE

Transactions on Volume: 27, Issue: 6. Digital Object Identifier:

10.1109/TPAMI.2005.112. Publication Year: 2005, Page(s): 873 – 891.

MOON-JIN JEON; SEUNG-EUN YANG; ZEUNGNAM BIEN;User adaptive hand

gesture recognition using multivariate fuzzy decision tree and fuzzy garbage

model.Fuzzy Systems, 2009.FUZZ-IEEE 2009. IEEE International Conference on Digital

Object Identifier: 10.1109/FUZZY.2009.5277156. Publication Year: 2009, Page(s): 474 –

479.

Page 25: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

25

Anexo A - Plano de Testes

Figura 11 – Diagrama do Plano de Testes

Teste da Câmera –Para verificar o funcionamento adequado da câmera, dos drivers e

biblioteca OpenNI, deverá ser executado um software desenvolvido pela empresa

Prime Sense, desenvolvedora da biblioteca OpenNI, que adquire frames de imagens da

câmera de profundidade. Espera-se uma tela onde os frames da câmera de

profundidade sejam mostrados.

Teste de reconhecimento de movimento – Para verificar o funcionamento adequado

da detecção de movimento de push, a aplicação de demonstração deverá ser

executada. Neste software, o movimento de push indica a presença da mão do

usuário. Sendo assim, caso o movimento esteja sendo detectado de maneira

adequada, o software detectará a presença da mão do usuário.

Teste de detecção de gestos – Para verificar o funcionamento adequado da detecção

de gestos, deverá ser realizada uma avaliação da qualidade da detecção realizando

cada gesto em nove áreas do frame da câmera, como mostrado na Figura 1. Espera-se

que o sistema seja capaz de reconhecer 90% dos gestos em todas as áreas de análise.

Kinect Aguarda Mão

Detecção de

Gestos

Detecção de

Movimento Movimentos

driver X, Y, Z

Gestos

Aplicação

Câmera

Page 26: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

26

Figura 2 – Áreas de análise de gestos

O protocolo a ser seguido na coleta de dados deve ser o seguinte:

Distância entre o usuário e a câmera deve ser de 1,5m +- 20cm.

Altura da palma da mão do usuário em relação à câmera deve ser de 1m +-

20cm.

Usuário deve buscar manter a palma da mão virada em direção à câmera. É

permitida uma variação de ângulo de aproximadamente 30⁰ em qualquer eixo.

A2 A1 A3

B3 B2 B1

C2 C3 C1

Page 27: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

27

Anexo B – Validação da Rede Neural

Conjunto Total de Amostras de Validação

As tabelas a seguir relacionam o número da amostra de validação, o resultado

esperado e o resultado obtido. Dos três resultados possíveis, o primeiro representa

“mão aberta”, o segundo “mão fechada” e o terceiro “dois dedos em L”.

SNNS result file V1.4-3D generated at Sun Nov 24 17:35:52 2011

No. of patterns : 42 startpattern : 1

No. of input units : 400 endpattern : 42

No. of output units : 3 teaching output included

#1.1 #15.1 #29.1

1 0 0 0 1 0 0 0 1

0.92325 0.00026 0.18027 0.19197 0.50682 0.01253 0.00065 0.00003 0.99998

#2.1 #16.1 #30.1

1 0 0 0 1 0 0 0 1

0.99946 0 0.00785 0.01034 0.97685 0.02705 0.00049 0.00006 0.99994

#3.1 #17.1 #31.1

1 0 0 0 1 0 0 0 1

0.97156 0.00024 0.01789 0.01076 0.94134 0.03812 0.11362 0 0.9709

#4.1 #18.1 #32.1

1 0 0 0 1 0 0 0 1

0.98821 0.00179 0.00066 0.01006 0.97318 0.04876 0.00055 0.00004 0.99993

#5.1 #19.1 #33.1

1 0 0 0 1 0 0 0 1

0.98595 0.00095 0.01675 0.00777 0.98833 0.03794 0.00049 0.00007 0.99977

#6.1 #20.1 #34.1

1 0 0 0 1 0 0 0 1

0.99971 0.00041 0.00009 0.01634 0.98323 0.01788 0.00017 0.00007 0.99999

#7.1 #21.1 #35.1

1 0 0 0 1 0 0 0 1

0.99827 0.00011 0.00239 0.01713 0.96508 0.01382 0.00436 0.00002 0.99991

#8.1 #22.1 #36.1

1 0 0 0 1 0 0 0 1

0.99688 0 0.07073 0.07716 0.96595 0.00366 0.00085 0.00017 0.99995

#9.1 #23.1 #37.1

1 0 0 0 1 0 0 0 1

0.95964 0.00013 0.16319 0.05043 0.96559 0.00564 0.00019 0.00009 0.99999

Page 28: PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁlaplima/ensino/tcc/concluidos/2011/handflow.pdf · Figura 9 – Diagrama de Detecção de Contornos da Mão A rede neural planejada possui

28

#10.1 #24.1 #38.1

1 0 0 0 1 0 0 0 1

0.99427 0.00001 0.0732 0.5062 0.29597 0.00389 0.00854 0.00001 0.99983

#11.1 #25.1 #39.1

1 0 0 0 1 0 0 0 1

0.99934 0.00015 0.00054 0.00858 0.9866 0.0337 0.00677 0.00009 0.9988

#12.1 #26.1 #40.1

1 0 0 0 1 0 0 0 1

0.98284 0.0042 0.00194 0.01301 0.96665 0.02139 0.06946 0.00001 0.99322

#13.1 #27.1 #41.1

0 1 0 0 1 0 0 0 1

0.04213 0.89353 0.01185 0.01481 0.98286 0.0222 0.00356 0.00001 0.99972

#14.1 #28.1 #42.1

0 1 0 0 1 0 0 0 1

0.06082 0.74336 0.02459 0.03496 0.96306 0.00711 0.00173 0.00006 0.99915

Tabela 1 - Amostras de Validação

Conjunto de Amostras Corretas com Percentual do Esperado

#13.1

0 1 0

0.04213 0.89353 0.01185

#15.1

0 1 0

0.19197 0.50682 0.01253

Tabela 2 - Amostras de Validação com Acerto Abaixo do Esperado

Conjunto de Amostras Erradas

#24.1

0 1 0

0.5062 0.29597 0.00389

Tabela 3 - Amostras de Validação com Resultado Errado