Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento,...

88

Transcript of Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento,...

Page 1: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Universidade Federal do Ceará

Departamento de Engenharia de Teleinformática

Programa de Pós Graduação em Engenharia de Teleinformática

Rodrigo Fernandes Freitas

Sistema de Rastreamento da Mão Humana

Utilizando Visão Arti�cial para Aplicações

Embarcadas

Fortaleza � Ceará

Agosto 2011

Page 2: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Rodrigo Fernandes Freitas

Sistema de Rastreamento da Mão Humana Utilizando Visão

Arti�cial para Aplicações Embarcadas

Orientador:

Prof. Dr. Paulo César Cortez

Proposta de Dissertação de Mestrado

apresentada à Coordenação do Curso

de Pós-Graduação em Engenharia

de Teleinformática da Universidade

Federal do Ceará como parte dos

requisitos para obtenção do grau

de Mestre em Engenharia de

Teleinformática.

Área de Concentração: Sinais e

Sistemas

Orientador : Prof. Dr. Paulo César

Cortez

Fortaleza � Ceará

Agosto 2011

Page 3: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente
Page 4: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Resumo

Nos últimos anos a capacidade de processamento dos dispositivos portáteis

têm aumentado muito, permitindo-lhes processar aplicações, tais como

jogos, antes somente possíveis em plataformas de maior poder computacional.

Porém, a interface com o usuário não tem acompanhado essa evolução do poder

computacional, sendo realizada ainda por meio de teclados não ergonômicos. Esta

dissertação propõe um sistema de interação para dispositivos portáteis baseado

em Visão Computacional. Este sistema rastreia a mão do usuário e reconhece

seis possíveis gestos: apontamento, zoom in, zoom out, rotação horária, rotação

anti-horária e arrastar. Inicialmente o sistema captura imagens da mão do usuário,

aplica �ltros de pré-processamento sobre estas e segmenta a região da pele através

de limiarização. Feito isto, o contorno da mão é extraído e representado em um

vetor pelo algoritmo do código em cadeia. As pontas dos dedos são localizadas

a partir do contorno representado e, através de um conjunto de regras, o gesto

realizado pelo usuário é reconhecido. O sistema proposto é simulado utilizando

a plataforma Simulink e implementado em linguagem C ANSI. Além disto, este

sistema é comparado com três outros sistemas descritos na literatura com base em

quatro critérios de avaliação: custo computacional, invariância à rotação para o

gesto de apontamento, robustez à presença de regiões no fundo da imagem com cor

próxima à da pele e robustez à oclusão com regiões de cor próxima à da pele. Os

resultados indicam que este sistema atende os requisitos dos critérios de avaliação,

portanto, sendo possível sua utilização em dispositivos portáteis.

Palavras-chaves: Visão Computacional, Dispositivos Portáteis, Sistema de

Interação, Processamento de Imagens, Reconhecimento de Gestos.

Page 5: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Abstract

In recent years processing capacity of mobile devices have greatly increased,

allowing them to process applications, such as games, previously only possible

on platforms with greater computing power. However, the user interface has

not accompanied this evolution of computing power, still being held using

non-ergonomic keyboards. This dissertation proposes a interaction system for

mobile devices based on Computer Vision. This system tracks the user's hand

and recognizes six possible gestures: pointing, emph zoom in, emph zoom

out, clockwise rotation, counterclockwise rotation and drag. Initially this system

captures images of the user's hand, applies pre-processing �lters on the images

and segments the region of the skin by thresholding. Then, the contour of the

hand is extracted and represented in a vector by a chain code algorithm. The

�ngertips are located from the boundary and represented and, by a set of rules,

the gesture made by the user is recognized. The system proposed is simulated

using the Simulink platform and implemented in C ANSI language. In addition,

this system is compared with three other systems described in literature based on

four evaluation criteria: computacional cost, rotation invariance for the gesture of

pointing, robustness to regions at the background of image with skin-like color and

robustness to occlusion with regions with skin-like color. The results indicate that

this system meets the requirements of evaluation criteria, which makes possible its

use in mobile devices.

Keywords: Computer Vision, Mobile Devices, Interaction System, Image

Processing, Gesture Recognize.

Page 6: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Agradecimentos

Agradeço ao meu pai pelos valores que incutiu em mim e à minha mãe por

superar todas as di�culdades para educar e criar meu irmão e eu após o falecimento

do meu pai.

Ao meu irmão Renan pelo apoio e companheirismo todos esses anos.

À minha namorada Jane pelo amor e carinho nesses últimos anos.

Ao Professor Dr. Paulo César Cortez, meu orientador, pela amizade, pelas

oportunidades que ele me ofereceu e pelo tempo que ele se dispôs a me ajudar na

elaboração desta dissertação.

Aos integrantes do GIHM (Grupo de Interação Homem-Máquina) pelo

companheirismo e troca de saberes durantes o tempo em que trabalhamos juntos.

Aos amigos Auzuir Ripardo, Pedro Pedrosa , Tarique Cavalcante, José de

Arimatéia Júnior, dentre outros integrantes do sub-grupo de pesquisa em Engenharia

Biomédica do Laboratório de Engenharia de Sistemas de Computação, pela amizade

e esforço compartilhado durante o curso de mestrado.

Aos engenheiros de desenvolvimento do SIDI (Samsung Instituto de

Desenvolvimento para a Informática), Giovanni, Miguel e Nelson, pelo embarque

dos algoritmos na plataforma de testes.

Aos professores do Departamento de Teleinformática cujas aulas tive o prazer

de assitir.

Por �m, à Coordenação de Aperfeiçoamento de Pessoal de Nível Superior

(CAPES) pelo suporte �nanceiro através do concedimento da bolsa de Mestrado.

Page 7: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Sumário

Lista de Figuras ix

Lista de Tabelas x

Lista de Siglas x

1 Introdução 1

1.1 Interação com Dispositivos Móveis . . . . . . . . . . . . . . . . . . . . 2

1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Produção Cientí�ca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Organização da Dissertação . . . . . . . . . . . . . . . . . . . . . . . 5

2 Fundamentação Teórica 6

2.1 Fundamentos de Processamento de Imagens Digitais . . . . . . . . . . 6

2.1.1 Imagem e Vídeo Digitais . . . . . . . . . . . . . . . . . . . . . 6

2.1.2 Espaços de Cores . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.3 Espaço de Cores RGB . . . . . . . . . . . . . . . . . . . . . . 7

2.1.4 Espaço de Cores YCbCr . . . . . . . . . . . . . . . . . . . . . 8

2.1.5 Histograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Sistema de Visão Computacional . . . . . . . . . . . . . . . . . . . . 9

2.2.1 Aquisição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.2 Pré-Processamento . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.3 Segmentação de Imagens . . . . . . . . . . . . . . . . . . . . . 12

iv

Page 8: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2.4 Representação e Descrição . . . . . . . . . . . . . . . . . . . . 13

2.2.5 Reconhecimento . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Resumo do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Revisão Bibliográ�ca de Técnicas de Rastreamento da MãoHumana por Visão Computacional 18

3.1 Interação com Computadores Pessoais através de Visão Computacional 18

3.1.1 Técnicas Baseadas em Marcadores . . . . . . . . . . . . . . . 19

3.1.2 Técnicas Baseadas em Temperatura . . . . . . . . . . . . . . . 20

3.1.3 Técnicas Baseadas em Subtração de Fundo . . . . . . . . . . . 20

3.1.4 Técnicas Baseadas em Correlação . . . . . . . . . . . . . . . . 22

3.1.5 Técnicas Baseadas em Modelos de Markov . . . . . . . . . . . 24

3.2 Interação com Dispositivos Portáteis . . . . . . . . . . . . . . . . . . 24

3.2.1 Método Baseado em Marcadores de Baldauf e Frohlich (2009) 25

3.2.2 Método Proposto por Hannuksela, Sangi e Heikkila (2007a) . . 25

3.2.3 Método Proposto por Hirobe e Niikura (2009) . . . . . . . . . 26

3.2.4 Método Proposto por Gallo, Arteaga e Davis (2008) . . . . . . 28

3.2.5 Método Proposto por Tsang e Pun (2005) . . . . . . . . . . . 29

3.2.6 Método Proposto por Jain (2009) . . . . . . . . . . . . . . . . 31

3.2.7 Resumo do Capítulo . . . . . . . . . . . . . . . . . . . . . . . 33

4 Método Proposto 35

4.1 Aquisição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2 Pré-Processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.3 Segmentação da Imagem . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.4 Representação e Descrição . . . . . . . . . . . . . . . . . . . . . . . . 38

4.5 Reconhecimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.6 Resumo do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Resultados 44

5.1 Equipamentos Utilizados . . . . . . . . . . . . . . . . . . . . . . . . . 44

5.2 Ambientes de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . 45

v

Page 9: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.2.1 Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2.2 Open Source Computer Vision Library (OpenCV) . . . . . . . 46

5.2.3 Qualcomm REX . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.3 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.3.1 Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.3.2 Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.4 Formas de Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.4.1 Custo Computacional . . . . . . . . . . . . . . . . . . . . . . . 50

5.4.2 Invariância à Rotação no Gesto de Apontamento . . . . . . . . 50

5.4.3 Robustez à Presença de Regiões no Fundo da Imagem comCor Próxima à da Pele . . . . . . . . . . . . . . . . . . . . . . 51

5.4.4 Robustez à Oclusão com Regiões de Cor Próxima à da Pele . . 52

5.5 Resultados da Implementação do Método Proposto . . . . . . . . . . 52

5.5.1 Taxas de Reconhecimento dos Gestos . . . . . . . . . . . . . . 53

5.5.2 Quantidade de Gestos Reconhecidos . . . . . . . . . . . . . . . 54

5.6 Resultados das Formas de Avaliação . . . . . . . . . . . . . . . . . . . 54

5.6.1 Custo Computacional . . . . . . . . . . . . . . . . . . . . . . . 54

5.6.2 Invariância à Rotação para o Gesto de Apontamento . . . . . 56

5.6.3 Robustez à Presença de Regiões com Cor Próxima à da Pele . 59

5.6.4 Robustez à Oclusão com Objetos de Cor Próxima à da Pele . 62

5.6.5 Avaliação da Comparação dos Métodos . . . . . . . . . . . . . 63

5.7 Limitações do Método Proposto . . . . . . . . . . . . . . . . . . . . . 64

5.8 Aplicações Práticas do Método Proposto . . . . . . . . . . . . . . . . 65

6 Conclusões, Contribuições e Trabalhos Futuros 66

Referências Bibliográ�cas 74

vi

Page 10: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Lista de Figuras

1.1 Evolução dos celulares (BLOGGERS, 2009). . . . . . . . . . . . . . . 1

1.2 exemplos de novas formas de interação com dispositivos portáteis: (a)tela de toque; (b) sensor de movimento; e (c) reconhecimento da vozdo usuário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 histogramas: (a) imagem escura; (b) imagem clara; e (c) imagemcontendo duas regiões com diferentes distribuições. . . . . . . . . . . 9

2.2 áreas que utilizam imagens digitais como objeto de estudo e asrespectivas entradas e saídas de cada uma: (a) Processamento Digitalde Imagens; (b) Computação Grá�ca; e (c) Visão Computacional. . . 10

2.3 etapas constituintes de um Sistema de Visão Computacional. . . . . . 11

2.4 exemplo da aplicação do processo de Limiarização sobre um histograma. 13

2.5 indicação da curvatura baseada no ângulo. . . . . . . . . . . . . . . . 16

3.1 exemplo de utilização do método de Dorfmuller-Ulhaas e Schmalstieg(2001). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2 exemplo de utilização do método de Bebis et al. (2002). . . . . . . . . 19

3.3 exemplo de utilização do método de Wang e Popovic (2009). . . . . . 20

3.4 exemplo de utilização do método de Koike, Sato e Kobayashi (2001). . 20

3.5 exemplo dos gestos reconhecidos pelo método proposto por Truyenque(2005). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.6 exemplo do método de Malik (2003). . . . . . . . . . . . . . . . . . . 21

3.7 exemplo do método de Zhang et al. (2001), o Visual Panel : (a)usuário com a mão sobre folha de papel; e (b) cantos da folha depapel e ponta do dedo detectados. . . . . . . . . . . . . . . . . . . . . 22

vii

Page 11: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.8 exemplo do método de Laptev e Lindenberg (2001). . . . . . . . . . . 23

3.9 exemplo do método de Freeman e Weissman (1995). . . . . . . . . . . 23

3.10 exemplo do método de Stefanov, Galata e Hubbold (2005). . . . . . . 24

3.11 exemplo da utilização do método proposto por Baldauf e Frohlich(2009). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.12 exemplo de rastreamento do dedo pelo método (HANNUKSELA;SANGI; HEIKKILA, 2007a), (a) letra Z; (b) letra A; e (c) letra U. . . 26

3.13 utilização do sistema desenvolvido por Hirobe e Niikura (2009). . . . 26

3.14 funcionamento do sistema de Hirobe e Niikura (2009), (a) ponta dodedo do usuário de�nida como modelo do sistema; e (b) movimentosde rotação e escala detectados. . . . . . . . . . . . . . . . . . . . . . . 27

3.15 aplicações do algoritmo proposto por Hirobe e Niikura (2009), (a)teclado virtual; (b) editores de imagem e (c) editores de grá�cos 3D. . 27

3.16 etapas do método proposto por Gallo, Arteaga e Davis (2008). . . . . 28

3.17 método de Gallo, Arteaga e Davis (2008), (a) ponto rastreado paramão direita; e (b) ponto rastreado para mão esquerda. . . . . . . . . 29

3.18 método proposto por Tsang e Pun (2005). . . . . . . . . . . . . . . . 30

3.19 solução com janela de busca do algoritmo de Tsang e Pun (2005). . . 30

3.20 etapas do método proposto por Jain (2009). . . . . . . . . . . . . . . 31

3.21 exemplos da utilização do algoritmo de Jain (2009). . . . . . . . . . . 33

4.1 �uxograma do método proposto. . . . . . . . . . . . . . . . . . . . . . 36

4.2 segmentação de várias cores de pele realizada utilizando o modelo deChai e Ngan (1999). . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.3 imagens resultantes, (a) pré-processamento; (b) segmentação; (c)extração do contorno; (d) maior contorno representado pelo códigoem cadeia; (e) regiões de alta curvatura em cinza escuro; e (f) pontoscríticos detectados em cinza claro. . . . . . . . . . . . . . . . . . . . . 38

4.4 gestos suportados pelo sistema, (a) apontamento; (b) zoom in; (c)zoom out ; (d) rotação horária; (e) rotação anti-horária; e (f) arrastar. 40

4.5 ângulo da reta formada pelas pontas dos dois dedos com a horizontal,(a) 90◦; (b) 45◦; e (c) 125◦. . . . . . . . . . . . . . . . . . . . . . . . . 41

4.6 dedo médio do usuário fechado em destaque. . . . . . . . . . . . . . . 41

4.7 �uxograma do processo de reconhecimento dos gestos. . . . . . . . . . 42

5.1 diagrama de blocos de aplicativos baseados no REX. . . . . . . . . . 47

viii

Page 12: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.2 exemplo de simulação do algoritmo de segmentação da pele utilizandoo Simulink. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.3 diagrama da implementação em C dos algoritmos. . . . . . . . . . . . 49

5.4 ângulos de rotação da mão para teste da robustez do reconhecimentodo gesto de apontamento, (a) 90◦; (b) 45◦; (c) 0◦; (d) 315◦; (e) 270◦;(f) 225◦; (g) 180◦; e (h) 135◦. . . . . . . . . . . . . . . . . . . . . . . . 51

5.5 resultado do reconhecimento dos gestos suportados pelo sistema, (a)apontamento; (b) zoom in; (c) zoom out ; (d) rotação horária; (e)rotação anti-horária; e (f) arrastar. . . . . . . . . . . . . . . . . . . . 52

5.6 rastreamento da ponta do dedo realizado pelo método proposto emdiferentes ângulos de rotação da mão com relação à horizontal, (a)90◦; (b) 45◦; (c) 0◦; (d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦. . 57

5.7 rastreamento da ponta do dedo realizado pelo método de Gallo emdiferentes ângulos de rotação da mão com relação à horizontal, (a)90◦; (b) 45◦; (c) 0◦; (d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦. . 58

5.8 rastreamento da ponta do dedo realizado pelo método Tsang emdiferentes ângulos de rotação da mão com relação à horizontal, (a)90◦; (b) 45◦; (c) 0◦; (d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦. . 59

5.9 rastreamento da ponta do dedo realizado pelo método de Jain emdiferentes ângulos de rotação da mão com relação à horizontal, (a)90◦; (b) 45◦; (c) 0◦; (d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦. . 60

5.10 rastreamento da ponta do dedo do usuário quando da presença deuma região de área pequena no fundo de cor próxima à da pele, (a)método proposto; (b) método de Gallo; (c) método de Tsang; e (d)método de Jain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.11 rastreamento da ponta do dedo do usuário quando da oclusão da mãocom uma região no fundo da imagem de cor próxima à cor da pele,(a) método proposto; (b) método de Gallo; (c) método de Tsang; e(d) método de Jain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.12 limitação quanto à variação do ângulo de rotação da mão: (a) gestode Zoom; (b) gesto de Rotação. . . . . . . . . . . . . . . . . . . . . . 64

5.13 exemplo de aplicação prática do método proposto para controle doaplicativo Google Earth através de: (a) gesto de apontamento; (b)gesto de Zoom Out. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

ix

Page 13: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Lista de Tabelas

5.1 equipamentos utilizados no desenvolvimento do trabalho. . . . . . . . 44

5.2 taxas de reconhecimento para cada um dos gestos suportados pelométodo proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.3 quantidade de gestos reconhecidos dos quatro métodos. . . . . . . . . 54

5.4 tempo de processamento e taxa de processamento dos quatro métodos. 55

5.5 resumo dos resultados obtidos. . . . . . . . . . . . . . . . . . . . . . . 64

x

Page 14: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Lista de Siglas

PC Computador Pessoal

VC Visão Computacional

RGB Espaço de Cores Vermelho, Verde e Azul (Red, Green e Blue)

YCbCr Espaço de Cores Luminância, Crominância Azul e Crominância Vermelha

FPU Unidade de Ponto Flutuante (Floating Point Unit)

OpenCV Open Source Computer Vision Library

BSD Berkeley Software Distribution

REX Sistema Operacional Real Time Executive

MSM Mobile Station Modem

API Interface de Programação de Aplicativos

SIDI Samsung Instituto de Desenvolvimento para Informática

xi

Page 15: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Capítulo 1Introdução

O mercado dos dispositivos portáteis, como os telefones celulares e smartphones,

tem tido um grande crescimento nos últimos anos. Tanto a diminuição dos custos

e do volume de hardware quanto o aumento da capacidade de processamento

e armazenamento ajudaram a tornar este tipo de dispositivo mais popular,

fazendo deles parte indispensável da rotina diária de grande parte da população.

A cada geração são desenvolvidos dispositivos cada vez menores e com maior

poder computacional, como pode ser visto na Figura 1.1 (HERRERA; MINK;

SUKITTANON, 2010; WANG; ZHAI; CANNY, 2006).

Figura 1.1: Evolução dos celulares (BLOGGERS, 2009).

Apesar do avanço signi�cativo na performance e na capacidade dos dispositivos

portáteis, as interfaces com os usuários ainda são largamente baseadas no conjunto

tela pequena e teclado. O uso de teclados não-ergonômicos pode às vezes ser

incômodo, pois o número de botões é limitado e deve-se pressionar as teclas várias

vezes para se obter o resultado desejado (HANNUKSELA; SANGI; HEIKKILA,

1

Page 16: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

1.1. Interação com Dispositivos Móveis 2

2007b). Esse tipo de abordagem é su�ciente para modos mais simples de interação,

como originar e receber chamadas telefônicas. Aplicações mais complexas exigem

técnicas de interação mais intuitivas (CAPIN; HARO; WILKINSON, 2006).

Por causa do seu aumento de capacidade computacional, os dispositivos portáteis

são agora capazes de processar aplicações antes somente possíveis em plataformas

de maior poder computacional, como em um Computador Pessoal (PC) ou em um

notebook. Aplicativos grá�cos como jogos, navegadores de internet e manipuladores

de imagens são cada vez mais comuns em dispositivos portáteis. Muitas dessas

aplicações podem se bene�ciar largamente da presença de um dispositivo de entrada

mais intuitivo (WANG; ZHAI; CANNY, 2006).

1.1 Interação com Dispositivos Móveis

Nas últimas décadas tem havido uma pesquisa muito intensa para o

desenvolvimento de novas formas de interação com dispositivos portáteis, com vários

tipos de tecnologias sendo propostas, como telas de toque, reconhecimento de voz e

sensores de movimento, toque e proximidade (HINCKLEY et al., 2000), alguns dos

quais podem ser vistos na Figura 1.2.

(a) (b) (c)

Figura 1.2: exemplos de novas formas de interação com dispositivos portáteis: (a) tela de

toque; (b) sensor de movimento; e (c) reconhecimento da voz do usuário.

Contudo, essas soluções apresentam várias limitações, tais como o custo elevado

das telas de toque, além da necessidade que o usuário opere o aparelho com

ambas as mãos. Por outro lado, para o reconhecimento de voz, em sua maioria,

não há con�abilidade adequada. Os sensores de movimento, toque e proximidade

necessitam da inclusão de hardware extra ao dispositivo móvel, acarretando em um

acréscimo no custo do aparelho (HANNUKSELA; SANGI; HEIKKILA, 2007a).

Page 17: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

1.2. Objetivos 3

Hoje em dia câmeras digitais de baixa resolução vêm integradas virtualmente a

todos os dispositivos portáteis produzidos com o objetivo de obter-se fotogra�as e

vídeos (SCOTT et al., 2009; CAMPO; NAVARRETE; GARCIA-RUBIO, 2007).

Dessa forma, é interessante o desenvolvimento de formas de interação com

dispositivos móveis baseados em Visão Computacional (VC), nos quais reduzem-se

as limitações apresentadas anteriormente e que utilizam as câmeras já embutidas

nos aparelhos, evitando aumento de custo do produto pela adição de hardware extra

(BANARD et al., 2007).

Com a capacidade de processamento atual dos dispositivos portáteis é possível

processar as imagens capturadas pelo aparelho e oferecer novas formas de interação

ao usuário, através de detecção de movimento, detecção de cores, reconhecimento de

gestos, dentre outras técnicas (CAMPO; NAVARRETE; GARCIA-RUBIO, 2007).

O uso de gestos como forma de transmitir informação é uma parte importante

da comunicação humana. Visto que gestos manuais são formas de comunicação

cômodas e naturais, sistemas de interação com dispositivos portáteis podem se

bene�ciar de sua utilização como módulo de entrada, pois o controle por gestos

permite uma interação silenciosa, remota e sem contato com o dispositivo (KRAISS,

2006).

A área de reconhecimento de gestos e rastreamento da mão humana tem sido

bastante pesquisada nos últimos anos para o desenvolvimento de aplicações para

PCs (TRUYENQUE, 2005; DORFMULLER-ULHAAS; SCHMALSTIEG, 2001;

KOIKE; SATO; KOBAYASHI, 2001) e recentemente também tem sido estudada

para o desenvolvimento de interações com dispositivos portáteis (HANNUKSELA;

SANGI; HEIKKILA, 2007a; GALLO; ARTEAGA; DAVIS, 2008; TSANG; PUN,

2005).

1.2 Objetivos

O objetivo geral dessa dissertação é o desenvolvimento de um sistema de

rastreamento da mão humana com a utilização da câmera como dispositivo sensor

para interação com sistemas embarcados. Durante o desenvolvimento desta

dissertação outros objetivos especí�cos devem ser alcançados:

i. pesquisa e estudo de métodos de segmentação e rastreamento da mão humana;

ii. pesquisa e estudo de métodos de interação baseados em visão arti�cial;

Page 18: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

1.3. Produção Cientí�ca 4

iii. desenvolvimento de uma metodologia para segmentação e rastreamento da

mão humana;

iv. simulação do algoritmo em Matlab-Simulink ;

v. implementação, adaptação e otimização dos códigos em C ANSI para

plataformas embarcadas;

vi. testes de desempenho e comparação do método implementado com outros

métodos descritos na literatura;

vii. desenvolvimento de Produtos Cientí�cos na forma de Artigos em Revista

Congressos Nacionais e Internacionais;

viii. desenvolvimento de Produtos Tecnológicos na forma de patentes;

1.3 Produção Cientí�ca

Como resultado dos métodos estudados e desenvolvidos, foram gerados, até o

momento, os seguintes trabalhos cientí�cos publicados e submetidos:

i. P. C. Cortez, R. C. S. Costa, J. M. Soares, R. da S. Siqueira, C. F. Leite

Neto, R. F. Freitas, A. C. da S. Barros e F. C. Ribeiro. Sistema de

Reconhecimento de Gestos da Mão Utilizando Visão Arti�cial Aplicado à

Interação com Dispositivos Portáteis. Depósito: 18 de Dezembro de 2008.

ii. F. R. M. Leal, A. C. S. Barros, R. F. Freitas, R. C. S. Costa, P. C.

Cortez, J. M. Soares, M. G. L. Espinosa. Estudo Comparativo de Formas

de Representação da Mão Humana para o Reconhecimento de Gestos Baseado

em Redes Neurais Arti�ciais, Momentos de Hu e Atributos de Forma. In:

XVIII SEMINCO - Seminário de Computação, v. 18., Blumenau, 2009.

iii. R. F. Freitas; R. C. S. Costa; A. C. da S. Barros; R. da S. Siqueira; P.

C. Cortez; J. M. Soares. Algoritmos para Segmentação de Pele Utilizando o

Modelo de Cores RGB em Ambiente Matlab/Simulink. In: Conexões - Ciência

e Tecnologia, v. 1, p. 65-71, 2007.

iv. A. C. da S. Barros; R. C. S. Costa; R. F. Freitas; R. da S. Siqueira;

P. C. Cortez; J. M. Soares. Implementação de Segmentação da Pele

Page 19: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

1.4. Organização da Dissertação 5

através MATLAB/SIMULINK utilizando o espaço de Cores IRgBy. In: VII

ENCONTRO DE PESQUISA E PÓS-GRADUAÇÃO, 2007, Fortaleza. VII

ENPPG/VII ENICIT/I SIMPIT, 2007.

1.4 Organização da Dissertação

Esta dissertação está organizada em 6 Capítulos. No segundo Capítulo é

realizada uma descrição sobre os fundamentos de processamento de imagens e de

sistemas de Visão Computacional. O Capítulo 3 apresenta uma revisão bibliográ�ca

dos métodos de rastreamento da mão humana. O método de interação para

dispositivos móveis proposto é descrito no Capítulo 4. O Capítulo 5 apresenta

o ambiente de desenvolvimento utilizado na concepção do trabalho e os métodos

que são comparados com o método proposto visando a sua validação, bem como

descreve os resultados dos experimentos. Por �m, no Capítulo 6 são apresentadas

as conclusões, contribuições e perspectivas futuras.

Page 20: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Capítulo 2Fundamentação Teórica

Neste Capítulo são descritos alguns fundamentos da área de Visão

Computacional necessários para um melhor entendimento desta dissertação.

2.1 Fundamentos de Processamento de Imagens Digitais

Processamento de Imagens Digitais é um campo que versa sobre o estudo de

imagens digitais por meio de um computador digital. Esta seção descreve alguns

fundamentos importantes para a sua compreensão.

2.1.1 Imagem e Vídeo Digitais

Uma imagem pode ser de�nida como sendo uma função bi-dimensional f(x, y),

em que x e y são coordenadas espaciais e a amplitude de f em qualquer par de

coordenadas (x, y) é chamada de intensidade ou nível de cinza da imagem naquele

ponto. Quando x, y e os valores de f são todos �nitos e discretos, a imagem f(x, y)

é denominada de imagem digital. Assim, uma imagem digital é composta por um

número �nito de elementos, cada um com localização e valor particulares, conhecidos

como picture elements ou pixels (GONZALEZ; WOODS, 2008).

Um vídeo é uma função de intensidade espaço-temporal denotada por F (x, y, t),

em que x e y são coordenadas espaciais e t é a variável temporal. Da mesma forma

que com as imagens, se x, y, t e o valor de F são todos �nitos e discretos, a função

F (x, y, t) corresponde a um vídeo digital. Pode-se assim visualizar o vídeo digital

como sendo uma sequência no tempo de imagens digitais do tipo f(x, y). Essas

imagens são denominadas no contexto do vídeo digital de frames (TEKALP, 1995).

6

Page 21: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.1. Fundamentos de Processamento de Imagens Digitais 7

2.1.2 Espaços de Cores

A cor de um objeto é determinada pela natureza da sua luz re�etida. A luz

visível é composta por uma estreita faixa de frequência do espectro eletromagnético.

Um corpo que re�ete luz de forma balanceada em todos os comprimentos de onda

visíveis possui cor branca. Já um corpo que re�ete a luz com maior intensidade para

uma determinada faixa do espectro visível exibe uma cor distinta, de�nida pela faixa

do espectro visível que ele re�ete com maior intensidade. Um corpo que não re�ete

a luz visível apresenta uma cor preta (GONZALEZ; WOODS, 2008).

A cor é um aspecto extremamente importante de imagens e de vídeos digitais.

Em um sentido geral, a cor transmite uma variedade de informações que descrevem

a natureza dos objetos (BOVIK, 2005).

Descrever cores corretamente é uma questão de grande importância comercial,

visto que muitos produtos estão bastante associados a certas cores e os fabricantes

desejam fortemente que diferentes cópias de seus produtos possuam as mesmas

características de cores. Isto requer um sistema padrão de representação das cores

(FORSYTH; PONCE, 2003).

Essa representação padrão é obtida através dos espaços de cores. Um espaço

ou modelo de cores é um sistema tridimensional de coordenadas em que cada eixo

corresponde a uma cor primária e cada cor é representada por um ponto nesse

sistema tridimensional (FOLEY et al., 1995)

2.1.3 Espaço de Cores RGB

O Espaço de Cores Vermelho, Verde e Azul (Red, Green e Blue) (RGB)

é um espaço de cores que formalmente utiliza comprimentos de onda primários

(645, 16 nm para Red ou vermelho, 526.32 nm para Green ou verde e 444.44 nm

para Blue ou azul) para a representação dos seus elementos. As cores disponíveis

são geralmente representadas como um cubo unitário, chamado de cubo RGB, cujos

eixos representam as componentes R, G e B (FORSYTH; PONCE, 2003).

O espaço de cores RGB é, em geral, o espaço de cores mais utilizado dentre

os modelos de cores, porém existe uma certa di�culdade em especi�car uma cor

através de três cores primárias. No espaço de cores RGB, as informações de cores e

intensidade estão juntas, di�cultando processos em que essas componentes precisam

ser analisadas separadamente. Assim, outros espaços de cores podem ser utilizados,

Page 22: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.1. Fundamentos de Processamento de Imagens Digitais 8

como o Espaço de Cores Luminância, Crominância Azul e Crominância Vermelha

(YCbCr) (BOVIK, 2005)

2.1.4 Espaço de Cores YCbCr

O espaço de cores YCbCr é um sinal codi�cado que tenta separar o brilho

perceptível da imagem, chamada de luminância e construída como uma soma

ponderada dos valores RGB, das componentes cromáticas da imagem, chamadas

de crominância Cb e Cr e que são formadas pela subtração da iluminação com os

componentes azul e vermelho, respectivamente. Sua matriz de transformação é dada

por (BOVIK, 2005)

Y

Cb

Cr

=

0.299 0.587 0.114

−0.169 −0.331 0.5

0.5 −0.419 −0.0813

R

G

B

. (2.1)

2.1.5 Histograma

O histograma de uma imagem digital com valores de intensidade na faixa [0, L−1] é uma função discreta dada por

h(rk) =nk

n, k = 0, 1, . . . , L− 1, (2.2)

em que rk é o valor da k -ésima intensidade, nk é o número de pixels na imagem com

intensidade rk e n é o número de pixels total da imagem (GONZALEZ; WOODS,

2008).

O histograma de uma imagem contem informações importantes sobre o conteúdo

da imagem. Se os valores dos seus pixels estão concentrados nas intensidades

baixas, como pode ser visto na Figura 2.1(a), a imagem é "escura". Uma imagem

"clara" possui um histograma concentrado nas regiões de alta intensidade, como

visto na Figura 2.1(b). O histograma da Figura 2.1(c) revela que a imagem contem

dois objetos com diferentes distribuições de intensidades (ou um objeto claramente

distinto do fundo da imagem) (PITAS, 2000).

A informação presente nos histogramas pode ser bastante útil em aplicações de

processamento de imagens, tais como compressão e segmentação. Os histogramas

Page 23: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2. Sistema de Visão Computacional 9

(a) (b) (c)

Figura 2.1: histogramas: (a) imagem escura; (b) imagem clara; e (c) imagem contendo

duas regiões com diferentes distribuições.

são rápidos de calcular, tornando-os uma ferramenta valiosa para processamento em

tempo real (GONZALEZ; WOODS, 2008).

2.2 Sistema de Visão Computacional

As imagens digitais são estudadas em três diferentes áreas do conhecimento:

Processamento Digital de Imagens, Computação Grá�ca e Visão Computacional

(HEIDJEN, 1995), conforme se observa na Figura 2.2.

Sistemas de Processamento de Imagens têm geralmente uma imagem digital

como entrada e como saída, como é mostrado na Figura 2.2(a). Esta área inclui

operações de realce, restauração, extração de ruídos, dentre outras. Foi primeiro

utilizada na área de Astronomia, com o objetivo de melhorar a qualidade das imagens

obtidas por satélites e sondas espaciais (HEIDJEN, 1995).

Sistemas de Computação Grá�ca sintetizam uma imagem representativa de uma

cena a partir da sua descrição ou da relação de seus atributos, como mostrado na

Figura 2.2(b). A área de Computação Grá�ca possui uma forte associação com

a arte, principalmente nos segmentos de desenho, cinema e televisão. Esta área

é bastante utilizada também pelos meios de comunicação visuais, pelos jogos de

videogames e por sistemas de realidade virtual (HEIDJEN, 1995)

Os sistemas de Visão Computacional ou Arti�cial têm como entrada uma

imagem digital e como saída atributos da cena correspondente, como visto na Figura

2.2(c). Visão Computacional utiliza vários dos recursos da área de Processamento

de Imagens com o objetivo de manipular a imagem de entrada de modo a tornar

mais fácil a aplicação de seus algoritmos. Estes algoritmos analisam a imagem de

Page 24: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2. Sistema de Visão Computacional 10

(a)

(b)

(c)

Figura 2.2: áreas que utilizam imagens digitais como objeto de estudo e as respectivas

entradas e saídas de cada uma: (a) Processamento Digital de Imagens; (b)

Computação Grá�ca; e (c) Visão Computacional.

entrada, extraem informações ou atributos dela e tomam uma decisão sobre o seu

conteúdo (HEIDJEN, 1995).

Basicamente, um Sistema Visão Computacional é composto pelas etapas

de aquisição, pré-processamento, segmentação, representação, descrição,

reconhecimento e decisão, conforme mostradas na Figura 2.3.

2.2.1 Aquisição

A etapa de aquisição consiste da captura das imagens por um elemento sensor,

gerando uma matriz com valores discretos à qual podem ser aplicadas diversas

operações. A luz visível, infravermelho, microondas, raios-x, raios gama, dentre

outros, podem ser utilizados para a formação da imagem de entrada de um sistema

de Visão Computacional. O processo de aquisição pode ocorrer através de vários

dispositivos, tais como webcams, câmeras de infra-vermelho, câmeras digitais, dentre

Page 25: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2. Sistema de Visão Computacional 11

Figura 2.3: etapas constituintes de um Sistema de Visão Computacional.

outros (GONZALEZ; WOODS, 2008)

2.2.2 Pré-Processamento

As imagens obtidas pelos dispositivos sensores tendem a apresentar uma

degradação de sua qualidade pela introdução de ruído, deformação geométrica

ou borramento devido ao movimento do objeto. A etapa de pré-processamento

consiste da aplicação de métodos para melhorar a qualidade da imagem e reduzir as

degradações introduzidas pelos elementos sensores (PITAS, 2000).

A etapa de pré-processamento pode ser realizada, principalmente, por dois

tipos de técnicas: restauração e realce. As técnicas de restauração preocupam-se

principalmente com a reconstrução ou recuperação de uma imagem que foi

degradada e um conhecimento prévio sobre o fenômeno de degradação pode ser

utilizado para este propósito. As técnicas de realce melhoram a qualidade subjetiva

das imagens aguçando certos atributos delas, tais como bordas e contraste, e

reduzindo o ruído (GONZALEZ; WOODS, 2008).

Tanto as operações de restauração quanto as de realce podem ser entendidas

como �ltros digitais bidimensionais, podendo ser divididas em duas classes: �ltros

digitais lineares e não lineares. Os �ltros lineares podem ser realizados no domínio

espacial, em que as operações são baseadas na manipulação direta dos pixels da

imagem, ou no domínio da frequência. Neste caso, a imagem é transformada para o

domínio da frequência, processada e então reconstruída para o domínio espacial.

As operações no domínio espacial possuem regiões de suporte que consistem de

um único pixel, chamadas de operações pontuais, ou de uma vizinhança de pixels,

chamadas de operações locais (PITAS, 2000).

Dentre os �ltros espaciais destacam-se os �ltros de suavização ou da média.

Page 26: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2. Sistema de Visão Computacional 12

Esses �ltros consistem em uma janela deslizante de tamanho 2N + 1 x 2N + 1, em

que o pixel (x, y) da imagem I(x, y) na qual a janela está centrada é substituído na

imagem �ltrada J(x, y), calculado por (GONZALEZ; WOODS, 2008)

J(x, y) =1

(2N + 1)× (2N + 1)

N/2∑i=−N/2

N/2∑j=−N/2

I(x+ i, y + j). (2.3)

Um dos objetivos da aplicação do �ltro da média sobre uma imagem é a redução

do ruído; por outro lado, isso causa também um borramento que reduz os detalhes

da imagem e degrada suas bordas, pois estas se caracterizam por transições bruscas

na imagem (NIXON; AGUADO, 2002).

2.2.3 Segmentação de Imagens

A segmentação de uma imagem consiste em subdividi-la em um certo número

de regiões, em que cada sub-região tem um alto grau de uniformidade com base

em algum parâmetro especí�co, tal como brilho, cor, textura ou mesmo movimento

(DAVIES, 2004).

O nível de detalhes no qual essa subdivisão da imagem se baseia depende do

problema a ser resolvido. A acurácia da segmentação determina o eventual sucesso

ou fracasso de um sistema de Visão Computacional. Por isto, deve-se ter considerável

cuidado para a realização deste processo (GONZALEZ; WOODS, 2008).

A maioria dos algoritmos de segmentação são baseados em duas propriedades

básicas: descontinuidade e similaridade. No primeiro caso, a segmentação é realizada

particionando-se a imagem com base em mudanças abruptas de intensidade, tais

como bordas. No segundo caso, a segmentação é realizada particionando-se a

imagem com base em regiões similares de acordo com certos critérios. Fazem parte

dessa segunda categoria os processos de segmentação por crescimento de região e

por limiarização (HIGASHIMO, 2006).

Considere o histograma da Figura 2.4 como correspondendo ao histograma

de uma imagem qualquer, composta de objetos claros e um fundo escuro. Uma

maneira fácil de extrair os objetos do fundo é selecionar um limiar T que separe os

dois agrupamentos. Assim, qualquer ponto (x, y) na imagem tal que f(x, y) > T

é chamado de um ponto do objeto; caso contrário, o ponto é chamado de ponto

do fundo (NIXON; AGUADO, 2002). Dessa forma, a imagem segmentada g(x, y) é

Page 27: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2. Sistema de Visão Computacional 13

Figura 2.4: exemplo da aplicação do processo de Limiarização sobre um histograma.

dada por

g(x, y) =

1, se f(x,y) ≥ T;

0, caso contrário.(2.4)

Neste caso, como o resultado é uma imagem binária, denomina-se este processo

de binarização por limiar. A técnica de limiarização é muito utilizada na literatura

devido às suas propriedades intuitivas, facilidade de implementação e baixo custo

computacional (GONZALEZ; WOODS, 2008).

2.2.4 Representação e Descrição

Após a segmentação de uma imagem em suas regiões componentes, o conjunto

resultante de pixels deve ser representado e descrito de forma adequada para o

processamento computacional subsequente. Basicamente, a representação de uma

região pode ser realizada de duas maneiras: a primeira é representar a região em

termos de suas características externas, como seu contorno; a segunda é representar

a região em termos de suas características internas pelos pixels que compreendem a

região) (GONZALEZ; WOODS, 2008).

Escolhe-se uma representação externa quando o foco principal do problema

reside nas características da forma, tais como cantos e in�exões. A representação

interna é escolhida quando se deseja observar as propriedades locais do objeto, tais

como cor e textura (MOESLUND; GRANUM, 2001).

Na categoria de representação externa, o algoritmo de código em cadeia é uma

abordagem muito utilizada. Uma região geralmente descreve um conteúdo (ou

pontos internos) limitado por uma borda, chamada de contorno. Um ponto é de�nido

Page 28: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2. Sistema de Visão Computacional 14

como estando no contorno se faz parte da região e se há pelo menos um pixel na sua

vizinhança que não é parte da região (NIXON; AGUADO, 2002).

De forma a de�nir os pontos internos e os pontos do contorno de uma região,

é preciso considerar as relações de vizinhança entre os pixels. Essas relações

são descritas por meio de regras de conectividade. Há duas formas comuns de

de�nir a conectividade: a conectividade-4, em que apenas os vizinhos imediatos são

analisados para conectividade; ou a conectividade-8, em que todos os oito pixels que

rodeiam um dado pixel são analisados para a conectividade (GONZALEZ; WOODS,

2008).

O código em cadeia é um algoritmo para a representação do contorno que

armazena em uma lista um conjunto de conexões entre os pontos do contorno.

Assim, dado um ponto arbitrário inicial do contorno, determina-se a direção na

qual o vizinho de contorno mais próximo do pixel atual se encontra. Dessa forma,

o código em cadeia é formado concatenando-se o número que designa a direção

do próximo pixel. Isto é repetido para cada ponto do contorno até se alcançar

o ponto inicial, caso a curva seja fechada (PITAS, 2000). As direções tanto na

conectividade-4 quanto na conectividade-8 podem ser utilizadas neste processo.

Após o processo de representação de um objeto, a tarefa seguinte é a de descrição

ou seleção de atributos, de forma a extrair propriedades dos objetos representados

que resultem em alguma informação quantitativa de interesse ou que sejam básicos

para diferenciar uma classe de objetos de outra. Essa diferenciação ocorre na fase

seguinte de reconhecimento (HIGASHIMO, 2006).

De modo a terem utilidade para a etapa de reconhecimento, os descritores

selecionados devem possuir um conjunto importante de propriedades: dois objetos

devem ter os mesmos descritores apenas se tiverem as mesmas características;

objetos similares devem ter descritores com valores similares; os descritores devem

ser invariantes a mudanças no objeto como escala, rotação e translação e perspectiva.

Além disso, estes descritores devem representar a essência de um objeto de forma

e�ciente, contendo informações apenas sobre o que o torna único ou diferente de

outros objetos (NIXON; AGUADO, 2002).

A partir da representação do contorno originada pelo código em cadeia, um

descritor que se pode extrair são os seus pontos críticos. Pontos críticos ou cantos

são pontos muito importantes de um objeto, visto que a informação sobre a sua

forma se concentra em seus cantos (MASOOD; SARFRAZ, 2007). Pontos críticos

Page 29: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.2. Sistema de Visão Computacional 15

são de�nidos como pontos em que a linha do contorno da região apresenta uma

variação brusca na sua direção, ou seja, é um ponto com alto valor de amplitude no

sinal de curvatura (PAULA, 2007).

A curvatura é um dos atributos mais importantes que podem ser extraídos de

contornos. Na verdade, uma forte motivação biológica tem sido identi�cada para se

estudar a curvatura, a qual é aparentemente uma pista interessante explorada pelo

sistema visual humano (COSTA; CESAR, 2001).

A curvatura k(t) de uma curva paramétrica c(t) = (x(t), y(t)) é de�nida por

(COSTA; CESAR, 2001):

k(t) =x(t)y(t)− x(t)y(t)

[x(t)2 + y(t)2]1.5, (2.5)

em que x(t) é a derivada primeira de x(t), x(t) é a derivada segunda de x(t), y(t)

é a derivada primeira de y(t) e y(t) é a derivada segunda de y(t). Assim, para

estimar a curvatura é necessário o cálculo das derivadas de x(t) e y(t). Devido ao

fato do contorno ter natureza discreta (ou seja, espacialmente amostrado) o cálculo

das derivadas se torna um problema computacional, di�cultando a utilização direta

desta fórmula (COSTA; CESAR, 2001).

Uma abordagem básica que evita o cálculo da curvatura usando a equação

2.5 é a de�nição de medidas de curvatura alternativas baseadas nos ângulos entre

vetores, de�nidos em termos dos elementos discretos do contorno. Considere

c(n) = (x(n), y(n)) como sendo uma curva discreta. Os seguintes vetores podem

ser de�nidos (COSTA; CESAR, 2001)

vi(n) = (x(n)− x(n− i), y(n)− y(n− i)), (2.6)

wi(n) = (x(n)− x(n+ i), y(n)− y(n+ i)). (2.7)

Esses vetores são de�nidos com base no ponto atual do contorno e os vizinhos

para a direita e para a esquerda, como mostrado na Figura 2.5.

O modelo digital de pontos de alta curvatura proposto por Johnston e Rosenfeld

(1973) é de�nido pela seguinte equação

ri(n) =vi(n)wi(n)

||vi(n)||||wi(n)||, (2.8)

Page 30: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.3. Resumo do Capítulo 16

Figura 2.5: indicação da curvatura baseada no ângulo.

em que ri(n) é o cosseno do ângulo entre os vetores vi(n) e wi(n). Dessa forma,

tem-se que −1 ≤ ri(n) ≤ 1, com ri(n) = −1 para linhas retas e ri(n) = 1 quando o

ângulo se torna 0◦ (o menor ângulo possível). Neste sentido, ri(n) pode ser utilizado

como uma medida capaz de localizar pontos de curvatura alta, ou seja, maiores que

um certo limiar.

2.2.5 Reconhecimento

A etapa de reconhecimento consiste do processo de atribuir um rótulo para

um objeto baseado em seus descritores. Existem numerosas estratégias para a

realização desta etapa, dentre as quais se destacam classi�cadores de máxima

semelhança, modelos de Markov, redes neurais arti�ciais e classi�cação baseada

em regras (GONZALEZ; WOODS, 2008).

A classi�cação baseada em regras é uma abordagem simples e de fácil

implementação. Esta classi�cação é composta de um conjunto de regras do tipo

SE-ENTÃO que se referem aos atributos do objeto e exigem que se encontrem dentro

de uma certa faixa de valores típicos do rótulo desejado. É uma abordagem com

baixo custo computacional, adequada para pequenos vocabulários de classi�cações

(KRAISS, 2006).

2.3 Resumo do Capítulo

Neste Capítulo foram apresentados alguns fundamentos da área de

Processamento de Imagens úteis para um melhor entendimento do desenvolvimento

deste trabalho e também foram descritos as etapas que constituem um Sistema de

Visão Computacional e alguns dos algoritmos utilizados nestas etapas.

No próximo capítulo é realizada uma revisão bibliográ�ca dos métodos descritos

Page 31: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

2.3. Resumo do Capítulo 17

na literatura para a interação humana baseada em gestos com computadores pessoais

e com dispositivos portáteis.

Page 32: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Capítulo 3Revisão Bibliográ�ca de Técnicas de

Rastreamento da Mão Humana por

Visão Computacional

Neste capítulo são apresentados alguns métodos descritos na literatura para a

interação do homem com dispositivos eletrônicos através do rastreamento da mão

utilizando Visão Computacional. Na primeira seção são apresentados trabalhos

que propõem soluções para interação do homem com computadores pessoais e a

possibilidade de utilização destas soluções em dispositivos móveis. Na seção seguinte

são apresentados alguns trabalhos desenvolvidos especialmente para a solução do

problema da interação do homem com os dispositivos portáteis.

3.1 Interação com Computadores Pessoais através de Visão

Computacional

A pesquisa na área de Interação Homem-Computador cresceu signi�cantemente

nos últimos anos, graças aos avanços no desenvolvimento de técnicas unimodais

(processamento de áudio, visão computacional, dentre outras) e também ao

barateamento de dispositivos como câmeras e sensores. Esse aumento é

impulsionado pela maior integração dos computadores na vida diária, pois em muitas

aplicações o usuário necessita interagir naturalmente com o computador da mesma

forma que interage com outros seres humanos (JAIMES; SEBE, 2007).

Existe uma grande variedade de técnicas nas quais se baseiam os sistemas de

18

Page 33: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.1. Interação com Computadores Pessoais através de Visão Computacional 19

interação desenvolvidos nos últimos anos. Essas técnicas são apresentadas nas

subseções a seguir.

3.1.1 Técnicas Baseadas em Marcadores

No trabalho de Dorfmuller-Ulhaas e Schmalstieg (2001) é proposto um método

de rastreamento da mão baseado em uma luva com um conjunto de marcadores

retro-re�exivos, operando com luz infravermelha, permitindo ao usuário segurar,

transladar, rotacionar e liberar objetos para aplicações de ambientes virtuais, como

mostrado na Figura 3.1.

Figura 3.1: exemplo de utilização do método de Dorfmuller-Ulhaas e Schmalstieg (2001).

Nos trabalhos de Bebis et al. (2002) e Wang e Popovic (2009) são propostos

sistemas de rastreamento da mão humana baseados na utilização de luva coloridas

especiais, com as quais é possível identi�car as pontas dos dedos, diferenciar os dedos

da mão e localizar a palma da mão, como visualizado nas Figuras 3.2 e 3.3.

Figura 3.2: exemplo de utilização do método de Bebis et al. (2002).

Page 34: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.1. Interação com Computadores Pessoais através de Visão Computacional 20

Figura 3.3: exemplo de utilização do método de Wang e Popovic (2009).

3.1.2 Técnicas Baseadas em Temperatura

Existem algumas técnicas de rastreamento da mão que exploram a temperatura

como meio de segmentar objetos. Koike, Sato e Kobayashi (2001) propõem o

EnhancedDesk, o qual utiliza um simples limiar na imagem obtida por uma câmera

infravermelha para determinar a região da mão e assim localizar as posições dos

dedos, como mostrado na Figura 3.4.

(a) (b)

Figura 3.4: exemplo de utilização do método de Koike, Sato e Kobayashi (2001).

As técnicas baseadas em marcadores e em temperatura apresentam uma grande

restrição para a sua utilização em dispositivos portáteis: necessitam da utilização

de dispositivos adicionais, como luvas especiais para as técnicas baseadas em

marcadores e câmeras infravermelhas, as quais não fazem parte da grande maioria

dos dispositivos portáteis comerciais, para as técnicas baseadas em temperatura e

para o sistema proposto por Dorfmuller-Ulhaas e Schmalstieg (2001). A necessidade

desses dispositivos extras acarreta em um aumento do custo do sistema.

3.1.3 Técnicas Baseadas em Subtração de Fundo

Truyenque (2005) propõe um método de rastreamento da mão baseado em

subtração do fundo no qual subtrai-se da imagem atual uma imagem de referência.

Page 35: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.1. Interação com Computadores Pessoais através de Visão Computacional 21

Esta imagem é adquirida e modelada a partir de um fundo estático durante um certo

período de tempo (período de treinamento). Dessa forma, o sistema pode funcionar

em qualquer fundo, desde que este permaneça razoavelmente estático. Depois de

modelado o fundo, o algoritmo reconhece facilmente quando o usuário insere sua

mão na região sendo �lmada, como ilustrado na Figura 3.5.

(a) (b) (c) (d)

Figura 3.5: exemplo dos gestos reconhecidos pelo método proposto por Truyenque (2005).

Malik (2003) também propõe um método de rastreamento da mão e dos dedos

através de técnicas de subtração de fundos, além da aplicação de um classi�cador

baseado em histograma para retirar da imagem binarizada quaisquer objetos que não

sejam pele e que tenham sido segmentados incorretamente. Após isso, é extraído o

contorno da região da mão e, através do cálculo da curvatura dos pontos do contorno,

as pontas dos dedos são localizadas. Um exemplo do sistema proposto é mostrado

na Figura 3.6.

Figura 3.6: exemplo do método de Malik (2003).

Essas técnicas requerem que o fundo da imagem permaneça estático para que a

segmentação seja realizada de forma adequada, o que não é sempre o caso quando

se trata do uso de um dispositivo portátil, tornando inviável a utilização dessas

técnicas em dispositivos desta natureza.

Zhang et al. (2001) propõem um sistema de interface baseado em visão, o Visual

Page 36: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.1. Interação com Computadores Pessoais através de Visão Computacional 22

Panel, o qual emprega uma superfície plana retangular (como uma folha de papel)

sobre a qual o usuário pode mover algum objeto apontador (como a ponta do dedo

ou de uma caneta) de cor diferente daquela da superfície retangular. Para a detecção

da superfície retangular, é aplicada a transformada de Hough sobre as bordas da

imagem e detectado a forma que mais se assemelha a um retângulo. Feito isto, a

região da mão é encontrada pela subtração da região retangular detectada e a ponta

do dedo é identi�cada como sendo o ponto mais distante do centro de massa da

região da mão. Um exemplo da utilização desse sistema é visualizado na Figura

3.7.

(a) (b)

Figura 3.7: exemplo do método de Zhang et al. (2001), o Visual Panel : (a) usuário com

a mão sobre folha de papel; e (b) cantos da folha de papel e ponta do dedo

detectados.

O sistema proposto por Zhang et al. (2001) tem como restrição a utilização

de uma superfície retangular para a localização da ponta do dedo, diminuindo a

versatilidade do seu uso.

3.1.4 Técnicas Baseadas em Correlação

A Correlação mede a similaridade entre um padrão amostrado e outro padrão

de teste. Laptev e Lindenberg (2001) apresentam um sistema que detecta a posição,

orientação e escala da mão, bem como a con�guração dos dedos, a uma taxa de

10 frames por segundo. O sistema efetua o cálculo da correlação entre os pixels da

imagem e vários modelos com hipóteses diferentes sobre a posição e o estado da

mão. A hipótese que possuir maior valor de correlação é selecionada como a nova

posição da mão. A utilização do sistema é mostrada na Figura 3.8.

Freeman e Weissman (1995) propõem um sistema de controle de aparelho

Page 37: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.1. Interação com Computadores Pessoais através de Visão Computacional 23

Figura 3.8: exemplo do método de Laptev e Lindenberg (2001).

televisores através de gestos manuais, como mostrado na Figura 3.9. Inicialmente

o sistema encontra-se em repouso (Figura 3.9(a)). Quando o telespectador ergue a

mão com a palma apontada para a televisão (Figura 3.9(b)), o sistema é iniciado,

passa a rastrear o movimento da mão e exibe na tela do aparelho botões que

possibilitam ao usuário aumentar ou diminuir o volume, mudar o canal, entre outras

ações (Figura 3.9(c)). Quando o telespectador fecha a mão, o sistema para de exibir

os botões e entra em repouso, até o usuário erguer de novo a mão (Figura 3.9(d)). O

reconhecimento da mão aberta e fechada é realizado através do cálculo da correlação

dos modelos com a imagem capturada.

(a) (b)

(c) (d)

Figura 3.9: exemplo do método de Freeman e Weissman (1995).

Embora muito robustas, as técnicas baseadas em correlação apresentam

um intenso custo computacional, mesmo para utilização em PCs modernos,

inviabilizando a sua utilização em dispositivos portáteis, os quais possuem

capacidade de processamento limitada.

Page 38: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 24

3.1.5 Técnicas Baseadas em Modelos de Markov

Stefanov, Galata e Hubbold (2005) propõem uma abordagem para o

rastreamento da mão baseado em um modelo de Markov de comprimento variável,

o qual é utilizado para representar a estrutura e a ordenação temporal dos gestos.

A estimação da posição da mão é obtida combinando o modelo com operações de

�ltragem de partículas. Um exemplo da utilização da técnica é mostrado na Figura

3.10.

Figura 3.10: exemplo do método de Stefanov, Galata e Hubbold (2005).

Da mesma forma que com as técnicas baseadas em correlação, a técnica de

Stefanov, Galata e Hubbold (2005) é muito robusta, porém apresenta um custo

computacional elevado, inviável para uma aplicação em tempo real em dispositivos

portáteis. Em teste realizados em PCs, a técnica de Stefanov, Galata e Hubbold

(2005) apresentou um tempo de processamento de 132 ms, o que dá uma taxa de

processamento média de 7 frames por segundo. Obviamente, em um dispositivo

portátil esse tempo de processamento seria bem maior, acarretando em uma

quantidade menor de frames processados por segundo.

3.2 Interação com Dispositivos Portáteis

O desenvolvimento de métodos de interação baseados em VC para dispositivos

portáteis tem crescido nos últimos tempos. Os sistemas operacionais e os jogos

portáteis são aplicações que podem se bene�ciar de técnicas de interação inovadoras

(HANNUKSELA; SANGI; HEIKKILA, 2005).

Porém, apesar dos rápidos avanços tecnológicos, os dispositivos portáteis

ainda não possuem um desempenho equivalente ao de um PC com o poder de

processamento atual. De uma maneira geral, os dispositivos portáteis apresentam

restrições quanto aos recursos computacionais disponíveis, nos custos ou mesmo nas

Page 39: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 25

condições de operações, limitando as técnicas que podem ser utilizadas (CHEN et

al., 2007).

Esta seção apresenta alguns trabalhos propondo soluções para interação com

dispositivos portáteis utilizando a mão humana através de Visão Computacional e

as limitações que apresentam.

3.2.1 Método Baseado em Marcadores de Baldauf e Frohlich (2009)

Baldauf e Frohlich (2009) propõem um método de interação com dispositivos

portáteis baseados em marcadores colados nas pontas dos dedos do usuário. O

dispositivo portátil é acoplado à cabeça do usuário, com a câmera voltada para

frente. Mexendo os dedos com os marcadores colados, o usuário pode interagir

com alguma aplicação grá�ca, tendo um retorno das suas ações em uma imagem

mostrada por um projetor também acoplado á sua cabeça, conforme mostrado na

Figura 3.11.

Figura 3.11: exemplo da utilização do método proposto por Baldauf e Frohlich (2009).

Esse método tem como restrições para uso em dispositivos portáteis o fato

de exigir que o usuário utilize marcadores colados às pontas dos seus dedos e a

necessidade de que uma câmera seja acoplada à cabeça do usuário.

3.2.2 Método Proposto por Hannuksela, Sangi e Heikkila (2007a)

Hannuksela, Sangi e Heikkila (2007a) propõem um sistema de rastreamento do

dedo baseado em movimento que combina o algoritmo de �ltragem de Kalman e o

algoritmo de maximização da expectativa. A solução proposta considera a existência

de dois movimentos distintos: o movimento do fundo e do conjunto fundo mais dedo.

Page 40: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 26

Dessa forma, os dois movimentos são estimados e o movimento do fundo é subtraído

do movimento do dedo de forma a se obter o movimento de interesse.

O método proposto por Hannuksela, Sangi e Heikkila (2007a) possui

baixa complexidade computacional, permitindo-lhe ser embarcado em dispositivos

portáteis para uso em tempo real, e não necessita de dispositivos adicionais para

ser utilizado. Porém, não apresenta uma rastreamento da trajetória do dedo muito

robusto, como pode ser visto na Figura 3.12. O usuário desenha no ar com seu

dedo em frente á câmera a letra Z, como visto na Figura 3.12(a), a letra A, como

visto na Figura 3.12(b), e a letra U, como visto na Figura 3.12(c). Além disso,

o método só suporta o reconhecimento do gesto de apontamento, impossibilitando

que outras ações sejam adicionadas.

(a) (b) (c)

Figura 3.12: exemplo de rastreamento do dedo pelo método (HANNUKSELA; SANGI;

HEIKKILA, 2007a), (a) letra Z; (b) letra A; e (c) letra U.

3.2.3 Método Proposto por Hirobe e Niikura (2009)

Hirobe e Niikura (2009) propõem uma interface baseada em Visão

Computacional para dispositivos móveis através do rastreamento do movimento da

ponta de um dedo do usuário como mostrado na Figura 3.13.

Figura 3.13: utilização do sistema desenvolvido por Hirobe e Niikura (2009).

Page 41: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 27

Primeiramente o usuário deve de�nir uma imagem de modelo da ponta do seu

dedo que deve ser rastreada, como visto na Figura 3.14(a). A partir disso, o sistema

proposto identi�ca movimentos de translação, rotação e mudança de escala da ponta

do dedo, como visto na Figura 3.14(b); bem como o gesto de clique, quando o usuário

aproxima e afasta da câmera rapidamente o dedo rastreado.

(a) (b)

Figura 3.14: funcionamento do sistema de Hirobe e Niikura (2009), (a) ponta do dedo

do usuário de�nida como modelo do sistema; e (b) movimentos de rotação e

escala detectados.

Esse método pode ser utilizado em aplicações de teclado visual, como visto na

Figura 3.15(a), de editores de imagem para ações de zoom e rolagem, como visto na

Figura 3.15(b), e também de editores de grá�cos 3D, como visto na Figura 3.15(c).

(a) (b) (c)

Figura 3.15: aplicações do algoritmo proposto por Hirobe e Niikura (2009), (a) teclado

virtual; (b) editores de imagem e (c) editores de grá�cos 3D.

Como restrições, o método proposto por Hirobe e Niikura (2009) possui a

necessidade de, toda vez que for ser utilizado, o usuário ter que de�nir uma imagem

de modelo da ponta do seu dedo e também reconhecer apenas um dedo presente na

imagem, limitando o número de ações que o método poderia reconhecer.

Page 42: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 28

3.2.4 Método Proposto por Gallo, Arteaga e Davis (2008)

No trabalho desenvolvido por Gallo, Arteaga e Davis (2008) é proposto um

método de rastreamento da ponta do dedo que segue as etapas mostradas na Figura

3.16

Figura 3.16: etapas do método proposto por Gallo, Arteaga e Davis (2008).

Inicialmente, o sistema adquire um frame no formato RGB e, em seguida, calcula

o valor da cromaticidade vermelha Cr do formato YCbCr. Logo após, são calculadas

as projeções de gradiente horizontal gradY (X) e vertical gradX(Y ) da imagem,

dadas pelas equações (GALLO; ARTEAGA; DAVIS, 2008)

gradY (x) =∑|Cr(i, x)− Cr(i− n, x)|, (3.1)

gradX(y) =∑|Cr(y, j)− Cr(y, j − n)|, (3.2)

em que i e j são as coordenadas espaciais da imagem, x e y as colunas e linhas,

respectivamente, da imagem e n é a distância em pixels para o cálculo do gradiente,

com i, j, n ∈ Z. É usado um valor de n maior que 1 (n > 1) por causa da transição

entre o fundo e o objeto não ser abrupta e ocupar uma região com alguns pixels,

devido ao borramento causado pelas características da câmera ou movimento.

Na terceira etapa, os vetores de gradiente são ponderados com uma distribuição

Page 43: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 29

gaussiana centrada na posição predita com base nas posições dos frames anteriores e

com um desvio padrão de 1,5 vezes o tamanho da imagem. Finalmente, a localização

do dedo é determinada como o primeiro máximo encontrado nos vetores resultantes,

o qual corresponde ao ponto mais acima e mais à direita do quadrado envolvente da

mão, conforme mostrado na Figura 3.17(a).

(a) (b)

Figura 3.17: método de Gallo, Arteaga e Davis (2008), (a) ponto rastreado para mão

direita; e (b) ponto rastreado para mão esquerda.

Uma grande restrição deste método é a necessidade de que o usuário esteja

com a mão posicionada conforme mostrado na Figura 3.17(a), limitando o seu uso

apenas para a mão direita. Caso o usuário utilize a mão esquerda para operar o

dispositivo, o ponto localizado torna-se fora da região da mão, como visto na Figura

3.17(b). Além disso, o método só permite a realização de gestos de apontamento,

não oferecendo a opção de utilização de outros gestos, como para realizar operações

de zoom e rotação.

3.2.5 Método Proposto por Tsang e Pun (2005)

Outro método é proposto por Tsang e Pun (2005), cuja metodologia pode ser

vista na Figura 3.18.

Primeiramente o dispositivo portátil captura a imagem no formato RGB e a

converte para o formato YCbCr. Logo após, a imagem convertida é limiarizada

utilizando limiares para os canais Cb (70 e 110) e Cr (150 e 200), gerando

uma imagem binária. Essa imagem binária passa por um processo chamado de

regularização da densidade, em que são realizadas operações de dilatação e erosão

para reduzir a quantidade de ruídos presentes na imagem.

Na quarta etapa, de�ne-se como área de busca do algoritmo uma janela 60x60

Page 44: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 30

Figura 3.18: método proposto por Tsang e Pun (2005).

centrada na última posição do dedo detectada, reduzindo a área de busca do

algoritmo e o seu custo computacional. Dentro dessa janela de busca procura-se

o pixel correspondente à pele que se encontra na posição mais acima. Este pixel

corresponde à ponta do dedo apontador, como mostrado na Figura 3.19.

Figura 3.19: solução com janela de busca do algoritmo de Tsang e Pun (2005).

O método proposto por Tsang e Pun (2005) possui como limitação o fato de

considerar como a ponta do dedo o ponto mais acima na janela de busca. Caso

o usuário esteja com a mão apontada para baixo, o sistema não consegue rastrear

corretamente a ponta do dedo. Outra limitação se deve ao uso de janela de busca,

pois caso o deslocamento da ponta do dedo seja maior do que as dimensões da janela,

Page 45: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 31

a posição da ponta do dedo é perdida.

3.2.6 Método Proposto por Jain (2009)

Jain (2009) propõe um método de reconhecimento de gestos manuais estáticos

que estima com acurácia a postura da mão utilizando uma câmera de baixa resolução.

O diagrama de blocos do sistema proposto por Jain é apresentado na Figura 3.20.

Figura 3.20: etapas do método proposto por Jain (2009).

A etapa de Normalização RGB consiste em converter cada frame capturado para

o espaço de cores RGB e normalizar os seus canais para o intervalo de 0 a 1. A etapa

de Segmentação da Pele, que tem o objetivo de gerar uma imagem binária consistindo

de potenciais pontos de pele, é realizada através da Limiarização no espaço de cores

RGB normalizado, com base nos seguintes limiares obtidos experimentalmente:

r

b> 1, 185, (3.3)

Page 46: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 32

r ∗ b(r + g + b)2

> 0, 107, (3.4)

r ∗ g(r + g + b)2

> 0, 112, (3.5)

em que r, g e b são os valores das componentes do espaço de cores RGB normalizado.

A etapa de Rejeição de Formas Incorretas tem o objetivo de eliminar entradas

incorretas no sistema. Caso a região segmentada na imagem anterior contenha menos

de 5% ou mais de 50% da área total da imagem, esse frame é descartado, pois ou foi

segmentada uma região do fundo de cores próximas à cor da mão ou então a mão

se encontra a uma distância muito grande da câmera, impedindo o cálculo correto

da sua posição.

A etapa de Preenchimento de Buracos tem como objetivo preencher buracos e

regiões descontinuadas que surgem na segmentação da pele devido à iluminação

não-uniforme sobre a mão. Este preenchimento é realizado através de uma

reconstrução morfológica que utiliza operadores de vizinhança-4.

Na etapa de Remoção de Ruído são extraídas da imagem pequenas regiões de

fundo (com área menor que um certo número de pixels) que foram segmentadas

erroneamente e é passado sobre a imagem um �ltro da mediana com máscara de

tamanho 13x13 pixels para remover ruídos ainda restantes e suavizar as bordas da

mão segmentada.

A etapa de Estimação da Postura da Mão consiste da determinação do ângulo do

gesto de apontamento. Primeiro é calculado o centróide (xc, yc) da mão segmentada,

depois o número de pixels de pele é contado em um número m de direções radiais,

partindo do centróide até o primeiro pixel não pertencente à pele. Assim, o ângulo

do gesto de apontamento realizado pelo usuário é o ângulo que corresponde à maior

distância radial encontrada.

No trabalho de Jain (2009), foram utilizadas 72 direções radiais, cada uma

correspondendo a um intervalo de 5◦ na faixa de -180◦ a 180◦. Exemplos da utilização

do sistema proposto por Jain (2009) são mostrados na Figura 3.21.

O método proposto por Jain (2009) utiliza operações morfológicas e de �ltragem

mediana com máscara de dimensões altas, operações que consomem um tempo

maior de processamento, tornando o método mais custoso computacionalmente.

Page 47: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 33

Figura 3.21: exemplos da utilização do algoritmo de Jain (2009).

Esse fato pode tornar inviável a sua utilização em dispositivos de menor poder

de processamento.

3.2.7 Resumo do Capítulo

Neste Capítulo foram descritos alguns dos trabalhos desenvolvidos ao longo

dos últimos anos para a implementação de formas de interação baseadas em

reconhecimentos de gestos e rastreamento das mãos para o controle de computadores

pessoais e de dispositivos portáteis, bem como foram tratadas as suas limitações.

Os métodos descritos na literatura para a interação com computadores pessoais

apresentam diversas limitações para a sua utilização em dispositivos portáteis, tais

como a exigência de utilização de dispositivos adicionais, a exigência de fundo

estático da imagem e custo computacional pesado.

Desta forma, métodos de interação próprios para dispositivos portáteis têm

sido desenvolvidos nos últimos tempos, porém estes também apresentam algumas

restrições. Alguns exigem a utilizações de marcadores coloridos colados às pontas

dos dedos, outros não realizam o rastreamento da mão de forma muito robusta ou

então exigem que o usuário realize uma modelagem da ponta do dedo toda vez

que for utilizar o dispositivo. Além disto, a grande maioria dos métodos reconhece

apenas um tipo de gesto, reduzindo a quantidade de ações que podem ser efetuadas

pelo usuário.

Desta forma, é necessário o desenvolvimento de um método de interação com

Page 48: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

3.2. Interação com Dispositivos Portáteis 34

dispositivos portáteis que não apresente as restrições mencionadas anteriormente,

consiga reconhecer mais do que um gesto realizado pelo usuário de modo a ter uma

boa versatilidade e possa ser executado em um dispositivo embarcado em tempo

real. Tal método é descrito no próximo capítulo.

Page 49: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Capítulo 4Método Proposto

Este trabalho propõe um sistema em tempo real capaz de identi�car um conjunto

de gestos padronizados para formar um sistema de interação com dispositivos

portáteis, em especial telefones celulares, através do rastreamento da mão humana.

O �uxograma do método proposto pode ser visto na Figura 4.1. A seguir são

detalhadas as técnicas utilizadas em cada uma das etapas que formam o sistema

proposto.

4.1 Aquisição

A etapa de aquisição do método proposto é realizada pela câmera embutida do

dispositivo móvel. A imagem fornecida pelo dispositivo portátil disponível para a

realização dos testes encontra-se no espaço de cores YCbCr.

4.2 Pré-Processamento

Para a realização da etapa de pré-processamento foi escolhida a aplicação do

Filtro da Média sobre a imagem adquirida pela câmera. O objetivo deste �ltro

é atenuar o ruído presente na imagem, de forma a melhorar a etapa seguinte de

segmentação.

O �ltro da média foi escolhido devido a ser uma técnica muita utilizada na

literatura para a realização da etapa de pré-processamento. Não foram testados

outros �ltros para a realização dessa etapa.

Foram realizados testes em que o tamanho da máscara do �ltro da média foi

35

Page 50: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.3. Segmentação da Imagem 36

Figura 4.1: �uxograma do método proposto.

aumentado de 3x3 pixels até 13x13 pixels e a qualidade da segmentação para cada um

dos tamanhos de máscara foi avaliada. Desta forma, foi observado que a utilização

de uma janela 5x5 para o Filtro da Média apresenta o melhor equilíbrio entre custo

computacional e desempenho de �ltragem.

4.3 Segmentação da Imagem

O objetivo da etapa de segmentação é identi�car a região da imagem �ltrada

que corresponde à mão do usuário. Para realizar essa segmentação é utilizada a

técnica de limiarização no espaço de cores YCbCr.

A técnica de limiarização foi escolhida devido ao seu baixo custo computacional,

Page 51: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.3. Segmentação da Imagem 37

sendo realizada no espaço de cores YCbCr para evitar o processo de conversão da

imagem para outros espaços de cores, portanto sem processamento adicional.

Os limiares utilizados para a segmentação da pele são propostos por Chai e Ngan

(1999), em que são classi�cados como pele os pixels da imagem que se encontram

na faixa de valores 77 a 127 para o canal Cb e na faixa de valores 133 a 173 para o

canal Cr. O resultado do processo de limiarização é uma imagem g(x, y) dada por

(CHAI; NGAN, 1999)

g(x, y) =

1, se 77<Cb<127 e 133<Cr<173,

0, caso contrário,(4.1)

em que Cb(x, y) e Cr(x, y) são as componentes Cb e Cr da imagem �ltrada,

respectivamente. O algoritmo de segmentação da pele proposto por Chai e Ngan

(1999) consegue segmentar corretamente uma ampla faixa de cores da pele, incluindo

peles de cor branca, negra e amarela, como visto na Figura 4.2. Isto ocorre devido

ao fato do espaço de cores YCbCr separar a informação da cor da informação do

brilho da imagem.

Figura 4.2: segmentação de várias cores de pele realizada utilizando o modelo de Chai e

Ngan (1999).

Na Figura 4.3(a) é mostrada um exemplo de uma imagem �ltrada obtida na

etapa anterior, composta da mão do usuário, um objeto circular de cor semelhante à

da pele e um fundo cinza. Na �gura 4.3(b) é mostrado o resultado da limiarização,

Page 52: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.4. Representação e Descrição 38

com a mão e o objeto circular tendo sido segmentados.

(a) (b) (c)

(d) (e) (f)

Figura 4.3: imagens resultantes, (a) pré-processamento; (b) segmentação; (c) extração do

contorno; (d) maior contorno representado pelo código em cadeia; (e) regiões

de alta curvatura em cinza escuro; e (f) pontos críticos detectados em cinza

claro.

4.4 Representação e Descrição

Para a representação da imagem segmentada na etapa anterior, utiliza-se a

representação através do algoritmo de código em cadeia, que se baseia no contorno

do objeto. Isto porque se deseja obter informações sobre as in�exões deste contorno

para identi�car as pontas dos dedos da mão usuário.

O primeiro passo é a extração do contorno. Um ponto P é de�nido como um

ponto de contorno, c(x, y) = 1, quando este é um ponto de fundo, (g(x, y) = 0), e

pelo menos um ponto do objeto de interesse pertence à sua vizinhança, g(x, y) = 1.

Na Figura 4.3(b) é mostrada a imagem segmentada obtida na etapa anterior e na

Figura 4.3(c) é mostrada o resultado da extração do contorno da imagem.

O algoritmo de código em cadeia é então aplicado sobre a imagem do contorno.

Descartam-se os menores contornos da imagem e preserva-se apenas o maior

contorno encontrado pelo código em cadeia, armazenando-se as suas coordenadas

x e y. Na Figura 4.3(c) é mostrado a imagem de contorno obtida na etapa anterior

Page 53: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.5. Reconhecimento 39

e na Figura 4.3(d) é mostrado o resultado da aplicação do algoritmo de código em

cadeia na imagem do contorno. Observa-se que restou apenas o maior contorno (o

contorno da mão) e foi descartado o menor contorno (o contorno do objeto circular).

Para a descrição dos dados representados, utilizam-se como atributos a curvatura

e os pontos críticos do contorno da mão do usuário, os quais podem ser utilizados

para localizar as pontas dos dedos da mão, como proposto no trabalho de Leal et

al. (2009).

O cálculo da curvatura é realizado sobre o contorno da região da mão seguindo

a abordagem mostrada na subseção 2.2.4. Na Figura 4.3(d) é mostrado o contorno

representado pela lista do algoritmo de código em cadeia. Na Figura 4.3(e)

são mostradas em cinza escuro as regiões de alta curvatura encontradas, que

correspondem às regiões em torno das pontas dos dedos e dos vales entre os dedos

da mão.

Dentro dessas regiões de alta curvatura, seleciona-se o ponto central de cada

uma, que corresponde ao ponto crítico representando a ponta do dedo ou o vale

entre os dedos.

Apenas as pontas dos dedos são importantes para o método proposto, por isso

deve-se eliminar os pontos críticos que representam os vales. Isso é feito identi�cando

o ponto médio do segmento de reta formado pelos dois pontos extremos da região de

alta curvatura. Caso esse ponto se encontre sobre uma região de pele, o ponto crítico

corresponde a uma ponta de dedo. Caso contrário, o ponto crítico corresponde a

uma vale e é descartado do processamento.

Na Figura 4.3(e) as regiões de alta curvatura encontradas são mostradas e na

Figura 4.3(f) os pontos críticos de�nidos a partir dessas regiões de alta curvatura,

os quais correspondem às pontas dos dedos da mão do usuário.

4.5 Reconhecimento

A etapa de reconhecimento consiste na identi�cação do gesto que o usuário está

realizando para a câmera. O sistema desenvolvido reconhece gestos para seis ações

pré-de�nidas: Apontamento (Figura 4.4(a)), Zoom-in (Figura 4.4(b)), Zoom-out

(Figura 4.4(c)), Rotação Horária (Figura 4.4(d)), Rotação Anti-Horária (Figura

4.4(e)) e Arrastar (Figura 4.4(f)).

O método utilizado para a etapa de reconhecimento é a classi�cação baseada

Page 54: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.5. Reconhecimento 40

(a) (b) (c)

(d) (e) (f)

Figura 4.4: gestos suportados pelo sistema, (a) apontamento; (b) zoom in; (c) zoom out ;

(d) rotação horária; (e) rotação anti-horária; e (f) arrastar.

em regras, visto que é uma abordagem de fácil implementação e de baixo custo

computacional.

Primeiramente o sistema veri�ca a quantidade de pontas de dedos identi�cados

na etapa anterior de descrição. Caso o número de dedos reconhecidos seja igual a

1, o sistema identi�ca o gesto do usuário como sendo de Apontamento e armazena

a posição x-y da ponta de dedo encontrada.

Caso o número de dedos reconhecidos seja igual a 2, o sistema pode identi�car

dois tipos de gestos: gesto para a ação de zoom ou de rotação. Para diferenciar

entre os dois, veri�ca-se o ângulo da reta formada pelas pontas dos dois dedos

reconhecidos, como mostrado na Figura 4.5.

Caso o ângulo da reta formada pelas pontas dos dedos esteja entre 85◦ e 95◦,

como mostrado na Figura 4.5(a), o sistema identi�ca o gesto realizado como sendo

de Zoom. Caso o ângulo esteja entre 40◦ e 50◦ ou entre 120◦ e 130◦, como mostrado

nas Figuras 4.5(b) e 4.5(c) respectivamente, o sistema identi�ca o gesto realizado

como sendo de Rotação. Caso o ângulo assuma quaisquer outros valores, o sistema

identi�ca o gesto como sendo inválido.

Caso o gesto realizado seja de Zoom, deve-se identi�car se é referente à ação de

Page 55: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.5. Reconhecimento 41

(a) (b) (c)

Figura 4.5: ângulo da reta formada pelas pontas dos dois dedos com a horizontal, (a) 90◦;(b) 45◦; e (c) 125◦.

Zoom In ou de Zoom Out. Isso é realizado calculando-se o tamanho do segmento

de reta formado pelas pontas dos dois dedos do usuário. Se essa distância for maior

que um certo limiar, o gesto é de Zoom In; se essa distância for menor que um certo

limiar, o gesto é de Zoom Out.

Caso o gesto realizado seja de Rotação, deve-se identi�car se é referente à

Rotação Horária ou Anti-Horária. Isso é feito veri�cando-se o ângulo da reta formada

pelas pontas dos dois dedos do usuário. Caso o ângulo esteja entre 40◦ e 50◦, o gesto

é de Rotação Horária; caso o ângulo esteja entre 120◦ e 130◦, o gesto é de Rotação

Anti-Horária.

O dedo médio fechado da mão do usuário aparece entre os dedos indicador e

polegar esticados, como pode ser visto em destaque no círculo vermelho na Figura

4.6. Esse dedo médio fechado apresenta uma certa curvatura no seu contorno, porém

não é reconhecido como ponta de dedo, pois o valor desta curvatura é menor do que

o limiar utilizado para caracterizar um ponto do contorno como sendo de uma região

de alta curvatura.

Figura 4.6: dedo médio do usuário fechado em destaque.

Caso o número de dedos reconhecidos seja igual a 3, o sistema identi�ca o gesto

Page 56: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.6. Resumo do Capítulo 42

como sendo de Arrastar, armazenando a coordenada da ponta do dedo central.

Caso o número de dedos reconhecidos seja algum outro que não 1,2 ou 3,

o sistema não reconhece nenhum gesto válido. O �uxograma do processo de

reconhecimento é mostrado na Figura 4.7.

Figura 4.7: �uxograma do processo de reconhecimento dos gestos.

4.6 Resumo do Capítulo

Neste Capítulo foi descrito o método de interação com dispositivos portáteis

baseado em Visão Computacional proposto neste trabalho bem como as técnicas

utilizadas em cada uma de suas etapas constituintes. O método proposto não

possui as limitações existentes na maioria dos métodos descritos na literatura para

a interação com dispositivos portáteis.

No próximo capítulo são descritos os equipamentos utilizados para o

desenvolvimento do método proposto, os ambientes de simulação e de

Page 57: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

4.6. Resumo do Capítulo 43

desenvolvimento utilizados, as métricas de avaliação utilizadas para comparar o

método proposto com outros métodos descritos na literatura e os resultados da

implementação do método e da sua comparação com os outros métodos.

Page 58: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Capítulo 5Resultados

Neste Capítulo são apresentados, inicialmente, os equipamentos e os ambientes

de simulação e desenvolvimento utilizados neste trabalho, as metodologias para

avaliação dos seus resultados e comparação com outros métodos e, por �m, os

resultados da comparação do método proposto com métodos descritos na literatura

segundo os critérios de avaliação de�nidas.

5.1 Equipamentos Utilizados

No desenvolvimento dessa dissertação os algoritmos são inicialmente

desenvolvidos em um Computador Pessoal (PC) e, em seguida, adaptados

e embarcados em um dispositivo portátil. Os equipamentos utilizados no

desenvolvimento desta dissertação são resumidamente descritos na Tabela 5.1.

Computador Pessoal Telefone Celular

Fabricante IBM Samsung

Modelo MT-M 8212-G4P SGH-A706

Processador Intel Pentium D ARM9 à 143 MHz

RAM 2GB -

OS Windows XP com SP2 Qualcomm REX

Câmera 1.3 MPix Microsoft NX-3000 2 MPix

Tabela 5.1: equipamentos utilizados no desenvolvimento do trabalho.

Para a realização dos experimentos foram utilizados um PC e um aparelho

44

Page 59: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.2. Ambientes de Desenvolvimento 45

celular. O computador possui como acessório uma câmera Microsoft NX-3000.

O aparelho celular não possui Unidade de Ponto Flutuante (Floating Point Unit)

(FPU). Todos os cálculos em ponto �utuante são feitos através de software no

processador de ponto �xo (inteiro). O uso de ponto �utuante aumenta o custo

computacional, necessitando a adaptação do código para ponto �xo.

O celular utilizado no desenvolvimento do trabalho fornece frames com o

tamanho �xo de 176x144 pixels, que foi a resolução utilizada no desenvolvimento

dos algoritmos.

5.2 Ambientes de Desenvolvimento

Nesta seção são descritos os ambientes utilizados para o desenvolvimento desta

dissertação. Inicialmente, é descrito o ambiente de simulações (Simulink). Em

seguida, são descritos os ambientes utilizados para o desenvolvimento dos algoritmos

em C ANSI de Visão Computacional para os testes de desempenho dos protótipos.

5.2.1 Simulink

O Simulink é um sistema de simulação computacional baseado em ícones e de

aplicação geral, possuindo ou não características não lineares e dinâmicas. Através

da combinação de vários diagramas de blocos, o Simulink é capaz de simular sistemas

de pequeno e grande porte e também de integrar-se com funções desenvolvidas em

Matlab (TAYLOR, 2004).

A estrutura modular do Simulink permite o agrupamento de modelos dentro

de hierarquias que provêm uma visão geral do sistema e uma fácil manutenção de

componentes e sistemas complexos. O Simulink utiliza um ambiente grá�co baseado

em diagramas de blocos que suportam diferentes operações, como, por exemplo,

funções aritméticas, entrada e saída de dados, funções de transferência, modelos de

estado de espaços, dentre outras (KALAGASIDS, 2007).

A partir de pequenos blocos, através deste ambiente, um conjunto de bibliotecas

de várias áreas pode ser desenvolvido. Cada biblioteca é formada por vários

sub-blocos ou sub-modelos que representam uma função especí�ca de uma área

especí�ca. A partir do arranjo de vários destes blocos na tela e através das conexões

dos blocos com algumas variáveis e constantes é possível simular vários sistemas de

equação (TAYLOR, 2004).

Page 60: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.2. Ambientes de Desenvolvimento 46

Com o uso do Simulink, um desenvolvedor se preocupa mais com a

implementação do modelo físico do projeto, esquecendo-se das questões de

discretização e integração entre blocos, possibilitando assim um menor tempo para

simular a e�ciência de um algoritmo (KALAGASIDS, 2007).

Um pacote muito importante para possibilitar a simulação de algoritmos de

Visão Arti�cial é o pacote de processamento de Vídeo e Imagem. O pacote de vídeo

e imagem possui um conjunto de funções úteis para a comunidade de processamento

de imagens composta por funções de aquisição, �ltragem, análise e extração de

características e exibição de resultados. Este pacote é capaz de adquirir vídeos

compatíveis (AVI e WMV) e imagens (BMP, PNG, TIF, JPEG), que podem ser

processados por um conjunto de blocos (MATHWORKS, 2006).

5.2.2 Open Source Computer Vision Library (OpenCV)

Neste trabalho o Open Source Computer Vision Library (OpenCV) foi utilizado

em um sistema operacional Windows através do compilador Visual C++ 2008

Express Edition. Originalmente desenvolvida pela Intel em 2000, o OpenCV

é uma biblioteca multiplataforma, totalmente livre para o uso acadêmico e

comercial, distribuída sob a licença Berkeley Software Distribution (BSD) para o

desenvolvimento de aplicativos na área de Visão Computacional (INTEL, 2000).

Esta biblioteca possui um grande número de funções em C/C++ que

implementam alguns dos algoritmos mais comuns de processamento e análise de

imagens em diversas áreas, tais como interface homem-máquina, identi�cação de

objetos, segmentação de imagens, reconhecimento de faces, detecção de movimento,

robótica, dentre outras (REIS; TAVARES, 2007).

Para �ns deste trabalho, o OpenCV é utilizado apenas como forma de acessar

os frames da câmera digital. Todas as outras etapas de processamento foram

implementadas em C ANSI de forma a torná-lo independente de plataforma e de

dispositivo.

Após o desenvolvimento e teste da implementação utilizando o OpenCV, o

código é integrado ao sistema de desenvolvimento utilizado nos dispositivos portáteis

de modo que possam ser realizados os testes de desempenho.

Page 61: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.3. Implementação 47

5.2.3 Qualcomm REX

O Sistema Operacional Real Time Executive (REX) é um sistema operacional

produzido pela Qualcomm e fornecido às empresas fabricantes de dispositivos que

utilizam os processadores da família Mobile Station Modem (MSM) produzidos pela

Qualcomm (CHO; JEON, 2007). O diagrama de blocos deste sistema operacional é

mostrado na Figura 5.1.

Figura 5.1: diagrama de blocos de aplicativos baseados no REX.

O REX consiste em um conjunto de tarefas em que cada uma delas realiza

um laço in�nito. O sistema seleciona as tarefas de acordo com um algoritmo de

prioridade baseado em agendamento. Assim, o REX controla as tarefas iniciando

ou encerrando as suas execuções. O REX inclui tarefas especializadas tais como

Interface de Usuário, que realiza a interação com o usuário, e Controle Mestre, que

controla as outras tarefas (CHO; JEON, 2007).

O REX utiliza o mesmo espaço de endereços para todas as suas tarefas, não

oferecendo proteção de memória, de forma que apenas desenvolvedores devem fazer

aplicações para telefones celulares em REX. Isso acontece devido ao fato do REX ter

sido projetado para realizar funções básicas de dispositivos portáteis tais como fazer

ligações telefônicas e enviar receber mensagens, não tendo suporte para multitarefa

e proteção. REX executa todas as funções de um celular, como agenda telefônica,

câmera e serviços de áudio e vídeo, como apenas uma tarefa. Logo, todas as tarefas

em REX compartilham do mesmo espaço de endereços (CHO; JEON, 2007).

5.3 Implementação

Nesta seção são descritos os testes e simulações realizados. Inicialmente são

descritos em detalhes os procedimentos de simulação. Em seguida, são descritos os

detalhes da implementação em C para as plataformas de desenvolvimento.

Page 62: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.3. Implementação 48

5.3.1 Simulação

Simulação é o processo de projetar modelos de um sistema ou processo e conduzir

experimentos com esses modelos com o propósito de entender o comportamento do

sistema ou avaliar várias estratégias para a sua operação (SHANNON, 1975).

O processo de simulação é importante por consumir menos tempo e recursos do

que a experimentação sobre o sistema real, permitir a repetição dos experimentos

inde�nidas vezes a um baixo custo, oferecer vários recursos de visualização dos

resultados da simulação bem como do estado do sistema durante sua operação,

dentre outra coisas (PERIN, 1995).

As simulações realizadas no desenvolvimento desta dissertação utilizam o

Simulink e seguem o diagrama de blocos de um Sistema de Visão Computacional

visto na Figura 2.3.

As etapas constituintes do sistema são realizadas utilizando os pacotes padrões,

de aquisição de imagens e de processamento de imagens presentes no Simulink, bem

como são implementadas funções em linhas de comando do Matlab através do bloco

mfunction.

Um exemplo de simulação realizada neste trabalho pode ser vista na Figura 5.2,

na qual pode ser observada a simulação da etapa de segmentação da imagem.

Figura 5.2: exemplo de simulação do algoritmo de segmentação da pele utilizando o

Simulink.

5.3.2 Desenvolvimento

O diagrama da implementação em C ANSI dos métodos de interação baseados

em Visão Computacional é mostrado na Figura 5.3. Nesta Figura, as setas

representam o acesso de informações. Os algoritmos de VC desenvolvidos neste

Page 63: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.3. Implementação 49

trabalho possuem um acesso indireto ao hardware devido à necessidade de

utilização do método proposto em várias plataformas (Windows e REX). Os códigos

desenvolvidos são implementados em C ANSI e utilizam apenas comandos presentes

nas bibliotecas padrões.

Figura 5.3: diagrama da implementação em C dos algoritmos.

Após as simulações, os algoritmos são implementados em C ANSI e em seguida

embarcados e testados no dispositivo portátil. Para cada plataforma, é desenvolvido

um conjunto de comandos de acesso ao meio físico dependentes de cada plataforma.

Por exemplo, para os testes realizados no PC, a interface de acesso ao hardware

da câmera é feita utilizando comandos existentes na Interface de Programação de

Aplicativos (API) do OpenCV que, ao �m do processamento, converte os frames

adquiridos em um vetor de ponto �xo (inteiro).

Para testar os algoritmos foi desenvolvida uma aplicação em C++ que realiza a

execução do código. Esta aplicação inicia os algoritmos de rastreamento da mão e

entra em um laço que adquire um frame da câmera, executa o algoritmo proposto e

exibe os resultados até que uma tecla seja pressionada. Após sair do laço, a aplicação

fecha os algoritmos de VC.

No ambiente REX, os algoritmos são compilados em C ANSI e enviados

para o grupo de desenvolvedores do Samsung Instituto de Desenvolvimento para

Informática (SIDI). Os desenvolvedores implementaram a interface de acesso ao

Page 64: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.4. Formas de Avaliação 50

hardware e integram o algoritmo em uma aplicação nativa do sistema operacional,

disponibilizando o conjunto de algoritmos para serem testados e avaliados.

5.4 Formas de Avaliação

O algoritmo proposto neste trabalho é comparado com outros três algoritmos

apresentados no Capítulo 3: o algoritmo de Gallo, Arteaga e Davis (2008) -

identi�cado como método de Gallo; o algoritmo de Tsang e Pun (2005) - identi�cado

como método de Tsang; e o algoritmo de Jain (2009) - identi�cado como método de

Jain.

Os métodos escolhidos para a realização desta comparação são estes porque

são os métodos que apresentam as menores restrições para a sua utilização em

dispositivos portáteis.

Os algoritmos são avaliados usando quatro critérios: custo computacional,

quantidade de gestos reconhecidos, invariância à rotação para o gesto de

apontamento e robustez à presença de fundo de cor próxima à cor da pele.

5.4.1 Custo Computacional

O custo computacional é avaliado para se investigar o método que melhor se

adapta aos dispositivos móveis.

Este custo é medido pelo tempo médio de execução do método, o qual é obtido

pela média do tempo de 100 execuções do método. Feito isso, é calculado quantos

frames por segundo (fps) o método consegue processar. Os tempos de processamento

e o número de frames processados por segundo de cada método são então dispostos

em uma Tabela para análise.

Sistemas de interação devem ser capazes de processar no mínimo 30 frames por

segundo para serem considerados sistemas em tempo real (WAGNER et al., 2010).

Desta forma, a referência para esta métrica de avaliação é o método possuir uma

taxa de processamento maior ou igual a 30 fps.

5.4.2 Invariância à Rotação no Gesto de Apontamento

É avaliada a invariância à rotação que cada um dos métodos possui para o gesto

de apontamento, ou seja, é avaliado se é possível utilizar o gesto de apontamento

para cada método em diferentes ângulos de rotação da mão em relação à câmera.

Page 65: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.4. Formas de Avaliação 51

Os diferentes ângulos de rotação examinados são mostrados na Figura 5.4. É

desejável que os métodos consigam reconhecer o gesto de apontamento em todas as

diferentes posições mostradas nesta Figura.

(a) (b) (c) (d)

(e) (f) (g) (h)

Figura 5.4: ângulos de rotação da mão para teste da robustez do reconhecimento do gesto

de apontamento, (a) 90◦; (b) 45◦; (c) 0◦; (d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦;e (h) 135◦.

5.4.3 Robustez à Presença de Regiões no Fundo da Imagem com Cor

Próxima à da Pele

No tipo de interação abordado nesta dissertação, observa-se que há uma forte

in�uência da presença de regiões no fundo da imagem com cor próxima à cor do

dedo, ou seja, da pele. Assim, avaliar esta in�uência é de suma importância no

processo de avaliação destes métodos de interação. Neste caso, a avaliação é realizada

colocando-se duas regiões no fundo da imagem com cores próximas à da pele, uma

região de área pequena e outra de área grande.

Portanto, a in�uência da presença dessas regiões na imagem é medida pela sua

in�uência no rastreamento da mão, que é afetada pela qualidade da segmentação.

É avaliada a robustez do rastreamento da ponta do dedo quanto à presença de tais

regiões, ou seja, esta robustez é medida pela maior ou menor in�uência de tais

regiões no rastreamento do dedo.

Page 66: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.5. Resultados da Implementação do Método Proposto 52

5.4.4 Robustez à Oclusão com Regiões de Cor Próxima à da Pele

É avaliada a robustez do método à oclusão com objetos de cor próxima á da pele,

ou seja, é avaliado se o método consegue manter o rastreamento correto da ponta

do dedo mesmo quando a mão do usuário entra em oclusão com alguma região do

fundo da imagem que possui cor próxima à da pele.

A referência é a manutenção do rastreamento correto da ponta do dedo quando

da existência desta oclusão.

5.5 Resultados da Implementação do Método Proposto

O resultado do reconhecimento dos gestos realizado pelo sistema proposto é

mostrado na Figura 5.5.

(a) (b)

(c) (d)

(e) (f)

Figura 5.5: resultado do reconhecimento dos gestos suportados pelo sistema, (a)

apontamento; (b) zoom in; (c) zoom out ; (d) rotação horária; (e) rotação

anti-horária; e (f) arrastar.

Para cada item da �gura tem-se, à direita, a imagem obtida pela câmera do

dispositivo móvel e tem-se, à esquerda, a imagem segmentada com o contorno

Page 67: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.5. Resultados da Implementação do Método Proposto 53

rastreado em vermelho, as regiões de alta curvatura encontradas em amarelo e as

pontas de dedo localizadas em verde.

Pequenos ícones também são mostrados no canto inferior esquerdo de cada

imagem segmentada, indicando o gesto que é reconhecido: o desenho de uma

seta surge quando o gesto reconhecido é de Apontamento; o desenho de setas se

expandindo surge quando o gesto reconhecido é de Zoom In; o desenho de setas se

retraindo surge quando o gesto reconhecido é de Zoom Out ; o desenho de setas

em rotação horária surge quando o gesto reconhecido é de Rotação Horária; o

desenho de setas em rotação anti-horária surge quando o gesto reconhecido é de

Rotação Anti-Horária; e, �nalmente, o desenho de um quadrado sendo arrastado

surge quando o gesto reconhecido é de Arrastar.

5.5.1 Taxas de Reconhecimento dos Gestos

As taxas de reconhecimento de cada um dos gestos suportados pelo método

proposto são mostradas na Tabela 5.2. Para o cálculo dessas taxas de acerto, foram

realizadas 30 exposições de cada gesto para a câmera. Feito isso, calculou-se quantas

vezes o gesto foi reconhecido corretamente pelo sistema.

Gesto Taxa de Reconhecimento

Apontamento 96,6%

Zoom In 93,3%

Zoom Out 93,3%

Rotação Horária 96,6%

Rotação Anti-Horária 93,3%

Arrastar 93,3%

Taxa Média 94,4%

Tabela 5.2: taxas de reconhecimento para cada um dos gestos suportados pelo método

proposto.

Como visto na Tabela, o método proposto apresenta taxas de reconhecimento

superiores a 90% para todos os gestos suportados e uma taxa de acerto média de

94,4%.

Page 68: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 54

5.5.2 Quantidade de Gestos Reconhecidos

A quantidade de gestos reconhecidos pelo método proposto e pelos três métodos

comparados é mostrada na Tabela 5.3.

Métodos Quantidade de Gestos

Proposto 6

Gallo 1

Tsang 1

Jain 1

Tabela 5.3: quantidade de gestos reconhecidos dos quatro métodos.

O método proposto consegue reconhecer até seis gestos diferentes (apontamento,

zoom in, zoom out, rotação horária, rotação anti-horária e arrastar), ao passo que

os outros três métodos só conseguem reconhecer um gesto, o de apontamento. Isso

torna o método proposto mais versátil, visto que, com o maior número de gestos

reconhecidos que os outros, mais ações podem ser associadas.

5.6 Resultados das Formas de Avaliação

Esta seção apresenta os resultados da comparação do método proposto com os

métodos de Gallo, de Tsang e de Jain, de acordo com as formas de avaliação descritas

anteriormente.

Para a obtenção destes resultados, todos os quatros métodos avaliados são

desenvolvidos em C ANSI no ambiente de desenvolvimento descrito anteriormente

utilizando o computador pessoal utilizado na execução do trabalho. Depois de

desenvolvidos, os métodos são então embarcados para o telefone celular disponível

para a realização dos testes.

5.6.1 Custo Computacional

Os tempos de processamento médio e as taxas de processamento para cada um

dos quatro métodos na plataforma embarcada são obtidos dividindo-se o tempo total

de 100 execuções para cada método por 100.

Os tempos de processamento foram obtidos utilizando o mesmo vídeo para o

métodos de Gallo, Tsang e Jain. Este vídeo contem a mão do usuário realizando

Page 69: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 55

o gesto de apontamento em toda a sua duração. Para a extração do tempo de

processamento do método proposto, foi produzido outro vídeo em que o usuário

realiza todos os gestos suportados durante a duração do vídeo. Ambos os vídeos

foram produzidos sob as mesmas condições de iluminação, no mesmo local e com o

mesmo usuário.

O valor da variância dos tempos obtidos para cada método apresenta um

valor pequeno, de forma que os tempos máximo e mínimo de processamento não

apresentam informação relevante sobre os métodos. Por isto, são considerados

apenas os tempos médios de processamento dos métodos para a realização da

comparação.

Os tempos obtidos em milissegundos (ms) e as taxas de processamento em frames

por segundo (fps) são apresentados na Tabela 5.4.

Métodos Tempo Médio (ms) Taxa de Processamento (fps)

Proposto 15,18 65,87

Gallo 5,16 193,79

Tsang 34,62 28,88

Jain 66,76 14,98

Tabela 5.4: tempo de processamento e taxa de processamento dos quatro métodos.

A partir dos dados postos na Tabela percebe-se que o algoritmo que possui

menor custo computacional é o de Gallo, Arteaga e Davis (2008), com um tempo

de processamento médio de 5,16 ms e taxa de processamento de 193,79 fps.

O algoritmo com o segundo menor custo computacional é o método proposto,

o qual apresenta um tempo médio de processamento de 15,18 ms e taxa de

processamento de 65,87 fps, aproximadamente 3 vezes maior que o tempo de

processamento do algoritmo de Gallo, Arteaga e Davis (2008).

Os métodos de Tsang e Pun (2005) e Jain (2009) apresentaram os maiores

custos computacionais, com tempos médios de processamento de 34,62 ms e

66,76 ms, respectivamente, com taxas de processamento de 28,88 fps e 14,98 fps,

respectivamente.

O tempo de processamento do algoritmo de Tsang e Pun (2005) é

aproximadamente 6,7 vezes maior que o do método de Gallo, Arteaga e Davis

Page 70: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 56

(2008) e 2,27 vezes maior que o do método proposto. O tempo de processamento

do algoritmo de Jain (2009) é quase 13 vezes maior que o do algoritmo de Gallo,

Arteaga e Davis (2008) e 4,4 vezes maior que o do algoritmo proposto.

Com base nos dados mostrados na tabela, percebe-se que os únicos métodos que

podem ser considerados sistemas em tempo real são os métodos proposto e de Gallo,

visto que ambos apresentam taxas de processamento maiores que 30 fps.

Os outros dois métodos, de Tsang e de Jain, apresentam taxas de processamento

menores do que 30 fps, logo não podem ser considerados sistemas em tempo real.

5.6.2 Invariância à Rotação para o Gesto de Apontamento

O reconhecimento do gesto de apontamento para cada um dos quatro métodos

é mostrado nas Figuras 5.6 até 5.9 sob diferentes ângulos de rotação da mão em

relação à câmera. Um marcador verde em forma de cruz indica a localização da

ponta do dedo reconhecida.

Quando o marcador se localiza sobre a ponta do dedo indicador, o método está

conseguindo rastreá-la corretamente; quando o marcador se encontra em outro ponto

da imagem que não a ponta do dedo indicador, então o método não está conseguindo

rastreá-la corretamente.

Foi produzido um vídeo em que a mão, com o dedo indicador erguido (gesto de

apontamento), assume todos os ângulos de rotação de�nidos para a avaliação dos

métodos. Esse mesmo vídeo foi utilizado nos métodos para �ns de avaliação, exceto

para o método de Gallo.

Devido á sua concepção, o método de Gallo não consegue rastrear a ponta do

dedo, somente a mão aberta. Desta forma, outro vídeo foi produzido, com a mão

aberta em vez da mão com o indicador erguido, a �m de avaliá-lo no quesito de

Invariância à Rotação. Este outro vídeo foi produzido nas mesmas condições de

iluminação e no mesmo local do primeiro vídeo.

O reconhecimento do gesto de apontamento para o método proposto é mostrado

na Figura 5.6. Percebe-se pelas imagens que, independente do ângulo de rotação

da mão em relação à câmera, o método consegue localizar a ponta do dedo da mão

do usuário (em todas as imagens, o marcador aparece na ponta do dedo do usuário).

Isso se deve ao fato da escolha dos pontos críticos do contorno como descritores da

mão, visto que são descritores invariantes à rotação.

Page 71: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 57

(a) (b)

(c) (d)

(e) (f)

(g) (h)

Figura 5.6: rastreamento da ponta do dedo realizado pelo método proposto em diferentes

ângulos de rotação da mão com relação à horizontal, (a) 90◦; (b) 45◦; (c) 0◦;(d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦.

O reconhecimento do gesto de apontamento para o método de Gallo é mostrado

na Figura 5.7. Percebe-se que o rastreamento da mão é realizado corretamente

quando a mão se encontra conforme mostrado nas Figuras 5.7(a), 5.7(b) e 5.7(c),

ou seja, nessas situações o marcador verde se encontra na ponta dos dedos. Porém,

quando a mão se encontra nas demais posições, como mostrado nas Figuras 5.7(d)

a 5.7(h), o marcador já não se encontra sobre a região da mão, de forma que nessas

posições o método não consegue manter o rastreamento da mão.

Como visto nas Figuras 5.7(g) e 5.7(h), o método de Gallo não consegue

rastrear a mão do usuário quando este utiliza sua mão direita. Isso se deve ao fato

do método realizar uma busca nos vetores de gradiente da direita para a esquerda,

impossibilitando seu uso com a mão direita.

O reconhecimento do gesto de apontamento para o método de Tsang é mostrado

Page 72: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 58

(a) (b)

(c) (d)

(e) (f)

(g) (h)

Figura 5.7: rastreamento da ponta do dedo realizado pelo método de Gallo em diferentes

ângulos de rotação da mão com relação à horizontal, (a) 90◦; (b) 45◦; (c) 0◦;(d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦.

na Figura 5.8. O rastreamento da ponta do dedo ocorre corretamente quando a mão

se encontra apontando para cima conforme mostrado nas Figuras 5.8(a), 5.8(b),

e 5.8(h), visto que o marcador nessa Figuras se encontra sobre a ponta do dedo

indicador.

Quando a mão apresenta uma inclinação perto de 180◦, Figuras 5.8(c) e 5.8(g),

o marcador já começa a se afastar da ponta do dedo, ao passo que, quando a mão se

encontra apontando para baixo, como visto nas Figuras 5.8(d), 5.8(e) e 5.8(f), o

rastreamento da ponta do dedo é completamente perdido, com o marcador sumindo

da imagem.

Isso se deve ao fato do algoritmo procurar, na sua janela de busca, o ponto mais

acima que faz parte da pele, tornando-o ine�caz para o rastreamento da ponta do

dedo em diferentes ângulos de rotação da mão.

O reconhecimento do gesto de apontamento para o método de Jain é mostrado

Page 73: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 59

(a) (b)

(c) (d)

(e) (f)

(g) (h)

Figura 5.8: rastreamento da ponta do dedo realizado pelo método Tsang em diferentes

ângulos de rotação da mão com relação à horizontal, (a) 90◦; (b) 45◦; (c) 0◦;(d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦.

na Figura 5.9. A ponta do dedo é rastreada corretamente quando a mão apresenta

todos os ângulos de inclinação de�nidos, como visto nas Figuras 5.9(a) a 5.9(h),

como evidenciado pelo fato do marcador estar localizado sobre a ponta do dedo

indicador em todas as Figuras. Isto se deve ao fato do método de Jain realizar uma

busca na faixa de -180◦ a 180◦ para localizar a ponta do dedo.

5.6.3 Robustez à Presença de Regiões com Cor Próxima à da Pele

Para a avaliação da Robustez à Presença de Regiões com Cor Próxima à da Pele

foram produzidos dois vídeos: o primeiro com a mão fazendo o gesto de apontamento

e com um objeto de cor próxima à da pele de área pequena; o segundo com a mão

fazendo o gesto de apontamento e com um objeto de área grande. Esses mesmos

vídeos foram utilizados nos métodos para �ns de avaliação, exceto para o método

Page 74: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 60

(a) (b)

(c) (d)

(e) (f)

(g) (h)

Figura 5.9: rastreamento da ponta do dedo realizado pelo método de Jain em diferentes

ângulos de rotação da mão com relação à horizontal, (a) 90◦; (b) 45◦; (c) 0◦;(d) 315◦; (e) 270◦; (f) 225◦; (g) 180◦; e (h) 135◦.

de Gallo.

Para o método de Gallo foram produzidos dois outros vídeos, em que o gesto

de apontamento é realizado com a mão aberta e os dedos juntos. Estes dois outros

vídeos foram produzidos nas mesmas condições de iluminação e no mesmo local dos

dois primeiros vídeos.

O reconhecimento do gesto de apontamento para cada um dos quatro métodos

é mostrado na Figura 5.10 com a presença de uma região de cor próxima à da pele

com área pequena. Um marcador verde em forma de cruz indica a localização da

ponta do dedo reconhecida.

Os métodos proposto e de Tsang conseguem rastrear a ponta do dedo

corretamente, mesmo quando há uma região com área pequena na imagem de mesma

cor que a da pele e, dessa forma, segmentada também como pele, como pode ser

Page 75: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 61

(a) (b)

(c) (d)

Figura 5.10: rastreamento da ponta do dedo do usuário quando da presença de uma região

de área pequena no fundo de cor próxima à da pele, (a) método proposto; (b)

método de Gallo; (c) método de Tsang; e (d) método de Jain.

visto nas Figuras 5.10(a) e 5.10(c), nas quais o marcador verde em forma de cruz

aparece sobre a ponta do dedo apontado. Portanto, esses dois métodos são robustos

à presença de tais tipos de regiões na imagem.

Os métodos de Gallo e de Jain não conseguem rastrear corretamente a ponta do

dedo quando da presença dessas regiões, como pode ser vista nas Figuras 5.10(b)

e 5.10(d). O ponto rastreado encontra-se em outro ponto da imagem, diferente da

ponta do dedo do usuário. Isto pode ser atestado olhando-se a posição do marcador

de cor verde em forma de cruz nas duas Figuras.

O método proposto consegue rastrear a ponta do dedo nessa condição devido ao

fato de procurar a ponta do dedo sobre o contorno da maior região segmentada na

imagem. Já o método de Tsang consegue rastrear a ponta do dedo nessa condição

por procurar a ponta do dedo em uma região em torno da última posição detectada.

Os métodos de Gallo e de Jain varrem toda a imagem de modo a encontrarem

a ponta do dedo, fazendo com que �quem sujeitos a erros de detecção em caso de

presença de outros objetos segmentados como pele.

Page 76: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 62

5.6.4 Robustez à Oclusão com Objetos de Cor Próxima à da Pele

O reconhecimento do gesto de apontamento para cada um dos quatro métodos

estudados é mostrado na Figura 5.11 numa situação em que a mão do usuário entra

em oclusão com uma região do fundo da imagem que apresenta uma cor próxima

à da pele. Um marcador verde em forma de cruz indica a localização da ponta do

dedo reconhecida.

Para a realização desta avaliação foi produzido um vídeo com a mão fazendo

o gesto de apontamento e com um objeto de cor próxima à da pele ocluso com a

mão. Este vídeo foi utilizado com os métodos para �ns de avaliação, exceto para o

método de Gallo.

Para o método de Gallo foi produzido outro vídeo, em que o gesto de

apontamento é realizado com a mão aberta e os dedos juntos. Este outro vídeo

foi produzido nas mesmas condições de iluminação e no mesmo local do primeiro

vídeo.

(a) (b)

(c) (d)

Figura 5.11: rastreamento da ponta do dedo do usuário quando da oclusão da mão com

uma região no fundo da imagem de cor próxima à cor da pele, (a) método

proposto; (b) método de Gallo; (c) método de Tsang; e (d) método de Jain.

Percebe-se pelas imagens na Figura 5.11 que nenhum dos quatro métodos

testados consegue manter o rastreamento correto da ponta do dedo quando da

ocorrência de oclusão com uma região no fundo na imagem de cor próxima à da

Page 77: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.6. Resultados das Formas de Avaliação 63

pele, como pode ser percebido pela posição do marcador verde nas Figuras 5.11(a)

a 5.11(d), em que o marcador se encontra afastado da ponta do dedo indicador.

5.6.5 Avaliação da Comparação dos Métodos

Quanto ao quesito custo computacional, com base nos experimentos realizados,

os melhores sistemas foram os métodos proposto e o método de Gallo, que

apresentam tempos de processamento de 15,18 ms e 5,16 ms, respectivamente, com

taxas de processamento de 65,87 fps e 193,79 fps, respectivamente. Os piores sistema

são os métodos de Tsang e de Jain, que apresentam tempos de processamento de

34,62 ms e 66,76 ms, respectivamente, com taxas de processamento de 28,88 fps e

14,98 fps, respectivamente.

Quanto ao quesito invariância à rotação da mão para o gesto de apontamento,

os melhores sistemas são o método proposto e o método de Jain, que conseguem

manter o rastreamento correto da ponta do dedo para diferentes ângulos de rotação

da mão. Os piores sistemas foram o método de Gallo e o método de Tsang, que

conseguem manter o rastreamento correto da ponta do dedo ou da mão apenas para

certos ângulos de rotação da mão.

Quanto ao quesito robustez à presença de regiões no fundo da imagem com cor

próxima à cor da pele, os melhores sistemas foram o método proposto e o método

de Tsang, que conseguem rastrear corretamente a ponta do dedo mesmo quando há

uma região no fundo da imagem com cor próxima à cor da pele. Os piores sistemas

são os métodos de Gallo e Jain, que não conseguem rastrear corretamente o dedo

ou a mão nesta situação.

Quanto ao quesito robustez à oclusão com regiões no fundo da imagem com cor

próxima à cor da pele, nenhum dos quatro métodos estudados consegue rastrear

corretamente o dedo ou a mão quando há uma região de no fundo da imagem com

cor próxima à cor da pele oclusa com a mão.

Os resultados obtidos na elaboração desta dissertação são resumidos na Tabela

5.5, a qual mostra cada um dos métodos em função dos critérios de avaliação

utilizados. Os métodos que cumprem os requisitos de cada critério de avaliação

são marcados com "X"na Tabela.

Page 78: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.7. Limitações do Método Proposto 64

Método Método Método Método

proposto de Gallo de Tsang de Jain

Custo Computacional X X

Invariância à Rotação X X

Robustez a Regiões de Cor da Pele X X

Robustez à Oclusão com Cor da Pele

Tabela 5.5: resumo dos resultados obtidos.

5.7 Limitações do Método Proposto

Uma limitação apresentada pelo método proposto é a sua não robustez à variação

do ângulo de rotação da mão com a horizontal para os gestos de Zoom In, Zoom

Out, Rotação Horária e Rotação Anti-Horária.

(a) (b)

Figura 5.12: limitação quanto à variação do ângulo de rotação da mão: (a) gesto de Zoom;

(b) gesto de Rotação.

Para o reconhecimento correto dos gestos de Zoom In e Zoom Out, é necessário

que a reta formada pelas pontas dos dois dedos tenha um ângulo de 85◦ a 95◦ com

a horizontal, com visto na Figura 5.12(a). Caso a mão do usuário gire de forma

que esta reta �que com um ângulo entre 40◦ e 50◦ ou entre 130◦ e 140◦, o gesto

reconhecido passa a ser de Rotação Horária, como visto na Figura 5.12(b), ou de

Rotação Anti-Horária, respectivamente.

Desta forma, o reconhecimento dos gestos de Zoom In e Zoom Out não é

invariante à rotação da mão do usuário, visto que a rotação da mão pode acarretar

em erros no reconhecimento destes gestos. O mesmo é válido para o reconhecimento

dos gestos de Rotação Horária e Rotação Anti-Horária.

Page 79: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

5.8. Aplicações Práticas do Método Proposto 65

5.8 Aplicações Práticas do Método Proposto

Um exemplo de aplicação prática do método proposto é a sua utilização para

controlar o programa Google Earth. As Figuras 5.13(a) e 5.13(b) mostram o usuário

realizando os gestos de Apontamento e Zoom Out para executar ações no programa,

respectivamente. Um vídeo demonstrando esta aplicação do método proposto pode

ser encontrado no endereço eletrônico <http://gihm.info/index.php?limitstart=5>,

na seção seção "Browsing Google Earth with Dinamic Hand Gestures".

É importante notar que a versão do método proposto utilizada para a realização

deste vídeo é uma versão antiga. Desta forma, os gestos utilizados para a realização

das ações de Zoom In, Zoom Out, Rotação Horária e Rotação Anti-Horária são

diferentes dos gestos apresentados nesta dissertação.

(a) (b)

Figura 5.13: exemplo de aplicação prática do método proposto para controle do aplicativo

Google Earth através de: (a) gesto de apontamento; (b) gesto de Zoom Out.

Page 80: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Capítulo 6Conclusões, Contribuições e

Trabalhos Futuros

Esta dissertação descreve um sistema de Visão Computacional de rastreamento

da mão humana com a utilização da câmera como dispositivo sensor para

interação com dispositivos portáteis. O sistema proposto é simulado utilizando

a ferramenta Simulink e implementado em C ANSI utilizando-se de algoritmos de

Visão Computacional e de um conjunto de regras para a realização da etapa de

reconhecimento.

As taxas de reconhecimento pelo método proposto para cada um dos gestos

suportados é calculada, bem como a quantidade de gestos reconhecidos por este

é contrastada com a quantidade de gestos reconhecidos por outros três métodos

descritos na literatura: o sistema proposto por Gallo, Arteaga e Davis (2008), o

sistema proposto por Tsang e Pun (2005) e o sistema proposto por Jain (2009).

Todos os gestos suportados pelo método proposto apresentam taxas de

reconhecimento maiores do que 90% de acerto, com uma taxa média de

reconhecimento de 94,4% de acerto. Estas taxas de acerto possibilitam a utilização

do método proposto como forma de interação com dispositivos portáteis.

O método proposto consegue reconhecer seis gestos diferentes, ao passo que os

três métodos descritos na literatura conseguem reconhecer apenas um gesto. Isto

torna o método proposto mais versátil que os outros três, visto que pode, desta

forma, acionar seis ações diferentes para o controle do dispositivo portátil, enquanto

os outros métodos só podem executar uma ação, a ação de apontamento.

66

Page 81: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

67

O sistema proposto é também comparado com estes três outros sistemas

descritos na literatura utilizando quatros métricas de avaliação: custo

computacional, invariância à rotação da mão para o gesto de apontamento, robustez

à presença de regiões no fundo da imagem com cor próxima à cor da pele e robustez

à oclusão com regiões no fundo da imagem com cor próxima à cor da pele.

Com base nos resultados obtidos, o melhor sistema de interação dentre os

sistemas estudados é o sistema proposto. Este sistema apresenta o segundo menor

custo computacional, além de ser o melhor ou um dos melhores sistemas nos critérios

de avaliação Invariância à Rotação e Robustez á Presença de Regiões com Cor

Próxima à da Pele.

O método de Gallo apresentou o menor custo computacional, porém, em nenhum

dos outros três critérios de avaliação, foi um dos melhores sistemas.

Os métodos de Tsang e Jain apresentaram os maiores custos computacionais e

conseguem reconhecer apenas um gesto. Além disso, o método de Tsang, apesar de

possuir robustez à presença de regiões no fundo da imagem com cor próxima á cor

da pele, não apresenta invariância à rotação da mão para o gesto de apontamento.

Por outro lado, o método de Jain apresenta invariância à rotação da mão, porém

não possui robustez à presença de regiões com cor próxima à da pele.

O método proposto, porém, apresenta uma limitação quanto ao reconhecimento

dos gestos de Zoom In, Zoom Out, Rotação Horária e Rotação Anti-Horária. O

reconhecimento destes gestos não é invariante à rotação da mão do usuário. O

reconhecimento do gesto de Arrastar, no entanto, é invariante a essa rotação.

A principal contribuição desta dissertação é o desenvolvimento de um sistema

de interação para dispositivos portáteis com baixo custo computacional, com

capacidade de reconhecer vários gestos diferentes (seis, no total), invariante à rotação

da mão e robusto à presença de regiões na imagem com cor próxima á da pele.

Outra contribuição é a implementação de um ambiente de simulação na

plataforma Simulink, ambiente este que pode ser facilmente adaptado para a

simulação de outros sistemas de Visão Computacional.

A partir desta dissertação, outros trabalhos futuros podem ser desenvolvidos:

I estudar e desenvolver outra forma de segmentação da pele que não classi�que

regiões de cor próxima à da pele como pele, evitando assim o problema da

Page 82: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

68

oclusão da mão com objetos de cor próxima à da pele;

I embarcar o sistema proposto em outros dispositivos portáteis e avaliar seu

desempenho nessas outras plataformas;

I adicionar o reconhecimento de novos gestos ao sistema;

I avaliar melhor a robustez dos métodos quanto à dimensão de regiões com cor

próxima à cor da pele.

I avaliar outros algoritmos de pré-processamento, tais como �ltros da mediana

e �ltros gaussianos.

I desenvolver regra de reconhecimento dos gestos de Zoom In, Zoom Out,

Rotação Horária e Rotação Anti-horária invariante à rotação da mão do

usuário.

Page 83: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Referências Bibliográ�cas

BALDAUF, M.; FROHLICH, P. Supporting hand gesture manipulation of

projected content with mobile phones. Mobile Interaction with the real World 2009,

2009.

BANARD, M.; HANNUKSELA, J.; SANGI, P.; HEIKKILä, J. A vision based

motion interface for mobile phones. The 5th Internacional Conference on Computer

Vision Systems, 2007.

BEBIS, G.; HARRIS, F.; EROL, A.; YI, B. Development of a Nationally Competitive

Program in Computer Vision Technologies for E�ective Human-Computer

Interaction in Virtual Environments. Nov 2002. Space Grant, EPSCoR Annual

Meeting.

BLOGGERS. A Evolução dos Celulares. Maio 2009. Disponível em:

<http://www.blogers.com.br/a-evolucao-dos-celulares>. Acesso em: 2 dez.

2010.

BOVIK, A. C. Handbook of Image & Video Processing. 2nd. ed. UK: Elsevier

Academic Press, 2005.

CAMPO, C.; NAVARRETE, C.; GARCIA-RUBIO, C. Performance evaluation of

j2me and symbian applications in smart camera phones. International Conference

on Consumer Electronics, p. 1�2, 2007.

CAPIN, T.; HARO, A.; WILKINSON, S. Camera-based virtual environment

interaction on mobile devices. In: Lecture Notes in Computer Science. Germany:

Springer�Verlag, 2006. p. 765�773.

69

Page 84: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Referências Bibliográ�cas 70

CHAI, D.; NGAN, K. N. Face segmentation using skin-color map in videophone

applications. IEEE Transactions on Circuits and Systems for Video Technology,

v. 9, n. 4, June 1999.

CHEN, W.-C. et al. E�cient extraction of robust image features on mobile devices.

Proceedings of the 2007 6th IEEE and ACM International Symposium on Mixed

and Augmented Reality (ISMAR), p. 1�2, 2007.

CHO, Y. C.; JEON, J. W. Current software platforms on mobile phone.

International Conference on Control, Automation and Systems, p. 1862�1867, 2007.

COSTA, L. da F.; CESAR, J. R. M. Shape Analysis and Classi�cation: Theory and

Practice. Boca Ranton: CRC Press, 2001.

DAVIES, E. R. Machine Vision: Theory, Algorithms, Practicalities. 3rd. ed. San

Francisco, CA, USA: Morgan Kaufmann Publishers Inc, 2004.

DORFMULLER-ULHAAS, K.; SCHMALSTIEG, D. Finger tracking for interaction

in augmented environments. Proceedings of the IEEE and ACM International

Symposium on Augmented Reality, p. 55�64, Out 2001.

FOLEY, J. D.; DAM, A. van; FEINER, S. K.; HUGHES, J. F. Computer Graphics:

Principles and Practice. 2nd. ed. EUA: Addison-Wesley Professional, 1995.

FORSYTH, D. A.; PONCE, J. Computer Vision: A Modern Approach. 1st. ed.

New Jersey, USA: Prentice Hall, 2003.

FREEMAN, W. T.; WEISSMAN, C. D. Television control by hand gestures. IEEE

International Workshop on Automatic Face and Gesture Recognition, 1995.

GALLO, O.; ARTEAGA, S. M.; DAVIS, J. E. A camera-based pointing interface

for mobile devices. 15th IEEE International Conference on Image Processing, p.

1420�1423, 2008.

GONZALEZ, R. C.; WOODS, R. E. Digital Image Processing. 3th. ed. EUA:

Pearson Prentice Hall, 2008.

HANNUKSELA, J.; SANGI, P.; HEIKKILA, J. A vision-based approach for

controlling user interfaces of mobile devices. IEEE Conference on Computer Vision

and Pattern Recognition, Workshop on Vision for Human-Computer Interaction,

2005.

Page 85: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Referências Bibliográ�cas 71

HANNUKSELA, J.; SANGI, P.; HEIKKILA, J. Motion-based �nger tracking for

user interaction with mobile devices. Proceedings of the 4th European Conference

on Visual Media Production, 2007.

HANNUKSELA, J.; SANGI, P.; HEIKKILA, J. Vision-based motion estimation

for interaction with mobile devices. Computer Vision and Image Understanding,

v. 108, p. 188�195, 2007.

HEIDJEN, F. van der. Image Based Measurement Systems: Object Recognition and

Parameter Estimation. England: John Wiley & Sons Inc., 1995.

HERRERA, L.; MINK, B.; SUKITTANON, S. Integrated personal mobile devices

to wireless weather sensing network. Proceedings of IEEE SoutheastCon 2010,

n. 18, p. 5�8, March 2010.

HIGASHIMO, W. A. Estudo Comparativo de Algoritmos de Subtração de Fundo

em Sequência de Imagens. Dissertação (Mestrado) � Universidade Estadual de

Campinas, Campinas, São Paulo, Mar 2006.

HINCKLEY, K.; PIERCE, J.; SINCLAIR, M.; HORVITZ, E. Sensing techniques

for mobile interaction. ACM UIST 2000 Symposium on User Interface Software

and Technology, p. 91�100, 2000.

HIROBE, Y.; NIIKURA, T. Vision-based input interface for mobile devices with

high-speed �ngertip tracking. ACM Symposium on User Interface Software and

Technology, Outubro 2009.

INTEL. Open Source Computer Vision Library. 2000. Estados Unidos.

JAIMES, A.; SEBE, N. Multimodal human-computer interaction: A survey.

Computer Vision and Image Understanding, v. 108, n. 1�2, p. 116�134, 2007.

JAIN, G. Vision-based hand gesture pose estimation for mobile devices. University

of Toronto, 2009.

JOHNSTON, E.; ROSENFELD, A. Angle detection on digital curves. IEEE Trans,

p. 875�878, 1973.

KALAGASIDS, A. S. The intenational building physics toolbox in simulink. Energy

and Buildings, v. 39, p. 665�674, 2007.

Page 86: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Referências Bibliográ�cas 72

KOIKE, H.; SATO, Y.; KOBAYASHI, Y. Integrating paper and digital information

on enhanceddesk: A method for real time �nger tracking on an augmented desk

system. ACM Transactions on Computer-Human Interaction, v. 8, n. 4, p. 307�322,

2001.

KRAISS, K.-F. Advanced Man-Machine Interaction: Fundamentals and

Implementation. 1st. ed. Berlin; New York: Springer, 2006.

LAPTEV, I.; LINDENBERG, T. Tracking of multi-state hand models using

particle �ltering and a hierarchy of multi-scale image features. In: Proceedings of

the Third International Conference on Scale-Space and Morphology in Computer

Vision. UK: Springer-Verlag, 2001. p. 63�74.

LEAL, F. R. M. et al. Estudo comparativo de formas de representação da mão

humana para o reconhecimento de gestos baseado em redes neurais arti�ciais,

momentos de hu e atributos de forma. XVIII Seminário de Computação

(SEMINCO), v. 18, 2009.

MALIK, S. Real-time Hand Tracking and Finger Tracking for Interaction. Toronto,

Dezembro 2003.

MASOOD, A.; SARFRAZ, M. Corner detection by sliding rectangles along planar

curves. Computers Graphic-UK, v. 31, p. 440�448, 2007.

MOESLUND, T.; GRANUM, E. A survey of computer vision based human motion

capture. Computer Vision and Image Understanding, v. 81, n. 3, p. 231�268, 2001.

NIXON, M.; AGUADO, A. Feature Extraction & Image Processing. 1st. ed. UK:

Elsevier, 2002.

PAULA, J. Iális Cavalcante de. Abordagem Wavelet para Detecção de Cantos em

Formas. Dissertação (Mestrado em Engenharia de Teleinformática) � Universidade

Federal do Ceará, Fortaleza, 2007.

PERIN, F. C. Introdução à Simulação de Sistemas. 1◦. ed. Campinas, SP: Editora

da UNICAMP, 1995.

PITAS, I. Digital Image Processing Algorithms and Applications. 1st. ed. New

York, NY, USA: John Wiley & Sons, Inc., 2000. ISBN 0471377392.

Page 87: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Referências Bibliográ�cas 73

REIS, I. M. de S.; TAVARES, J. M. R. S. Interface para Processamento de Imagem

em C++ utilizando Visual Studio .NET 2005. Porto, Oct 2007.

SCOTT, M. R. et al. Visiads: A vision-based advertising platform for camera

phones. IEEE International Conference on Multimedia and Expo, p. 1837�1838,

2009.

SHANNON, R. E. Systems Simulation: the Art and the Science. Englewood Cli�s,

NJ: Prentice Hall, 1975.

STEFANOV, N.; GALATA, A.; HUBBOLD, R. Real-time hand tracking with

variable-length markov models of behaviour. Proceedings of the 2005 IEEE

Computer Society Conference on Computer Vision and Pattern Recognition, v. 03,

p. 73, 2005.

TAYLOR, C. J. Macroscopic tra�c �ow modelling and ramp metering control

using matlab simulink. Environmental Modelling and Software, v. 19, p. 975�988,

2004.

TEKALP, A. M. Digital Video Processing. Upper Saddle River, NJ: Prentice Hall,

1995.

TRUYENQUE, M. A. Q. Uma Aplicação de Visão Computacional que Utiliza

Gestos da Mão para Interagir com o Computador. Dissertação (Mestrado) �

Pontifícia Universidade católica do Rio de Janeiro, Rio de Janeiro, Mar 2005.

TSANG, W.-W. M.; PUN, K.-P. A �nger-tracking virtual mouse realized in an

embedded system. Proceedings of International Symposium on Intelligent Signal

Processing and Communication Systems, p. 781�784, 2005.

WAGNER, D. et al. Real-time detection and tracking for augmented reality on

mobile phones. IEEE Transactions on Visualization and Computer Graphics, v. 16,

n. 3, p. 355�368, 2010.

WANG, J.; ZHAI, S.; CANNY, J. Camera phone based motion sensing: Interaction

techniques, applications and performance study. ACM UIST 2006, Outubro 2006.

WANG, R. Y.; POPOVIC, J. Real-time hand-tracking with a color glove.

International Conference on Computer Graphics and Interactive Techniques, n. 63,

2009.

Page 88: Utilizando Visão Arti cial para Aplicações Embarcadas · seis possíveis gestos: apontamento, zoom in , zoom out , rotação horária, rotação anti-horária e arrastar. Inicialmente

Referências Bibliográ�cas 74

ZHANG, Z.; WU, Y.; SHAN, Y.; SHAFER, S. Visual panel: Virtual mouse,

keyboard and 3d controller with an ordinary piece of paper.Workshop on Perceptive

User Interfaces (PUI 2001), Novembro 2001.