Grupo 11
- Guilherme Oliveira
- Curso: Ciência da Computação
- e-mail: guidcc@dcc.ufmg.br
- Iuri Bueno
- Curso: Ciência da Computação
- e-mail: bueno@dcc.ufmg.br
- Samuel Macedo
- Curso: Ciência da Computação
- e-mail: slmacedo@dcc.ufmg.br
Tema
Reconhecimento de Gestos Humanos
Introdução
O trabalho será desenvolvido abordando-se o uma parte do problema de reconhecimento de gestos humanos. Mais especificamente, trabalharemos com a detecção da mão humana e o reconhecimento da quantidade de dedos por essa.
Metodologia
O processo adotado para contagem de dedos a partir da imagem de uma mão humana requer três passos: segmentação da mão, transformação dos pixels para a coordenada polar e contagem dos dedos.
- Segmentação
Esta etapa do processo parte de uma imagem obtida através de uma câmera em ambientes não controlados com background variado. Uma das técnicas mais utilizadas é a segmentação da mão pela cor de pele, que funciona escolhendo-se um espaço de cor e um intervalo de valores que melhor representa os tons da pele naquele espaço. Nos experimentos realizados, percebeu-se que o espaço de cor que apresentou os melhores resultados foi o YCbCr. Esse espaço de cor é muito usado em sistemas de video e fotografia digitais.
A componente Y corresponde à luminosidade da imagem e as componentes Cb e Cr correspondem à cromaticidade do azul e do vermelho respectivamente. O problema da segmentação pelo espaço de cor é que a luminosidade da imagem pode alterar os limiares dos pixels correspondentes aos tons da pele.
Uma faixa de valores que apresentou resultados satisfatórios foi:
(85 < = Cb < = 135) && (135 < = Cr < = 180) && Y >= 80 |
Ao aplicar o algoritmo de segmentação utilizando-se os limiares definidos anteriormente, foi obtido como resultado uma nova imagem segmentada. Essa imagem, além do objeto de foco que era a mão do usuário, continuou a mostrar objetos indesejados, como demonstrado na figura a seguir:
Para remover os objetos indesejados da imagem, foram utilizados alguns operadores morfológicos. Esses operadores revomem da imagem as partes que não correspodem ao objeto principal. Com a imagem da mão totalmente segmentada, o próximo passo desta etapa é a detecção de bordas. Para se realizar a deteção utilizou-se o operador de Sobel.
- Transformação para coordenadas polares
A partir da imagem segmentada contendo apenas as bordas da mão, neste passo transforma-se as coordenadas dos pixels para o espaço polar. Primeiramente dado a imagem binarizada com as bordas da mão, se define o centroide (x,y) que corresponde ao centro de massa do contorno. Esse centroide é ajustado para (x,cy), sendo c = 1.2 escolhido esperimentalmente para mover o centroide para próximo ao centro da palma da mão. Então se define uma região de interesse contendo somente os pixels da borda que estão acima do centroide.
A transfomação para coordenadas polares acontece através da definição do centroide como a origem do espaço de coordenadas. E assim, para cada ponto da borda da mão na imagem, calcula-se um ângulo alpha e uma distância d correspondentes à origem.
- Contagem de dedos
Para a contagem dos dedos é definido inicialmente um limiar como sendo uma fração da maior distância que um pixel atingiu na região de interesse determinada. Então percorre-se todos os pontos resultantes da transformação e compara-se suas respectivas distâncias com o limiar, realizando a contagem dos dedos. Mais especificamente, sempre que há um valor que supere o limiar e outro que fique abaixo desse, temos um possível dedo.
Porém, podem acontecer casos em que fatores externos como ruído e/ou iluminação atrapalhem a segmentação e, consequentemente dificultem a contagem de dedos. Isso faz com que regiões da imagem possam ser erroneamente detectadas como dedos. Portanto, ao invés de se comparar o limiar com apenas a distância de um ponto, no intuito de detectar se essa está acima ou abaixo do limiar, comparou-se com um conjunto de distâncias. Dessa forma, toda vez que um conjunto de distâncias superar o limiar e o próximo ficar abaixo desse, tem-se um dedo.
Resultados e Discussão
Foram realizados vários testes para a comprovação do funcionamento do sistema de contagem de dedos. Nesses testes se utilizou um conjunto de diferentes imagens, em que se variou vários parametros como: iluminação, fundo da imagem, tamanho da mão e forma de se mostrar os dedos.
Os resultados mostraram que o algoritmo implementado apresentou problemas durante a segmentação da mão ao se variar a iluminação e o fundo da imagem. Isso se deve ao fato dos parametros para a segmentação utilizando cor não estarem sendo calibrados automaticamente e sim utilizando valores estáticos. Com isso, em diferentes ambientes os resultados encotrados não são os mesmos.
Outro detalhe dos testes realizados foi que o algoritmo implementado apresentou bons resultados na parte de contagem de dedos, mesmo com variações das maneiras como esses dedos foram mostrados. Assim se comprovou que a tecnica de transformação para coordenadas polares é viável para a solução desse tipo de problema.
Conclusão
O trabalho realizado atingiu os objetivos propostos, sendo que ao final se conseguiu uma boa tecnica para a contagem de dedos. Também pode-se concluir que para implementar um sistema desse tipo, é necessário um bom algoritmo para segmentar a imagem, sendo que ele deve ser adaptativo para diferentes tipos de ambientes e iluminação. O algoritmo implementado para a contagem dos dedos a partir da imagem já segmentada, se mostrou eficiente e viavel para essa situação.
Uma próxima etapa desse trabalho seria a implementação de um algoritmo adaptativo para realizar a segmentação da mão. Também seria interessante a implementação de um sistema que capturasse várias imagens a partir de um vídeo, não somente uma única figuras, e realizasse algum tipo de interação com o usuário.
Revisão Bibliográfica
- A Component-based Architecture for Vision-based Gesture Recognition
- Autores: Farhad Dadgostar, Abdolhossein Sarrafzadeh resumo
- Recovering Human Body Configurations: Combining Segmentation and Recognition
- Autores: Greg Mori, Xiaofeng Ren, Alexei A. Efros and Jitendra Malik resumo
- Coputer Vision-Based Gesture Recognition For An Augmented Reality Interface
- Autores: Moritz Störring, Thomas B. Moeslund, Yong Liu, and Erik Granum resumo
- Matching Shapes
- Serge Belongie, Jitendra Malik and Jan Puzicha resumo
- Shape contexts enable efficient retrieval of similar shapes
- Autores: Greg Mori, Serge Belongie and Jitendra Malik resumo
- Image Retrieval and Classification Using Local Distance Functions
- Autores: Andrea Frome and Yoram Singer resumo