RECONHECIMENTO DE GESTOS COM SEGMENTAÇÃO DE IMAGENS DINÂMICAS APLICADAS A LIBRAS ANUÁRIO DA PRODUÇÃO DE INICIAÇÃO CIENTÍFICA DISCENTE Vol. 13, N. 20, Ano 2010 Adilson Roberto Pavan Prof. Jaime Cazhurriro Prof. Fabio Modesto Curso: Ciência da Computação FACULDADE ANHANGUERA DE CAMPINAS - UNIDADE 2 RESUMO O objetivo desta pesquisa é a criação de uma metodologia capaz de realizar o reconhecimento de gestos, onde a idéia é extrair características da mão segmentada, a partir de imagens dinâmicas capturadas de uma webcam e identificar padrões de sinais utilizados pelos usuários de Libras (Língua Brasileira de Sinais). O aplicativo é capaz de capturar as imagens e, com a utilização de filtros específicos de processamento de imagens, identificar as características de cada gesto realizado. Os dados identificados são comparados a padrões pré-estabelecidos no software com o objetivo de identificar os sinais e reproduzir em forma de texto ou áudio as letras identificadas. A aplicação resultante desse estudo já é capaz de extrair as características dos sinais e identificar algumas letras do alfabeto. O grande desafio e foco dessa pesquisa foram a criação de um mecanismo preciso para comparação desses dados, pois com a variedade de informações extraídas o processo pode se tornar lento e apresentar uma baixa taxa de rastreamento. Com a criação desse mecanismo será possível desenvolver ferramentas para diversas áreas como educação, entretenimento e facilitar a comunicação dos usuários de Libras. Alem disso, pode ser utilizada como uma ferramenta de auxilio na alfabetização da própria Língua Brasileira de Sinais. Palavras-Chave: Libras, Reconhecimento de Gestos, Interação Humano Computador (IHC), Visão Computacional e Gestos de Mão. Anhanguera Educacional Ltda. Correspondência/Contato Alameda Maria Tereza, 4266 Valinhos, SP - CEP 13278-181 [email protected] Coordenação Instituto de Pesquisas Aplicadas e Desenvolvimento Educacional - IPADE Publicação: 5 de novembro de 2012 Trabalho realizado com o incentivo e fomento da Anhanguera Educacional 367 368 Reconhecimento de gestos com segmentação de imagens dinâmicas aplicadas a Libras 1. INTRODUÇÃO Pesquisas relacionadas à visão computacional e reconhecimentos de gestos vêm ganhando grande espaço na comunidade científica. Com a evolução tecnológica dos computadores e dispositivos como câmeras, a capacidade de processamento e captura de imagens com alta qualidade facilita no desenvolvimento de diversos tipos de pesquisas, além disso, os preços acessíveis desses dispositivos possibilitam estudos e projetos em diversas áreas como robótica, educação, entretenimento, medicina, indústria e várias outras. Além da evolução dos dispositivos e da capacidade de processamento dos computadores, muitas bibliotecas de visão computacional foram desenvolvidas com o objetivo de facilitar e agilizar na captura, analise e manipulação das imagens, sendo que uma das mais conhecidas e escolhida para o desenvolvimento deste projeto é a OpenCV (INTEL, 2010), desenvolvida pela Intel, é uma biblioteca gratuita que oferece mais de 500 (quinhentas) funções de manipulação, segmentação, rastreamento e reconhecimento de padrões (OpenCV, 2010). Atualmente existem vários trabalhos relacionados a reconhecimento de gestos e, com a utilização da biblioteca OpenCV, tornou-se possível o desenvolvimento de técnicas de rastreamento em tempo real, dentre as quais identificou-se que a abordagem mais comum é a segmentação da área de interesse (Region Of Interest - ROI) através do algoritmo CamShift (Continuously Adaptive Mean-SHIFT), que captura a imagem original e realiza a distribuição de cores em um modelo de histograma, criando um padrão de cor a ser rastreado (BRADSKI; KAEHLER, 2008). Após a segmentação pelo histograma – que para o caso do rastreamento da mão como área de interesse o mais comum a ser utilizado é a cor da pele – existem vários algoritmos disponíveis na biblioteca de detecção de bordas, tendo como um dos mais utilizados o algoritmo de Sobel (BRADSKI; KAEHLER, 2008). Com a borda da imagem extraída pelo algoritmo de Sobel a última etapa é realizar a comparação com um template pré-definido através de uma técnica conhecida como Shape Matching (BRADSKI; KAEHLER, 2008) que é responsável por encontrar semelhanças entre as imagens capturadas e o template, respeitando certa taxa de erro. Toda a técnica descrita no parágrafo anterior faz parte de uma pesquisa realizada por Barbosa e Silva (2009) que demonstrou bons resultados na segmentação e no rastreamento dos gestos, porém existem técnicas similares que também apresentam resultados satisfatórios, mas que para a comparação das características extraídas utilizam Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 Adilson Roberto Pavan, Jaime Cazhurriro, Fabio Modesto 369 métodos de classificação dos dados através de parâmetros definidos em um vetor, onde o autor (RIBEIRO, 2006) armazenou os mesmos em uma base de dados e posteriormente os utilizou para analise dos gestos. Outra proposta interessante é a utilização de classificadores (BRADSKI; KAEHLER, 2008), proposto inicialmente por Viola e Jones (2001), através da qual o sistema é capaz de identificar com velocidade os objetos, pois não depende de imagens em seqüência ou de um padrão de cores como em outras técnicas. O sistema utiliza a informação presente nas imagens capturadas em tons de cinza para realizar o rastreamento. Esta técnica exige o treinamento do classificador com muitas imagens para que se atinja uma precisão satisfatória, ela cria uma cascata de características em que a analise é realizada pelas diferenças de intensidade entre regiões distintas. O processo de treinamento, como mencionado acima, exige muitas imagens e capacidade de processamento para desenvolver um classificador preciso e robusto. A proposta inicial para esse projeto era utilizar técnicas como as mencionadas na pesquisa de Barbosa e Silva (2009). Entretanto, durante o desenvolvimento foi possível identificar uma abordagem mais simplificada garantindo-se atingir resultados precisos e concretos, a partir da utilização de classificadores e detectores de bordas para realizar o rastreamento. O sistema utiliza um classificador criado por Wachs et al. (2006) que realiza o reconhecimento da mão fechada, em que o usuário poderá definir a área de interesse para executar os sinais de Libras. Após a definição, será aplicado o algoritmo de Sobel para extrair as bordas das imagens por meio da utilização dos classificadores Haar para identificação dos sinais. O processo de segmentação utilizará apenas o algoritmo de Sobel, pois a utilização de classificadores torna desnecessário extrair o fundo com o algoritmo CamShift, o que reduz consideravelmente os ruídos, pois realizando-se a analise diretamente na imagem segmentada a quantidade de decisões do classificador será menor e dessa forma o processamento será mais rápido e preciso. Além disso, a quantidade de imagens necessárias para realizar o treinamento de cada sinal será bem menor. Este artigo está organizado em seções. A primeira seção é essa introdução, a seção 2 apresenta os objetivos da pesquisa. A metodologia utilizada na realização da pesquisa é apresentada na seção 3. As informações relacionadas ao desenvolvimento da pesquisa como a revisão de literatura, o problema abordado, a solução proposta e implementada são mostradas na seção 4. A forma de abordar os experimentos, os resultados e as discussões são descritos na seção 5. Por fim, as considerações finais são apresentadas na seção 6. Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 370 2. Reconhecimento de gestos com segmentação de imagens dinâmicas aplicadas a Libras OBJETIVO O desenvolvimento desse projeto tem como objetivo criar uma técnica precisa para o rastreamento dos sinais de Libras, combinando a utilização de bibliotecas de visão computacional gratuitas com dispositivos de captura de imagens de fácil acesso como uma webcam, gerando assim um baixo custo computacional e tornando a técnica aplicável em diversas áreas. A expectativa é que o sistema seja capaz de rastrear todas as letras (sinais) do alfabeto, mas como o processo de criação dos classificadores exige muitas amostras e tempo de processamento a pesquisa se limitou a principio em letras suficientes para formação de palavras simples. 3. METODOLOGIA O desenvolvimento do algoritmo de reconhecimento foi baseado em contornos e em classificadores, possibilitando um melhor desempenho para o rastreamento em tempo real. Sendo assim, foi utilizada a biblioteca OpenCV (Open Computer Vision), criada pela Intel e disponível para utilização sem limitações. A utilização da biblioteca facilitou muito o desenvolvimento do aplicativo final, pois reúne todos os recursos necessários para cada etapa do reconhecimento como, por exemplo, algoritmos para detecção de bordas, captura de imagens da webcam e comparação com as características definidas nos classificadores. As etapas de reconhecimento consistem basicamente em capturar as imagens dinâmicas pela webcam, utilizar o classificador criado por Wachs et al. (2006), responsável por realizar o reconhecimento da mão fechada para definir a área de interesse, aplicar o algoritmo de Sobel, responsável por extrair o contorno da imagem e realizar a analise com os classificadores treinados para identificar os sinais de Libras. A etapa mais importante para atingir a qualidade desejada foi a criação dos classificadores mencionados anteriormente (ultima etapa), pois os mesmos são responsáveis por analisar as imagens após a aplicação do filtro de Sobel, mas para atingir a precisão desejada foi necessário realizar o treinamento de cada sinal com um numero considerável de imagens. Esse processo, entretanto, demonstrou-se muito mais simplificado em comparação aos classificadores disponíveis pela própria biblioteca, pois as imagens utilizadas no treinamento já estão segmentadas pelo algoritmo de Sobel, o que elimina um considerável numero de características. Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 Adilson Roberto Pavan, Jaime Cazhurriro, Fabio Modesto 4. 371 DESENVOLVIMENTO O sistema é totalmente baseado na utilização de classificadores e na detecção de contornos. Desta forma, antes de aprofundar em cada etapa do processo, é necessário entender a metodologia básica envolvendo a técnica da cascata de classificadores. A pesquisa foi desenvolvida em etapas com o objetivo de facilitar e garantir a qualidade desejada, pois como o processo foi realizado de uma forma mais simplificada em relação a outras técnicas mencionadas anteriormente, a etapa mais importante e que define a precisão do mecanismo é a criação dos classificadores que são utilizados para realizar o rastreamento dos sinais. Durante essa seção serão apresentadas as informações básicas de cada etapa e os parâmetros utilizados no treinamento dos classificadores. 4.1. Cascata de Classificadores A cascata de classificadores (VIOLA; JONES, 2001) é uma funcionalidade da biblioteca OpenCV que é responsável por identificar vários tipos de objetos em uma imagem, mas que ficou conhecida principalmente pelo reconhecimento da face como mostra o programa de exemplo FaceDetect disponível na biblioteca e a Figura 1. Figura 1 – Imagem extraída do livro “Learning OpenCV” onde é possível observar o rastreamento da face utilizando a cascata de classificadores. A técnica utilizada no classificador consiste em uma analise de imagens em tons de cinza, em que as diferenças de intensidade de regiões distintas são comparadas a Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 372 Reconhecimento de gestos com segmentação de imagens dinâmicas aplicadas a Libras características armazenadas em uma arvore de decisões, que é desenvolvida através de um algoritmo de treinamento e um conjunto de imagens das quais são extraídas características especificas do objeto a ser rastreado. Para realizar o treinamento do classificador é necessário reunir um conjunto de imagens contendo o objeto de interesse, em diversas condições de iluminação e em posições diferentes. Este conjunto é chamado de amostras positivas. Após a criação das amostras positivas, é necessário reunir outro conjunto de imagens aleatórias onde o objeto de interesse não esteja incluído. Este outro conjunto é chamado de amostras negativas. Com a criação das amostras positivas e negativas é necessário apenas executar o algoritmo de treinamento que criara uma cascata de classificadores, onde todas as características do objeto serão armazenadas para posteriormente serem utilizadas na analise da imagem. O termo “cascata” é utilizado porque o algoritmo de treinamento cria uma serie de classificadores que são analisados em seqüência, até que um padrão seja identificado. A Figura 2 mostra uma parte da cascata de classificadores que está disponível na biblioteca e que é utilizada para realizar o rastreamento da face. Figura 2 – Exemplo de uma cascata de classificadores armazenada em um arquivo XML que é utilizada na detecção de objetos pelas funções “cvLoad” e “cvDetectHaarCascade”. Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 Adilson Roberto Pavan, Jaime Cazhurriro, Fabio Modesto 373 4.2. Captura da Imagem A proposta do projeto é criar uma interação humano-computador (IHC) utilizando recursos de visão computacional, excluindo dispositivos como o teclado ou o mouse, utilizando especificamente imagens capturadas de uma webcam. Sendo assim, uma das etapas mais importantes é a captura da imagem, pois é a forma de entrada dos dados que serão tratados e analisados para realizar o reconhecimento dos sinais. A utilização da biblioteca OpenCV facilita esta etapa, pois possui recursos de captura de imagens de uma webcam ou de arquivos de vídeos através da utilização de funções como cvCaptureFromCAM e cvCaptureFromAVI. 4.3. Seleção da Região de Interesse - ROI As pesquisas relacionadas à visão computacional e a reconhecimento de gestos utilizam como uma das principais técnicas a aplicação de filtros e analise das imagens a partir de uma área segmentada, ou seja, utilizam determinados critérios para identificar uma região de interesse na imagem original, o que reduz consideravelmente a quantidade de processamento para identificar o objeto desejado. Considerando várias técnicas abordadas anteriormente para realizar a segmentação da região de interesse, esse projeto tem como característica a utilização de um classificador (WACHS et al., 2006), que realiza o reconhecimento da mão fechada, selecionando assim a ROI. Porém, para que uma nova ROI seja determinada, é necessário limpar a mesma através da ação de um botão e iniciar novamente o reconhecimento utilizando o classificador, como mostra a Figura 3. Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 374 Reconhecimento de gestos com segmentação de imagens dinâmicas aplicadas a Libras Figura 3 – Região de interesse selecionada pelo classificador da mão fechada e ao lado o botão “Limpar Segmentação” que é responsável por limpar o ROI. 4.4. Detecção de Bordas A principal característica da técnica envolvida na detecção de bordas é a localização de diferenças de intensidade luminosa entre regiões vizinhas. O algoritmo escolhido para realizar essa etapa da pesquisa é o operador de Sobel, que realiza uma analise na imagem original a fim de localizar diferenças de intensidades muito grandes entre regiões vizinhas e, assim, retornar essas regiões destacadas em uma escala de tons de cinza, o que caracteriza as bordas do objeto. Com a aplicação desse tipo de filtro, obtém-se resultados muito bons, como mostra a Figura 4. Porém, sem a utilização de algoritmos de segmentação por cor de pele como o CamShift, o resultado contem muitos ruídos, que poderiam prejudicar a detecção dos sinais. Mas como a proposta dessa pesquisa é realizar o rastreamento através de classificadores treinados a partir de imagens, em que o algoritmo de Sobel já tenha sido aplicado, os resultados obtidos até o momento demonstram que o reconhecimento é mais rápido, mais preciso e mais robusto quando comparado aos resultados obtidos a partir da aplicação de outras técnicas. Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 Adilson Roberto Pavan, Jaime Cazhurriro, Fabio Modesto 375 Figura 4 – A esquerda uma imagem original extraída de uma webcam e a direita a mesma imagem após aplicação do algoritmo de Sobel. 4.5. . Treinamento do Classificador A última etapa e mais importante para que a aplicação final seja precisa e robusta é o treinamento dos classificadores que são responsáveis por realizar o reconhecimento dos sinais. Como já descrito na seção “cascata de classificadores”, foi necessário reunir amostras positivas e negativas para que o algoritmo de treinamento crie uma cascata de características e as utilize para realizar o rastreamento dos sinais. O levantamento bibliográfico teve grande importância nessa etapa do projeto, pois existe pouca documentação e exemplos sobre esse assunto, principalmente relacionado ao classificador responsável por rastrear a face que está disponível na biblioteca, pois não foi possível localizar nenhum detalhe de como o mesmo foi treinado. Estima-se que cerca de 5.000 amostras positivas e negativas tenham sido utilizadas. Os classificadores que foram desenvolvidos nesse projeto até o momento utilizaram um numero muito menor de amostras, pois como já mencionado anteriormente, foram treinados a partir de imagens às quais o algoritmo de detecção de bordas já havia sido aplicado, o que reduziu consideravelmente o numero de características para realizar o rastreamento. A coleta das amostras foi realizada através da utilização de uma ferramenta chamada Positivies Builder (BARNES, 2010) que auxiliou na separação e seleção dos objetos de interesse, pois para a criação do classificador é necessário informar as coordenadas x e y de inicio do objeto, além de informar o tamanho do mesmo na imagem. O algoritmo de treinamento utiliza um arquivo onde são relacionadas todas as imagens com seus respectivos caminhos, as posições iniciais e o tamanho dos mesmos, para que a coleta das características seja iniciada, além de utilizar também outro arquivo com o caminho das amostras negativas para que um padrão seja criado entre as imagens que contem o objeto de interesse e as aleatórias onde os objetos não estejam incluídos. A Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 376 Reconhecimento de gestos com segmentação de imagens dinâmicas aplicadas a Libras Figura 5 mostra a configuração armazenada em um dos arquivos utilizados pelo algoritmo de treinamento. Figura 5 – Exemplo de arquivo utilizado pelo algoritmo de treinamento para coletar as características das amostras positivas. O objetivo nesta etapa do projeto foi criar um classificador para cada letra do alfabeto, mas como o processo exige um numero considerável de amostras a prioridade passou a ser a criação de letras ou sinais suficientes para a formação de palavras simples. Após executar muitos testes com o algoritmo de treinamento foi possível identificar que não existe um padrão especifico nos parâmetros e na quantidade de amostras utilizadas, principalmente porque as decisões armazenadas nos classificadores são diretamente influenciadas pelo tipo do objeto a ser rastreado e as condições de iluminação do ambiente. Considerando que não existe um padrão para realizar o treinamento e que a variação entre os sinais de Libras são muito grandes, foi necessário realizar testes diferentes para cada sinal criado até o momento. Essa variação se deve ao fato de que os movimentos necessários para executar os sinais de Libras são muitos distintos uns dos outros e dessa forma influenciam na quantidade de amostras positivas e negativas utilizadas no treinamento dos classificadores como mostra a Tabela 1. Tabela 1 – Quantidade de amostras e precisão de rastreamento dos classificadores criados até o momento. Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 Adilson Roberto Pavan, Jaime Cazhurriro, Fabio Modesto 377 A Figura 6 mostra exemplos dos sinais de Libras utilizados nos treinamentos e que são referentes aos sinais comparados na Tabela 1. Figura 6 – Exemplos dos sinais utilizados na criação dos classificadores 5. RESULTADOS A pesquisa e desenvolvimento da aplicação já estão concluídos, porém ainda será necessário desenvolver os classificadores para cada letra do alfabeto, além de atingir 100% de precisão no rastreamento dos sinais, mas já é possível observar bons resultados como o reconhecimento da área de interesse, detecção das bordas e o rastreamento dos sinais criados até o momento. 6. CONSIDERAÇÕES FINAIS Esta pesquisa demonstrou uma técnica de reconhecimento de gestos, em que o objetivo é rastrear sinais de Libras a partir de imagens capturadas de uma webcam. O aplicativo final é capaz de capturar as imagens, realizar a segmentação através de detectores de bordas e analisar as características com os classificadores responsáveis pelo rastreamento dos sinais de Libras. A pesquisa demonstra uma melhoria significativa em relação a outras técnicas abordadas neste trabalho, sendo que a principal característica para obter resultados concretos é a utilização de classificadores treinados, a partir de imagens segmentadas que irão proporcionar velocidade e precisão no reconhecimento dos sinais. REFERÊNCIAS VIOLA, Paul; JONES, Michael. Robust Real-time Object Detection. In: SECOND INTERNATIONAL WORKSHOP ON STATISTICAL AND COMPUTATIONAL THEORIES OF, 2., Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378 378 Reconhecimento de gestos com segmentação de imagens dinâmicas aplicadas a Libras 2001, Vancouver. Anais.. . Vancouver: Second International Workshop On Statistical And Computational Theories Of Vision, 2001. p. 1 - 25. RIBEIRO, Hebert Luchetti. Reconhecimento de gestos usando segmentação de imagens dinâmicas de mãos baseadas no modelo de mistura de Gaussianas e cor de pele. 2006. 144 f. Dissertação (Mestrado) - Curso de Engenharia Elétrica, Departamento de Escola de Engenharia de São Carlos, Universidade de São Paulo, São Carlos, 2006. J. Wachs, H. Stern, Y. Edan, M. Gillam, C. Feied, M. Smith, J. Handler. A Real-Time Hand Gesture Interface for Medical Visualization Applications. Applications of Soft Computing : Recent Trends. Springer Verlag, Germany, Series: Advances in Soft Computing ,Tiwari, A.; Knowles, J.; Avineri, E.; Dahal, K.; Roy, R. (Eds.),2006. vol. 36, pp. 153-163. BRADSKI, Gary; KAEHLER, Adrian. Learning OpenCV: Computer Vision with the OpenCV Library. 1. ed. United States Of America: O’Reilly Media, 2008. 576 p. INTEL. OpenCV FAQ: Open Source Computer Vision Library. Disponível em: <http://software.intel.com/en-us/articles/intelintegrated-performance-primitives-intel-ipp-opensource- computer-vision-library-opencv-faq/>. Acesso em: 10 mar. 2010. LIBRAS. Portal de Libras destinado à comunidade surda, familiares, profissionais e pessoas interessadas em aprender. Disponível em: <http://www.libras.org.br/>. Acesso em: fev. 2010. BARBOSA, Bernardo; SILVA, Júlio. Interação Humano - Computador usando Visão Computacional. Revista Teccen: Edição Especial, Rio de Janeiro, v. 2, n. 1, p.9-16, mar. 2009. BARNES, David. OpenCV HaarTraining - Object Detection with a Cascade of Boosted Classifiers Based on Haar-like Features. Disponível em: <: http://www.quotientrobotics.com/2010/04/opencv-haartraining-object-detection.html>. Acesso em: 15 maio 2010. OPENCV. OpenCV Wiki: Tutoriais e exemplos de sua utilização. Disponível em: <http://opencv.willowgarage.com/wiki/>. Acesso em: 17 fev. 2010. Anuário da Produção de Iniciação Científica Discente Vol. 13, N. 20, Ano 2010 p. 367-378