Você está na página 1de 39

UNIVERSIDADE LUTERANA DO BRASIL

CURSO DE CINCIA DA COMPUTAO


CMPUS GRAVATA
SISTEMA DE CAPTURA DE
MOVIMENTOS PARA
COMANDAR EQUIPAMENTOS
ELETRNICOS
Jos Moacir de Souza Jnior
Monografia desenvolvida durante a disciplina de Trabalho
de Concluso de Curso em Cincia da Computao II e
apresentada ao Curso de Bacharelado em Cincia da
Computao da Universidade Luterana do Brasil, cmpus
Gravata, como pr-requisito para a obteno do ttulo de
Bacharel em Cincia da Computao.
Orientador(a): Prof. Roland Teodorowitsch
Gravata, dezembro de 2010.
2
Universidade Luterana do Brasil ULBRA
Curso de Cincia da Computao Cmpus Gravata
Coordenador do Curso de Cincia da Computao (Cmpus Gravata):
Prof. Elgio Schlemer
Coordenador das Disciplinas de Trabalho de Concluso de Curso (Cmpus Gravata):
Prof. Roland Teodorowitsch
Banca Avaliadora composta por: Data da defesa: 29/11/2010.
Prof. Roland Teodorowitsch (Orientador)
Prof. Luiz Fernando Castro da Cruz
Prof. Maria Adelina Raupp Sganzerla
CIP Catalogao na Publicao
Souza Jnior, Jos Moacir de
Sistema de Captura de Movimentos para Comandar Equipamentos
Eletrnicos / Jos Moacir de Souza Jnior; [orientado por] Roland
Teodorowitsch; Gravata: 2010.
39 p.: il.
Trabalho de Concluso de Curso (Bacharelado em Cincia da
Computao). Universidade Luterana do Brasil, 2010.
1. Viso Computacional. 2. Interao Homem-Computador. 3.
OpenCV. 4. Reconhecimento de Gestos. 5. Anlise de Imagens. I.
Teodorowitsch, Roland. II. Ttulo.
Endereo:
Universidade Luterana do Brasil Cmpus Gravata
Av. Itacolomi, 3.600 Bairro So Vicente
CEP 94170-240 Gravata-RS Brasil
Noventa por cento do sucesso se baseia simplesmente em
insistir.
Woody Allen
Dedico este trabalho aos meus pais, Jos Moacir de Souza
e Maria Geneci Oliveira de Souza, por todo amor, carinho,
apoio e incentivo que me proporcionaram nas horas em
que mais precisei.
AGRADECIMENTOS
Primeiramente agradeo aos meus pais, por sempre terem me incentivado a estudar e
por me apoiarem durante toda minha trajetria escolar e acadmica. Me dando carinho, amor,
ateno e ajuda nas dificuldades encontradas durante estes anos.
Aos amigos que, de vrias formas, ajudaram dando seu apoio, incentivo e at mesmo
suas opinies. Por me questionarem a respeito do projeto e me fazerem repensar sobre algo
que j estava decidido.
Ao Henrique Severo da Silva por me emprestar seu notebook, me economizando o
esforo de levar meu computador desktop para fazer as demonstraes aos professores e at
mesmo para fazer a defesa do trabalho. Alm do notebook, tambm me ajudou como todos os
outros amigos que citei anteriormente.
A todos os professores que me ajudaram na minha formao acadmica.
Principalmente aos professores Roland Teodorowitsch, Luiz Fernando e Maria Adelina, que
expressaram suas opinies e ideias sempre que necessitei.
SUMRIO
LISTA DE FIGURAS .............................................................................................................. 7
LISTA DE QUADROS ............................................................................................................ 8
LISTA DE ABREVIATURAS E SIGLAS............................................................................. 9
RESUMO................................................................................................................................ 10
ABSTRACT............................................................................................................................ 11
1 INTRODUO................................................................................................................. 12
2 FUNDAMENTAO TERICA.................................................................................... 14
2.1 REALIDADE VIRTUAL .................................................................................................. 15
2.2 VEX ........................................................................................................................... 15
2.3 OPENCV.................................................................................................................... 16
3 DEFINIO...................................................................................................................... 20
3.1 GESTOS IDENTIFICADOS .............................................................................................. 20
3.2 SINAIS DE SADA.......................................................................................................... 21
4 DESENVOLVIMENTO DO TRABALHO..................................................................... 23
4.1 INTERFACE GRFICA DO SISTEMA................................................................................ 23
4.2 CONFIGURAO UTILIZADA PARA O KIT VEX............................................................. 27
4.3 AMBIENTE DE DESENVOLVIMENTO DO KIT VEX.......................................................... 28
4.4 FUNCIONAMENTO DO SISTEMA.................................................................................... 29
4.5 COMO OPENCV FOI UTILIZADO .................................................................................. 29
4.6 FILTRAGEM DA IMAGEM.............................................................................................. 29
4.7 ANLISE...................................................................................................................... 30
5 TESTES E ANLISE DE RESULTADOS..................................................................... 33
6 CONCLUSO.................................................................................................................... 37
REFERNCIAS ..................................................................................................................... 39
LISTA DE FIGURAS
Figura 1 Jogador executando comandos atravs do Kinect .................................................. 12
Figura 2 Imagem original e imagem com a aplicao do algoritmo..................................... 14
Figura 3 Alguns componentes do Kit da VEX Robotics ...................................................... 16
Figura 4 Exemplo de cdigo-fonte que utiliza a biblioteca OpenCV................................... 17
Figura 5 Imagem original e imagem aps aplicao do algoritmo de Canny....................... 17
Figura 6 Imagem original e a imagem com os padres a serem reconhecidos ..................... 18
Figura 7 Resultado do programa de deteco de face........................................................... 19
Figura 8 Gestos reconhecidos ............................................................................................... 21
Figura 9 Interface grfica do sistema de reconhecimento de gestos ..................................... 23
Figura 10 Tela de configurao de sadas ............................................................................. 25
Figura 11 Tela de configurao de Velocidade e Tempo de ciclo via gestos ....................... 26
Figura 12 Tela de configurao de velocidade atravs de gestos ......................................... 26
Figura 13 Tela de configurao de tempo de ciclo atravs de gestos ................................... 27
Figura 14 Possveis comportamentos do veculo em funo do sentido de suas rodas ........ 27
Figura 15 Montagem do kit VEX........................................................................................... 28
Figura 16 Exemplo de filtragem dos pontos de pele da imagem.......................................... 29
Figura 17 Convexidade e falhas de convexidade.................................................................. 30
Figura 18 Pontos analisados para identificao dos dedos ................................................... 31
Figura 19 Frmula para identificar possveis dedos.............................................................. 31
Figura 20 Exemplo de imagem com 5 dedos identificados .................................................. 32
Figura 21 Posio que o equipamento estar antes dos comandos ....................................... 34
Figura 22 Gesto 1 dedo para cima e comportamento do kit VEX..................................... 34
Figura 23 Gesto 2 dedos e comportamento do kit VEX.................................................... 35
Figura 24 Gesto 1 dedo para direita e comportamento do kit VEX................................... 35
Figura 25 Gesto 1 dedo para esquerda e comportamento do kit VEX............................... 36
LISTA DE QUADROS
Quadro 1 Gestos reconhecidos e suas respectivas sadas...................................................... 22
Quadro 2 Possveis configuraes e suas respectivas sadas ................................................ 22
Quadro 3 Listagem das possveis exibies de sinais de sada............................................. 25
LISTA DE ABREVIATURAS E SIGLAS
2D Duas dimenses
3D Trs dimenses
IHC Interao Homem-Computador
USB Barramento Serial Universal (Universal Serial Bus)
VB Visual Basic
RESUMO
Esta monografia apresenta o desenvolvimento de um sistema que executa o
reconhecimento de uma mo, buscando encontrar, nos movimentos feitos por ela, gestos que
esto predefinidos dentro do sistema. Ao reconhecer um gesto como sendo vlido, o sistema
ter uma sada que poder ser utilizada, como entrada de comandos, em interfaces que faam
a comunicao com equipamentos eletrnicos, robs, etc. A captura dos movimentos e gestos
da mo do usurio ser feita atravs de um dispositivo de captura de vdeo. Aps a captura do
vdeo cada imagem ser processada, interpretada e transformada, em tempo real, em sadas
que podero se tornar comandos vlidos para o controle de tais dispositivos.
Palavras-chave: Viso Computacional; Interao Homem-Computador; OpenCV;
Reconhecimento de Gestos; Anlise de Imagens.
ABSTRACT
Title: A motion capture system for electronic equipment control
This monograph presents the development of a system that runs the recognition of a
hand.This system will try to find, in the movements of the hand, predefined gestures. When a
gesture is recognized as valid, the system will have an output that can be used as na input
command in interfaces that communicate with electronic equipment, robots and more. The
capture of movements and gestures of the user's hand will be done through a video capture
device. After the video capture, each image will be processed, interpreted and transformed, in
real time, in outputs that may become valid commands to control such devices.
Key-words: Computer Vision; Human-Computer Interaction; OpenCV; Gesture Recognition;
Image Analysis.
1 INTRODUO
Atualmente a forma mais comum de interao entre humanos e mquinas atravs de
teclado, mouse e toutch screen. A utilizao destes equipamentos possui uma interface de
baixa compreenso para pessoas leigas no assunto. H muitos anos, busca-se minimizar ao
mximo a dificuldade nas operaes que envolvem mquinas e equipamentos eletrnicos.
Para isto, foram inventadas interfaces que buscam tornar tais operaes o mais parecidas
possvel com as atividades do dia-a-dia das pessoas e que, tambm, fossem de fcil
aprendizado (PREECE, ROGERS e SHARP, 2005).
Computadores que possuem interfaces utilizando o recurso touch screen (tela de
toque) so um grande exemplo desta busca pela minimizao das dificuldades no momento de
operar um aparelho eletrnico. Com isto, elimina-se o uso do mouse, e facilita-se o uso do
computador para quem ainda no se acostumou com o uso de tal ferramenta.
Atualmente existem muitas pesquisas com o objetivo de desenvolver interfaces
intuitivas e inteligentes, onde o ponto chave a captura de movimentos e gestos tornando o
corpo, ou parte dele, como sendo a ferramenta de controle de aplicaes. A prova da busca
por abolir equipamentos como mouse e teclado desta nova interface de interao humano-
computador o lanamento ao pblico do mais novo equipamento da Microsoft na rea de
consoles de vdeo games, chamado Kinect. Ele possui como principal foco a utilizao de
cmeras que fazem o rastreamento do corpo, pegando suas posies e movimentos e
utilizando-os como comandos para os aplicativos. Tudo isto sem a necessidade do uso de
nenhuma espcie de controle (XBOX, 2010).
Na Figura 1 possvel ver uma imagem em que foi utilizada a movimentao do corpo
do jogador para comandar o aplicativo.
Figura 1 Jogador executando comandos atravs do Kinect
13
Uma das reas de aplicao das interfaces de comunicao, entre homens e mquinas,
a robtica. A robtica uma rea da tecnologia que abrange reas como a Engenharia
Mecnica, Engenharia Eltrica e Inteligncia Artificial, dentre outras. Robs podem ter
inmeros formatos e tamanhos. Atualmente os robs so utilizados em linhas de produo
para aumentar a produtividade, a padronizao e diminuir os riscos de acidentes com pessoas.
Existem, tambm, robs submarinos que so utilizados para explorar o fundo do mar.
Independentemente do tamanho, forma ou aplicao que o rob ter, ser necessrio ter uma
interface de comunicao entre o ser humano e a mquina. Esta interface pode ser
predefinida, onde o rob executar sempre a mesma rotina de atividade, como o caso dos
robs de linha de produo de uma fbrica de automveis. A interface tambm pode ser
composta de controles que utilizem botes para o envio dos comandos para o rob.
Para a criao de interfaces de comunicao possvel utilizar a realidade virtual. A
realidade virtual permite simular ambientes reais dentro de um mundo totalmente virtual, bem
como ter ambientes virtuais e utilizar elementos do mundo real, misturando-se e interagindo,
com o mundo virtual. Este o ponto que move a realidade virtual e faz com que ela evolua.
a mistura entre o mundo virtual e o mundo real buscando torn-los o mais prximos possvel.
Um exemplo desta fuso seria a possibilidade de se enxergar e tocar um objeto que somente
existe virtualmente, isso atravs de projetores de imagem em 3D e emuladores de tato.
Neste trabalho desenvolveu-se uma interface de captura de movimentos procura
intermediar esta interao entre homem e mquina, analisando e interpretando seus
movimentos. Em seguida, a interface envia comandos repassados ao equipamento eletrnico,
que executa as aes desejadas e comandadas pelo usurio. Sempre focando a utilizao de
movimentos intuitivos e que sejam do cotidiano do indivduo que estar operando o sistema
de interface.
O restante desta monografia est dividida da seguinte forma: o Captulo 2 apresenta a
fundamentao terica; a seguir, o Captulo 3 apresenta a definio do projeto; o Captulo 4
apresenta o desenvolvimento do trabalho; o Captulo 5 apresenta os testes e anlises de
resultados; e, por fim, so apresentadas a Concluses e as Referncias.
2 FUNDAMENTAO TERICA
Um dos conceitos importantes para dar incio ao desenvolvimento deste trabalho o
entendimento de padres de imagens. Todo objeto possui um formato. Entende-se por
formato de um objeto o contorno de sua forma em um espao 2D ou 3D. Assim o formato de
uma bola esfrico, o de um tabuleiro de xadrez quadrado. Para que se possa fazer a
extrao dos contornos de uma imagem adquirida de uma webcam, necessrio usar um
algoritmo para a deteco de bordas, que so os contornos de suas formas.
Existem vrios algoritmos para deteco de contornos, um deles o algoritmo de
Canny. Na Figura 2, possvel ver o algoritmo aplicado sobre uma imagem simples, de alto
contraste e de fcil anlise. Nesta figura foram identificados basicamente padres circulares, e
possvel notar que, para cada padro de crculo, foi utilizada uma cor. Os crculos mais
arredondados e os crculos com formato oval no sentido vertical foram contornados com a cor
vermelha, j os crculos de circunferncia mais oval no sentido horizontal, foram contornados
com a cor verde, independentemente do tamanho do crculo. Pois, neste caso, o algoritmo foi
destinado a identificar crculos que correspondessem a um padro, e no a uma figura de
tamanho esttico.
Figura 2 Imagem original e imagem com a aplicao do algoritmo
1

1
Imagem obtida a partir de um dos exemplos de aplicaes existentes nos diretrios de instalao da ferramenta OpenCV.
15
2.1 REALIDADE VIRTUAL
A realidade virtual tem como objetivo tornar o mundo virtual o mais parecido possvel
com o mundo real atravs de emulao de viso, tato ou qualquer que seja o sentido humano
utilizado para esta simulao. Consegue-se isto criando artifcios que faam com que o
usurio, ao entrar em um mundo virtual, no perceba que no est manipulando algo irreal,
achando que o que ele est manipulando virtualmente um objeto existente. Somente
possvel isto com o desenvolvimento de interfaces que consigam simular esta interao e
consigam imitar o objeto real no mundo virtual.
Alm de se ter uma interface que faa com que o usurio desprenda-se de certas
ferramentas para a utilizao de equipamentos eletrnicos, necessrio fazer com que o
usurio assimile os movimentos que ele est efetuando com as aes que esto sendo
executadas, com a maior facilidade possvel, para que tanto o aprendizado como a utilizao
se tornem de fcil compreenso e assimilao. Tornando, assim, a utilizao agradvel e
dando a maior sensao de imerso no mundo virtual possvel.
A eficincia na deteco dos movimentos a maior responsvel pela sensao de
imerso. a partir da deteco, anlise e interpretao dos movimentos que possvel
executar a ao de forma correta. Para a deteco destes movimentos, existem dispositivos de
absoro de movimentos que fornecem a posio de certa parte do corpo. Estes dispositivos
podem ser mecnicos, acsticos, magnticos ou pticos. Os dispositivos de rastreamento mais
utilizados at hoje so os magnticos, porm a grande tendncia a da utilizao de
dispositivos pticos. Os rastreadores pticos utilizam imagens para a deteco dos
movimentos, e esta caracterstica faz com que, para a utilizao destes sensores, no haja
limitao de movimentos ou, at mesmo, desconforto no uso devido a fios conectados a, por
exemplo, uma luva.
2.2 VEX
A VEX Robotics uma empresa que desenvolve e fabrica kits de robtica, cujo
objetivo educacional, com foco tanto no meio acadmico quanto na rea infantil. A
finalidade destes kits a introduo das pessoas no mundo dos robs, tendo em vista o
desenvolvimento de equipamentos que auxiliem em tarefas do dia-a-dia. Com este kit,
possvel desenvolver diversos modelos de robs, cada um com um formato e finalidade de
uso diferente. Como possvel ver na Figura 3, estes kits so compostos, basicamente, por
motores, engrenagens, rodas e sensores. Tambm possvel adquirir peas sobressalentes,
caso seja necessrio, para a construo de determinado rob (VEX, 2010a).
16
Figura 3 Alguns componentes do Kit da VEX Robotics
A escolha pela utilizao do kit VEX neste projeto foi devido grande possibilidade
de movimentos que ele proporciona e facilidade em desenvolver, assim como o prprio
rob, uma aplicao de comunicao com o ele.
2.3 OPENCV
OpenCV (Open Source Computer Vision) uma biblioteca para o desenvolvimento de
aplicativos na rea de viso computacional. Atravs dela, possvel fazer a anlise,
interpretao e processamento de imagens em tempo real (BRADSKI e KAEHLER, 2008).
Ela multiplataforma e totalmente livre para uso acadmico e comercial, bastando seguir o
modelo de licena BSD. A verso 1.0 foi lanada no final do ano de 2006 e foi desenvolvida
nas linguagens de programao C e C++. Atualmente ela est na verso 2.0, e d suporte
tambm para desenvolvedores Phyton que desejem utiliz-la em seus projetos. Possui mais de
500 funes que podem ser aplicadas nas reas de Interao Homem-Computador (IHC),
identificao de objetos, reconhecimento de face, tracking (seguir), reconhecimento de
movimentos, dentre outras.
OpenCV j possui um tempo considervel de vida e tambm possui muitos
utilizadores. Trata-se de uma ferramenta que facilita o desenvolvimento de projetos que
envolvam manipulao de imagens e que, assim, contribui para aumentar tambm a
confiabilidade nas aplicaes desenvolvidas com ela. Outro ponto forte o fato de que o
OpenCV multiplataforma, possibilitando a usurios de diferentes sistemas operacionais
desenvolverem seus projetos.
Na Figura 4, possvel ver um pequeno trecho de cdigo que utiliza a biblioteca
OpenCV, escrito em linguagem C, que exibe uma imagem esttica (foto) em uma janela, e
aps a exibio, aplica uma funo para deixar a imagem somente com tons de cinza. Logo
aps, aplica o algoritmo de Canny que identifica, e destaca contornando as bordas da imagem
com linhas brancas. E aps isso exibe a imagem em preto e branco com suas bordas
destacadas.
17
#include <highgui.h>
#include <cv.h>
IplImage* img_original = 0;
IplImage* img_cinza = 0;
IplImage* img_contorno = 0;
int main(int argc, char** argv){
/* Carregar imagem de entrada */
img_original = cvLoadImage(argv[1]);
/* Cria janela p/ exibir a imagem Original */
cvNamedWindow("Imagem Original", CV_WINDOW_AUTOSIZE);
/* Exibindo a imagem na janela criada */
cvShowImage("Imagem Original", img_original);
img_cinza = cvCreateImage(cvSize(img_original->width, img_original->height), IPL_DEPTH_8U, 1);
/* Transforma imagem para tons de cinza */
cvCvtColor(img_original, img_cinza, CV_RGB2GRAY);
img_contorno = cvCreateImage(cvSize(img_cinza->width, img_cinza->height), IPL_DEPTH_8U, img_cinza-
>nChannels);
/*Aplica algoritmo de Canny */
cvCanny(img_cinza, img_contorno, 0, 255, 3);
/*Cria janela para exibir imagem contornos*/
cvNamedWindow("Contornos", CV_WINDOW_AUTOSIZE);
/*Exibindo a imagem na janela criada */
cvShowImage("Contornos", img_contorno);
int keyCode = cvWaitKey(); /* Aguarda tecla p/ fechar programa */
cvReleaseImage(&img_original); /* Desalocar imagem */
cvDestroyWindow("Imagem Original"); /* Desalocar janela */
cvReleaseImage(&img_contorno); /* Desalocar imagem */
cvDestroyWindow("Contornada"); /* Desalocar janela */
return(0);
}
Figura 4 Exemplo de cdigo-fonte que utiliza a biblioteca OpenCV
O resultado do algoritmo apresentado na Figura 4 pode ser visto na Figura 5.
Figura 5 Imagem original e imagem aps aplicao do algoritmo de Canny
A biblioteca OpenCV possui recursos para efetuar o reconhecimento de padres nas
imagens analisadas. Para isto necessrio estipular um padro para que a anlise seja efetuada
(OPENCV, 2010). possvel usar, como exemplo, uma mo humana. Caso seja inserido
dentro do sistema que o padro a ser reconhecido por ele ser uma mo aberta, o sistema
procurar na imagem uma espcie de bloco com cinco extremidades. Ao se mostrar para a
cmera uma mo aberta, ela ser reconhecida como um padro vlido, e o sistema passar a
executar os procedimentos estipulados para o reconhecimento deste padro. No momento em
que a mo for fechada, ela deixar de ser reconhecida, e o sistema passar acusar a falta de
padres na imagem. por isto que se deve prever a maior parte das possveis posies e
18
gestos da mo, para que ela continue sendo reconhecida como uma mo mesmo aps sofrer,
perante o sistema, modificaes de formato durante a movimentao.
Dentro das aplicaes de exemplo existentes no diretrio de instalao da biblioteca
OpenCV, est a aplicao de face detect (deteco de face). Dentro desta aplicao esto
predefinidos, de forma genrica e mais abrangente possvel, os padres existentes em uma
face. Neste reconhecimento feita, inicialmente, a procura de uma figura que possua o
formato de uma cabea, ou seja, so buscados padres ovais dentro da imagem analisada.
Aps encontrar um destes padres, esta regio analisada para verificar se realmente se trata
de uma cabea. Esta diviso ser feita para que cada parte possua um tratamento diferente, ou
seja, cada parte buscar um novo padro que corresponder s caractersticas existentes em
uma face. Neste algoritmo so buscadas, basicamente, as caractersticas das partes da face
correspondentes a boca, olhos e testa. Na Figura 6, possvel ver como feita esta diviso da
face de todo o resto da imagem, e posteriormente como feita a subdiviso de cada uma das
partes da face.
Figura 6 Imagem original e a imagem com os padres a serem reconhecidos
possvel ver o resultado do programa de deteco de face, encontrado no diretrio de
instalao da biblioteca OpenCV, na Figura 7. Este sistema faz um crculo em torno da regio
da imagem que ele identifica como sendo uma face vlida.
19
Figura 7 Resultado do programa de deteco de face
Na Figura 7, possvel verificar a falha do sistema de deteco de face, pois ele no
marcou como sendo faces vlidas as faces de trs pessoas existentes na imagem. Isto
aconteceu porque ele no conseguiu identificar todas as caractersticas necessrias para que
configurasse as faces como sendo vlidas.
Levando em considerao o reconhecimento de movimentos e padres, possvel
realizar o reconhecimento de uma mo dentro do sistema. Com isto fica mais claro o
entendimento do funcionamento da interface que se pretende desenvolver. Tendo em mente a
dificuldade em se identificar um padro dentro de uma imagem, possvel entender o grau de
dificuldade ao se desenvolver um sistema deste gnero.
Tendo como exemplo o sistema de deteco de face apresentado acima, possvel
verificar que, para que a identificao de padres seja perfeita, necessrio um grau de
processamento e de conhecimento de todas as possibilidades de posies do padro para que
no haja falhas como as que ocorreram na Figura 7. Para os humanos o processo de
identificao do que , ou no, uma face fcil, porm para um programa o qual no possui
aprendizagem durante seu fluxo de execuo um trabalho suscetvel a falhas.
3 DEFINIO
Este trabalho tem como objetivo capturar os movimentos realizados pelo usurio,
analisando-os e interpretando-os para ter como sada um comando que possa ser utilizado por
um dispositivo eletrnico. A interface utiliza uma cmera de captura de vdeo para detectar os
gestos feitos pelo usurio. E tambm utiliza a biblioteca OpenCV para fazer a comparao das
imagens captadas pela cmera, com padres j estipulados na prpria interface. Se a imagem
coletada pela cmera coincidir com pelo menos um dos padres predefinidos dentro do
sistema, a interface ter como sada comandos que podero ser utilizados em sistemas
eletroeletrnicos, tais como robs, articulaes eletromecnicas, etc.
Com isto, possibilita-se o manuseio de determinado equipamento eletrnico, sem a
necessidade de se apertar botes, movimentar alavancas, etc. Como a interface ter como
padres gestos e sinais sem grande complexidade, e de uso corriqueiro, isto facilitar muito a
aprendizagem do manuseio do equipamento em questo.
Os movimentos bsicos sero os que coordenaro a direo, tais como andar, parar,
girar para a direita, girar para a esquerda, andar de r. Com isto tm-se as funes bsicas
requeridas para movimentar um rob que se desloca, por exemplo, utilizando rodas.
3.1 GESTOS IDENTIFICADOS
Existem oito gestos que so reconhecidos pelo sistema, cada um deles corresponde a
uma sada que a interface envia quando reconhec-los. O sistema tem de reconhecer o gesto
dentro de uma taxa de variao de tonalidade da pele, tamanho da mo ou do tamanho dos
dedos. Os gestos esto ilustrados na Figura 8.
21
Figura 8 Gestos reconhecidos
Basicamente, o sistema faz a contagem dos dedos que esto estendidos, contando
desde zero dedos at cinco dedos. A nica particularidade existente na contagem no caso de
encontrar apenas 1 dedo estendido. Neste caso o sistema far a identificao de qual lado que
o dedo est apontando, podendo ser para cima, para direita ou para esquerda.
Todos os gestos que foram mostrados na Figura 8 foram feitos com a mo direita, mas
no existe restrio alguma quanto a faz-los com a mo esquerda. O usurio poderia ter
problemas para utilizar o sistema no caso de no possuir algum dedo.
3.2 SINAIS DE SADA
possvel fazer com que um programa gere sadas, bem como possvel aproveitar
estas sadas utilizando-as como entrada em outro programa. Como mostrado anteriormente,
cada um dos gestos reconhecidos pelo sistema possuir uma interpretao diferente, ou seja,
cada gesto far com que o sistema execute um procedimento diferente.
Cada procedimento gerar, ao seu final, uma sada correspondente ao gesto
identificado. Esta sada poder ser utilizada em qualquer sistema que d suporte a um recurso
como este. A finalidade do desenvolvimento deste projeto para que se utilize esta interface
em sistemas que movimentem equipamentos eletrnicos, mas como no se limitou a interface
a um sistema em especfico, pode-se utiliz-la onde ela melhor se enquadrar.
A ideia a de gerar sadas baseadas em caracteres, que tenham alguma relao com o
gesto que est sendo identificado para que sejam de fcil interpretao. Como, por exemplo,
quando se identificar o gesto da mo aberta, a interface envia o caractere P. Ao se
identificar o gesto correspondente mo com dois dedos estendidos, a interface envia o
caractere T. No momento em que a interface de reconhecimento de gestos identificar o
gesto de um dedo da mo apontando para cima, gerar uma sada com o caractere F.
Busca-se fazer com que os gestos tenham alguma relao lgica com o movimento
que o equipamento eletrnico executar. No Quadro 1, cada gesto e a sua sada
correspondente so apresentados
22
Quadro 1 Gestos reconhecidos e suas respectivas sadas
Gesto Sada Possvel Movimento
0 dedos X -
1 dedo para cima F Frente
1 dedo para direita D Direita
1 dedo para esquerda E Esquerda
2 dedos T Trs
3 dedos Y -
5 dedos P Parar
Os gestos 0 dedos e 3 dedos poderiam ser utilizados para qualquer outro
movimento que um equipamento eletrnico tivesse. Todos os possveis movimentos foram
baseados nos que o kit VEX poderia executar com a configurao que foi utilizada para os
testes deste sistema.
possvel notar que o gesto 4 dedos no consta no Quadro 1, isto devido a este
gesto servir para a entrada em um menu de configurao. Ou seja, no momento que o sistema
reconhece o gesto 4 dedos, ele entra neste menu de configurao. Aps isto, todos os gestos
executados tero outro significado.
Alm dos sinais de sada citados no Quadro 1, existem mais 6 sinais que o sistema
pode enviar para o equipamento eletrnico. Estas sadas so enviadas de duas maneiras,
quando o usurio acessa o menu de configurao atravs do gesto 4 dedos ou quando utiliza
o mouse para clicar diretamente na configurao desejada que est na tela principal do sistema
de reconhecimento de gestos. As possveis sadas para estas configuraes esto listadas no
Quadro 2.
Quadro 2 Possveis configuraes e suas respectivas sadas
Configurao Sada
Velocidade Lenta L
Velocidade Intermediria N
Velocidade Rpida R
Ciclo Curto 1
Ciclo Intermedirio 2
Ciclo Longo 3
As sadas que foram sugeridas para cada uma das aes so configurveis, deixando o
usurio livre para mudar, inclusive, a quantidade de caracteres que enviada ao equipamento
a cada comando. A seguir ser apresentado como efetuar as configuraes de sadas.
4 DESENVOLVIMENTO DO TRABALHO
Neste captulo ser apresentado o sistema de reconhecimento de gestos, bem como sua
interface e o que cada componente desta interface faz, funcionamento interno para o
reconhecimento de cada gesto e possveis configuraes que o usurio pode aplicar sobre o
sistema.
4.1 INTERFACE GRFICA DO SISTEMA
Na Figura 9, possvel ver a interface grfica do sistema. Aps ser feita uma
explicao de cada funcionalidade presente no sistema.
Figura 9 Interface grfica do sistema de reconhecimento de gestos
Na Figura 9, foram enumeradas as funcionalidades do sistema de 1 at 11. Cada
nmero corresponde a:
Nmero 1: imagem original com a aplicao de algumas figuras geomtricas,
como crculos e linhas retas, para que possa ser visualizado o que o sistema est
identificando na imagem;
24
Nmero 2: exibe a imagem aps o filtro utilizado para deteco dos pontos que
possuem colorao de pele. Esta imagem possuir apenas duas cores, preto e
branco. Os pontos que estiverem pintados de branco so os pontos que foram
considerados como pontos de pele. Os pontos que estiverem pintados de preto so
os que no foram reconhecidos com pontos com tonalidade de pele;
Nmero 3: possibilita a configurao da velocidade de locomoo do
equipamento eletrnico quando ele receber os comandos de movimentao. Ao
clicar em cada uma das opes, o sistema envia o respectivo comando de
alterao de velocidade para o equipamento;
Nmero 4: abre uma tela que possibilita a configurao das sadas que cada
comando enviar esta tela pode ser visualizada na Figura 10 e cada uma das suas
funcionalidades sero explicadas a seguir;
Nmero 5: possibilita a configurao do tempo que o equipamento eletrnico ir
se locomover quando receber comandos de movimentao. Ao clicar em cada
uma das opes, o sistema envia o respectivo comando de alterao de velocidade
para o equipamento;
Nmero 6: este boto faz com que o sistema inicie e, aps ter iniciado, sua funo
a de parar o sistema de captura;
Nmero 7: a escolha do nmero de frames possibilita o controle do nmero
mnimo de quadros, com o mesmo gesto, para que s ento o sistema reconhea-o
como sendo um gesto vlido. Com esta configurao diminuem-se os erros
ocorridos por falsos positivo onde, por apenas alguns instantes, foi reconhecido
um gesto diferente ao que se est executando na frente da cmera;
Nmero 8: representa o tempo em que o sistema aguardar, aps enviar um sinal,
para s ento enviar outro sinal. Esta funcionalidade evita o congestionamento de
sinais de sada ocasionados por atraso de hardware, sejam eles de origem do
prprio computador ou do equipamento eletrnico;
Nmero 9: faz uma listagem de todos os dispositivos de vdeo encontrados no
computador, possibilitando a seleo de qual entrada de vdeo ser utilizada para a
captura das imagens;
Nmero 10: faz uma listagem de todas as portas seriais encontradas no
computador, possibilitando a seleo de qual porta que receber os sinais de sada
do sistema de reconhecimento de gestos;
Nmero 11: exibe qual o sinal que est sendo identificado no momento. As
possveis exibies esto listadas, juntamente com suas respectivas descries, no
Quadro 3.
25
Figura 10 Tela de configurao de sadas
Na Figura 10, foram enumerados de 1 a 4 cada um dos componentes da tela de
configurao de sadas, que aceitam interao do usurio. Cada nmero corresponde a:
Nmero 1: possibilita a seleo do comando que ir ser configurado. Aps
selecionar o comando, exibida, no item de nmero 2, a sada correspondente ao
comando selecionado;
Nmero 2: mostra a sada que corresponde ao comando selecionado no item de
nmero 1. Este item possibilita que o usurio digite o que ele deseja que seja
enviado ao equipamento eletrnico quando for executado o gesto selecionado no
item de nmero 1;
Nmero 3: este boto faz o salvamento do que est escrito no item de nmero 2
atribuindo este valor ao gesto que estiver selecionado no item de nmero 1;
Nmero 4: fecha a tela de configurao de sadas.
Todas as configuraes so salvas em um arquivo XML no diretrio em que o sistema
de reconhecimento de gestos estiver sendo executado. Isto d a possibilidade de, aps o
fechamento do sistema, reabri-lo com as configuraes que foram efetuadas anteriormente.
Quadro 3 Listagem das possveis exibies de sinais de sada
Sinal Significado
/ No foi identificada uma figura de mo vlida
0 Identificado 0 dedos estendidos
1-F Identificado 1 dedo estendido apontando para cima/frente
1-D Identificado 1 dedo estendido apontando para a direita
1-E Identificado 1 dedo estendido apontando para a esquerda
2 Identificado 2 dedos estendidos
3 Identificado 3 dedos estendidos
5 Identificado 5 dedos estendidos
Alm das telas apresentadas at o momento, existe mais uma cuja nica forma de
acesso com o sistema em pleno funcionamento e efetuando o gesto de 4 dedo. Esta tela
no possui outra forma de acesso devido ao fato de que ela simplesmente faz a mesma
configurao que as funcionalidades de velocidade e tempo de ciclo apresentados
anteriormente, com a diferena que esta tela no pode ser controlada pelo mouse. A nica
forma de interagir com ela atravs de gestos. A Figura 11 mostra o layout desta tela.
26
Figura 11 Tela de configurao de Velocidade e Tempo de ciclo via gestos
Os itens exibidos pela tela mostrada na Figura 11 so basicamente dois:
Nmero 1: representa o nmero de dedos que devem ser reconhecidos como
estando estendidos. Ao passo que se o usurio fizer o gesto de 1 dedo
(indiferentemente se o dedo est apontando para cima, direita ou esquerda) a tela
mudar as opes disponveis. As opes podem ser vistas na Figura 12.
Nmero 2: descrio de qual opo corresponde ao nmero de dedos que est ao
lado. Ao que o usurio fizer o gesto de 2 dedos o sistema mudar as opes
exibidas, apresentando as opes que podem ser vistas na Figura 13.
Figura 12 Tela de configurao de velocidade atravs de gestos
27
Figura 13 Tela de configurao de tempo de ciclo atravs de gestos
No momento em que o sistema estiver exibindo as telas demonstradas na Figura 12 e
na Figura 13, e quando o sistema reconhecer que o usurio estiver executando o gesto
correspondente s opes de 1, 2 ou 3 dedos, ele enviar ao equipamento a sada
correspondente quela configurao. No caso de ser identificado o gesto de 5 dedos o
sistema fechar a tela de configurao e voltar para a tela principal do sistema.
importante ressaltar que no momento em que o usurio estiver visualizando qualquer
uma das telas de configurao, os gestos feitos na frente da cmera deixam de ser
reconhecidos como gestos de controle do equipamento eletrnico, passando a ser somente
gestos de configurao.
4.2 CONFIGURAO UTILIZADA PARA O KIT VEX
O kit foi montado de maneira que possusse uma configurao que possibilitasse sua
movimentao sem grande complexidade de comandos. Ele possui a aparncia de um carro
com quatro rodas. Porm sua movimentao baseada na movimentao de tanques de
guerra, ou seja, para efetuar as converses ele no muda o ngulo das rodas, ele apenas faz
com que as rodas de cada lado girem em sentidos diferentes. Isto possibilita que as converses
sejam efetuadas de maneira que no seja necessrio ocupar nenhum espao alm do que j
est sendo ocupado pelo equipamento, pois ele gira em torno de seu prprio eixo. Na Figura
14, possvel ver uma ilustrao do que foi explicado anteriormente.
Figura 14 Possveis comportamentos do veculo em funo do sentido de suas rodas
28
Esta configurao de locomoo foi escolhida devido facilidade de se trabalhar
somente com dois motores, no sendo necessrio preocupar-se com rotao de rodas para
efetuar as converses. A Figura 15 mostra a montagem utilizada para o kit VEX.
Figura 15 Montagem do kit VEX
A comunicao do computador com o rob est sendo feita atravs de um cabo USB-
Serial que acompanha o kit. A escolha por este meio de comunicao foi devido praticidade
de instalao. Basta instalar o driver do cabo, o que gera uma porta Serial (COM) virtual. A
utilizao deste meio de comunicao deixa o equipamento limitado a um pequeno espao
para efetuar seus movimentos. Esta desvantagem acaba se tornando nula se comparada s
adaptaes necessrias para fazer a comunicao do equipamento de outra forma.
4.3 AMBIENTE DE DESENVOLVIMENTO DO KIT VEX
Para o desenvolvimento de aplicaes para o kit VEX foi utilizado um ambiente de
desenvolvimento integrado gratuito chamado MPLab (MICROCHIP, 2010a). Esta escolha foi
devido necessidade de se ter um ambiente sem limitaes e que proporcionasse uma boa
produtividade.
Para ser possvel trabalhar com o VEX utilizando o MPLab foi instalado no ambiente
o framework WPILib, que rene funcionalidades para programao em robs (WPILIB,
2010). Tambm foi necessria a instalao do compilador MCC18, que possui alguns recursos
vlidos somente por um certo tempo, mas os recursos necessrios para o desenvolvimento no
VEX no possuem nenhuma limitao (MICROCHIP, 2010b). Para se fazer a transferncia de
um programa executvel para a controladora do VEX foi utilizado o IFILoader (VEX, 2010b).
29
4.4 FUNCIONAMENTO DO SISTEMA
Para o reconhecimento dos gestos o sistema necessita, basicamente, de 2 passos. O
primeiro deles filtrar da imagem pontos potencialmente irrelevantes. O segundo a anlise,
atravs de clculos e utilizao de funes do OpenCV, da parte da imagem que foi
considerada como possuindo uma mo e identificar o gesto que ela est executando.
4.5 COMO OPENCV FOI UTILIZADO
Para o desenvolvimento do sistema foi utilizado o EmguCV, que uma plataforma em
.Net para a biblioteca OpenCV. Ela permite que se invoquem as funes do OpenCV nas
linguagens compatveis com .Net como C#, VB, VC++, etc. (EMGUCV, 2010) A escolha
pela utilizao desta plataforma deu-se pela possibilidade de criao de uma interface grfica
que fosse mais amigvel para a utilizao do sistema.
4.6 FILTRAGEM DA IMAGEM
A filtragem consiste em encontrar na imagem pontos que possuam colorao de pele.
Como a tonalidade da pele varia de pessoa para pessoa e a luminosidade tambm influencia
nesta variao, esta filtragem faz uma busca dentro de um valor mnimo e mximo de cor,
diminuindo as falhas por no identificao de pele.
Para a filtragem so enviados para a funo: a imagem a ser analisada, a cor mnima e
a cor mxima que devem ser consideradas vlidas. O retorno desta funo uma imagem
binarizada, onde todos os pontos que foram considerados como possuindo cor de pele esto
pintados na cor branca. E todos os pontos que no foram considerados como tendo cor de pele
na cor preta. Um exemplo desta filtragem pode ser visto na Figura 16.
Figura 16 Exemplo de filtragem dos pontos de pele da imagem
Para um melhor desempenho desta filtragem importante que o fundo no possua
tonalidade de pele, seno o sistema passar a acusar praticamente a imagem inteira como
possuindo cor de pele.
30
4.7 ANLISE
Aps encontrar os pontos que possuem cor de pele, o prximo processo encontrar
um contorno na imagem. considerado um contorno o conjunto de pontos em que existe um
alto contraste de cor. Se esta anlise for feita em uma imagem preto e branco torna-se fcil a
tarefa de identificar os contornos.
Como possvel que outros pontos da imagem sejam identificados como possuindo
cor de pele, poder existir mais de um contorno na imagem. Para isto existe uma condio que
far com que o sistema somente v para o prximo passo se o contorno possuir uma rea
maior que certo valor, caso contrrio o sistema considera como a no existncia de uma
imagem vlida.
Encontrando um contorno vlido, ser feita a identificao das falhas de convexidade
existentes neste contorno. A parte de fora de um crculo pode ser considerada uma figura
convexa. As falhas de convexidade so os pontos em que no fosse possvel formar esta
figura de crculo. A Figura 17 destaca na cor branca o que deveria formar a figura circular, as
linhas na cor magenta representam o incio de uma falha de convexidade e as linhas verdes
so o fim da falha de convexidade.
Figura 17 Convexidade e falhas de convexidade
Tendo a informao de quantas falhas de convexidade foram encontradas, e onde esto
localizadas, o procedimento seguinte o de anlise de cada uma das falhas. Esta prxima
anlise consiste em fazer a medio de cada falha. Tendo em mente que cada dedo estaria
representado por uma falha de convexidade, e que um dedo possui uma tamanho proporcional
ao tamanho da mo, basta medir cada falha e comparar sua altura com a altura total do
contorno que est sendo analisado.
Para fazer a comparao do tamanho de cada falha de convexidade com o tamanho
total da figura, so utilizados 3 parmetros. O primeiro deles representa a altura total da figura
que est sendo analisada. O segundo parmetro o ponto em que se inicia a falha de
convexidade. O terceiro parmetro representa o ponto interno da falha de convexidade. Cada
um desses pontos pode ser visualizado na Figura 18.
31
Figura 18 Pontos analisados para identificao dos dedos
Os parmetros que foram citados acima so, respectivamente, representados pelo
retngulo branco, crculos vermelhos e crculos amarelos. Se cada um desses parmetros for
nomeado como sendo a, b e c, a frmula utilizada para identificar um dedo na imagem est
descrita na Figura 19.
Figura 19 Frmula para identificar possveis dedos
Esta frmula utilizada em cada uma das falhas de convexidade encontradas. Caso a
expresso seja vlida, ela uma forte candidata a ser um dedo. Para ser considerada um dedo,
a falha ainda precisa se enquadrar em mais 2 afirmaes:
1. O dedo precisa estar acima do centro da imagem;
2. A ponta do dedo, ou seja, o incio da convexidade deve estar acima da base do
dedo, ou seja, do meio da falha de convexidade.
Na Figura 20, possvel ver um exemplo de imagem em que foram encontrados 5
dedos. Cada um deles foi marcado com uma linha verde, que se inicia na base do dedo e
termina na ponta do dedo.
32
Figura 20 Exemplo de imagem com 5 dedos identificados
Como citado anteriormente, depois de feita a contagem de dedos presentes na imagem
e no caso da identificao de apenas 1 dedo na imagem, o sistema consegue identificar qual
a direo que a ponta do dedo est apontando. A tcnica utilizada a mesma utilizada pelo
nosso crebro para distinguir qual o lado que um dedo est apontando, bastando olhar qual o
lado que se encontra a base do dedo e qual lado se encontra a ponta do dedo. Para isto
utilizada a posio X dos pontos que representam a ponta e a base do dedo.
5 TESTES E ANLISE DE RESULTADOS
Todos os testes, para reconhecimento de gestos efetuados no sistema, foram feitos
atravs da sada existente no prprio sistema. Os testes das sadas que o sistema envia foram
efetuados utilizando o kit de robtica VEX. Os resultados obtidos na sada do prprio sistema
so totalmente satisfatrios. O sistema pode sofrer algumas variaes nos resultados quando
se tem pouca luminosidade no ambiente ou quando se tem um fundo que possua uma
tonalidade de cor que se assemelhe com a cor da pele.
Outro fator que influencia nos resultados obtidos a qualidade do equipamento de
captura de imagens, seja ela na qualidade de imagem ou na velocidade de captura das
imagens. A qualidade influencia na deteco correta do gesto e a velocidade de captura
influencia na velocidade de reconhecimento do gesto e, consequentemente, na velocidade do
envio do comando para o equipamento eletrnico.
Durante todos os testes realizados o sistema demonstrou muita velocidade no
processamento das imagens, apresentando apenas duas falhas que esto relacionadas
velocidade. A primeira delas a lentido do prprio equipamento de captura de imagens.
Devido sua lentido o sistema parecia possuir um delay, demorando a fazer o
reconhecimento dos gestos. A outra lentido ocorria aps o envio do comando para o
equipamento eletrnico. Em alguns momentos o equipamento demorava a executar o
comando enviado.
A demora aps enviar o comando pode estar sendo causada pelo prprio VEX ou pelo
sistema que responsvel pelo gerenciamento dos comandos na porta serial. Esta demora foi
o que motivou o desenvolvimento do mecanismo que possibilita, ao usurio, estabelecer um
tempo de espera aps o envio do comando ao equipamento eletrnico. Antes do
desenvolvimento deste mecanismo, o equipamento eletrnico ficava com muitos comandos
acumulados e, mesmo aps o fechamento do sistema de reconhecimento de gestos, continuava
executando os comandos atrasados.
Ambos os problemas encontrados, na questo da lentido, esto fora dos domnios do
sistema de reconhecimento de gestos, que se demonstrou muito eficiente na execuo das suas
tarefas. O sistema no exige o uso de um computador com grande poder de processamento,
somente necessita de um equipamento que possui um custo monetrio relativamente baixo
que o dispositivo de entrada de vdeo.
Dos testes que foram realizados com o kit VEX, foram registrados alguns momentos
para a comprovao do funcionamento do sistema. Para que seja possvel perceber a
movimentao do kit VEX foi utilizada uma seta em marrom, que servir como ponto de
referncia do ponto de partida do equipamento. Na Figura 21, o kit VEX est na sua posio
34
inicial. Esta ser a posio em que o equipamento estar antes de todos os comandos que
sero enviados ao equipamento.
Figura 21 Posio que o equipamento estar antes dos comandos
A Figura 22 apresentar o gesto 1 dedo para cima, que foi executado no sistema, e o
movimento executado pelo equipamento aps receber o comando respectivo ao gesto.
Figura 22 Gesto 1 dedo para cima e comportamento do kit VEX
A Figura 23 apresentar o gesto 2 dedos, que foi executado no sistema, e o
movimento executado pelo equipamento aps receber o comando respectivo ao gesto.
35
Figura 23 Gesto 2 dedos e comportamento do kit VEX
A Figura 24 apresentar o gesto 1 dedo para direita, que foi executado no sistema, e
o movimento executado pelo equipamento aps receber o comando respectivo ao gesto. Da
perspectiva de quem olha a Figura 24, possvel perceber que o lado que o dedo est
apontando para a esquerda, mas da perspectiva do usurio o dedo est apontando para a
direita.
Figura 24 Gesto 1 dedo para direita e comportamento do kit VEX
A Figura 25 apresentar o gesto 1 dedo para esquerda, que foi executado no sistema,
e o movimento executado pelo equipamento aps receber o comando respectivo ao gesto. Da
perspectiva de quem olha a Figura 25, possvel perceber que o lado que o dedo est
apontando para a direita, mas da perspectiva do usurio o dedo est apontando para a
esquerda.
36
Figura 25 Gesto 1 dedo para esquerda e comportamento do kit VEX
Os gestos foram todos efetuados com a mo direita, mas no teria problema algum se
tivessem sido executados com a mo esquerda. Lembrando que antes da execuo de cada
gesto o kit VEX foi reposicionado para a posio inicial.
6 CONCLUSO
O sistema de reconhecimento de gestos foi desenvolvido com o objetivo de reduzir a
utilizao de equipamentos como teclado, mouse e joystick para a movimentao de
equipamentos eletrnicos. A proposta do trabalho foi o de desenvolver uma interface que
capturasse, e identificasse, gestos feitos com a mo e, aps a identificao do gesto, enviasse
um comando para o equipamento eletrnico. Este objetivo foi alcanado com sucesso, sendo
que consegue identificar at 8 gestos diferentes e envia os respectivos comandos para o
equipamento eletrnico que estiver ligado a uma das portas seriais.
O sistema ainda proporciona a facilidade de no utilizar todas as suas configuraes de
forma fixa, permitindo ao usurio fazer alteraes em suas configuraes da maneira que
melhor lhe convir. Esta caracterstica traz um diferencial da interface de reconhecimento de
gestos para outros sistemas. Isto faz com que ela esteja mais prxima da realidade dos
programas que esto no mercado. Independentemente da rea de atuao do software, ele
precisa se adaptar ou permitir sua adaptao realidade do usurio.
Os resultados dos testes realizados para a identificao dos gestos so totalmente
satisfatrios, sendo que o sistema realiza o reconhecimento dos gestos de forma muito eficaz e
com grande desempenho. Porm os resultados obtidos nos testes realizados para as sadas de
cada comando no so to satisfatrios quanto os resultados do teste anterior. A lgica
utilizada foi a de se enviar um comando ao equipamento, o mesmo execut-lo durante certo
tempo, parar e aguardar o prximo comando. Isto faz com que o equipamento fique andando e
parando, causando uma certa aflio para quem est operando o sistema.
O ideal seria que o sistema enviasse um comando em intervalos de tempo muito
curtos, e que o equipamento no parasse de executar o comando anterior enquanto o prximo
comando no fosse diferente. Para que isto funcionasse, o sistema de reconhecimento de
gestos deveria ter 100%, ou muito prximo disso, de acerto na identificao dos gestos
executados. Alm disso, no poderia haver atrasos entre o envio e recebimento dos comandos.
Como estes dois problemas foram encontrados durante o desenvolvimento do sistema, optou-
se por ter um equipamento que demore mais para terminar a tarefa desejada, mas que tenha
segurana na hora de executar os comandos.
possvel citar algumas sugestes de melhorias do sistema de reconhecimento de
gestos. Elas so apresentadas a seguir:
Reconhecimento de gestos mais complexos como, por exemplo, sequncia de
gestos que iro representar um gesto nico. Esta ideia vem da linguagem de libras,
onde uma palavra representada por uma sequncia de movimentos.
38
Criar uma interface de hardware para a interface de reconhecimento de gestos que
possibilite a comunicao entre o computador e o equipamento eletrnico, sem a
utilizao de fios.
Fazer o reconhecimento de movimentos de outras partes do corpo alm das mos
como, por exemplo, a movimentao do brao inteiro. Este desenvolvimento
possibilitaria a utilizao da interface com equipamentos eletrnicos que
possussem movimentos mais complexos como, por exemplo, braos robticos.
Efetuar a calibragem da cor da pele a partir de imagens capturadas pelo prprio
equipamento de captura de imagens. Este recurso diminuiria algumas falhas na
identificao da cor de pele.
REFERNCIAS
BRADSKI, Gary; KAEHLER, Adrian. Learning OpenCV: Computer Vision with the
OpenCV Library. Sebastopol: OReilly, 2008. 555 p.
EMGUCV: OpenCV in .Net. [S.l.]: [s.n.], 2010. Disponvel em:
<http://www.emgu.com/wiki/index.php/Main_Page>. Acesso em: 28 out. 2010.
MICROCHIP: MPLAB Integrated Development Environment. [S.l.]: [s.n.], 2010a.
Disponvel em:
<http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dD
ocName=en019469&part=SW007002>. Acesso em: 28 out. 2010.
MICROCHIP: MPLAB C Compiler for PIC18 MCUs. [S.l.]: [s.n.], 2010b. Disponvel em:
<http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dD
ocName=en010014>. Acesso em: 28 out. 2010.
OPENCV 2.1 C Reference. [S.l.]: [s.n.], 2010. Disponvel em:
<http://opencv.willowgarage.com/documentation/c/index.html>. Acesso em: 28 out. 2010.
PREECE, Jennifer; ROGERS, Yvonne; SHARP, Helen. Design de interao: alm da
interao homem-computador. So Paulo: Bookman, 2005. 348 p.
VEX Robotics Design System. [S.l.]: [s.n.], 2010. Disponvel em:
<http://www.vexrobotics.com>. Acesso em: 28 out. 2010.
VEX Robotics Design System. [S.l.]: [s.n.], 2010. Disponvel em:
<http://www.vexforum.com/wiki/index.php/Software_Downloads>. Acesso em: 28 out. 2010.
WPILIB: Simplified Robot Controller Programming. [S.l.]: [s.n.], 2010. Disponvel em:
<http://users.wpi.edu/~bamiller/WPILib/>. Acesso em: 28 out. 2010.
XBOX Kinect. [S.l.]: Microsoft Corporation, 2010. Disponvel em:
<http://www.xbox.com/pt-BR/kinect#>. Acesso em: 28 out. 2010

Você também pode gostar