• Nenhum resultado encontrado

REDES NEURAIS PARA CLASSIFICAÇÃO DE GESTOS

3.2 DESENVOLVIMENTO DO SOFTWARE

3.2.5 REDES NEURAIS PARA CLASSIFICAÇÃO DE GESTOS

Com a extração dos membros do usuário, através do uso do algoritmo de co- nectividade citado anteriormente, chega-se ao ponto de aplicação das redes neurais artificiais.

É importante ressaltar que, antes da utilização desta rede, foi necessária a definição da arquitetura da rede a ser utilizada para o atual problema, descrita na seção a seguir.

3.2.5.1 Arquitetura da rede neural utilizada

Para o atual problema, o qual utiliza como entrada para a rede uma subimagem seccionada da imagem proveniente da câmera (região de interesse ao redor de uma das mãos do usuário), optou-se pela construção de uma rede com uma camada de entrada do tamanho das imagens provenientes da câmera, as quais possuem 2500 pixels. Além desta, optou-se pela construção de uma camada intermediária de 36 neurônios.

O tamanho desta camada foi determinado empiricamente. Nota-se, com base no referencial estudado, que o aumento do número de neurônios permite uma maior capacidade de classificação por parte da rede, porém, este aumento acarreta em um maior tempo necessário para treinamento da rede, além de, se muito grande, interferir negativamente na capacidade de generalização da rede, fazendo com que esta memorize os padrões. Além disso, se poucos neurônios forem utilizados, a rede perde capacidade de solucionar problemas mais complexos. Desta forma, chegou- se ao valor de 36 neurônios para a camada intermediária, o qual foi obtido através

de sucessivos testes e análise dos resultados obtidos, os quais foram os mais precisos para esta quantidade de neurônios.

Por fim, tem-se a camada de saída. O tamanho desta camada foi determinado pela quantidade de gestos classificados neste trabalho. Como foram classificados 5 diferentes gestos, fez-se necessário o uso de 3 neurônios para a camada de saída. Com o uso de 3 neurônios, seria possível classificar até 8 gestos.

Na Figura 35, pode ser vista a arquitetura da rede e a sua organização em camadas. É válido notar como a saída dos neurônios das primeiras camadas é propagada para os neurônios das camadas subseqüentes.

Figura 35 – Arquitetura da Rede.

Fonte: Próprio Autor.

3.2.5.2 Executando o programa e utilizando-se da rede neural montada

Com a definição da arquitetura da rede neural, chega-se ao ponto de utiliza- ção desta no software desenvolvido. Esta utilização é feita com base nos membros direito e esquerdo do usuário extraídos com o auxílio dos algoritmos de detecção de pele e de continuidade desenvolvido.

Inicialmente, o braço direito é o responsável pelo controle da movimentação do mouse, enquanto o esquerdo é o responsável pela determinação do evento, po- dendo ser trocados para que o usuário possa mover o cursor de forma mais eficien- te.

A imagem do braço do usuário responsável pelo controle dos eventos do mouse é inicialmente o direito, mas pode ser alterado dependendo da escolha do usuário. O braço esquerdo é submetido, a cada nova imagem capturada pela câme- ra, a uma rede neural do tipo Perceptron Multicamada. Esta rede foi previamente treinada com quarenta imagens de cinco gestos distintos de mãos, os quais corres- pondem aos gestos que devem ser reconhecidos pela rede e, conseqüentemente, determinar o evento do mouse. Na Figura 36, a seguir, exemplos de imagens utiliza- das para treinar a rede podem ser vistas. Nota-se a presença de gestos similares entre estas imagens. Estes gestos correspondem à mesma ação executada por mãos diferentes (esquerda e direita), para que, diante da opção do usuário de trocar a mão responsável pelos eventos e movimentação, o reconhecimento continue ocor- rendo de maneira efetiva.

Figura 36 – Gestos de mãos para treinamento da rede neural. a) Mão fechada. b) Mão esquerda em L. c) Mão direita em L. d) Mão esquerda aberta e) Mão direita aberta.

Fonte: Próprio autor.

As imagens dos gestos, representadas na Figura 36, são binarizadas e forne- cidas à rede neural para o treinamento. Na Tabela 4, abaixo, os eventos de mouse associados a cada gesto podem ser vistos. Estes eventos são suficientes para aces- sar as funções da lousa.

Tabela 4 – Eventos de mouse associados aos gestos.

Gestos Eventos de mouse

Mão fechada Pressiona o botão esquerdo do mouse Mão esquerda em L Troca a mão de movimentação do mouse

para a esquerda e a de eventos para a direita Mão direita em L Troca a mão de movimentação do mouse

para a direita e a de eventos para a esquerda

Mão esquerda/direita aberta Solta o botão pressionado do mouse

Fonte: Próprio Autor.

É válido salientar que as 40 imagens utilizadas para o treinamento de cada gesto demonstram cada um destes com pequenas variações, como por exemplo, de inclinação ou decorrentes da aquisição sob condições de iluminação diferente. Isso se fez necessário para aumentar a capacidade de reconhecimento destes gestos mediante estas pequenas variações. Na Figura 37, a seguir, uma seqüência de ima- gens utilizada para treinar a rede pode ser vista. São notáveis as pequenas varia- ções entre estas imagens.

Figura 37 – Variações de um mesmo gesto para treinamento. a) Mão fechada. b) Mão fechada levemente inclinada. c) Mão fechada com pequena falha na detecção mediante variação de iluminação. d) Mão fechada com pequena variação de posicionamento dos dedos.

Fonte: Próprio autor.

Vale ressaltar que o gesto de mão fechada foi treinado unicamente com a mão direita. Isso ocorre porque o gesto de mão fechada é muito semelhante mesmo executado por mãos diferentes. Além disso, foram utilizados gestos bastante diferen- tes para a execução de cada evento, para que, desta forma, a identificação destes

por parte da rede fosse melhorada evitando, por exemplo, o reconhecimento inade- quado de um gesto em lugar de outro.

3.5.2.3 Detectando os gestos durante a execução do programa

A detecção dos gestos é feita continuamente enquanto o programa está sen- do executado. O braço responsável pelos eventos, detectado com o algoritmo de continuidade, é secionado tomando como base o seu ponto mais alto e mais próxi- mo da borda da imagem (a depender de qual braço esteja sendo utilizado para con- trole de eventos, esta borda pode ser a direita ou a esquerda). Tomando como base estes pontos, uma nova subimagem é formada de dimensões 50x50, sendo estes pi- xels os 50 abaixo do ponto mais alto e na direção oposta à borda do ponto mais pró - ximo a ela. Esta subimagem deve corresponder à mão do usuário, fazendo necessá- rio que o mesmo, ao executar os gestos, faça-os com a mão levantada e com distân- cia moderada em relação à câmera. Para guiá-lo, durante a execução do programa, um quadro vermelho é utilizado para que o usuário tenha idéia de qual subimagem está sendo passada à rede neural para detecção, como mostrado na Figura 38, a seguir.

Figura 38 – Marcações para guiar o usuário durante a execução do programa.

A Figura 38, mostrada anteriormente, corresponde a uma imagem proveniente da câmera. Nesta figura, nota-se a atuação do algoritmo de detecção de pele e de continuidade através da detecção, do lado esquerdo e em vermelho, da região correspondente à mão do usuário, responsável pela realização de gestos para determinação dos eventos de mouse. Já do lado direito e em verde, nota-se a detecção de todo o membro do usuário, o qual é responsável pela movimentação do mouse. É interessante lembrar que, mediante o desejo do usuário, as ações associadas aos braços podem ser trocadas, fazendo com que o quadro vermelho (e conseqüentemente a determinação de eventos) passe a destacar o braço, até então, marcado em verde na Figura 38. De maneira análoga, o braço destacado em vermelho passaria a ser destacado em verde e caberia ao mesmo, a partir deste momento, a movimentação do cursor.

Documentos relacionados