michel alain quintana truyenque uma aplicação de visão...

100
Michel Alain Quintana Truyenque Uma Aplicação de Visão Computacional que Utiliza Gestos da Mão para Interagir com o Computador Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do título de Mestre pelo Programa de Pós- Graduação em Informática da PUC-Rio. Orientador: Prof. Marcelo Gattass Rio de Janeiro, março de 2005.

Upload: others

Post on 03-Nov-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Michel Alain Quintana Truyenque

Uma Aplicação de Visão Computacional que Utiliza

Gestos da Mão para Interagir com o Computador

Dissertação de Mestrado

Dissertação apresentada como requisito parcial para obtenção do título de Mestre pelo Programa de Pós-Graduação em Informática da PUC-Rio.

Orientador: Prof. Marcelo Gattass

Rio de Janeiro, março de 2005.

Page 2: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Michel Alain Quintana Truyenque

Uma Aplicação de Visão Computacional que Utiliza

Gestos da Mão para Interagir com o Computador

Dissertação apresentada como requisito parcial para obtenção do título de Mestre pelo Programa de Pós-Graduação em Informática da PUC-Rio. Aprovada pela Comissão Examinadora abaixo assinada.

Prof. Marcelo Gattass Orientador

Departamento de Informática -- PUC-Rio

Prof. Paulo Cezar Pinto Carvalho Instituto de Matemática Pura e Aplicada -- IMPA

Prof. Raul Queiroz Feitosa Departamento de Engenharia Elétrica -- PUC-Rio

Prof. Anselmo Antunes Montenegro Instituto de Matemática Pura e Aplicada -- IMPA

Prof. Waldemar Celes Filho Departamento de Informática -- PUC-Rio

Prof. José Eugênio Leal Coordenador(a) Setorial do Centro Técnico Científico - PUC-Rio

Rio de Janeiro, 28 de março de 2005

Page 3: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador.

Michel Alain Quintana Truyenque

Graduo-se bacharel em Engenharia de Sistemas na UNSA (Universidad Nacional de San Agustín) em 2002. Ingressou no programa de mestrado do Departamento de Informática em 2003 e desde então participa em projetos de pesquisa no Tecgraf/PUC-Rio (Laboratório de Computação Gráfica) nas áreas de Visão Computacional e Visualização Científica. Atualmente participa do desenvolvimento de um sistema de visualização 3D de dados sísmicos realizado em parceria com a gerência de Tecnologia em Geofísica da Petrobras.

Ficha Catalográfica

Quintana Truyenque, Michel Alain

Uma Aplicação de Visão Computacional que Utiliza Gestos da Mão para Interagir como o Computador / Michel Alain Quintana Truyenque; orientador: Marcelo Gattass --Rio de Janeiro: PUC, Departamento de Informática, 2005.

Informação técnica.

1. Dissertação (mestrado) - Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática.

Incluí referências bibliográficas.

1. Informática - Teses. 2. Visão Computacional. 3. Interação Humano-Computador (HCI). 4. Gestos da Mão. 5. Reconhecimento de gestos. 6. Interação Baseada em Visão. I. Gattass Marcelo. II. Pontifícia Universidade Católica do Rio de Janeiro. III. Departamento de Informática. IV. Título.

Page 4: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Com amor, a minha Família.

Page 5: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Agradecimentos

Em primeiro lugar a Deus pelo caminho que me foi reservado até aqui.

A minha família, com todo amor, aos meus pais Yanina e Santos pelos

ensinamentos, apoio constante e amor de sempre. As minhas irmãs Shirley e

Karla pelo carinho, apoio constante e alegria de sempre.

A meu orientador Professor Marcelo Gattass pela confiança em mim depositada,

pelos ensinamentos e a oportunidade de trabalhar a seu lado. Um

agradecimento especial pelo apoio e compreensão nos momentos difíceis

durante o curso do mestrado.

Ao Anselmo pelos conselhos e ajuda constante durante o desenvolvimento deste

trabalho.

Aos meus professores do departamento, pelos ensinamentos e o aprendizado

aqui desenvolvido.

A Maria Clara pela luz no final do túnel, pelo companheirismo, compreensão e

amor recebido.

A karla, amiga constante, mesmo de longe pelo carinho e apoio.

Aos meus colegas da pós-graduação, principalmente aos meus colegas do

mestrado pelo companheirismo, os momentos de diversão e por ter me recebido

sempre de braços abertos. Aos funcionários do departamento, pelo carinho e

atenção.

Aos colegas do Tecgraf pelo ótimo ambiente de trabalho, aos membros do grupo

de visualização de dados sísmicos pela experiência aprendida e pela

oportunidade de trabalharmos juntos.

A PUC-Rio, Tecgraf e a Capes pelo apoio financeiro sem o qual este trabalho

não poderia ter sido desenvolvido.

Page 6: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Resumo

Quintana Truyenque, Michel Alain. Uma Aplicação de Visão Computacional que Utiliza Gestos da Mão para interagir com o Computador. Rio de Janeiro, 2005. 100p. Dissertação de Mestrado - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro.

A Visão Computacional pode ser utilizada para capturar gestos e criar

dispositivos de interação com computadores mais intuitivos e rápidos. Os

dispositivos comerciais atuais de interação baseados em gestos utilizam

equipamentos caros (dispositivos de seguimento, luvas, câmeras especiais,

etc.) e ambientes especiais que dificultam a difusão para o público em geral.

Este trabalho apresenta um estudo sobre a viabilidade de utilizarmos

câmeras Web como dispositivo de interação baseado em gestos da Mão. Em

nosso estudo consideramos que a mão humana está limpa, isto é, sem

nenhum dispositivo (mecânico, magnético ou óptico) colocado nela.

Consideramos ainda que o ambiente onde ocorre a interação tem as

características de um ambiente de trabalho normal, ou seja, sem luzes ou

panos de fundo especiais.

Para avaliar a viabilidade desenvolvemos alguns protótipos de

dispositivos de interação. Neles os gestos da mão e as posições dos dedos

são utilizados para simular algumas funções presentes em mouses e teclados,

tais como selecionar estados e objetos e definir direções e posições. Com

base nestes protótipos apresentamos algumas conclusões e sugestões para

trabalhos futuros.

Palavras-chave Visão Computacional; Interação Humano-Computador (HCI); Gestos da

Mão; Reconhecimento de gestos; Interação Baseada em Visão.

Page 7: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Abstract

Quintana Truyenque, Michel Alain. A Computer Vision Application for Hand-Gestures Human Computer Interaction. Rio de Janeiro, 2005. 100p. Dissertação de Mestrado - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro.

Computer Vision can be used to capture gestures and create more

intuitive and faster devices to interact with computers. Current commercial

gesture-based interaction devices make use of expensive equipment (tracking

devices, gloves, special cameras, etc.) and special environments that make the

dissemination of such devices to the general public difficult.

This work presents a study on the feasibility of using Web cameras as

interaction devices based on hand-gestures. In our study, we consider that the

human hand is clean, that is, it has no (mechanical, magnetic or optical)

device. We also consider that the environment where the interaction takes

place has the characteristics of a normal working place, that is, without special

lights or backgrounds.

In order to evaluate the feasibility, we have developed some prototypes

of interaction devices. In these prototypes, hand gestures and the position of

fingers were used to simulate some mouse and keyboard functions, such as

selecting states and objects, and defining directions and positions. Based on

these prototypes, we present some conclusions and suggestions for future

works.

Keywords Computer Vision; Human-Computer Interaction (HCI); Hand Gestures;

Gestures Recognition; Vision Based Interaction.

Page 8: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Sumário

1 Introdução 16

1.1. Motivação 16

1.2. Objetivos 17

1.3. Estrutura do Documento 18

2 Interfaces Baseadas em Visão 20

2.1. Conceitos Básicos 20

2.2. Requisitos Funcionais 22

2.3. Requisitos Não-Funcionais 23

2.4. Visão Computacional na Interação Humano-Computador em Tempo Real 24

2.4.1. Vantagens dos Sistemas Baseados em Visão 24

2.4.2. Desafios 25

2.5. Trabalhos Relacionados 26

2.5.1. Sistemas Baseados no Reconhecimento de Gestos 26

2.5.2. Sistemas Baseados na Detecção dos Dedos 29

2.6. Sistema de Interação Proposto 31

3 Subtração de Fundo 33

3.1. Motivação 33

3.2. Trabalhos Relacionados e Discussão dos Algoritmos de Segmentação de

Fundo 34

3.3. Algoritmos de Subtração de Fundo 37

3.3.1. Modelo de Cor 37

3.3.2. Subtração de Fundo 39

3.3.2.1. Modelagem do Fundo 40

3.3.2.2. Subtração ou Segmentação 42

3.3.2.3. Seleção dos Limiares 47

3.4. Resultados 50

3.5. Conclusões Parciais 53

4 Detecção de Silhueta 55

Page 9: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

4.1. Motivação 55

4.2. Refinamento da Segmentação 56

4.3. Detecção de Bordas 58

4.4. Detecção de Contornos 60

4.5. Seleção da Silhueta da Mão 63

4.6. Considerações Finais do Capítulo 66

5 Reconhecimento 67

5.1. Motivação 67

5.2. Detecção de Feições 69

5.3. Detecção dos Dedos 73

5.4. Reconhecimento de Gestos 75

5.5. Resultados Parciais 77

5.6. Considerações Finais do Capítulo 79

6 Aplicações 80

6.1. Detalhes da Implementação 80

6.2. Controlando o Cursor do Mouse 81

6.3. Controlando um Jogo de Computador 86

6.4. Interação Gestual 89

6.5. Conclusões Parciais 91

7 Conclusões 93

7.1. Trabalhos Futuros 94

Bibliografia 96

Page 10: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Lista de figuras

Figura 1 - Interfaces tradicionais e interfaces digitais. Adaptado de Bérard [1]. 21

Figura 2. Resultados do trabalho de Regh e Kanade [30]. O esqueleto é

sobreposto na imagem original da mão. No lado direito, o modelo 3D é

calculado a partir dos parâmetros encontrados no esqueleto. 27

Figura 3 – Métodos simples para interagir através da Visão apresentados no

trabalho de Freemam [8]. (a) Orientação da mão para dirigir um robô. (b)

Subtração de imagens para inferir direção do movimento. (c) Histogramas

de orientação. 28

Figura 4 – (a) Extração do contorno da mão com o modelo de curva rígida.

Adaptado de Heap [12]. (b) Posturas da mão para controlar funções básicas

de um jogo de computador. Adaptado de Segen [33]. (c) Funções de

Gauss (blobs) para detectar a mão e os dedos. Adaptado de Laptev [22]. 29

Figura 5 – Sistema “FingerMouse”. Adaptado de Queck [29]. 30

Figura 6 – (a) Interação com o computador — posicionar a ponta do dedo num

mesmo lugar por um determinado tempo ocasiona um clique. Adaptado de

Handenberg [11]. (b) Detecção dos dedos no trabalho de Oka [27]. 31

Figura 7 – Detecção do contorno da mão apresentado no trabalho de

MacKormick [26]. A ponta do dedo detectada e utilizada para desenhar. 31

Figura 8 - Resultado dos algoritmos que parcialmente lidam com sombras ;

dificuldade na atribuição do limiar e impossibilidade de isolar as sombras;

morfologia deformada do objeto. 36

Figura 9 - Modelo de cor no espaço tridimensional RGB proposto em [14]. iE

representa o valor de cor esperado do ponto i na imagem de referência, iI

representa a cor na imagem atual. A diferencia entre iI e iE é decomposta

em distorção de brilho ( iα ) e distorção de cor ( iCD ). Adaptada de [14]. 38

Figura 10 - Algoritmo de subtração de fundo baseado na decomposição da

diferencia de cor, em distorção de brilho e distorção de cor. Seguindo a

ordem das operações nos números, mostram-se as etapas de modelagem

e subtração de fundo. A etapa de Modelagem é feita uma vez, enquanto

que a etapa de subtração é feita a cada imagem (frame). 44

Figura 11 - Algoritmo de geração de silhuetas ou de subtração de fundo,

Page 11: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

baseado no ângulo entre dois vetores. 47

Figura 12 - (a) histograma da distorção normalizada de brilho ( ˆ iα )”, e (b)

histograma da distorção normalizada de cor ( ˆ iCD ). Adaptado de [14]. 49

Figura 13 - Resultado da segmentação do algoritmo baseado na medida do

ângulo [3]. O limiar no ângulo foi 17.49θ = o ,mostram-se a segmentação

com as cores originais do objeto e a segmentação binária onde é mais fácil

perceber a morfologia do objeto segmentado. Frame Rate 30 fps. 51

Figura 14 - Resultados do algoritmo baseado na medida da distorção de brilho e

a distorção de cor [14]. Desvio padrão mínimo ( ' 1.0σ = ), distorção mínima

de cor ( ' 0.75CD = ), distorção mínima do brilho ( ' 0.01α = ). Nos limiares de

comparação para a etapa de subtração; limiar 14.1CDτ = para a distorção

de cor, limiar 80.5loτ = − para a distorção do brilho. Frame rate 43.fps. 52

Figura 15 - Teste do algoritmo em [14] aplicando uma janela de 4 pixels. Não

muda muito à morfologia do objeto, mas existe um ganho grande na

velocidade, frame rate na casa dos 60 fps. 53

Figura 16 - Máscaras utilizadas nos filtros morfológicos de Dilatação e Erosão;

vizinhança 4 )( 4N e vizinhança 8 )( 8N . Além da vizinhança definida pela

máscara, mostram-se em preto os pontos que representam o fundo e em

branco os pontos que representam os objetos. 57

Figura 17 - Resultados obtidos da aplicação dos filtros morfológicos. Na

seqüência (a) imagem resultado da segmentação; (b) resultado da

aplicação da Dilatação em (a); e (c) resultado da aplicação da Erosão em

(b). Considera-se (c) como resultado final desta etapa. 58

Figura 18 - Obtenção de contornos a partir da subtração das imagens (b) e (c) da

Figura 17. O objeto “mão” é representado apenas pelo seu contorno, o

mesmo acontece com o ruídos e erros da segmentação. 59

Figura 19 - Alguns resultados da detecção de contornos realizada em diferentes

orientações da mão, (a) presença de ruídos, (b) presença de contornos

internos ou buracos. 60

Figura 20 - Lista de Códigos (Chain Codes). Para cada ponto de referência (em

azul) existem 4 ou 8 direções possíveis que se podem seguir na

representação do contorno. 61

Figura 21 - Passos do algoritmo de percurso de contornos. A cada passo, novos

pontos da silhueta são detectados e alguns pontos “N” são descartados. As

setas curvas indicam o sentido de busca, as setas que apontam para os

Page 12: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

pontos marcados com “X” indicam a direção inicial de busca, as setas que

apontam para os pontos marcados com “P” indicam o próximo ponto. 62

Figura 22 - Pequenos ciclos dentro dos contornos. Estes ciclos representam

problemas para o algoritmo de percurso, pois como é indicado em (b) a

detecção da silhueta pode acabar muito antes de percorrer o contorno

inteiro, o que traz problemas na detecção. 63

Figura 23 - Resultados do processo de detecção da silhueta da mão aplicados à

imagem da Figura 18 em (a), e às imagens da Figura 19 em (b). Em (a) e

(b) são removidos os ruídos e em (b) não é considerada a silhueta interna.

65

Figura 24 - Subamostragem dos pontos na silhueta detectada. A imagem à

direita tem um quinto dos pontos da imagem à esquerda. 66

Figura 25 - Feições consideradas para o reconhecimento dos gestos. As pontas

dos dedos são chamadas de Picos (“P”) e as junções entre eles de Vales

(“V”). 69

Figura 26 - Medida de k-curvatura em cada ponto da silhueta. (a) Para cada

ponto iP é escolhido um ponto subseqüente )( kiP + e outro anterior )( kiP −

que formam dois vetores. A k-curvatura é o ângulo i

α formado por esses

dois vetores e k é um inteiro positivo. (b) O parâmetro k deve ser ajustado

de maneira que as regiões de interesse sejam preferentemente detectadas

durante o cálculo da k-curvatura. 71

Figura 27 - Resultado da aplicação do algoritmo de detecção de feições à

silhueta da mão. As feições são os pontos ressaltados na silhueta. (a)

Mostra duas posturas da mão com os dedos estendidos Os valores

utilizados para o teste foram 21=k e °= 60αT . (b) Mesmo com pequenas

mudanças de escala, aproximando-se a mão da câmera, e mantendo os

mesmos parâmetros que em (a) pode-se ver a detecção das feições. 72

Figura 28 - Resultado do processo de detecção dos dedos da mão. Os pontos

estão ressaltados na silhueta. 73

Figura 29 - Cálculo da direção dos dedos. (a) A direção aproximada de cada um

dos dedos é mostrada como sendo uma linha. (b) A linha que representa a

direção do dedo é a que passa pelo ponto iP e que melhor aproxima os

pontos de referência. Os pontos de referência “x” são os pontos médios de

cada par de pontos que estão ligados por uma linha. O ângulo θ é o valor

que representa a orientação da linha de direção com respeito à horizontal.

Page 13: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

74

Figura 30 - Conjunto predefinido de gestos que são reconhecidos. Os 4 gestos

são divididos em três classes: FECHADO, INDICE e ESTENDIDO.

FECHADO é uma classe de gesto que não apresenta nenhum dedo

estendido. INDICE representa uma classe com dois tipos de gestos:

INDICE_1 (dedo índice estendido) e INDICE_2 (dedo índice e polegar

estendidos). ESTENDIDO é uma classe de gesto que apresenta mais de

dois dedos na mão estendidos. 76

Figura 31 - Autômato Finito Determinista que representa o processo de

inferência dos gestos com base no número de dedos “d” detectados na

silhueta da mão. O único símbolo do vocabulário é “d”, que significa “dedo”.

Os estados de reconhecimento q2, q3 e q4 representam os gestos

INDICE_1, INDICE_2 e ESTENDIDO, respectivamente. 77 Figura 32 - Mecanismo de movimento no cursor. Para cada ponto p1, p2 e p3, a

direção do movimento é dada pelas coordenadas (x,y) do vetor e a

velocidade do movimento é dada pela norma do vetor. Em torno do ponto

de referência O existe uma área de inatividade na qual os pontos que caem

nessa área (p2) não ocasionam nenhum movimento. 82

Figura 33 - Mecanismo de movimento do cursor. O vetor formado entre a

posição do dedo índice e o ponto de referência indica a direção do

movimento. A cada quadro este vetor é somado à última posição do cursor.

83

Figura 34 - Padrão de mudança do evento CLICK. Na nossa aplicação, o

intervalo de tempo foi definido em número de quadros, T=20. Entre os

gestos INDICE_2 pode haver vários gestos INDICE_1. A partir do gesto

corrente (atual) é analisada a seqüência em busca do padrão de mudança

requerido. 83

Figura 35 - Evento ARRASTAR. O evento acontece enquanto o gesto INDICE_1

é mantido. Para validar o evento, o intervalo de tempo em que o gesto

INDICE_1 é mantido deve ser maior do que o t predefinido. Na nossa

aplicação o tempo foi t =T-5. O tempo t está relacionado com o tempo T. 84

Figura 36 - Diagrama de fluxo do controle do cursor do mouse. Os eventos são

validados dependo do gesto que está sendo processado. O evento CLICK é

validado para diferenciar o CLICK do evento MOVIMENTAR. O evento

ARRASTAR é validado para diferenciar se o gesto INDICE_1 indica o

evento ARRASTAR o simplesmente faz parte da seqüência do CLICK. 85

Page 14: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Figura 37 - Gesto ESTENDIDO sendo mapeado para o evento CLICK_DIREITO

do mouse no sistema Windows. Ao gerar o evento no arquivo selecionado,

é mostrado o menu disponível no arquivo. 85

Figura 38 - Gesto INDICE_2 sendo utilizado para movimentar o ponteiro do

mouse. Utilizando o gesto INDICE_2 podem-se selecionar itens do menu. 86

Figura 39 - Gesto INDICE_1 sendo mapeado para o evento ARRASTAR, o qual

é utilizado para desenhar letras no PAINT. 86

Figura 40 - Mecanismo utilizado para calcular a direção do movimento. (a)

Mecanismo utilizado para calcular as direções PARA_FRENTE e

PARA_TRAS. (b) Mecanismo utilizado para calcular as direções DIREITA e

ESQUERDA. O valor utilizado na nossa implementação foi °= 75α . 87

Figura 41 - (a) Geração do evento ATIRAR utilizando o gesto INDICE_1. A

posição e a direção do dedo índice não indicam movimento. (b)

Movimentação do helicóptero utilizando o gesto INDICE_2. A posição e a

direção de dedo indicam os eventos PARA_FRENTE e PARA_DIREITA .

Neste caso não é gerado o evento ATIRAR. 88

Figura 42 - (a) Utilizando o gesto INDICE_1 para gerar o evento ATIRAR e ao

mesmo tempo movimentar o helicóptero. A posição e a direção do dedo

indicam a direção do movimento PARA_TRAS e PARA_ESQUERDA. (b)

Gesto ESTENDIDO sendo utilizado para gerar o evento

SOLTAR_EXPLOSIVO. 89

Figura 43 - Estados da aplicação representados como sendo um autômato finito

de quatro estados. Os estados q2 e q3 geram os eventos AVANÇAR e

RECUAR, respectivamente. 90

Figura 44 - Geração do evento AVANÇAR. A mudança do gesto (a) FECHADO

para o gesto (b) ESTENDIDO gera o evento AVANÇAR, que é refletido na

(c) tela do monitor. 91

Figura 45 - Geração do evento RECUAR. A mudança do gesto (a) FECHADO

para o gesto (b) INIDICE_2 gera o evento RECUAR, que é refletido na (c)

tela do monitor. 91

Page 15: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Lista de tabelas

Tabela 1 - Resultado dos testes feitos para a avaliação do reconhecimento do

número de dedos presente na mão. Para cada número de dedos é

apresentada uma estatística indicando o número e a porcentagem de

acertos e erros ao longo do teste. 78

Tabela 2 - Resultado dos testes feitos para a avaliação do reconhecimento dos

gestos predefinidos. Para cada um dos 4 gestos é apresentada uma

estatística indicando o número e a porcentagem de acertos e erros ao longo

do teste. 79

Tabela 3 - Resultado do teste de reconhecimento dos eventos CLICK e

CLICK_DUPLO. 84

Page 16: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

1 Introdução

Muitos usuários tentam imaginar por que os computadores ainda

permanecem “cegos” apesar do grande avanço no poder de processamento.

Mas como pode-se esperar “inteligência” de máquinas que não estão cientes do

que acontece a seu arredor, se unicamente podem sentir sinais do teclado e

movimentos do mouse?

Recentemente, o preço das câmeras digitais de vídeo tem diminuído

drasticamente. Por menos de 200 reais, cada computador pode ser equipado

com um novo e útil sentido: a visão. Como a Visão Computacional pode ser

utilizada para permitir uma interação mais veloz ou simplesmente mais intuitiva?

Este trabalho tentará responder tais perguntas com um exemplo de dispositivo

de interação baseado em gestos da mão.

1.1. Motivação

Por muito tempo, a pesquisa em Interfaces Humano-Computador (HCI)

tem sido restrita à utilização do monitor, do teclado e do mouse. Recentemente

este paradigma tem mudado. Técnicas como Visão Computacional,

Reconhecimento de Voz e Dispositivos de Rastreamento (Tracking) têm

permitido uma interação mais intuitiva e natural entre homem e máquina. Mesmo

com estas novas tecnologias, existe ainda um enorme abismo entre o mundo

dos humanos e o mundo das máquinas. A maioria dos computadores existentes

não está ciente de nós ou de nossos sentimentos a menos que os expressemos

explicitamente.

Os dispositivos de interação baseados em gestos são tradicionalmente

construídos utilizando diferentes dispositivos de rastreamento (Tracking) óptico,

magnético ou mecânico ligados ao computador e/ou colocados no corpo do

usuário. Muitos desses sistemas utilizam equipamentos sofisticados (dispositivos

de rastreamento, luvas, câmeras especiais, etc.) que os tornam difíceis de serem

comercializados em massa devido ao alto custo. Além disso, muitas vezes,

devido a sua operabilidade, requerem espaços e ambientes especiais.

Page 17: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Introdução 17

Alguns sistemas que não utilizam dispositivos de rastreamento, os

baseados em Visão, utilizam técnicas de reconhecimento de padrões nas

imagens capturadas. Para conseguir isto, os sistemas utilizam algumas

restrições do ambiente, do fundo da cena, da cor dos objetos a serem

reconhecidos, das condições de iluminação e das características das câmeras e

constroem ambientes bem controlados, de maneira a facilitar as fases inicias do

reconhecimento em benefício da operabilidade do sistema. Alguns desses

sistemas são apresentados no Capítulo 2 da presente dissertação.

Uma interação natural entre humanos e computadores não deveria nem

requerer instalações especiais nem envolver qualquer dispositivo (mecânico,

óptico ou magnético) que a pessoa devesse vestir ou manipular. Assim como

temos a habilidade de estarmos cientes do ambiente à nossa volta através de

nossos sentidos, a princípio o computador deveria ser capaz de imitar esta

habilidade usando interfaces que emulem os sentidos, o que o tornaria mais fácil

e mais intuitivo de usar. Conseqüentemente, novas linguagens e interfaces não

convencionais precisam ser construídas e devem ser capazes de traduzir para o

computador os gestos, sentimentos, expressões, linguagem e demais meios de

comunicação utilizados na interação natural entre humanos.

1.2. Objetivos

Este trabalho estará focado na interação humano-computador baseada em

gestos de uma mão limpa. “Limpa” neste contexto significa que nenhum

dispositivo (mecânico, magnético ou óptico) é colocado na mão para poder

interagir como o computador.

Além disso, o foco também estará centrado em diminuir ou eliminar as

restrições especiais impostas para a interação. Ambientes especiais e com

condições de iluminação controladas, cor de fundo preestabelecida e cores

específicas dos objetos, a princípio, são descartados. Em termos de custo são

levados em conta dispositivos (câmeras) de prateleira, facilmente accessíveis.

Considerando as características que devem ser levadas em conta, o

objetivo principal deste trabalho é mostrar que através do uso de diferentes

tecnologias de Visão Computacional combinado com a utilização de dispositivos

de baixo custo como simples câmeras Web, é possível construir uma Interface

Humano-Computador sem considerar grandes restrições de ambiente,

Page 18: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Introdução 18

iluminação, cor dos objetos, etc. de forma que a interação com o computador

seja feita da maneira mais natural possível. Para isto construímos uma interface

baseada em gestos da mão na qual os gestos e as posições dos dedos são

diretamente utilizados para interagir com as aplicações.

O escopo desta pesquisa estará limitado ao reconhecimento de alguns

gestos da mão (identificação de qual gesto dentre os gestos predefinidos está

sendo mostrado pelo usuário) e à detecção e rastreamento dos dedos

(localização da posição de certos dedos em imagens de vídeo). Às vezes são

realizados alguns ajustes baseados nas características dos ambientes, mas tais

ajustes são pequenos e feitos numa fase de instalação de forma a não

comprometer a usabilidade do sistema. Para avaliar o desempenho do sistema

de interação baseado em gestos da mão e por sua vez avaliar a Interface

Humano-Computador sem restrições significativas, desenvolvemos algumas

aplicações para demonstrar o sistema em funcionamento.

1.3. Estrutura do Documento

O capítulo 2 está dividido em duas partes. Na primeira parte é feita uma

revisão de alguns conceitos básicos, importantes para o melhor entendimento e

contextualização do mecanismo de interação (interface) proposto. São definidos

alguns requisitos funcionais e não-funcionais dos sistemas de interação em

tempo real. Finalmente são expostas algumas vantagens dos sistemas de

interação baseados em Visão que procuram justificar a sua utilização. Na

segunda parte é apresentado um conjunto de trabalhos de pesquisa

relacionados com o tema de estudo deste trabalho.

No capítulo 3 é apresentada a técnica de Subtração de Fundo, utilizada

para segmentar o objeto de interesse do fundo da cena. Nesse capitulo é feito

um estudo e avaliação dos diferentes algoritmos propostos para este tema. O

objetivo principal, além de facilitar a detecção do objeto, é diminuir ou eliminar as

restrições do ambiente, de iluminação, de cor, etc. presentes em outros

sistemas. Julgamos este capitulo importante, em linhas gerais, por ser a base

sobre a qual foram implementadas as idéias desenvolvidas nos capítulos

subseqüentes.

No capítulo 4 é apresentado um mecanismo para a detecção da silhueta

da mão. Nesse capítulo, em uma primeira etapa é feita uma melhoria da

segmentação, e depois é apresentada uma abordagem para a obtenção das

Page 19: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Introdução 19

silhuetas. Os algoritmos implementados nesta etapa objetivam detectar, coletar e

armazenar os pontos da imagem que conformam a silhueta da mão.

No capítulo 5 é apresentado o processo de reconhecimento de gestos da

mão. Além dos gestos, alguns parâmetros, tais como a posição e orientação dos

dedos, também são calculados. O processo de reconhecimento é feito tendo

como referência o número de dedos detectados na mão e um conjunto

predefinido de gestos a serem reconhecidos.

No capítulo 6 são apresentadas algumas aplicações da Interação Humano-

Computador utilizando gestos da mão. Os gestos da mão e a posição dos dedos

são diretamente utilizados para interagir com as aplicações.

Finalmente no capítulo 7 temos as considerações finais sobre o trabalho

de pesquisa desenvolvido e os trabalhos futuros que podem resultar a partir

deste.

Page 20: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

2 Interfaces Baseadas em Visão

Neste capítulo, numa primeira parte, será feita a revisão de alguns

conceitos básicos, importantes para explicar e contextualizar as interfaces

baseadas em Visão. São discutidos alguns requisitos funcionais e não-funcionais

dos sistemas de Visão em tempo real. Também é apresentada uma justificativa

de por que consideramos a Visão Computacional importante na interação

baseada em gestos. Na segunda parte deste capítulo são apresentados alguns

trabalhos relacionados com o tema de pesquisa aqui exposto.

2.1. Conceitos Básicos

Muitos dos sistemas de interação baseados em gestos tradicionalmente

foram implementados utilizando diversos dispositivos de rastreamento (Tracking)

ligados ao computador e ao corpo dos usuários. Os sistemas de interação

baseados em Visão não utilizam dispositivos de rastreamento explícitos. Eles

utilizam apenas câmeras para a captura das imagens, e técnicas de

processamento de imagens e reconhecimento de padrões para o rastreamento

dos objetos [11]. Não existem restrições para as características das câmeras .

Conforme o fazem algumas aplicações [27], podem ser utilizadas câmeras

infravermelhas, sensíveis à temperatura, baseadas em distância, etc. Desde que

a câmera seja a única fonte de captura de informação, dizemos que o

mecanismo de interação é baseado em Visão Computacional.

No contexto da interação humano-computador o termo “tempo real” é

freqüentemente substituído pelo termo “fortemente acoplado” [7]. Fitzmaurice [7]

descreve essa expressão como: “Os sistemas fortemente acoplados possuem

uma perfeita sincronização entre suas representações física e virtual, os objetos

físicos são detectados continuamente em tempo real”. O termo “perfeitamente

sincronizado” também requer de uma definição. Em aplicações reais sempre há

uma latência (delay) entre a modificação do mundo físico e a adaptação da

representação virtual no computador. Só o retardo não caracteriza os sistemas

Page 21: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 21

em tempo real. Perfeitamente sincronizado, portanto, significa uma sincronização

sem retardo perceptível pelo usuário.

O que tem mudando nestes últimos 20 anos na maneira como os usuários

interagem com o computador? A resposta é simples: a interação tem mudado do

teclado para o mouse, o teclado é utilizado em muitos casos unicamente para a

digitação de texto. Hoje é difícil de pensar em um computador sem mouse, pois

esse dispositivo permite uma interação mais intuitiva com objetos gráficos como

botões, janelas, menus, barras de rolagem, etc., os quais antigamente

precisavam do uso do teclado. Assim como o teclado foi substituído pelo mouse,

recentemente e com ajuda da Visão Computacional têm aparecido novas

interfaces com a finalidade de descartar os dispositivos físicos de interação. No

trabalho de Bérard [1] é feita uma classificação que ajuda a entender melhor a

natureza dessas interfaces.

Figura 1 - Interfaces tradicionais e interfaces digitais. Adaptado de Bérard [1].

Nas interfaces tradicionais de interação, a presença de um dispositivo

físico é importante para traduzir os comandos do usuário para o computador. Se

o usuário manipula o dispositivo (por exemplo, muda sua posição) o computador

recebe o sinal da mudança e manipula o objeto lógico ligado com esse

dispositivo. Como acontece quando o mouse muda de posição, o computador

mede essa mudança e modifica a posição do ponteiro. Joystick, Space Ball,

Cyber Gloves, etc. são considerados no escopo desse tipo de interface,

chamados também por Bérard [1] de Graspable Interfaces, ou interfaces que o

usuário precisa agarrar para poder interagir. Nessas interfaces, dependendo do

dispositivo, podem ser integradas diferentes funcionalidades além dos cliques do

mouse (p. ex., posicionamento no espaço e rotações).

Page 22: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 22

Ao invés de usar os dispositivos físicos como intermediários, as interfaces

digitais eliminam a presença desses dispositivos e permitem uma interação mais

direta utilizando partes do corpo para manipular os objetos lógicos no

computador. Por exemplo, os dedos da mão poderiam ser utilizados para

movimentar o ponteiro do mouse. Uma das interfaces digitais mais conhecidas

são as telas sensíveis ao tato.

2.2. Requisitos Funcionais

Os requisitos funcionais podem ser definidos como sendo um conjunto de

serviços que o sistema deve fornecer. Em sistemas de software existem

diferentes níveis de abstração em que esses serviços podem ser desenvolvidos.

Aqui, serão considerados apenas os mais básicos. Bérard [1] identifica três

serviços que os sistemas de interação humano-computador baseados em Visão

devem fornecer: detecção, identificação e rastreamento.

A detecção determina a presença ou ausência de uma determinada classe

de objetos na imagem. Tais classes de objetos poderiam ser partes do corpo,

mãos, braços, etc. Tendo como referência a imagem inteira, o processo de

detecção deve ser capaz de detectar na imagem a classe de objeto que se está

procurando. Uma forma de facilitar o processo de detecção é limitar o número de

objetos que podem estar presentes na cena em um determinado momento. As

técnicas de detecção mais conhecidas são as baseadas em cor ou movimento.

O processo de detecção deste trabalho será apresentado nos capítulos 3 e 4.

A identificação determina qual objeto, dentre um conjunto conhecido de

objetos, está presente na cena. Perante a presença de objetos compostos, por

exemplo uma mão com os dedos, a identificação deve permitir determinar partes

desses objetos, tais como os dedos. Outros exemplos são a identificação de

símbolos escritos [35], de palavras na linguagem de signos [36] ou de palavras

para o reconhecimento de voz. No nosso caso, o processo de detecção encontra

os dedos presentes na mão. Para obter mais informações do gesto, o processo

de identificação está orientado a identificar os dedos polegar e índice. Esse

processo será apresentado no capítulo 5.

Em muitos casos, os objetos de interesse não permanecem no mesmo

lugar ao longo do tempo, o processo de rastreamento utiliza as informações dos

dois processos anteriores para manter o foco nos objetos de interesse. No caso

Page 23: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 23

deste trabalho o rastreamento se refere à captura das posições de interesse nos

dedos.

2.3. Requisitos Não-Funcionais

Muitos dos sistemas de interação podem cumprir com todos os requisitos

funcionais, mas demorar horas para fazer isto. Portanto, é indispensável definir

alguns requisitos não-funcionais que estabeleçam a qualidade mínima com que

os serviços devem ser implementados. Os requisitos não-funcionais

considerados são latência, resolução e estabilidade.

A latência é o tempo transcorrido entre a ação do usuário e a resposta do

sistema. A latência é uma característica inerente a todo sistema, não existem

sistemas sem latência. Frente a este problema, poderíamos perguntar: qual é a

latência máxima que um sistema de tempo real pode ter? Essa pergunta é difícil

de se responder já que é difícil determinar um valor aceitável, pois os valores

dependem da tarefa que o sistema deve desempenhar. Seguindo a definição de

interação em tempo real, tentamos conseguir uma interação sem uma latência

perceptível para o usuário. Mas qual é o máximo valor de uma latência não

perceptível? No trabalho de Handenberg [11] é discutido um experimento que

visa encontrar um valor máximo para essa latência, o qual é determinado como

sendo próximo a 50 ms ou 20Hz.

Nos sistemas de interação em tempo real, a natureza contínua do mundo

físico, onde são feitos os gestos, deve ser capturada e representada no mundo

discreto ou mundo perceptível do sistema (Resolução Temporal). A ilusão desse

mundo em movimento, como no cinema, pode ser criada capturando imagens a

uma taxa maior que 20Hz, valor diretamente relacionado com a latência do

sistema. A resolução espacial (número de pixels nas imagens) deve permitir uma

representação adequada do ambiente capturado. Idealmente, esse número

deveria ser igual ao número de pixels existente nos monitores, mas os sistemas

de captura (câmeras) não possuem ainda essa resolução e estão limitados a

resoluções menores.

A estabilidade dos sistemas refere-se às flutuações significativas nos

valores capturados (gestos ou posições dos dedos, neste caso). Por exemplo,

um sistema pode ser considerado estável se ante um padrão (ex. ponta do dedo)

imóvel os valores capturados não mudam significativamente. As possíveis

Page 24: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 24

causas de instabilidade são principalmente as flutuações nas fontes de

iluminação e o ruído inerente aos dispositivos de captura.

2.4. Visão Computacional na Interação Humano-Computador em Tempo Real

No mercado existem diferentes dispositivos que permitem aos usuários

usar as mãos para interagir com o computador. Alguns exemplos são teclado,

mouse, TrackBall, Track-Pad, Joystick e controles remotos. Outros, mais

sofisticados, incluem Cyber-Gloves, 3D-mice (ex. Labtec SpaceBall) e

dispositivos de rastreamento magnético (ex. Polhemus Isotrack) ou mecânico.

Muitos desses dispositivos são mais baratos, confiáveis e fáceis de fazê-los

funcionar do que os atuais sistemas baseados em Visão Computacional. A

evolução dos sistemas de Visão Computacional, entretanto, promete resultados

melhores num futuro próximo.

2.4.1. Vantagens dos Sistemas Baseados em Visão

Primeiramente, a Visão Computacional é uma tecnologia com um grande

potencial para integração em micro-circuitos digitais. Portanto a produção em

massa é muito mais fácil de se realizar do que outros dispositivos com partes

mecânicas, como os Cyber Gloves, por exemplo. Considerando o crescimento

na velocidade de processamento existente, os custos de processamento das

imagens poderão ser descartados.

Outra vantagem, muito importante, é a versatilidade. Enquanto outros

dispositivos tais como mouse, Joystick e Track-Pad são limitados a funções

específicas, a Visão Computacional oferece uma ampla gama de possíveis

aplicações, não somente na área da interação humano-computador, mas

também em áreas tais como a identificação de usuários e vídeo-conferências.

Essas aplicações tornam interessante a inclusão de câmeras em produtos tais

como monitores, notebooks, telefones celulares, televisores, projetores e

videogames (ex. EyeToy).

Na nossa opinião, a principal vantagem da Visão Computacional é a não-

intrusividade. Assim como os microfones ou câmeras, os dispositivos baseados

em Visão são abertos e não precisam do contato físico com o usuário para

interagir. Os usuários podem interagir com o computador livremente, sem cabos

Page 25: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 25

e sem manipular dispositivos intermediários. Por esta razão, procuraremos

desenvolver algoritmos de Visão Computacional que não requeiram

equipamentos colados ao corpo (tais como marcadores ou luvas coloridas).

Esses marcadores poderiam simplificar vários problemas dos algoritmos de

Visão, mas destroem a principal vantagem da Visão Computacional que é a não-

intrusividade.

Idealmente, a parte técnica do sistema de Visão deveria estar escondida

do usuário, o qual, com gestos e movimentos do corpo, poderia se comunicar

com o computador. Em conjunção com o reconhecimento de voz, pode-se

facilmente imaginar um computador que permita uma interação muito mais

natural e intuitiva do que os atuais dispositivos. Claramente este objetivo é mais

fácil de se imaginar do que de se fazer. Apesar do avanço das pesquisas

recentes em Visão Computacional, ainda não dispomos de produtos comercias

relativamente bem sucedidos.

2.4.2. Desafios

Muitos dos problemas da Visão Computacional, como por exemplo o de

detectar uma mão em movimento sobre um fundo relativamente constante, que

parecem simples à primeira vista, são na realidade produto de um complexo

processo realizado em nosso cérebro. Reproduzir estes processos no

computador é o desafio da Visão Computacional.

Um dos grandes problemas é a quantidade de informação de entrada

disponível. A retina tem aproximadamente 125 milhões de células receptivas

para capturar informações do ambiente [11]. Mesmo se as câmeras (resolução

máxima de captura em tempo real das WebCam : 480x680) tivessem a mesma

capacidade de captura de informação, os computadores não possuem o enorme

poder de processamento em paralelo que possui o nosso cérebro. Portanto,

somente alguns processos básicos são implementados na maioria dos sistemas

em tempo real baseados em Visão.

Outro problema da Visão é a baixa confiabilidade e a instabilidade,

ocasionadas, entre outras coisas, por mudanças de iluminação, oclusão,

movimento e ruído nos equipamentos de captura. O sistema de visão humano

integra várias características que são observadas em paralelo (ex. cor,

movimento, contornos) junto ao seu conhecimento do mundo para lidar com

esses problemas. Conseguir isto num computador não é uma tarefa fácil.

Page 26: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 26

Nossas capacidades são o fruto da integração de nosso conhecimento do

mundo (nossa experiência) ao longo de nossas vidas e é importante considerar

isto nos algoritmos de Visão se quisermos resultados mais robustos.

Por estas razões é difícil construir um sistema de Visão Computacional de

propósito geral que seja capaz de trabalhar com toda classe de objetos e em

todos os ambientes. É preciso restringir o campo de ação e construir sistemas

mais específicos.

2.5. Trabalhos Relacionados

Nos últimos anos, muitos trabalhos de pesquisa relacionados à interação

humano-computador baseada em Visão têm sido desenvolvidos. No que diz

respeito à interação utilizando a mão, muitos dos sistemas desenvolvidos têm se

dedicado ao reconhecimento de gestos e posturas, o que significa que a

interação com o computador é baseada no reconhecimento de diferentes

posturas e gestos da mão. Uma interessante diversidade de abordagens tem

sido apresentada, mas não existe uma que seja amplamente utilizada para o

reconhecimento de gestos.

Por outro lado os sistemas que, além de reconhecer alguns gestos

básicos, interagem utilizando os dedos da mão têm captado pouco interesse.

Não obstante, os sistemas existentes são de grande interesse para este trabalho

porque na maioria dos casos se depararam com os mesmos problemas de

segmentação e rastreamento que encontramos em nossa pesquisa.

2.5.1. Sistemas Baseados no Reconhecimento de Gestos

Segundo Pavlovic [28], os sistemas de reconhecimento de gestos da mão

podem ser classificados em dois grupos: os baseados no modelo 3D e os

baseados na aparência da imagem 2D.

Nos sistemas baseados no modelo 3D, o modelo da mão é definido

através de um conjunto de parâmetros que descrevem todos os graus de

liberdade da mão. Geralmente, o mecanismo consiste em procurar um conjunto

de parâmetros que melhor ajustem o modelo 3D e sua projeção 2D na imagem.

Alguns trabalhos que aplicam esta técnica são os de Kuck e Huang [18], Lee e

Kunii [24], Regh e Kanade [30], Stenger [37] e Wu [46].

Page 27: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 27

Figura 2. Resultados do trabalho de Regh e Kanade [30]. O esqueleto é sobreposto na

imagem original da mão. No lado direito, o modelo 3D é calculado a partir dos

parâmetros encontrados no esqueleto.

Nos sistemas baseados na aparência da imagem 2D, os parâmetros são

extraídos diretamente das imagens. Parâmetros como a posição dos dedos na

imagem, contornos e linhas, cor da mão, momentos e transformadas de espaço,

entre muitos outros, são explorados.

No trabalho de Freeman [8] são descritas algumas técnicas simples para a

interação através de visão. Um desses exemplos mostra como a orientação da

mão, que é o conjunto de pixels diferentes do fundo, é utilizada para dirigir um

robô (Figura 3.a); outro exemplo mostra como a diferença de imagens pode ser

utilizada para inferir direção e movimento (Figura 3.b); e outro exemplo mostra

como os chamados histogramas de orientação dos pixels são utilizados para

reconhecer diferentes posturas da mão (Figura 3.c). No trabalho de Staner [36] é

utilizada uma segmentação simples da cor da mão sobre fundo preto e são

empregados modelos de Markov para reconhecer algumas posturas da mão. No

trabalho de Sato [31] os parâmetros de uma câmera infravermelha são ajustados

para capturar a mão; depois, na imagem gerada, são reconhecidas algumas

posturas simples da mão.

Page 28: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 28

Figura 3 – Métodos simples para interagir através da Visão apresentados no trabalho de

Freemam [8]. (a) Orientação da mão para dirigir um robô. (b) Subtração de imagens para

inferir direção do movimento. (c) Histogramas de orientação.

Outros sistemas utilizam feições locais das mãos e dos dedos para

reconhecer gestos mais complexos na interação. Existem diferentes abordagens,

com destaque para as baseadas no contorno e na silhueta. Tais sistemas

utilizam diversos algoritmos de Visão para conseguir extrair a silhueta da mão.

Nos trabalhos de Heap [12] e Hall [10], a silhueta da mão é modelada como

sendo uma curva rígida e o reconhecimento é feito através de medidas de

correlação (semelhança). No trabalho de Segen [33] é utilizado um ambiente

controlado para a extração da silhueta; depois, utilizando algumas heurísticas,

são reconhecidas algumas posturas da mão. Essas posturas são utilizadas para

controlar um jogo e para navegar sobre um terreno (Figura 4.b).

Outras abordagens para o reconhecimento de gestos constituem os

sistemas que utilizam imagens de treinamento para modelar os gestos a serem

reconhecidos. O trabalho de Laptev [22] utiliza funções gaussianas (blobs) para

representar o conjunto de imagens de treinamento que contém as posturas a

serem reconhecidas (Figura 4.c). Dentro deste grupo podemos considerar

também os trabalhos baseados em HMM (Hidden Markov Models), tais como os

apresentados por Lee e Kim [23], Schlenzing [32], Vogler e Metaxas [42] e

Wilson e Bobick [44]. No trabalho apresentado por Viveck [41] é utilizada a

transformada de Fourier-Mellin junto com Redes Neurais para o reconhecimento

de posturas da mão.

Page 29: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 29

Figura 4 – (a) Extração do contorno da mão com o modelo de curva rígida. Adaptado de

Heap [12]. (b) Posturas da mão para controlar funções básicas de um jogo de

computador. Adaptado de Segen [33]. (c) Funções de Gauss (blobs) para detectar a

mão e os dedos. Adaptado de Laptev [22].

2.5.2. Sistemas Baseados na Detecção dos Dedos

Tradicionalmente, os sistemas baseados na detecção dos dedos são

utilizados para construir interfaces que simulem funções básicas do mouse ou do

teclado. Muitos desses sistemas podem ser considerados como sendo uma

especialização dos sistemas de reconhecimento de gestos, pois a princípio eles

utilizam as técnicas descritas na seção anterior, mas a detecção dos dedos é

importante para a interação. Muitos desses sistemas, para poder reconhecer os

dedos, utilizam diversas abordagens que exploram características da mão e os

dedos, assim como das imagens.

No trabalho de Queck [29] é apresentado um sistema chamado

“FingerMouse”, que explora a cor da mão para segmentá-la do fundo; a ponta do

dedo é sempre o ponto com maior coordenada y. Esse sistema é utilizado para

movimentar o ponteiro do mouse com um dedo, e o clique é feito com uma tecla

no teclado (Figura 5). Outro trabalho que explora a cor da mão é o de Kurata

[21], que utiliza o dedo da mão para selecionar menus na imagem. No trabalho

de Kulessa [19] é mostrado que é muito difícil construir um modelo de cor da

mão que seja invariante a flutuações de iluminação. Por isso, os sistemas que

Page 30: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 30

utilizam unicamente informações da cor da mão não têm bom desempenho e

são muito limitados.

Figura 5 – Sistema “FingerMouse”. Adaptado de Queck [29].

Muitos dos sistemas de detecção tentam explorar diferentes características

da forma da mão e dos dedos. Para isto, estes utilizam medidas de correlação

entre um padrão a ser reconhecido e os dados de entrada da imagem. Na

maioria dos casos as imagens de entrada são imagens pré-processadas e a

medida de similaridade (correlação) é feita nessas imagens. Devido à procura de

um padrão específico na imagem, o número de gestos e a variação destes são

muito limitados. No trabalho de Freeman [9] é apresentado um sistema de

correlação que detecta uma mão estendida e fechada e utiliza a posição do dedo

índice para interagir com um programa que controla algumas funções básicas de

uma televisão. A medida de correlação é feita numa área definida da imagem e a

segmentação da mão é feita por cor. Crowley [4] desenvolve um sistema, com

um plano de fundo especial, que explora as características da forma do dedo na

correlação, permitindo desenhar linhas utilizando a ponta do dedo. No trabalho

de Handenberg [11] é apresentado um sistema que utiliza a diferença de

imagens na segmentação e então, na correlação, utiliza círculos para procurar a

posição dos dedos. Alguns gestos como o clique padrão e o clique direito do

mouse são implementados (Figura 6.a).

Outros sistemas facilitam a etapa de segmentação utilizando câmeras

infravermelhas, o que permite uma segmentação mais acurada das mãos. No

trabalho de Ukita [39] é mostrado um sistema que utiliza o dedo para desenhar

linhas em que os dedos são modelados como sendo semicírculos, os quais são

utilizados no processo de correlação. No trabalho de Oka [27] as pontas dos

dedos são modeladas como sendo círculos no processo de correlação. O

movimento dos dedos detectados é utilizado para reconhecer algumas figuras

geométricas, as quais são utilizadas como comandos na interação (Figura 6.b).

Page 31: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 31

Figura 6 – (a) Interação com o computador — posicionar a ponta do dedo num mesmo

lugar por um determinado tempo ocasiona um clique. Adaptado de Handenberg [11]. (b)

Detecção dos dedos no trabalho de Oka [27].

Em vez de procurar diretamente pelas características dos dedos, alguns

trabalhos procuram pelo contorno ou silhueta da mão e depois, na silhueta,

procuram os pontos que representam as pontas dos dedos. Normalmente a

modelagem do contorno é feita através de curvas B-Splines ou contornos ativos

(Snakes) e o seguimento dos pontos de controle é feito através de algoritmos

como Kalman ou Condensation. Nos trabalhos de Hall [10] e MacKormick [26]

são utilizadas essas técnicas para a detecção e o seguimento dos contornos,

onde depois são detectados os dedos.

Figura 7 – Detecção do contorno da mão apresentado no trabalho de MacKormick [26]. A

ponta do dedo detectada e utilizada para desenhar.

2.6. Sistema de Interação Proposto

Muitos dos sistemas aqui expostos utilizam os gestos reconhecidos e os

dedos detectados em aplicações e ambientes específicos. Muitas vezes esses

ambientes e aplicações condicionam os processos de detecção dos dedos e

reconhecimento de gestos. Diferentemente desses sistemas, no presente

trabalho é proposto um sistema base para o reconhecimento de alguns gestos

simples da mão que possam ser utilizados para reconhecer gestos mais

complexos em ambientes de trabalho convencionais. Este sistema se apresenta

Page 32: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Interfaces Baseadas em Visão 32

como sendo uma camada de baixo nível que garante o reconhecimento de um

conjunto de gestos básicos para outras aplicações, as quais podem utilizar esses

gestos de acordo as suas necessidades.

O sistema proposto neste trabalho possui as características dos sistemas

baseados na detecção dos dedos. O objetivo principal é a detecção e o

rastreamento dos dedos da mão. Com base nos dedos detectados e em suas

informações (número, posição, direção, etc.) é reconhecido também um conjunto

básico de gestos. Assim, na interação, tanto os gestos reconhecidos quanto as

informações dos dedos são utilizados.

Para poder detectar os dedos da mão é empregada uma abordagem

baseada na silhueta. Nesta abordagem é necessária a extração da silhueta da

mão para detectar os dedos. A detecção da silhueta é baseada numa

abordagem de segmentação que considera as características de cor e da

iluminação do ambiente onde a mão está se movimentando. Nessa etapa de

segmentação é introduzida uma abordagem de segmentação de fundo que, além

de segmentar o objeto de interesse, procura diminuir as restrições do ambiente e

a influência da iluminação na modelagem do fundo. Ao contrário de muitos

trabalhos que se concentram exclusivamente nas características dos objetos

para a sua segmentação e reconhecimento, neste trabalho são exploradas em

conjunto as características do objeto e as características do ambiente.

No próximo capítulo é apresentada a etapa de segmentação desse

sistema, na qual uma abordagem de subtração do fundo é utilizada para

segmentar a mão do fundo da cena.

Page 33: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

3 Subtração de Fundo

No presente capítulo apresenta-se o estudo feito sobre diferentes

algoritmos para a detecção de objetos em movimento em uma cena com fundo

estático. Tipicamente, estas cenas estão sob a influencia de mudanças na

iluminação e presença de sombras. O objetivo principal neste capítulo é detectar

e segmentar uma mão em movimento a partir de uma seqüência de imagens em

cor, capturadas por uma câmera. Para isso, foram estudados diversos algoritmos

de subtração de fundo, com a finalidade de achar abordagens capazes de lidar

com problemas de mudanças na iluminação e presença de sombras. Na seção

seguinte apresenta-se, a motivação para o estudo destes algoritmos e a

aplicação específica para a qual foram utilizados no contexto da pesquisa desta

dissertação. Em seguida uma discussão dos algoritmos estudados, trabalhos

relacionados e qual abordagem de segmentação de fundo foi finalmente

utilizada. Posteriormente uma apresentação dos algoritmos escolhidos e

algumas discussões das suas etapas. Em seguida, os resultados obtidos e

finalmente algumas conclusões parciais.

3.1. Motivação

A capacidade de extrair objetos em movimento a partir de seqüências de

vídeo é um problema crucial e fundamental de muitos sistemas de visão

computacional. Essa capacidade permite focar a atenção dos sistemas, nos

objetos que estão em movimento e que, possivelmente são peça crucial na

execução da tarefa para a qual foram programados. Tipicamente, uma

abordagem usual para a segmentação de objetos em movimento do fundo da

cena é uma técnica chamada como subtração de fundo. A idéia de subtração de

fundo é subtrair a imagem atual de uma imagem de referencia, a qual é

adquirida e modelada a partir de um fundo estático durante um período de

tempo; chamado também como período de treinamento.

Como às vezes não existe um conhecimento antecipado do fundo, a chave

para qualquer algoritmo de subtração é como modelá-lo e representá-lo. Uma

Page 34: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 34

abordagem simples e às vezes muito razoável é: calcular uma imagem de

referencia do fundo como sendo a media de um conjunto de imagens.

Posteriormente, quando um objeto entra na cena, este causa uma divergência

com a imagem de referencia. Assim o objeto pode ser facilmente detectado,

como sendo mudanças significativas ao nível de pixel.

Embora este planejamento seja teoricamente aceitável, existe um conjunto

de problemas que fazem desta, uma tarefa difícil de se fazer. Qualquer mudança

física da iluminação muda à modelagem do fundo, afetando indefinidamente o

desempenho dos algoritmos. Por tanto, muitos dos algoritmos são susceptíveis

às mudanças globais e locais da iluminação, tais como as sombras e flutuações

nas fontes de iluminação.

No contexto da pesquisa desta dissertação, o algoritmo de segmentação

de fundo foi utilizado para segmentar o objeto “MÃO” do fundo onde ela está se

movimentando. Este passo é muito importante, porque permite isolar a mão; que

é o foco e objeto principal de análise nas etapas posteriores.

3.2. Trabalhos Relacionados e Discussão dos Algoritmos de Segmentação de Fundo

Desde que a utilidade da subtração de fundo foi reconhecida como um

método para detectar objetos em movimento, apareceram na literatura diversos

modelos e abordagens para a implementação destes algoritmos. Alguns

algoritmos; exploram a diferencia estatística e ou probabilística de cor entre a

imagem atual e a imagem de referencia, a qual é treinada durante um período de

tempo ou um número determinado de imagens [14] [15] [6] [13] [2] [3]; análise de

movimento dos objetos [17]; as características das imagens em estéreo [45];

transformações logarítmicas [46]; aprendizado por markov e bayesiansas [20] e

abordagens híbridas [17] [46] [5].

Embora, muitos dos algoritmos tenham desempenhos razoáveis,

mudanças na iluminação e presença de sombras afetam consideravelmente

seus desempenhos; sendo poucos os que razoavelmente conseguem lidar com

estes problemas. Até aqui, é importante considerar o fator de robustez e

eficiência na detecção do objeto em movimento, como sendo uma característica

que permita um grau de detecção alto e uma segmentação que represente

realmente a morfologia do objeto. No contexto desta pesquisa o objeto foi a

“MÃO”, e as medições foram feitas baseados na qualidade de detecção e

segmentação da morfologia da mão.

Page 35: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 35

O maior problema para os algoritmos de subtração de fundo é lidar com a

presença de sombras e mudanças da iluminação na cena. Já que o movimento

dos objetos gera também sombras em movimento, às vezes estas sombras são

detectadas como sendo parte do objeto afetando assim, a eficiência do

algoritmo. Algoritmos susceptíveis a sombras [46] [2] são aqueles que têm seu

desempenho altamente prejudicado pela presença de sombras; as sombras

foram detectadas como sendo parte do objeto e não se teve uma alternativa para

poder lidar com elas; irremediavelmente as sombras são detectadas como sendo

o objeto e a morfologia deste é totalmente deformada na segmentação. Uma

alternativa para estes algoritmos é testar eles em planos de imagens que não

contenham as sombras do objeto, assim sem as sombras o seu desempenho

melhora; como no nosso trabalho não são descartadas as sombras, estes

algoritmos foram descartados.

Algoritmos que parcialmente lidam com sombras [6] [46], são aqueles que

também foram susceptíveis as sombras, mas tornaram se instáveis ante a

presença delas. Muitos pontos da sombra do objeto foram considerados como

sendo o objeto; ajustando o mecanismo do limiar destes algoritmos (valores de

threshold) pode se melhorar esta situação, no entanto torna-se muito difícil e não

existe um padrão de atribuição de valores do limiar, que não faça difícil a tarefa

de excluir os pontos da sombra na segmentação (Figura 8). Existem situações

para as quais é possível isolar as sombras, só que as pequenas mudanças na

iluminação e os valores do limiar que não são susceptíveis a estas mudanças

fazem que não se tenha um desempenho aceitável nestes algoritmos. Uma

alternativa para estes algoritmos, além da não presença de sombras, é testar

eles em fundos de cor com alto contraste e ou menos sensíveis a mudanças na

iluminação (Superfícies que absorvem iluminação). Estas características

certamente limitam o acionar destes algoritmos, deformando significativamente a

morfologia da mão durante a segmentação.

Page 36: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 36

Figura 8 - Resultado dos algoritmos que parcialmente lidam com sombras; dificuldade na

atribuição do limiar e impossibilidade de isolar as sombras; morfologia deformada do

objeto.

A presença de sombras e mudanças nas condições de iluminação

sugerem abordagens diferentes na modelagem dos algoritmos anteriores. É

importante poder ter uma diferenciação clara do que realmente é sombra e o que

é uma parte da cena com baixa iluminação devido à oclusão do objeto. Para

poder detectar as sombras é importante saber que durante o movimento do

objeto na cena, existem alguns pixels aonde a iluminação diminui devido à

sombra; eles não mudam sua cor, mas sim experimentam uma baixa iluminação;

por tanto é indispensável considerar modelos que permitam saber que houve

apenas mudança na iluminação e não na cor original do fragmento da imagem,

em resumo modelos mais sensíveis à mudanças da iluminação do que à

mudanças na cor do fragmento na imagem. Dentro do estudo houve dois

algoritmos que conseguiram modelar esta característica; o algoritmo

apresentado em [14] [15] modela esta característica considerando e calculando

a distorção do brilho e a distorção de cor de cada ponto no espaço RGB; o

algoritmo de segmentação de fundo apresentado em [3] modela também esta

características medindo o ângulo formado entre dois vetores que representam

pontos no espaço RGB.

Cada um destes algoritmos teve um desempenho aceitável para os

requerimentos do presente estudo, se bem não se teve uma segmentação

perfeita do objeto, eles tiveram, dentro do intervalo de erro, um desempenho

aceitável. Na seção seguinte serão apresentados estes algoritmos com maiores

detalhes e também algumas justificativas indicando qual deles foi finalmente

escolhido.

Page 37: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 37

3.3. Algoritmos de Subtração de Fundo

Uma das habilidades fundamentais no sistema de visão humano é a

constância de cor. Humanos tendem a atribuir uma cor constante para um

objeto, embora existam mudanças na iluminação ao longo do tempo ou espaço.

Apontando esta característica, os algoritmos apresentados em [14],[15] e [3]

tentam reproduzir esta habilidade na modelagem e subtração do fundo na cena.

Ambos algoritmos tem a mesma filosofia; trabalham no espaço RGB; tem um

período de treino para a modelagem do fundo estático, trabalham com a imagem

media e têm um período de subtração para a detecção do objeto. Embora

tenham similaridades existem também diferencias na modelagem do fundo e na

etapa de subtração.

Antes de apresentar cada uma das etapas dos algoritmos é importante

mostrar o modelo computacional de cor que utilizam, os quais são importantes

nas etapas de modelagem e de subtração. Ambos algoritmos trabalham com

valores de cor, no espaço tridimensional RGB.

3.3.1. Modelo de Cor

No algoritmo apresentado em [14], a idéia para desenhar o modelo é

calcular a diferencia entre as cores medindo a distorção do brilho (brightness) e

a distorção de cor (chromaticity). A Figura 9 ilustra o modelo computacional de

cor proposto neste algoritmo no espaço tridimensional RGB. Considerando o

ponto (pixel) i na imagem; denota-se [ ])(),(),( iEiEiEE BGRi = como sendo o

vetor que representa a cor esperada do ponto (imagem de referencia). A linha

iOE que passa na origem e a traves do ponto iE é chamada de linha de cor

(expected chromaticity line). [ ])(),(),( iIiIiII BGRi = é a cor RGB do ponto na

imagem atual, a qual se quer subtrair do fundo. Neste modelo basicamente se

quer medir a distorção existente entre iI e iE . Isto é possível medindo a

distorção de brilho e de cor, no valor RGB do pixel.

Page 38: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 38

Figura 9 - Modelo de cor no espaço tridimensional RGB proposto em [14]. iE representa

o valor de cor esperado do ponto i na imagem de referência, iI representa a cor na

imagem atual. A diferencia entre iI e iE é decomposta em distorção de brilho ( iα ) e

distorção de cor ( iCD ). Adaptada de [14].

A distorção de brilho ( iα ) é o valor escalar que desloca a cor esperada iE

a traves da linha de cor; o mais próximo possível do valor atual iI . Isto é obtido

minimizando:

2( ) ( )i i i iI Eφ α α= −

iα representa a distorção de brilho de iI com relação ao valor esperado iE ; se

iα é menor do que 1 este é mais escuro, se iα é maior do que 1 este é mais

claro. A distorção de cor iCD é definida como sendo a distancia ortogonal entre,

o valor atual iI e a linha de cor no modelo; este é dado por:

i i i iCD I Eα= −

Para entender melhor este modelo, são importantes algumas

considerações. A distorção de brilho é um valor escalar que posiciona o valor de

cor esperada iE ao longo da linha de cor; uma característica importante desta

linha é que mantém um certo padrão de cores ao longo dela, mudando apenas a

intensidade luminosa. Assim sabe-se se um certo ponto na imagem tem um valor

de cor bem parecido do que outro, mas com brilho diferente. Isto ajuda muito em

identificar aqueles pontos que ficam com baixa iluminação quando são

obstruídos pelo objeto em movimento. A distorção de brilho significa apenas uma

Page 39: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 39

mudança na iluminação, e não uma mudança significativa na cor do pixel. Esta

diferenciação permite identificar pontos da imagem que representam sombras,

pois elas têm um brilho bem menor do que a original no modelo de referencia,

mas ainda mantém uma cor parecida à original. A distorção de cor indica o grau

de afastamento que temos desses padrões de cor que representa a linha, assim

a traves deste indicador podemos saber se a cor atual está muito longe ou não

do padrão de cores representado pela linha, o qual é útil para poder saber se

aquele pixel faz parte de um objeto diferente que está presente na imagem atual.

No algoritmo de subtração de fundo apresentado em [3], não existe um

modelo especifico de decomposição de cor. Os valores de cor são considerados

como sendo os valores RGB, e as etapas de modelagem e subtração de fundo

consideram os valores de cor neste espaço. Por tanto, os valores de cor não são

decompostos nem transformados neste algoritmo. O fato de que o algoritmo

meça o ângulo entre dois vetores no espaço RGB, indica que a comparação é

feita entre duas linhas de cor. Estas linhas de cor representam cada uma um

padrão de cores; por tanto, ao medir o ângulo comparam-se conjuntos de cores,

ao contrario de comparar só duas cores.

3.3.2. Subtração de Fundo

Antes de discutir os algoritmos de detecção de objetos em movimento, é

importante fazer algumas considerações para entender algumas características

físicas que influenciam os equipamentos que são comumente utilizados no

processo de captura de imagens, câmeras de vídeo para ser mais específicos.

Os sensores utilizados nas câmeras, tipicamente transformam cores de um

espaço de dimensão infinita para cores num espaço tridimensional RGB a traves

de filtros de cor nas bandas vermelha, verde e azul. Este fato traz algumas

características nas imagens capturadas que são importantes considerar, e que

também são considerados nas etapas de modelagem de fundo nos algoritmos

estudados. Além da perda de precisão na digitalização das cores, existe uma

continua variação de cor ao longo do tempo; raramente é possível obter o

mesmo valor RGB de cor num ponto especifico da imagem durante um período

de tempo, isto devido ao ruído inerente aos equipamentos e as flutuações de

iluminação presentes nas fontes de luz. Existe uma variação desigual nos filtros

Page 40: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 40

de cor nas bandas vermelha, verde e azul, o que indica que existe uma

sensibilidade diferente a traves destas bandas.

O esquema básico de subtração de fundo nestes algoritmos é subtrair a

imagem atual da imagem de referência, a qual modela o fundo. Para conseguir

isto, os algoritmos começam com uma etapa de modelagem onde se constrói a

imagem de referencia; depois, há uma etapa estatística para determinar um

limiar apropriado nas variáveis de comparação; finalmente a etapa de subtração

e classificação dos pixels da imagem, onde cada ponto é segmentado em grupos

diferentes. A segunda etapa não está explicitamente indicada no algoritmo [3];

por tanto, a seleção do limiar é feita unicamente por um processo de tentativa e

erro (testando diferentes valores).

3.3.2.1. Modelagem do Fundo

No processo de treinamento do algoritmo apresentado em [14], a imagem

de referencia e alguns atributos relacionados com ela são calculados ao longo

de um período de tempo ou um número definido de imagens de treino. Cada

pixel é modelado como sendo um vetor de 4 posições , , ,i i i iE s a b< > ; onde

iE é o valor esperado de cor, is é o desvio padrão, ia é a distorção de brilho e

ib é a distorção de cor. iE neste algoritmo é considerado como sendo a

imagem media das imagens de treino e is como sendo o desvio padrão

presente neste conjunto de imagens.

[ ])(),(),( iiiE BGRi µµµ=

[ ])(),(),( iiiS BGRi σσσ=

para o cálculo de ia e ib são consideradas as seguintes equações [14]:

Page 41: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 41

2 2 2

2 2 2

2 2

( ) ( ) ( ) ( ) ( ) ( )min

( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) ( )( ) ( ) ( )

( ) ( ) ( )( ) ( ) ( )

R G B

R G B

R G B

R i G i B ii

R G B

R G B

R G B

R G B

I i i I i i I i ii i i

I i i I i i I i ii i i

i i ii i i

α µ α µ α µα

σ σ σ

µ µ µσ σ σ

µ µ µσ σ σ

− − −= + +

+ +

=

+ +

2

(1)

2 2 2( ) ( ) ( ) ( ) ( ) ( )

( ) ( ) ( )R i R G i G B i B

iR G B

I i i I i i I i iCD

i i iα µ α µ α µ

σ σ σ

− − − = + +

(2)

O processo de treino e o cálculo das imagens de referencia do fundo, no

algoritmo em [14], é mostrado numa parte da Figura 10. Em resumo, o processo

começa com a captura de um número de imagens de treino, a partir destas

imagens calcula-se uma imagem media e outra representando o desvio padrão

(Passo 1). Para cada uma das imagens de referencia calcula-se imagens da

distorção de brilho e da distorção de cor respeito à imagem media (Passo 2, 3);

para obter estas imagens utiliza-se às equações (1) e (2) respectivamente. Para

o cálculo destas imagens são utilizadas; a imagem original, a imagem media, o

desvio padrão e as equações (1) e (2); completando-se assim os passos 2 e 3

indicados na Figura 10. Para o passo 5 utiliza-se a equação (3) e para o passo 4

utiliza-se a equação (4); completando assim o processo de treinamento.

21

0

( )( )

N

i

ii iRMS

N

αα α

== =∑

(3)

2

0

( )( )

N

i

ii i

CDb RMS CD

N== =∑

(4)

No final do processo de treino no algoritmo [14] são obtidas 4 imagens de

referencia; a imagem media, imagem desvio padrão, imagem da distorção de

brilho e a imagem da distorção de cor. Nestas imagens estão modeladas as

Page 42: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 42

características do fundo e são estas imagens as utilizadas como referencia no

processo de subtração.

Observando para as equações (1) e (2) onde se calculam a distorção de

brilho e de cor; pode-se ver que, no cálculo, estes valores são normalizados ou

divididos pelo valor do desvio padrão [14]; assim, pixels com baixo desvio padrão

podem ter valores de distorção de brilho e cor muitos altos. Para solucionar este

problema é importante determinar um valor mínimo do desvio padrão que pode

ter cada um dos pontos nas imagens. Não existe um padrão de atribuição deste

valor em [14], por tanto, este valor é atribuído por um método de tentativa e erro

(testando diferentes valores positivos menores ou iguais a 1) como foi feito aqui,

na implementação do algoritmo.

No processo de treinamento do algoritmo apresentado em [3] não existe

um modelo detalhado de modelagem do fundo. A única imagem de referencia

utilizada por este algoritmo é a imagem media, esta é calculada a partir de um

determinado conjunto de imagens de treino; por tanto, só é preciso o cálculo da

imagem media no espaço de cor RGB.

3.3.2.2. Subtração ou Segmentação

Nesta parte do modelo é calculada a diferencia existente entre a imagem

de referencia e a imagem atual. No algoritmo apresentado em [14] essa

diferencia é decomposta em distorção de brilho e distorção de cor. Aplicando um

limiar apropriado na comparação da distorção de brilho e da distorção de cor

num pixel, pode-se obter uma máscara indicando qual é o tipo do pixel que está

sendo comparado. Tomando em conta o modelo de decomposição de cor que é

utilizado; cada pixel pode ser classificado em cada uma de 4 categorias na fase

de subtração:

• Fundo original (B), se a distorção de brilho e a distorção de cor são

similares com seus pares na imagem de referencia.

• Fundo com baixa iluminação ou sombra (S), se a distorção de cor é

similar, mas a distorção de brilho é bem menor do que aquela na

imagem de referencia.

Page 43: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 43

• Fundo como alta iluminação (H), si existe uma distorção de cor similar,

mas uma distorção de brilho maior do que aquela na imagem de

referencia.

• Objeto em Movimento (F), o pixel é considerado como sendo parte do

objeto em movimento, se a distorção de cor é diferente aos valores

esperados no treinamento.

Na figura 10 mostra-se a etapa de subtração deste algoritmo. A imagem

que contém o objeto é comparada com a imagem media e o desvio padrão para

obter imagens que representam a distorção de brilho e a distorção de cor (Passo

6), aplica-se para isto as equações (1) e (2) respectivamente. As imagens são

comparadas com as imagens de referencia aplicando valores apropriados do

limiar (Thresholds) de comparação (Passo 7). No caso do algoritmo

implementado neste trabalho foram considerados apenas dos grupos; fundo e

objeto em movimento; assim pontos pertencentes a sombras ou pontos com

maior iluminação foram consideradas como sendo parte do fundo. A comparação

das imagens atuais com as imagens de referencia são feitas basicamente, nas

diferencias existentes entre os valores das distorções de brilho e das distorções

de cor.

Page 44: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 44

Figura 10 - Algoritmo de subtração de fundo baseado na decomposição da diferencia de

cor, em distorção de brilho e distorção de cor. Seguindo a ordem das operações nos

números, mostram-se as etapas de modelagem e subtração de fundo. A etapa de

Modelagem é feita uma vez, enquanto que a etapa de subtração é feita a cada imagem

(frame).

Como se tinha mencionado antes, o modelo de cor deste algoritmo é muito

mais sensível à distorção de brilho do que à distorção de cor, por esta razão é

mais fácil identificar as sombras como sendo pontos que mudam apenas seu

brilho nas imagens. Assim como a mudança na distorção do brilho é maior do

que a mudança na distorção de cor, existem diferentes pixels na imagem que

têm diferentes distribuições de iα e iCD , é dizer os padrões de mudança não

são iguais em todos os pixels. A fim de usar um limiar só para todos os pixels, é

preciso normalizar os valores de iα e iCD . Seja

Page 45: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 45

ˆ

ii

i

ii

i

a

CDCD

b

αα −=

=

a distorção de brilho normalizada e a distorção de cor normalizada

respectivamente.

Baseados nestas definições, segundo o algoritmo em [14] podemos

classificar o pixel numa de quatro categorias B,S,H,F diferentes, através da

seguinte regra de decisão:

1 2

ˆ: , ˆ ˆ: ,

( )ˆ: 0,

:

i CD

i i

i

F CD elseB and else

M iS elseH otherwise

α α

τα τ α τ

α

>

>

< = <

onde CDτ , 1ατ e 2ατ são os valores do limiar utilizados para determinar as

similaridades de brilho e cor existentes entre as imagens de referencia do

modelo e a imagem atual que está sendo observada.

No entanto, observando bem o modelo de cor utilizado neste algoritmo; na

imagem atual, poderia ser o caso de pixels do objeto em movimento que tenham

valores RGB próximos da origem; objetos pretos ou partes pretas dos objetos.

Estes pixels escuros, sempre serão classificados como sendo sombras e por

tanto como sendo parte do fundo. Isto porque os valores de cor destes pixels

estão perto da origem no espaço RGB, e o fato de que todas as linhas de cor no

espaço RGB passam através da origem faz com que estas cores sejam

consideradas parecidas com qualquer linha de cor. Para evitar este problema

uma solução é introduzir um novo limiar para a distorção normalizada do brilho

( loστ ), que indica o limite de distorção de brilho que deve ter um pixel para ser

ou não ser considerado como sombra. Então a regra de decisão ficaria como:

Page 46: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 46

1 2

ˆ ˆ: ˆ ˆ: ,

( )ˆ: 0,

:

i CD i lo

i i

i

F CD or elseB and else

M iS elseH otherwise

α

α α

τ α τα τ α τ

α

>

> <

< = <

Na etapa de subtração do algoritmo apresentado em [3], a diferencia entre

as imagens é calculada a traves do ângulo formado entre cada uma das cores

na imagem de referencia e a imagem atual. O processo principal na subtração

de fundo utilizado neste algoritmo é o calculo do ângulo, mediante o qual os

pontos da imagem são classificados. Na figura 11 mostram-se os passos do

processo de subtração de fundo feito neste algoritmo; a idéia principal é que

alguns pontos da imagem sejam excluídos do teste do ângulo a traves de testes

rápidos de variação de cor (distancia entre as cores d(i,j)). Se existe uma

variação grande de cor, acima de um limiar estabelecido TU, o algoritmo supõe

que a mudança neste ponto é consideravelmente alta, então considera o ponto

como sendo parte do objeto (Passo 1). Se não existe uma mudança considerável

na cor, pode ser que os valores de cor nos pontos não tenham sofrido grandes

mudanças, assim se o a variação de cor é menor do que um outro limiar TL o

ponto é considerado como sendo parte do fundo (Passo 2). Já para os pontos

que apresentam variações de cor acima do TL e abaixo do TU o ângulo deve ser

medido; uma vez mais tendo o critério do limiar para o ângulo entre os vetores,

pode-se classificar os pontos dentro das duas classes; se CTθ < é fundo se

não, é objeto. No presente algoritmo TU e TL representam a variação máxima e

mínima de cor para que os pontos sejam considerados como sendo o objeto ou

o fundo respectivamente (este teste, sem necessidade de medir o ângulo). O

valor do limiar do ângulo TC indica o grau de semelhança que as cores devem ter

para que possam ser consideradas como parecidas ou diferentes; o limiar é a

medida de semelhança.

Page 47: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 47

Figura 11 - Algoritmo de geração de silhuetas ou de subtração de fundo, baseado no

ângulo entre dois vetores.

3.3.2.3. Seleção dos Limiares

Na seleção dos limiares calculam-se valores do limiar para conseguir

melhores resultados no processo de subtração; tradicionalmente este

procedimento é feito em base a um aprendizado estatístico, com imagens que

ainda pertencem à etapa de modelagem do fundo.

No algoritmo apresentado em [3] não existe um procedimento específico

para atribuir valores no limiar do ângulo. Pelo fato de ser um único limiar não é

muito complicado conseguir um valor, já que se pode utilizar um ajuste do limiar

(seleção de valores) até chegar a resultados razoáveis.

No algoritmo apresentado em [14], existe a necessidade de achar valores

para o limiar, tanto para a distorção de brilho quanto para a distorção de cor.

Pelo fato de serem dois limiares os que devem ser achados, um procedimento

de ajuste do limiar poderia resultar num trabalho difícil de se fazer, pois existe

um conjunto grande de combinações destes valores que podem ser atribuídos.

Num processo de seleção de limiar tenta-se diminuir este conjunto de

combinações de valores ao mínimo possível ou até, diretamente achar os

1. Calcular a diferencia de cor

( , ) ( , ) ( , )r bd i j c i j c i j= −

if ( , ) Ud i j T>

então o ( , )thi j é um ponto do objeto senão vai para o passo 2.

2. if ( , ) Ld i j T<

então o ( , )thi j não é um ponto do objeto senão vai para o passo 3.

3. Calcula o ângulo entre os dois vetores

1 ( , ). ( , )cos [ ]

( , ) ( , )r b

r b

c i j c i jc i j c i j

θ −=

if CTθ < então o ( , )thi j não é um ponto do objeto

senão o ( , )thi j é um ponto do objeto.

Page 48: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 48

valores que devem ser atribuídos nestes limiares. A grande vantagem do

processo de seleção é restringir o espaço de busca dos limiares para valores

próximos dos limiares que finalmente serão utilizados. Manter o foco da atenção

em valores que realmente ocasionam um melhor processo de subtração faz

parte da finalidade do processo de seleção do limiar, já que muitas vezes

acontece de estar testando valores sem saber se realmente estes valores em

conjunto são discriminantes o suficiente para que possam ser utilizados.

No processo de seleção do limiar no algoritmo apresentado em [14], os

limiares para a distorção do brilho e para a distorção de cor são calculados a

traves de um processo de aprendizado estatístico. Este aprendizado consiste em

montar um histograma da distorção normalizada do brilho e a distorção

normalizada de cor. Para montar este histograma são calculadas as distorções

normalizadas do brilho e de cor de todas as imagens de treino respeito da

imagem media. Tendo estes valores, se pode montar o histograma que

representa o padrão de mudança das distorções ao longo do processo de

treinamento ou modelagem do fundo; em outras palavras qualquer imagem que

tenha objetos diferentes aos modelados no fundo, vai ter um histograma

relativamente diferente. Na figura 12 mostra-se a curva típica dos histogramas

da distorção normalizada de brilho e a distorção normalizada de cor

respectivamente. Olhando para os histogramas podemos ver um determinado

intervalo onde flutuam os valores das distorções, assim se existir valores fora

deste intervalo se pode supor que esses pixels fazem parte de um objeto que

não estava na modelagem do fundo. Uma vez que os histogramas são

construídos, valores dos limiares são automaticamente selecionados de acordo

com a taxa de detecção r (valor em porcentagem) que se quer obter; 100%

corresponde a todas as amostras no intervalo. O limiar para a distorção de cor,

CDτ , é o valor da distorção normalizada de cor na taxa de detecção r desejada

(Ex. 4.06 corresponde a 99.95% ). Na distorção do brilho existem dois valores (

1ατ e 2ατ ) por tanto deve se definir um intervalo no histograma. 1ατ é o valor na

taxa r desejada e 2ατ é o valor na taxa (100% - r).

Page 49: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 49

Figura 12 - (a) histograma da distorção normalizada de brilho ( ˆ iα )”, e (b) histograma da

distorção normalizada de cor ( ˆ iCD ). Adaptado de [14].

Neste processo de seleção de limiares existem algumas considerações

importantes que devem ser feitas. Como se tinha falado antes, os valores da

distorção do brilho e a distorção de cor são normalizados pelo valor do desvio

padrão; isto traz alguns problemas na hora de calcular as distorções, que

poderiam ter valores muito elevados. Já que o valor do desvio padrão e a

natureza das variações deste dependem muito dos equipamentos que são

utilizados na captura, os valores calculados das distorções também incluem

estas características, por tanto, tendo em consideração este critério, os valores

do limiar dependem da natureza dos equipamentos. Por isto sempre nas

implementações realizadas deste algoritmo, os valores do limiar dependem dos

equipamentos utilizados e até das condições particulares donde foram testados.

Sugere-se deste modo construir os histogramas para o cálculo dos limiares e

descartar os valores de limiar sugeridos em outros trabalhos.

No cálculo e construção dos histogramas são utilizados os valores das

distorções de brilho e de cor normalizados; na etapa de subtração os valores

comparados também são os valores normalizados das distorções. Para os pixels

na imagem que têm distorções de cor e brilho muito baixos, existe um problema

na hora de normalizar; o valor da distorção normalizada pode ser muito elevado,

assim qualquer valor do limiar é ultrapassado produzindo falsos pontos do objeto

na etapa de subtração. Uma solução para este problema é atribuir valores de

mudança mínima tanto para a distorção de brilho quanto para a distorção de cor,

como foi feito no desvio padrão mínimo dos pixels. Todos estes problemas

devem ser tomados em conta, tanto na hora de construir e calcular os

histogramas das distorções quanto na hora do cálculo das distorções

Page 50: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 50

normalizadas na etapa de subtração. Se estes problemas não forem

considerados é difícil de se conseguir curvas parecidas às da Figura 12. A

construção de curvas relativamente parecidas às da Figura 12, sem variações

bruscas e tendências suaves, sugere um indicador muito útil para a avaliação

dos valores mínimos atribuídos às distorções e o desvio padrão.

3.4. Resultados

Nesta secção mostram-se os resultados obtidos na implementação dos

algoritmos apresentados em [14] e [3]. Os testes foram realizados em

seqüências de imagens (320x240) capturadas por uma câmera (WebCam

Logitech QuickCamPro 4000) conectada via interface USB num computador

com processador Pentium III de 1000Mhz e com 256 MB de memória RAM. De

fato os modelos que lidam com as sombras e latências na iluminação permitem

resultados melhores aos mostrados na Figura 8; isto porque são mais sensíveis

a mudanças do brilho do que as mudanças na cor, conseguindo assim um

resultado muito aproximado da morfologia do objeto “MÃO”.

Nas imagens que se mostram a continuação, não foram feitos nenhum tipo

de pós-processamento para melhorar a qualidade da segmentação; elas

representam unicamente o resultado obtido na etapa de subtração de fundo dos

algoritmos testados. Pós-processamentos são temas de etapas posteriores

diferentes aos temas tratados neste capitulo.

Na Figura 13 mostram-se os resultados obtidos pelo algoritmo baseado na

medida do ângulo entre as cores [3], a imagem com só o fundo não é mostrada,

mas fica claro na figura qual é a imagem do fundo. O objeto é segmentado com

as suas cores originas dando uma impressão diferente à imagem da

segmentação binária, onde a morfologia do objeto é mais fácil de perceber. Para

fins práticos a imagem de segmentação binária é muito mais importante, e a

qualidade desta influi muito nos processamentos posteriores que serão feitos.

Particularmente para este algoritmo, o limiar atribuído no ângulo foi 17.49θ = o ;

as sombras não são totalmente excluídas do objeto e deformam a morfologia

dele, o qual não é desejável. Dependo do limiar atribuído no ângulo, às sombras

somem, mas partes que realmente pertencem ao objeto também somem; por

Page 51: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 51

isto é difícil determinar um limiar que depois de um determinado valor não

comece a deformar o objeto.

Figura 13 - Resultado da segmentação do algoritmo baseado na medida do ângulo [3]. O

limiar no ângulo foi 17.49θ = o ,mostram-se a segmentação com as cores originais do

objeto e a segmentação binária onde é mais fácil perceber a morfologia do objeto

segmentado. Frame Rate 30 fps.

Na figura 14 mostram-se os resultados obtidos pelo algoritmo de subtração

de fundo baseado na medida da distorção de brilho e a distorção de cor entre

duas cores [14]. Como o objetivo é segmentar o objeto, o interesse unicamente

está focado no objeto e não em detectar sombras ou partes com mudanças na

iluminação; para isto só serão utilizados os parâmetros de limiar CDτ para a

distorção de cor e loτ para a distorção do brilho. Nos parâmetros de desvio

padrão mínimo ( 'σ ), distorção mínima de cor ( 'CD ) e distorção mínima do

brilho ( 'α ) foram atribuídos os valores ' 1.0σ = , ' 0.75CD = e ' 0.01α =

respectivamente. Estes valores foram mantidos tanto para as etapas de

modelagem do fundo e construção dos histogramas quanto para a etapa de

subtração de fundo; lembremos que estes valores diminuem alguns problemas

durante as etapas de modelagem de fundo e segmentação, assim como também

na montagem dos histogramas para a seleção dos limiares. Os únicos limiares

necessários para segmentar o objeto são CDτ para a distorção de cor e LOτ para

a distorção do brilho. Os valores atribuídos para estes limiares foram 14.1CDτ =

Page 52: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 52

e 80.5LOτ = − . Claramente se pode observar que este algoritmo possui uma

segmentação melhor do que o algoritmo da Figura 13, o fato de ter dois

parâmetros na comparação ajuda muito na eficiência deste algoritmo.

Figura 14 - Resultados do algoritmo baseado na medida da distorção de brilho e a

distorção de cor [14]. Desvio padrão mínimo ( ' 1.0σ = ), distorção mínima de cor

( ' 0.75CD = ), distorção mínima do brilho ( ' 0.01α = ). Nos limiares de comparação

para a etapa de subtração; limiar 14.1CDτ = para a distorção de cor, limiar 80.5loτ = −

para a distorção do brilho. Frame rate 43.fps.

Levando em conta o fator de processamento em tempo real, na Figura 15

mostra-se a segmentação binária feita pelo algoritmo de [14] com os mesmos

parâmetros mostrados na Figura 14, só que neste teste foi considerada uma

janela de 4 pixels. Nessa janela existe um ponto representativo que é testado; se

este ponto passa pelo teste para ser parte do objeto, os outros pontos na janela

também são considerados como sendo parte do objeto; se não os 4 pontos são

considerados como sendo o fundo. Este teste simples não piora de maneira

significativa a segmentação do objeto, mas tem um ganho muito grande no

frame rate alcançando, valores na casa dos 60 fps.

Page 53: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 53

Figura 15 - Teste do algoritmo em [14] aplicando uma janela de 4 pixels. Não muda muito

à morfologia do objeto, mas existe um ganho grande na velocidade, frame rate na casa

dos 60 fps.

3.5. Conclusões Parciais

O processo de segmentação de objetos em movimento a traves de

algoritmos subtração de fundo é um problema difícil de se fazer, existem muitos

parâmetros que afetam sua eficiência e robustez. Conseguir um ótimo

balanceamento destes parâmetros é um problema difícil e só é possível

conseguir uma aproximação dos resultados ótimos de segmentação. Entenda se

por parâmetros, valores e limiares que devem ser considerados pelo algoritmo;

a combinação e o espaço de valores destes sugere dificuldade de achar ótimos

balanceamentos entre eles.

Inclusive, sob condições do ambiente e condições de atuação controladas,

não é possível conseguir uma segmentação muito próxima da perfeita, até

porque não existem métodos perfeitos e nem as condições do ambiente também

são perfeitas para favorecer o desempenho dos algoritmos. Por tanto, só é

possível obter aproximações boas ou ruis.

O grande problema para todos os algoritmos de subtração de fundo é a

dependência destes aos fatores da iluminação; formação de sombras e

flutuações das fontes de luz são grandes problemas com as quais nem todos os

algoritmos estudados puderam lidar satisfatoriamente.

Existem muitas considerações (idéias) que podem ser tomadas dentro da

formulação dos algoritmos de subtração de fundo, um grande problema é o

processamento em tempo real que limita às vezes a inclusão de modelos mais

sofisticados e robustos a cambio de velocidade no processamento. Tomando em

Page 54: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Subtração de Fundo 54

conta os algoritmos estudados é possível concluir que o problema de subtração

de fundo é um problema que pode ter uma formulação para máquinas paralelas,

explorando e facilitando assim, a inclusão de novos modelos mais sofisticados e

robustos para lidar com os problemas típicos da subtração.

Dentro deste estudo só foram considerados algoritmos que trabalham com

a modelagem do fundo estático de uma cena.

Apesar de todas as dificuldades, os estudos e os testes realizados

demonstram que no presente trabalho foram conseguidos resultados

satisfatórios em todos os requisitos necessários para a continuação do

desenvolvimento do sistema de reconhecimento que é tema desta dissertação.

Page 55: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

4 Detecção de Silhueta

No decorrer deste capítulo é proposto um modelo de detecção da silhueta

da mão capaz de lidar com os erros da segmentação e ruídos na sua morfologia.

Num primeiro passo são considerados os filtros morfológicos, depois técnicas de

detecção de bordas, e finalmente algoritmos de detecção, coleta e

representação dos pontos que definem a silhueta da mão.

Na próxima seção é apresentada uma motivação geral da detecção de

silhueta considerando-se a sua importância no plano deste trabalho. Em seguida

é feito um breve resumo do modelo de detecção e finalmente apresenta-se em

forma mais detalhada cada um dos seus passos, os resultados obtidos e

algumas considerações finais.

4.1. Motivação

A capacidade de se reconhecer objetos em uma imagem depende muito

da quantidade de informações que se conheça de cada objeto. Logo, extrair

características dos objetos é uma etapa e tarefa fundamental para alcançar os

objetivos no processo de reconhecimento.

A extração de características depende fortemente de como os objetos são

representados computacionalmente. Por este motivo, é necessário um cuidado

especial na escolha da representação dos objetos de tal maneira que o processo

de detecção das características possa se dar da maneira mais natural possível.

Para que o processo de reconhecimento possa ser realizado é necessário que

os objetos de interesse sejam identificados e representados adequadamente.

Uma forma bastante comum de representação dos objetos e que foi

utilizada neste trabalho é a representação baseada na silhueta. A silhueta é uma

representação concisa e suficiente para capturar a morfologia do objeto.

Particularmente no caso da mão em movimento (objeto de estudo deste

trabalho), muitas informações podem ser obtidas extraindo-se a silhueta ou

Page 56: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 56

contorno [16] a partir das imagens geradas pela segmentação de fundo. Se a

cada momento pode-se conhecer a silhueta de mão, então pode-se saber as

diferentes formas que a mão está descrevendo ao longo do tempo. Isto ajuda

muito e é uma grande vantagem, principalmente para objetos que mudam a sua

morfologia ao longo do tempo. Interfaces baseadas em gestos, no caso da mão,

poderiam facilmente ser suportadas com uma modelagem de silhueta.

A detecção de silhueta é o processo que determina quais são os pontos da

imagem que fazem parte da silhueta. Neste processo, são coletados pontos de

forma a capturar a morfologia do objeto e finalmente estruturá-los de modo que

possam servir como dado de entrada para as etapas posteriores do

reconhecimento.

No processo de detecção de silhueta são considerados três passos

fundamentais. Em um primeiro passo, é feita uma abordagem de melhoria da

segmentação; aqui são considerados filtros morfológicos para tentar corrigir e

diminuir ao máximo os erros de segmentação e ruídos na morfologia do objeto.

No segundo passo considera-se uma abordagem para a detecção das bordas

dos objetos, que está diretamente influenciada pelo passo anterior. No último

passo é feita a coleta e estruturação dos pontos que fazem parte da silhueta da

mão. É fundamental que este passo seja capaz de lidar com os ruídos e erros

ainda presentes após os dois passos anteriores.

Nas seções seguintes são apresentados, com mais detalhes, cada um dos

passos do processo de detecção de silhueta.

4.2. Refinamento da Segmentação

O objetivo principal nesta etapa é corrigir ou pelo menos diminuir os erros

e ruídos do processo de segmentação. Para isto, é utilizada uma abordagem de

processamento de imagens baseada em filtros morfológicos que visam corrigir a

imagem do objeto segmentado completando pequenos buracos e eliminando

regiões isoladas de poucos pixels. Os filtros morfológicos utilizados foram: o filtro

de Dilatação e o filtro de Erosão [34].

A Dilatação, em geral, faz com que os objetos se dilatem ou aumentem de

tamanho, enquanto que a Erosão faz com que eles encolham. Ambos filtros

atuam nas bordas internas e externas dos objetos. A quantidade e a forma

Page 57: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 57

como os objetos se dilatam ou encolhem depende fortemente da escolha de uma

máscara. As máscaras mais comuns são a de vizinhança 4 )( 4N e de

vizinhança 8 )( 8N , que estão ilustradas na Figura 16.

A característica principal destes filtros é trabalhar com um ponto de

referência (ponto do meio) e com as características da sua vizinhança. Assim,

diferentes funções podem ser definidas nesta relação de vizinhança.

Considerando apenas imagens binárias (preto ou branco), um exemplo

desta relação seria: atribuir a cor preta ao ponto de referência se todos os

vizinhos, definidos na máscara, forem da cor preta também. Na Figura 16, além

da geometria de vizinhança definida pela máscara, mostram-se os valores dos

vizinhos, onde a cor preta representa o fundo e a cor branca representa os

objetos.

Figura 16 - Máscaras utilizadas nos filtros morfológicos de Dilatação e Erosão;

vizinhança 4 )( 4N e vizinhança 8 )( 8N . Além da vizinhança definida pela máscara,

mostram-se em preto os pontos que representam o fundo e em branco os pontos que

representam os objetos.

Na aplicação dos filtros morfológicos nas imagens provenientes da

segmentação, foi utilizada a máscara )( 8N . A seqüência de aplicação dos filtros

foi: primeiro aplica-se a Dilatação e depois, na imagem dilatada, aplica-se o filtro

de Erosão. Na Dilatação foi definido o seguinte critério: se um ponto faz parte do

fundo e tem um vizinho que faz parte de um objeto, então ele também faz parte

do objeto. Na Erosão, se um ponto faz parte do objeto e tem um vizinho que faz

parte do fundo, então ele também faz parte do fundo.

Com a aplicação destes filtros na seqüência indicada, procura-se em

princípio com a Dilatação expandir o objeto através das suas bordas internas e

externas. Assim os buracos tendem a ser preenchidos e as bordas a serem

Page 58: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 58

expandidas uniformemente. Depois, aplicando a Erosão na imagem dilatada,

procura-se retornar ao objeto original; apenas as bordas serão afetadas, e os

buracos totalmente preenchidos na etapa de Dilatação serão mantidos. Os

resultados obtidos da aplicação desta seqüência de filtros morfológicos nas

imagens de entrada são do tipo ilustrado na Figura 17.

Figura 17 - Resultados obtidos da aplicação dos filtros morfológicos. Na seqüência (a)

imagem resultado da segmentação; (b) resultado da aplicação da Dilatação em (a); e (c)

resultado da aplicação da Erosão em (b). Considera-se (c) como resultado final desta

etapa.

4.3. Detecção de Bordas

O objetivo principal desta etapa é localizar os contornos internos e

externos dos objetos, dado que estes contornos são a representação da silhueta.

A conexidade do contorno é um fator importante; essa propriedade garante uma

vantagem para os algoritmos no processo de detecção e coleta dos pontos que

representam a silhueta da mão. Considera-se como a saída deste processo uma

imagem binária onde os objetos são representados apenas pelos seus

contornos.

Page 59: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 59

Existem diversas abordagens para a obtenção de contornos em imagens

binárias, como, por exemplo, as ilustradas por Trucco e Verri [38]. Tipicamente

estas abordagens estão baseadas em medidas de gradiente ou na aplicação de

filtros que exploram as características dos contornos. No presente trabalho, para

encontrar as bordas nesta etapa foi considerada uma abordagem diferente, que

explora os resultados da aplicação dos filtros morfológicos nas imagens da

segmentação. Na Dilatação as bordas dos objetos se expandem, e na Erosão

essas mesmas bordas se contraem, então através da diferença destas imagens

(a dilatada e a erodida) podemos achar uma aproximação das bordas dos

objetos. Esta abordagem tem uma vantagem, pois aproveita os resultados da

etapa anterior, tornando o processo computacionalmente barato comparado com

os outros. Além disso, não incorpora medidas de limiar e depende somente do

tamanho da máscara. Outra vantagem é que tende a manter os contornos com a

propriedade da conexidade. Os resultados da aplicação deste processo com as

imagens (b) e (c) da Figura 17 são mostrados na Figura 18.

Figura 18 - Obtenção de contornos a partir da subtração das imagens (b) e (c) da Figura

17. O objeto “mão” é representado apenas pelo seu contorno, o mesmo acontece com o

ruídos e erros da segmentação.

A Figura 18 mostra o resultado para a mão totalmente estendida com a

silhueta externa. Alguns testes foram feitos com diferentes posições da mão e a

presença de contornos internos; esses resultados são mostrados na Figura 19.

Nota-se nesta figura ainda alguns ruídos e erros da segmentação, os quais

serão removidos na próxima etapa do processo de detecção de silhueta. As

figuras em preto e branco são consideradas como sendo o resultado da etapa de

detecção de contornos.

Page 60: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 60

Figura 19 - Alguns resultados da detecção de contornos realizada em diferentes

orientações da mão, (a) presença de ruídos, (b) presença de contornos internos ou

buracos.

4.4. Detecção de Contornos

O problema de detecção da silhueta está fortemente relacionado como o

processo de reconhecimento em si. Ainda que de certo modo o processo de

detecção da silhueta possa ser visto como sendo um processo de

reconhecimento (porque já identifica qual contorno representa um objeto), ele é

considerado como sendo apenas um processo de identificação, diferente do

processo de reconhecimento total, em que relações, características especiais e

mudanças na morfologia dos objetos são reconhecidas e exploradas nas

aplicações.

Para localizar a silhueta dos objetos, os contornos presentes na imagem

são percorridos em algum sentido e em seguida são armazenados. Como as

bordas são todas conexas os objetos estarão sempre representados por um ou

mais contornos. Após o percurso e armazenamento dos contornos é feito um

processo de seleção, no qual alguns contornos são descartados e outros são

identificados como sendo os objetos. Assim existem duas etapas: uma que

Page 61: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 61

percorre e armazena os objetos, e a outra de seleção, esta última mais

diretamente ligada ao reconhecimento.

O percurso e armazenamento dos contornos é tradicionalmente feito numa

ordem predeterminada, horária ou anti-horária. Partindo de um ponto qualquer

do contorno os pontos são visitados seguindo a ordem estabelecida e o percurso

é armazenado de forma que o contorno seja fielmente representado.

Lista de Códigos (Chain Codes) é uma das abordagens mais utilizadas

para a representação dos contornos [40]. Como seu nome bem o diz, é uma lista

de códigos onde, para cada ponto na lista, existe uma direção a seguir para

achar o próximo ponto do contorno. As direções definidas nesta representação,

na ordem anti-horária, podem ser vistas na Figura 20.

Figura 20 - Lista de Códigos (Chain Codes). Para cada ponto de referência (em azul)

existem 4 ou 8 direções possíveis que se podem seguir na representação do contorno.

A Lista de Códigos é uma representação que traz algumas vantagens,

principalmente no que se refere ao armazenamento. Considerando a vizinhança

8 )( 8C necessitamos apenas de 3 bits para representar um ponto na cadeia.

Definida a forma de representação dos pontos do contorno, o algoritmo

parte de um ponto arbitrário escolhendo, em cada passo, um novo vizinho. As

direções consideradas para a busca deste vizinho na nossa implementação

foram as da vizinhança 8 )( 8C mostrada na Figura 20.

A idéia para percorrer os contornos é mostrada na Figura 21, em três

passos. Nesta figura apenas é mostrado um trecho de um contorno maior, que

serve para esquematizar alguns passos do algoritmo e entender a idéia de como

é feito o percurso. Os pontos em branco representam o fundo e os pontos em

preto representam o contorno que está sendo percorrido. Os pontos marcados

Page 62: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 62

com um “X” já fazem parte da silhueta, e os pontos onde as setas começam são

os que estão sendo analisados; estes também pertencem à silhueta. As setas

que apontam para os pontos marcados com “X” indicam a direção do ponto que

o antecede na silhueta, e as setas que apontam para os pontos marcados com

“P” indicam o próximo ponto da silhueta. As setas curvas indicam a direção de

busca (anti-horária) para procurar o próximo ponto da silhueta.

Todos os pontos de análise (onde começam as setas), a cada passo, têm

um apontador para a direção do ponto que os antecede na silhueta. Tomando

como referência essa direção e utilizando o sentido de busca (anti-horário),

procura-se o próximo ponto que fará parte da silhueta; esse ponto é aquele que

ainda não foi visitado, faz parte do contorno e é o primeiro a ser escolhido ou

visitado a partir da direção inicial de busca. Em cada um dos passos (a), (b) e (c)

as setas para os pontos “X” indicam a direção inicial de busca, as setas curvas

indicam o sentido da busca e as setas para os pontos “P” apontam para o

próximo ponto que faz parte da silhueta. O percurso do algoritmo tem dois

critérios de parada: no caso de contornos fechados o algoritmo para quando são

alcançadas posições próximas do ponto inicial de partida, e no caso de

contornos não fechados o algoritmo para quando não existem mais posições de

busca na direção oposta à direção de partida.

Figura 21 - Passos do algoritmo de percurso de contornos. A cada passo, novos pontos

da silhueta são detectados e alguns pontos “N” são descartados. As setas curvas

indicam o sentido de busca, as setas que apontam para os pontos marcados com “X”

indicam a direção inicial de busca, as setas que apontam para os pontos marcados com

“P” indicam o próximo ponto.

Como se pode ver no passo (a) da Figura 21, nem todos os pontos do

contorno são considerados para fazer parte da silhueta, estes pontos não

considerados estão marcados com “N”. Levando em conta que os contornos

nem sempre são de largura unitária, muitos pontos são descartados ao longo do

Page 63: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 63

percurso e assim pode-se achar um número menor ainda de pontos que definem

a silhueta.

Na Figura 22 mostram-se alguns trechos de contornos com algumas

particularidades produzidas durante o processo de detecção de silhueta. Nesta

figura pode-se ver, dentro do contorno, um pequeno ciclo que deve ser

considerado pelo algoritmo de percurso, já que este representa um problema

para a robustez do algoritmo. Como se vê em (b) o percurso pode acabar

prematuramente, afetando a detecção. Uma solução para este problema

consiste em considerar o ponto “z” como sendo uma ponte especial, e deixar a

Lista de Códigos passar duas vezes por este ponto. Freqüentemente o ponto “z”

é um ponto no meio do contorno (que não é nem começo e nem fim) para onde o

percurso volta em uma direção diferente à da direção original de saída

(utilizando um caminho diferente).

Figura 22 - Pequenos ciclos dentro dos contornos. Estes ciclos representam problemas

para o algoritmo de percurso, pois como é indicado em (b) a detecção da silhueta pode

acabar muito antes de percorrer o contorno inteiro, o que traz problemas na detecção.

Uma vez que se tenham percorrido todos os contornos da imagem, as

silhuetas dos objetos são armazenadas em um conjunto de listas. O próximo

passo é a seleção das listas de códigos que representam o objeto de interesse.

4.5. Seleção da Silhueta da Mão

No processo de seleção existe um problema de decisão. No caso de

objetos ou gestos da mão que são representados por silhuetas internas e

externas, qual ou quais silhuetas considerar? Considerar apenas a silhueta

externa? Ou considerar todas as silhuetas que o objeto apresenta? A alternativa

Page 64: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 64

escolhida para lidar com este problema afeta diretamente a abordagem utilizada

no reconhecimento, trazendo as suas vantagens e desvantagens.

No caso particular dos gestos da mão, sabe-se que um dos objetos mais

representativos na imagem é a própria mão. O tamanho da silhueta externa da

mão é muito maior do que as silhuetas internas e do que os ruídos presentes

nas imagens. Com base nesta hipótese a detecção da silhueta da mão é feita

considerando, em número de pontos, a maior silhueta encontrada na imagem.

Para expandirmos nossa aplicação para reconhecer duas mãos,

necessitaremos de uma abordagem diferente e mais complexa. A abordagem

utilizada neste trabalho é baseada apenas na silhueta externa de uma única

mão.

A Figura 23 ilustra os resultados da aplicação de detecção de silhueta nas

imagens das Figuras 18 e 19 utilizando o critério de só considerarmos a maior

Lista de Códigos.

Page 65: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 65

Figura 23 - Resultados do processo de detecção da silhueta da mão aplicados à imagem

da Figura 18 em (a), e às imagens da Figura 19 em (b). Em (a) e (b) são removidos os

ruídos e em (b) não é considerada a silhueta interna.

As imagens da Figura 23 representam o resultado final da etapa de

detecção de silhueta. A amostragem dos pontos da silhueta pode ser mudada

para se ter uma amostragem menor, descartando assim um número maior de

pontos da silhueta. Esta subamostragem pode ser feita sem afetar a morfologia

da mão até um certo limite. A Figura 24 mostra a detecção de uma silhueta com

uma subamostragem contendo um quinto dos pontos originalmente detectados.

Page 66: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Detecção de Silhueta 66

Figura 24 - Subamostragem dos pontos na silhueta detectada. A imagem à direita tem

um quinto dos pontos da imagem à esquerda.

4.6. Considerações Finais do Capítulo

A abordagem utilizada é baseada na silhueta externa da mão; uma única

silhueta é considerada e a etapa de identificação de características no

reconhecimento é feita sobre o conjunto de pontos que representa a silhueta da

mão.

A decisão de levar em conta as silhuetas externas certamente restringe e

ao mesmo tempo facilita os processos que serão realizados na etapa do

reconhecimento. É possível utilizar somente silhuetas externas em uma grande

quantidade de aplicações, mas pode-se realizar tarefas de reconhecimento mais

complexas utilizando mais informações provenientes do processo de detecção

de silhueta.

Page 67: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

5 Reconhecimento

No decorrer deste capítulo é proposto um modelo para o reconhecimento

de gestos da mão baseado na silhueta. Além dos gestos, são detectadas a

posição e a orientação dos dedos. Num primeiro passo são localizadas algumas

feições na silhueta, depois essas feições são avaliadas para reconhecer os

dedos e finalmente alguns gestos pré-estabelecidos são reconhecidos. Na

próxima seção é apresentada uma motivação geral do reconhecimento, na qual

são definidos alguns parâmetros de interesse. Em seguida é apresentado um

breve resumo do modelo e finalmente, de forma mais detalhada, cada um de

seus passos, os resultados obtidos e algumas considerações finais.

5.1. Motivação

Os dois capítulos anteriores foram focados na localização de regiões de

interesse nas imagens analisadas. O próximo passo é observar mais de perto

essas regiões e encontrar algumas características que permitam extrair

informações relevantes acerca da posição dos dedos e do gesto que está sendo

mostrado.

Existem dois tipos de gestos que poderiam ser reconhecidos na mão. Os

gestos estáticos são aqueles que mostram apenas uma determinada postura da

mão; o significado está na forma ou postura que apresentam. Os gestos

dinâmicos são aqueles em que seu significado depende também do movimento

que a mão descreve. Nos gestos estáticos é importante apenas saber qual é o

gesto da mão a cada quadro, independentemente do tempo ou do número de

quadros. Nos gestos dinâmicos é importante analisar o comportamento da mão

ao longo do tempo. Certamente os gestos dinâmicos podem ser reconhecidos ou

inferidos a partir de um conjunto de gestos estáticos. Por exemplo, a detecção

de movimento poderia ser reconhecida a partir de um conjunto de gestos

estáticos ou do comportamento dos gestos estáticos em um certo período de

tempo. No presente trabalho o objetivo desta etapa é construir um módulo para o

reconhecimento de alguns gestos básicos. As aplicações utilizam tais gestos

Page 68: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 68

básicos de forma particular e de acordo com suas necessidades. Portanto, nesta

etapa são compreendidos apenas os gestos estáticos, os quais serão

denominados no texto simplesmente gestos.

O reconhecimento dos gestos é feito com base no número de dedos que

em um determinado momento a silhueta da mão apresenta. Portanto, para

reconhecer os gestos é importante determinar com claridade o número de dedos

presentes e também suas características, tais como sua posição, orientação e os

pontos que os representam na silhueta. Levando em conta os dedos, existe um

grande número de gestos que podem ser construídos, mas serão apenas 4 os

gestos básicos reconhecidos neste trabalho. Esses gestos tentam ser os mais

básicos possíveis, de forma que eles possam servir para construir ou reconhecer

tipos de gestos mais complicados nas aplicações.

Na literatura apresentada no segundo capítulo vimos que não existe uma

única abordagem para reconhecer gestos da mão em imagens. Algumas

técnicas utilizam forma, outras forma e cor, e outras utilizam ainda transformadas

para o reconhecimento de gestos da mão. Apesar dessa diversidade, existem

alguns parâmetros de interesse que são considerados pela maioria dessas

abordagens. Entre eles podemos citar:

• Número de dedos presentes na mão a cada quadro.

• Posição e orientação dos dedos presentes com relação à imagem.

• Posição e orientação dos dedos com relação à mão.

• Posição e orientação da mão.

• Posição 3D dos pontos que representam os dedos.

Os parâmetros considerados mais importantes neste trabalho são os três

primeiros. Descartamos as abordagens tridimensionais por serem

computacionalmente caras. Além disso, o reconhecimento 3D é condicionado e

direcionado a certo tipo específico de aplicações.

O processo de reconhecimento de gestos apresentado aqui possui três

passos básicos. No primeiro passo a silhueta é analisada para procurar pontos

que apresentem características dos dedos. Essa procura se baseia em medidas

de curvatura que indicam alguns pontos candidatos. Alguns cuidados são

levados em conta de maneira que o processo de detecção de feições seja

dirigido a procurar, em sua maioria, os pontos que representam os dedos.

Page 69: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 69

No segundo passo esses pontos são analisados de maneira a selecionar

aqueles pontos que melhor se assemelhem às características que procuramos

nos dedos. Além disso, as posições e as orientações dos dedos são calculadas.

No último passo, os gestos são inferidos levando em conta o número e a

característica dos dedos. Esses gestos são selecionados de um conjunto de

gestos pré-estabelecidos para o reconhecimento. Nas próximas seções é

apresentado em mais detalhe cada um dos passos do processo de

reconhecimento de gestos.

5.2. Detecção de Feições

Na silhueta da mão existem duas feições a serem consideradas para o

reconhecimento dos gestos (Figura 25): as pontas dos dedos, chamadas

também de Picos (“P”), e as junções entre os dedos, denominados Vales (“V”).

Identificar as regiões da silhueta que contêm esses pontos é importante para que

o reconhecimento possa ser realizado satisfatoriamente.

O objetivo desta etapa é identificar na silhueta da mão os conjuntos de

pontos que mais se assemelhem com os Picos e Vales. Nesse processo não são

encontrados diretamente os Picos nem os Vales, mas sim conjuntos de pontos

com características similares nos quais também estão incluídos os Picos e

Vales.

Figura 25 - Feições consideradas para o reconhecimento dos gestos. As pontas dos

dedos são chamadas de Picos (“P”) e as junções entre eles de Vales (“V”).

O problema de se localizar os Picos e Vales na silhueta de uma mão pode

ser reduzido ao problema de se encontrar cantos (corners) em curvas planares.

Em nosso caso as curvas possuem muito ruído, como ilustra a Figura 25. O

ruído faz com que as medidas de curvatura, baseadas em derivadas locais, não

Page 70: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 70

sejam adequadas. Muitos pontos ao longo da curva têm alto valor de curvatura e

seriam erroneamente considerados como pontos de interesse.

O método utilizado para encontrar os Picos e Vales na silhueta deve ser

insensível aos ruídos sem perder os verdadeiros pontos de interesse. A literatura

apresenta diversos algoritmos para calcular curvaturas na presença de ruídos.

Nos algoritmos descritos no trabalho de Liu e Srinath [25], por exemplo, a

medida de curvatura é calculada através de um ângulo. Quando um ponto é

processado, o valor de curvatura é calculado levando em conta um conjunto de

pontos subseqüentes e anteriores a esse ponto na silhueta. Assim, dependendo

do número de pontos a serem considerados, essa medida de curvatura pode ser

pouco afetada pelos ruídos de alta freqüência presentes ao longo da silhueta.

Apesar desses algoritmos poderem ser utilizados para nossos propósitos,

neste trabalho é utilizado um cálculo de curvatura um tanto diferente que

considera um número menor de pontos vizinhos na silhueta e será aqui chamado

de k-curvatura. Quando um ponto Pi é processado, seu valor de k-curvatura é o

ângulo i

α formado pelos vetores )( PiP i −+ e )( PiP i −− , ilustrados na Figura

26.(a).

Diferentemente dos algoritmos descritos por Liu e Srinath [17], nos quais

vários pontos são considerados para o cálculo da curvatura, em nosso cálculo

são levados em conta dois vetores (Figura 26.(a)) formados por um único ponto

subseqüente )( kiP + e outro anterior )( kiP − ao ponto Pi na silhueta, sendo k um

inteiro positivo. Observando a Figura 26.(a) pode-se notar que utilizando esses

dois vetores a tendência é diminuir o efeito do ruído ao longo da silhueta e ter

ângulos menores onde a k-curvatura é maior. Em função do valor de k , do qual

depende o tamanho dos vetores, o problema dos ruídos ao longo da silhueta

pode afetar pouco o cálculo da k-curvatura.

Page 71: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 71

Figura 26 - Medida de k-curvatura em cada ponto da silhueta. (a) Para cada ponto iP é

escolhido um ponto subseqüente )( kiP + e outro anterior )( kiP − que formam dois vetores.

A k-curvatura é o ângulo i

α formado por esses dois vetores e k é um inteiro positivo.

(b) O parâmetro k deve ser ajustado de maneira que as regiões de interesse sejam

preferentemente detectadas durante o cálculo da k-curvatura.

Para detectar principalmente as regiões com Picos e Vales é necessário

levar em conta algumas observações referentes à forma da mão e explorar as

características dos dedos na silhueta. Observando a Figura 26.(b) pode-se ver

que os dedos são representados por um número considerável de pontos na

silhueta, e esses pontos estão distribuídos de modo a formar regiões cilíndricas

ou semi-cápsulas ao longo da silhueta. Assim, acrescentando o valor de k até

um certo valor, é possível formar vetores suficientemente longos de modo que a

característica dos dedos estendidos seja aproveitada na detecção dos Picos e

Vales. Esses vetores são mostrados Figura 26.(b). É importante atribuir um valor

a k que considere os dedos estendidos, mas que também possa ser flexível

quando os dedos não estejam totalmente estendidos, por isso a escolha do valor

de k é importante para o aproveitamento dessa característica na detecção de

feições.

No algoritmo de detecção de feições, além da escolha do valor de k , é

necessário considerar um limiar αT para o valor da k-curvatura. Quando um

ponto iP é processado são construídos dois vetores iki PP −+ )( e iki PP −− )( , e o

ânguloi

α entre os vetores é calculado. Se o menor ângulo formado entre os

dois vetores for menor ou igual ao valor do limiar αT , o ponto é considerado

Page 72: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 72

como feição. Nesta etapa esses pontos não podem ser ainda considerados

como sendo Picos ou Vales, mas apenas como feições ou pontos de interesse.

A seguir, na Figura 27, são mostrados os resultados da aplicação do

algoritmo em imagens com diferentes posturas da mão. Os pontos reconhecidos

como sendo feições são aqueles destacados na silhueta, em vermelho para os

Picos e azul para os Vales. Os valores utilizados nos parâmetros de teste foram

21=k e °= 60αT . Como se esperava, vários pontos foram considerados como

sendo feições da silhueta, pois os pontos das regiões vizinhas aos Picos e Vales

possuem valores de k-curvatura e características semelhantes. A Figura 27.(b)

mostra a detecção das feições com ligeiras mudanças de escala na silhueta da

mão.

Figura 27 - Resultado da aplicação do algoritmo de detecção de feições à silhueta da

mão. As feições são os pontos ressaltados na silhueta. (a) Mostra duas posturas da mão

com os dedos estendidos Os valores utilizados para o teste foram 21=k e °= 60αT .

(b) Mesmo com pequenas mudanças de escala, aproximando-se a mão da câmera, e

mantendo os mesmos parâmetros que em (a) pode-se ver a detecção das feições.

Page 73: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 73

5.3. Detecção dos Dedos

Para que a detecção dos dedos seja um processo confiável e robusto, é

importante ter como fonte feições que sempre possam ser encontradas na

silhueta da mão. Os pontos detectados como sendo feições estão distribuídos

em conjuntos isolados, os quais agrupam pontos com características

semelhantes e representam um Pico ou um Vale na silhueta.

Na Figura 27 pode-se ver que todos os Picos da mão são detectados, mas

não são detectados todos os Vales. A k-curvatura dos Vales é um valor que

depende da abertura da junção entre os dedos e, visto que essa abertura pode

ser alterada, os parâmetros para a detecção das feições nem sempre garantem

sua detecção. Na Figura 27(b) pode-se ver um Vale que não é detectado porque

a abertura da junção é maior do que o limiar para a k-curvatura. Já que os Vales

nem sempre são detectados na silhueta, eles não são considerados fontes

confiáveis para o reconhecimento. Desse modo, no processo de detecção dos

dedos, os pontos que representam os Vales são descartados.

A detecção de um ponto que representa um dedo é o processo que analisa

cada conjunto de pontos que representa os Picos e escolhe o ponto que possui o

maior valor de k-curvatura dentro de cada conjunto. Assim, para cada conjunto

de pontos que representa os Picos é detectado um ponto que representa um

dedo. Na Figura 28 são mostrados os resultados desse processo aplicados a

uma mão com três dedos estendidos. Agora existe apenas um ponto

representando cada dedo.

Figura 28 - Resultado do processo de detecção dos dedos da mão. Os pontos estão

ressaltados na silhueta.

Além da posição 2D do ponto que representa o dedo, nesta etapa também

é calculada a direção de cada um dos dedos. A direção é representada por uma

linha que passa através do dedo e aproxima sua direção (Figura 29(a)). Cada

Page 74: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 74

ponto iP que representa um dedo teve como referência dois pontos, um anterior

)( kiP − e outro posterior )( kiP + , para o cálculo da sua k-curvatura; esses pontos

também serão úteis para o cálculo da direção do dedo que representa o ponto

iP .

Na construção da linha existem duas etapas: na primeira são construídos

alguns pontos de referência ao longo do dedo e, na segunda, esses pontos são

utilizados para construir a linha. Na primeira etapa, o trajeto ][ )( iki PP − e o trajeto

][ )( kii PP + da silhueta são divididos por n pontos igualmente espaçados. Depois,

partindo do ponto iP , são formados n pares de pontos juntando pontos a cada

lado do ponto iP (Figura 29(b)). Uma vez feito isso, os pontos de referência

procurados são todos os pontos médios entre cada par de pontos. Na Figura

29(b) é mostrado um exemplo com 4 pares de pontos; os pontos de referência

são marcados com uma “x”. Na segunda etapa, tendo esses pontos de

referencia “x” e o ponto iP , é construída a linha de direção utilizando o método

de Mínimos Quadrados descrito por Weisstein [43]. Assim, a direção do dedo é a

linha que melhor se aproxima dos pontos de referência e que passa pelo ponto

iP .

Figura 29 - Cálculo da direção dos dedos. (a) A direção aproximada de cada um dos

dedos é mostrada como sendo uma linha. (b) A linha que representa a direção do dedo é

a que passa pelo ponto iP e que melhor aproxima os pontos de referência. Os pontos de

referência “x” são os pontos médios de cada par de pontos que estão ligados por uma

linha. O ângulo θ é o valor que representa a orientação da linha de direção com respeito

à horizontal.

Page 75: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 75

Para representar numericamente a direção de cada dedo é utilizado o

ângulo θ que a linha faz com algum eixo principal da imagem. Neste caso o eixo

principal escolhido foi a horizontal; assim, direções para a esquerda terão

ângulos maiores de 90 graus e direções para a direita terão ângulos menores de

90 graus.

5.4. Reconhecimento de Gestos

Antes de falar do processo de reconhecimento é importante definir um

conjunto pré-determinado de gestos que serão reconhecidos. Conforme dito na

primeira parte deste capítulo, o conjunto de gestos será representado por

apenas 4 gestos da mão, os quais são mostrados na Figura 30. Esses gestos

por sua vez estão divididos em três classes: FECHADO, INDICE e ESTENDIDO.

O nome de cada uma das classes indica uma característica da mão com relação

aos dedos. FECHADO é uma classe de gesto que não apresenta nenhum dedo

estendido. Esse gesto, já considerando algumas aplicações, poderia ser utilizado

para indicar algum tipo de inatividade. INDICE é uma classe de gesto que

apresenta um ou dois dedos da mão estendidos. Esse gesto é utilizado

principalmente para interagir com as aplicações. INDICE engloba dois gestos

parecidos, os quais são chamados de INDICE_1 e INDICE_2, cuja única

diferença é a falta do dedo polegar em INDICE_1. ESTENDIDO é uma classe de

gesto que apresenta mais do que dois dedos estendidos.

O processo de reconhecimento dos gestos é um processo de classificação

baseado em feições locais situadas ao longo da silhueta da mão. Essas feições

são os pontos que representam os dedos e que foram calculados na etapa

anterior.

Para detectar um gesto é feita uma operação de comparação entre o

número de dedos detectados e o número de dedos presentes em cada um dos

gestos predefinidos para o reconhecimento. Nesta etapa se espera que os

únicos gestos utilizados sejam os 4 gestos previamente definidos. Dentre os 4

gestos reconhecíveis existe um gesto — FECHADO — que apenas possui

informação gestual e não possui parâmetros dos dedos e valores que possam

ser aproveitados.

Page 76: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 76

Figura 30 - Conjunto predefinido de gestos que são reconhecidos. Os 4 gestos são

divididos em três classes: FECHADO, INDICE e ESTENDIDO. FECHADO é uma classe

de gesto que não apresenta nenhum dedo estendido. INDICE representa uma classe

com dois tipos de gestos: INDICE_1 (dedo índice estendido) e INDICE_2 (dedo índice e

polegar estendidos). ESTENDIDO é uma classe de gesto que apresenta mais de dois

dedos na mão estendidos.

Quando não são detectados dedos na mão, o gesto inferido é o

FECHADO. Quando são detectados mais do que dois dedos na mão, o gesto

inferido é o ESTENDIDO. Se forem detectados um ou dois dedos, então,

dependendo do número dos dedos, é inferido um gesto da classe INDICE. Este

processo de inferência de gestos baseado no número de dedos pode também

ser representado como sendo o reconhecimento de tokens feito por um

Autômato Finito Determinista (Figura 31). Nesse autômato existe um único

símbolo no vocabulário, d, que significa “dedo”. Há 4 estados diferentes, sendo

três deles, q2, q3 e q4, estados finais ou de reconhecimento. O autômato só é

testado quando existem cadeias de símbolos d que podem ser reconhecidos. No

caso da mão FECHADA o autômato não é testado. Os estados de

reconhecimento q2, q3 e q4 correspondem aos gestos INDICE_1, INDICE_2 e

ESTENDIDO, respectivamente.

Page 77: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 77

Figura 31 - Autômato Finito Determinista que representa o processo de inferência dos

gestos com base no número de dedos “d” detectados na silhueta da mão. O único

símbolo do vocabulário é “d”, que significa “dedo”. Os estados de reconhecimento q2, q3

e q4 representam os gestos INDICE_1, INDICE_2 e ESTENDIDO, respectivamente.

Ao contrário dos gestos FECHADO e ESTENDIDO, nos gestos INDICE é

necessário descobrir qual dos dedos é o índice. No caso de ser detectado

apenas um dedo, este é assumido como sendo o índice. Quando dois dedos são

detectados, o dedo índice é aquele que está à direita do outro (isto se aplica à

mão direita). Já que os pontos da silhueta são armazenados na ordem anti-

horária, convém mencionarmos o conceito de Distância na Silhueta ),( ji PPDNS

como sendo o número de pontos da silhueta entre o ponto iP e o ponto jP .

Utilizando uma heurística simples podemos dizer que se 2/),( NPPDNS ji <

então iP é o dedo índice e está à direita de jP ; se não, jP é o dedo índice e

está à direita de iP . N é o número total de pontos da silhueta.

Como os gestos são inferidos com base em feições locais ao longo da

silhueta, diferentes gestos da mão com o mesmo número de dedos podem ser

inferidos como sendo um mesmo gesto. Se um gesto diferente aos gestos

predefinidos é mostrado, a resposta da inferência dos gestos será aquele gesto

predefinido que mais se assemelhe, em número de dedos, com o gesto sendo

analisado.

5.5. Resultados Parciais

Nesta seção são apresentados os resultados de alguns testes feitos com o

reconhecimento dos gestos da mão. Já que esse reconhecimento se baseia no

número de dedos reconhecidos, os primeiros testes foram direcionados para

Page 78: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 78

avaliar o resultado do número de dedos reconhecidos na mão e os demais

visaram avaliar o reconhecimento dos gestos predefinidos.

Para avaliar o reconhecimento do número de dedos foi considerado um

intervalo de tempo, de aproximadamente um minuto, contendo um determinado

número de quadros. Durante esse tempo, dependendo do número de dedos

testados, a mão foi mantida com um número específico de dedos. Ao final desta

etapa foi contabilizado o número de acertos e erros no reconhecimento dos

dedos. Com base nesses valores foram calculadas as porcentagens de acerto e

erro para cada número de dedos presente na mão. A Tabela 1 mostra os

resultados dos testes realizados para avaliar o reconhecimento do número de

dedos presente na mão.

Tabela 1 - Resultado dos testes feitos para a avaliação do reconhecimento do número de

dedos presente na mão. Para cada número de dedos é apresentada uma estatística

indicando o número e a porcentagem de acertos e erros ao longo do teste.

Para a avaliação do reconhecimento dos gestos predefinidos, da mesma

forma que no teste anterior, foi levado em conta um intervalo de tempo durante o

qual o gesto da mão foi mantido. Ao final, foi contabilizado o número de acertos

e erros no reconhecimento de cada um dos gestos. A Tabela 2 mostra os

resultados da avaliação para o reconhecimento dos gestos predefinidos.

Page 79: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Reconhecimento 79

Tabela 2 - Resultado dos testes feitos para a avaliação do reconhecimento dos gestos

predefinidos. Para cada um dos 4 gestos é apresentada uma estatística indicando o

número e a porcentagem de acertos e erros ao longo do teste.

5.6. Considerações Finais do Capítulo

Para a etapa do reconhecimento foi considerado apenas um conjunto de 4

gestos. Esses gestos procuram ser gestos básicos que ajudem no processo de

reconhecimento e permitam mostrar que, a partir de um conjunto pequeno,

podem ser construídas diferentes aplicações.

As únicas feições consideradas foram os Picos e Vales. A silhueta possui

mais informações relevantes que também podem ser consideras, mas requerem

abordagens mais especificas para procurar outras feições. Características

globais podem ser utilizadas como base para construir modelos de

reconhecimento mais sofisticados baseados na silhueta.

Neste trabalho procuramos caracterizar os gestos e posições com apenas

as feições de Picos e Vales. Apesar de serem só duas, muitos gestos podem

ser reconhecidos de forma estável.

Page 80: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

6 Aplicações

Neste trabalho, é importante implementar aplicações de interação em

tempo real para que seja possível avaliar a aplicabilidade das técnicas de Visão

Computacional descritas ao longo dos capítulos anteriores na interação homem-

máquina. Neste capítulo são apresentadas três aplicações de interação

baseadas em gestos da mão. Na primeira aplicação, é desenvolvido um

mecanismo de interação em que a posição do dedo índice e os gestos

reconhecidos são utilizados para movimentar o cursor e simular funções básicas

do mouse. Na segunda aplicação, a posição e a direção dos dedos são

utilizadas para definir direções de movimento, simulando assim as teclas de

direção do teclado. Juntamente com alguns gestos reconhecidos, essas direções

são aplicadas ao controle de algumas das principais funções de um vídeo game.

Na terceira aplicação o foco principal é a interação puramente gestual, ao

contrário das duas anteriores, em que são requeridas posições e direções dos

dedos. Nesta aplicação são reconhecidas duas mudanças específicas nos

gestos, as quais são aplicadas na movimentação de slides de apresentação.

6.1. Detalhes da Implementação

Aplicação, neste capítulo, significa o processo de mapear os gestos

reconhecidos para o controle e simulação de algumas funções básicas em

programas já existentes no computador. Para poder controlar funções básicas

nesses programas é necessário um mecanismo que permita simular os

controladores (drivers) de entrada, tanto o do mouse como o do teclado. Neste

capítulo, todas as aplicações foram implementadas no sistema Windows, porque

a plataforma SDK possui funções que permitem gerar eventos do mouse e do

teclado da mesma forma que são gerados nos seus controladores

convencionais. Os eventos gerados são automaticamente enviados para as

janelas ativas e processados por qualquer programa do sistema.

Page 81: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 81

6.2. Controlando o Cursor do Mouse

Nesta aplicação, os gestos, seus parâmetros e algumas combinações

destes são aplicados no controle do cursor de um mouse convencional.

Para simular o cursor do mouse é necessária a realização de duas tarefas

importantes. A primeira é movimentar o cursor e a segunda é simular os eventos

básicos utilizando os gestos reconhecidos. Portanto, nesta aplicação, numa

primeira parte é definido um mecanismo que, utilizando a posição do dedo

índice, define a direção do movimento e a posição do cursor ao longo do tempo.

Na segunda parte, é explicado que gestos e quais combinações destes foram

utilizados para simular os eventos básicos do mouse. Os eventos a simular

serão MOVIMENTAR, CLICK, CLICK_DUPLO, CLICK_DIREITO e ARRASTAR.

Existem diferentes formas de mapear as coordenadas da posição do dedo

detectado na imagem para as coordenadas da tela onde o cursor é exibido.

Como a resolução da imagem capturada pela câmera na maioria dos casos é

menor do que a resolução da tela, mecanismos de mapeamento direto, da

imagem para a tela, têm problemas de escala. Um pixel na imagem muitas vezes

representa um número maior de pixels na tela. Para evitar esse problema, nesta

aplicação optamos por um mecanismo de mapeamento relativo. Nesse

mecanismo, é necessário definir um ponto de referência na imagem e, depois,

levando em conta a posição atual do dedo em relação a esse ponto de

referência, é calculada a direção do movimento e a posição final do cursor.

Na Figura 32 é esquematizado o mecanismo utilizado para movimentar o

cursor. Os pontos p1, p2 e p3 representam três posições diferentes (em quadros

diferentes) do dedo índice. Esses pontos, em relação o ponto de referência ‘O’,

formam três vetores, os quais indicam a posição do dedo em relação ao ponto

de referência. As coordenadas (x, y) dos vetores são calculadas levando em

conta o ponto de referência ‘O’ como sendo a origem. A cada quadro, a direção

do movimento no cursor é dada pelas coordenadas (x, y) do vetor e a velocidade

(ou salto) do movimento é dado pela norma do vetor.

Page 82: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 82

Figura 32 - Mecanismo de movimento no cursor. Para cada ponto p1, p2 e p3, a direção

do movimento é dada pelas coordenadas (x,y) do vetor e a velocidade do movimento é

dada pela norma do vetor. Em torno do ponto de referência O existe uma área de

inatividade na qual os pontos que caem nessa área (p2) não ocasionam nenhum

movimento.

Dada essa configuração, a única forma de manter o cursor estático seria

com vetores cujas normas fossem zero. Isto na prática é difícil de se conseguir,

pois implicaria manter o dedo totalmente parado no ponto O. Além disso, na

etapa de detecção dos dedos sempre existem, entre os quadros, pequenas

variações na posição detectada. Considerando este fato, em volta do ponto O foi

definida uma área de inatividade onde os pontos que caem nessa área (p. ex., o

ponto p2) não ocasionam movimento no cursor. Os únicos gestos que geram o

evento MOVIMENTAR são o INDICE_2 e o INDICE_1 (estes gestos estão

ilustrados na Figura 30). No caso do gesto INDICE_2, ele somente movimenta o

cursor e não executa nenhum evento. No caso do gesto INDICE_1, o movimento

é feito combinado ao evento ARRASTAR. A Figura 33 mostra o gesto INDICE_2

indicando uma direção específica de movimento para o cursor. Isto significa que,

a partir da sua última posição, o cursor se movimenta na direção indicada pelo

vetor e com saltos do tamanho da sua norma.

Page 83: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 83

Figura 33 - Mecanismo de movimento do cursor. O vetor formado entre a posição do

dedo índice e o ponto de referência indica a direção do movimento. A cada quadro este

vetor é somado à última posição do cursor.

Para simular o evento CLICK_DIREITO foi utilizado o gesto ESTENDIDO

(mostrado na Figura 30). Assim, cada vez que este gesto é apresentado, o

cursor do mouse se mantém na sua última posição e invoca o evento

CLICK_DIREITO do mouse.

Para simular o evento CLICK foi utilizada uma seqüência dos gestos

INDICE_2 e INDICE_1. Cada vez que existe uma seqüência de mudança do

gesto INDICE_2 para o gesto INDICE_1 e deste novamente para INDICE_2,

essa seqüência é considerada como sendo um evento CLICK. Este depende do

tempo e, para ser validado, a seqüência dos gestos deve ser feita dentro do

intervalo de tempo T predefinido, como mostra a Figura 34. A partir do gesto

corrente (atual) é analisada a seqüência de gestos anteriores. Se, dentro do

intervalo de tempo definido existe o padrão de mudança procurado, então e

evento CLICK é validado.

Figura 34 - Padrão de mudança do evento CLICK. Na nossa aplicação, o intervalo de

tempo foi definido em número de quadros, T=20. Entre os gestos INDICE_2 pode haver

vários gestos INDICE_1. A partir do gesto corrente (atual) é analisada a seqüência em

busca do padrão de mudança requerido.

Page 84: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 84

Para simular o evento ARRASTAR foi utilizado o gesto INDICE_1. O

evento acontece enquanto o gesto INDICE_1 é mantido. Para validar o evento

ARRASTAR, o gesto INDICE_1 deve ser mantido além de um determinado

tempo t (Figura 35). Este tempo é importante para poder diferenciar se o gesto

INDICE_1 mostrado indica um evento ARRASTAR ou simplesmente faz parte da

seqüência do evento CLICK.

Figura 35 - Evento ARRASTAR. O evento acontece enquanto o gesto INDICE_1 é

mantido. Para validar o evento, o intervalo de tempo em que o gesto INDICE_1 é

mantido deve ser maior do que o t predefinido. Na nossa aplicação o tempo foi t =T-5. O

tempo t está relacionado com o tempo T.

O evento CLICK_DUPLO é simplesmente uma seqüência de dois

eventos CLICK consecutivos. Na Tabela 3 são mostrados os resultados de um

teste de reconhecimento feito para os eventos CLICK e CLICK_DUPLO.

Gesto Total de

Tentativas

Total de

Acertos

Total de

Erros

Porcentagem

de Acerto

Porcentagem

de Erro

CLICK 300 295 5 98.4 % 1.6 %

CLICK_D 200 185 15 92.5 % 7.5 % Tabela 3 - Resultado do teste de reconhecimento dos eventos CLICK e CLICK_DUPLO.

Na Figura 36 é mostrado o diagrama de fluxo do controle do cursor. A

entrada é sempre um gesto reconhecido e os eventos são gerados dependendo

do gesto que no momento está sendo processado. O evento CLICK é validado

para diferenciar o evento CLICK do evento MOVIMENTAR. Também o evento

ARRASTAR é validado para diferenciar se o gesto INDICE_1 é apenas parte da

seqüência do evento CLICK.

Page 85: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 85

Figura 36 - Diagrama de fluxo do controle do cursor do mouse. Os eventos são validados

dependo do gesto que está sendo processado. O evento CLICK é validado para

diferenciar o CLICK do evento MOVIMENTAR. O evento ARRASTAR é validado para

diferenciar se o gesto INDICE_1 indica o evento ARRASTAR o simplesmente faz parte

da seqüência do CLICK.

A seguir são apresentadas algumas imagens que mostram a

implementação do controle do cursor feita para controlar o mouse do sistema

Windows. Estas imagens mostram os gestos sendo mapeados em eventos do

mouse, o que permite interagir com vários programas suscetíveis a esses

eventos.

Figura 37 - Gesto ESTENDIDO sendo mapeado para o evento CLICK_DIREITO do

mouse no sistema Windows. Ao gerar o evento no arquivo selecionado, é mostrado o

menu disponível no arquivo.

Page 86: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 86

Figura 38 - Gesto INDICE_2 sendo utilizado para movimentar o ponteiro do mouse.

Utilizando o gesto INDICE_2 podem-se selecionar itens do menu.

Figura 39 - Gesto INDICE_1 sendo mapeado para o evento ARRASTAR, o qual é

utilizado para desenhar letras no PAINT.

6.3. Controlando um Jogo de Computador

Nesta aplicação o objetivo principal é simular algumas das principais

funções de um vídeo game (AirStrike II). Nesta aplicação também há duas

tarefas a cumprir no que se refere ao movimento e aos eventos que devem ser

gerados. A posição e a direção do dedo índice serão utilizadas para definir

quatro possíveis direções de movimento. Tais direções serão: ESQUERDA,

DIREITA, PARA_FRENTE, PARA_TRAS. Com respeito aos eventos que devem

ser gerados, os gestos reconhecidos serão mapeados para simular os eventos

de ATIRAR, MUDAR_ARMA e SOLTAR_EXPLOSIVO.

O mecanismo utilizado para calcular a direção do movimento é similar ao

empregado na aplicação anterior. As direções PARA_FRENTE e PARA_TRAS

são definidas pela posição do dedo índice com respeito a um ponto de

refêrencia. As direções ESQUERDA e DIREITA são definidas pelo valor do

ângulo da direção do dedo com relação à horizontal.

Na Figura 40(a) são apresentadas três possíveis posições p1, p2 e p3 do

dedo índice, um ponto de referência O e uma área de inatividade que se estende

Page 87: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 87

ao longo do eixo horizontal, em volta do ponto de referência. Se a posição (x, y)

do dedo está fora da área de inatividade, quer dizer que existe movimento.

Dependendo de se a coordenada y da posição do dedo é maior (ex. p3) ou

menor (ex. p1) do que a coordenada y do ponto de referência, inferem-se as

direções PARA_FRENTE e PARA_TRAS, respectivamente. No caso do ponto

p2 não se infere nenhum movimento.

O valor da direção do dedo índice é dado por um ângulo aproximado que o

dedo faz com a horizontal (cf. Capítulo 5). Os vetores (p1, p2 e p3)

apresentados na Figura 40(b) representam diferentes direções do dedo índice.

Se o valor do ângulo é menor (ex. p3) do que um valor α (ângulo limite da área

de inatividade), a direção do movimento inferida é a DIREITA. Se o ângulo for

maior (ex. p1) do que α− , a direção de movimento inferida é a ESQUERDA.

Para as direções próximas ao eixo vertical (ex. p2) não existe movimento.

Figura 40 - Mecanismo utilizado para calcular a direção do movimento. (a) Mecanismo

utilizado para calcular as direções PARA_FRENTE e PARA_TRAS. (b) Mecanismo

utilizado para calcular as direções DIREITA e ESQUERDA. O valor utilizado na nossa

implementação foi °= 75α .

No que se refere aos eventos que devem ser gerados, foram empregados

alguns gestos e uma combinação destes. Para simular o evento ATIRAR, foi

utilizado o gesto INDICE_1. O evento ATIRAR é mantido enquanto o gesto

INDICE_1 também é mantido. Este gesto é utilizado da mesma maneira como foi

usado no evento ARRASTAR da aplicação anterior (veja as Figuras 41(a) e

42(a)).

Existe a possibilidade de se selecionar a arma com a qual se quer atirar.

Para simular o evento MUDAR_ARMA foi utilizada uma seqüência específica

Page 88: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 88

dos gestos INDICE_2 e INDICE_1. Neste evento foram empregados os gestos

da mesma maneira que no evento CLICK da aplicação anterior. Para validar o

evento deve existir uma seqüência de gestos que começa em INDICE_2, muda

para INDICE_1 e novamente muda para INDICE_2.

Além da arma convencional, existe a possibilidade de se soltar explosivos

que são ganhos no transcurso do jogo. Para simular o evento

SOLTAR_EXPLOSIVO foi utilizado o gesto ESTENDIDO (Figura 42(b)).

A seguir são apresentadas algumas imagens que mostram cenas do jogo

controlado com os gestos reconhecidos. Nas imagens são mostrados os eventos

gerados de acordo com a direção e a posição do dedo índice e os gestos

reconhecidos.

Figura 41 - (a) Geração do evento ATIRAR utilizando o gesto INDICE_1. A posição e a

direção do dedo índice não indicam movimento. (b) Movimentação do helicóptero

utilizando o gesto INDICE_2. A posição e a direção de dedo indicam os eventos

PARA_FRENTE e PARA_DIREITA . Neste caso não é gerado o evento ATIRAR.

Page 89: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 89

Figura 42 - (a) Utilizando o gesto INDICE_1 para gerar o evento ATIRAR e ao mesmo

tempo movimentar o helicóptero. A posição e a direção do dedo indicam a direção do

movimento PARA_TRAS e PARA_ESQUERDA. (b) Gesto ESTENDIDO sendo utilizado

para gerar o evento SOLTAR_EXPLOSIVO.

6.4. Interação Gestual

Ao contrário das duas aplicações anteriores, nas quais foram consideradas

as informações referentes ao dedo índice, nesta aplicação serão consideradas

apenas informações gestuais. Nesta aplicação são reconhecidas duas

mudanças específicas nos gestos para gerar dois eventos do teclado, que, neste

caso, são aplicados ao movimento de slides de apresentação (PowerPoint). Os

eventos que são reconhecidos, analisando-se a mudança nos gestos, são

AVANÇAR e RECUAR. Cada vez que esses eventos são validados, são gerados

eventos do teclado que, na configuração padrão, controlam o avanço e recuo

nos slides.

O evento AVANÇAR é gerado cada vez que existe uma mudança do gesto

FECHADO para o gesto ESTENDIDO. Este evento valida a mudança nos

gestos, isto é, se num determinado momento estamos com a mão fechada e

logo abrimos a mão mostrando os cinco dedos, como o indica o gesto

ESTENDIDO, é gerado o evento AVANÇAR.

O evento RECUAR é gerado de maneira similar ao evento AVANÇAR. O

ponto de partida é também o gesto FECHADO, com a diferença de que a

mudança deve ser feita para o gesto INDICE_1 ou INDICE_2. Se num

determinado momento estamos com a mão fechada e logo abrimos a mão

mostrando o gesto INDICE_1 ou o gesto INDICE_2, o evento RECUAR é

gerado.

Page 90: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 90

Existem outras mudanças nos gestos que podem gerar outros eventos,

mas foram somente duas as utilizadas. Estas seqüências de gestos têm a

particularidade de terem o mesmo ponto de partida (o gesto FECHADO). Na

Figura 43 são mostrados os diferentes estados da aplicação como sendo um

autômato finito. O autômato é composto por quatro estados; dois estados não

terminais q0 e q1 e dois estados terminais q2 e q3, os quais geram os eventos

AVANÇAR e RECUAR, respectivamente. As transições entre os estados

representam os gestos que são mostrados ao longo do tempo. O estado inicial

no autômato é o estado q0.

Figura 43 - Estados da aplicação representados como sendo um autômato finito de

quatro estados. Os estados q2 e q3 geram os eventos AVANÇAR e RECUAR,

respectivamente.

A seqüência que gera qualquer um dos dois eventos passa pelo estado q1.

Dependendo do gesto da transição pode-se se chegar aos estados q2 ou q3,

gerando os respectivos eventos. Isto quer dizer que qualquer um dos dois

caminhos que geram os eventos passa pela mão fechada. Depois que os

eventos são gerados, volta-se ao estado inicial no qual novamente são

analisados os gestos subseqüentes. Antes de se voltar ao estado inicial, existe a

possibilidade de se definir um retardo na transição, esperando-se assim que o

evento do teclado seja gerado pelo sistema antes de voltar novamente ao estado

inicial.

A seguir são apresentadas duas imagens que mostram a geração dos

eventos AVANÇAR e RECUAR na nossa implementação para mexer slides no

PowerPoint.

Page 91: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 91

Figura 44 - Geração do evento AVANÇAR. A mudança do gesto (a) FECHADO para o

gesto (b) ESTENDIDO gera o evento AVANÇAR, que é refletido na (c) tela do monitor.

Figura 45 - Geração do evento RECUAR. A mudança do gesto (a) FECHADO para o

gesto (b) INIDICE_2 gera o evento RECUAR, que é refletido na (c) tela do monitor.

6.5. Conclusões Parciais

Na implementação das três aplicações foram cumpridos todos os

requisitos funcionais e não funcionais descritos no capítulo 2. Os dedos e os

gestos foram adequadamente detectados, identificados e rastreados em tempo

real, permitindo nos três casos interações maiores aos 20 quadros por segundo

(20 Hz).1

No que diz respeito ao ambiente e às condições de iluminação, para estas

aplicações não foi feita nenhuma mudança que favoreça o seu desempenho. Em

nenhuma das aplicações foram incluídas luzes ou ambientes especiais para a

interação. Podemos dizer que houve uma adaptação ao ambiente e não uma

adaptação do ambiente para o funcionamento das aplicações. Tal adaptação

depende do ajuste dos parâmetros da subtração de fundo em cada ambiente.

A influência do ambiente e das condições de iluminação é maior quanto

maior for a área do ambiente capturada pela câmera. No caso da aplicação feita

para movimentar os slides, a influência do ambiente foi maior, gerando ruídos e

1 Alguns vídeos que mostram a interação nas três aplicações podem ser vistos em

www.tecgraf.puc-rio.br/~alain/current/

Page 92: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Aplicações 92

deformando a morfologia da mão capturada. Apesar disso, a detecção dos

dedos e o reconhecimento dos gestos foram cumpridos satisfatoriamente.

Para poder interagir adequadamente com as aplicações utilizando gestos,

principalmente no caso de usuários sem experiência, é preciso um pequeno

tempo de adaptação. Os principais problemas são referentes a algumas

posições, ângulos ou a extensão dos dedos, os quais, às vezes, impedem que

os gestos e os dedos sejam detectados. No geral, o conjunto de gestos é

pequeno e fácil de ser lembrado. A interação mais simples se dá na aplicação de

movimentar os slides.

Durante a interação e principalmente nas duas primeiras aplicações,

alguns erros na detecção dos gestos ocasionam eventos não esperados. Esses

erros acontecem devido a mudanças significativas no ambiente, as quais

acontecem muito esporadicamente.

Se considerarmos a idéia de utilizar gestos da mão para realizar algumas

tarefas comuns nos computadores pessoais, estas aplicações, mesmo com os

bons resultados obtidos, ainda estão longe de poder substituir os atuais

dispositivos de interação na medida que os usuários esperam ou com que estão

acostumados.

Page 93: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

7 Conclusões

Neste trabalho foi proposto um sistema em tempo real para a detecção e o

rastreamento de gestos da mão em ambientes de trabalho convencionais. Esse

sistema foi construído sobre a base de algoritmos de subtração de fundo e

detecção de silhueta. Três aplicações de demonstração foram implementadas

para provar a aplicabilidade da interação baseada em gestos da mão em

aplicações reais e em ambientes de trabalho convencionais.

Outro propósito do trabalho foi mostrar que sistemas de interação

baseados em Visão Computacional podem ser implementados em computadores

convencionais utilizando como dispositivos de captura e interação câmeras de

prateleira facilmente accessíveis 2. Além disso, foi demonstrado que é possível

construir o sistema de interação baseado em gestos da mão sem precisar de

equipamentos e marcadores colados na mão.

O modelo de segmentação via subtração de fundo utilizado neste trabalho

mostrou que é possível lidar com os problemas de mudanças e latências da

iluminação nos ambientes de interação. Alguns erros de segmentação

ocasionados pelo brilho e reflexão de alguns objetos foram atenuados nas

etapas posteriores à segmentação. Ainda que alguns erros tenham persistido, os

modelos de segmentação e detecção da silhueta utilizados neste trabalho

tiveram resultados satisfatórios.

Outra contribuição deste trabalho foi o estudo e a avaliação dos diferentes

algoritmos propostos para a subtração de fundo. Foram discutidos alguns dos

problemas mais comuns que fazem deste processo uma tarefa difícil de se

realizar. Este estudo contribui com o conhecimento sobre os principais

problemas e abordagens de solução da subtração de fundo baseada unicamente

em informações de cor. Foram descritos alguns métodos de solução que indicam

tendências a serem seguidas nos algoritmos de subtração.

2 Ao longo do desenvolvimento deste trabalho foram utilizadas duas câmeras Web, uma

Creative Nx Pro e uma Logitech QuickCam Pro, que têm um custo aproximado de U$ 50 e U$ 70,

respectivamente.

Page 94: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Conclusões 94

A partir do conjunto básico de gestos reconhecidos foi possível construir e

reconhecer gestos mais complexos nas aplicações. Eventos como CLICK,

ARRASTAR, AVANÇAR e RECUAR implicaram a análise da mudança dos

gestos ao longo do tempo.

A interação não está restrita a aplicações bidimensionais. Também podem

ser construídas aplicações tridimensionais utilizando os gestos reconhecidos.

No que se refere aos ambientes de trabalho convencionais, as condições

de iluminação e a presença e intensidade das sombras nas imagens definem os

parâmetros da segmentação. Uma dificuldade foi estabelecer mecanismos de

ajuste automáticos ou ao menos semi-automáticos que considerem essas

características. O mecanismo manual utilizado neste trabalho está sujeito a

erros, mas mostrou nas aplicações que, apesar disso, pode funcionar de forma

aceitável.

Muitas aplicações interessantes podem ser construídas utilizando gestos

da mão. A inclusão de câmeras em muitos dos aparelhos eletrônicos incrementa

o potencial de aplicação e justifica as pesquisas em interfaces digitais que não

requerem dispositivos intermediários de interação.

Apesar das dificuldades encontradas ao longo das fases deste trabalho, os

objetivos desejados, isto é, construir um sistema base de reconhecimento de

gestos e aplicações que provem sua aplicabilidade em ambientes de trabalho

convencionais, foram alcançados. As taxas de erro estiveram dentro de

intervalos que não comprometeram a usabilidade do sistema.

7.1. Trabalhos Futuros

Acreditamos que na pesquisa de algoritmos de Visão Computacional é

importante emular algumas características de nosso cérebro, principalmente no

que diz respeito à integração de diferentes fontes de informação para resolver

ambigüidades. No caso do processo de segmentação de fundo, seria

interessante criar uma abordagem que utilizasse uma combinação da informação

de cor com outros tipos de informações tais como forma, movimento, feições

locais, coerência espacial e temporal, para construir modelos mais robustos, os

quais possam se aplicar a qualquer tipo de ambiente e condições de iluminação.

Nas etapas de detecção de silhueta e reconhecimento é importante poder

considerar modelos de reconhecimento mais sofisticados, que permitam

Page 95: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Conclusões 95

reconhecer gestos mais complexos e principalmente abordagens que propiciem

uma interação envolvendo vários usuários e várias mãos.

Explorar os gestos em outro tipo de aplicações, por exemplo, análise de

movimento, permitiria reconhecer gestos dinâmicos na interação. É importante

também considerar os gestos em aplicações tridimensionais.

Finalmente, a interação natural entre os humanos tende a ser uma

comunicação multimídia. Os gestos são apenas uma parte dentro do conjunto de

meios utilizados. Meios como gestos faciais, posturas do corpo, fala, etc.

também são importantes na interação. Os computadores também deveriam ser

capazes de entender expressões, gestos e movimentos. Certamente essa

capacidade implicaria um grande potencial na interação entre humano e

computador.

Page 96: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Bibliografia

[1] BÉRARD, F., Computer Vision for the Strongly Coupled Human-Computer Interaction. Doctoral These, Université Joseph Fourier, Grenoble 1999.

[2] BUTLER, D., SRIDHARAM, S. and BOVE, M., Real–Time Adaptive Background Segmentation, MIT Media Laboratory, Queensland University of Technology.

[3] CHEUNG, K., KANADE, M., BOUGUET, J. and HOLLER, M., A Real Time System for Robust 3D Voxel Reconstruction of Human Motions, Proceedings of the 2000 IEEE Conference on Computer Vision and Pattern Recognition (CVPR '00), Vol. 2, June, 2000, pp. 714 - 720.

[4] CROWLEY, J., BÉRARD, F. and COUTAZ, J., Finger Tracking as an input device for augmented reality. International Workshop on Automatic Face and Gesture Recognition, Zurich, 1995.

[5] DEPARNIS, K., A Review of Vision-Based Hand Gesture, Department of Computer Science, York University, February, 2004.

[6] ELGAMAL, A., HARWOOD, D. and DAVIS, L., Non-parametric Model for Background Subtraction, 6th European Conference on Computer Vision, Dublin, Ireland, June 2000.

[7] FITZMAURICE, G., ISHII, H. and BUXTON, W., Bricks: Laying the Foundations of Graspable User Interfaces. ACM conference on Computer-Human Interaction, 1995.

[8] FREEMAN, W., ANDERSON, D. and BEARDSLEY, P., Computer Vision for Interactive Computer Graphics. IEEE Computer Graphics and Applications, 1998.

[9] FREEMAN, W. and WEISSMAN, C., Television control by hand gestures. International Conference on Automatic Face and Gesture Recognition, 1995.

[10] HALL, D. and CROWLEY, J., Tracking Fingers and Hands with a Rigid Contour Model in an Augmented Reality, International Workshop on Managing Interactions in Smart Environments, 1999.

Page 97: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Bibliografia 97

[11] HANDENBERG, C., Fingertracking and Handposture Recognition for Real-Time Human-Computer Interaction, Master These at Fachbereich Elektrotechnik und Informatik der Technischen Universität Berlin. 2001.

[12] HEAP, T., Real Time Hand Tracking and Gesture Recognition using Smart Snakes, In Interface to Real and Virtual Worlds, Montpellier, 1995.

[13] HONG, D. and WOO, W., A Background Subtraction for a Vision-based User Interface, ICICS-PCM 2003, Singapore, December 2003.

[14] HOPRASERT, T., HARWOOD, D., A Robust Background Subtraction and Shadow Detection. In the proceedings of the fourth Asian Conference on Computer Vision, 2000.

[15] HOPRASERT, T., HARWOOD, D. and DAVIS, L., A Statistical Approach for Real-Time Robust Background Subtraction and Shadow Detection. In Proceedings IEEE ICCV’99 FRAME-RATE Workshop, Greece, September 1999.

[16] ISARD, M. and BLAKE, A., Contour tracking by stochastic propagation of conditional density. In: ECCV, pages 343-356 Vol. 1, 1996.

[17] KIM, C., WOO, W. and JEONG, H., Determination of Optical Flow by Stochastic Model, Journal of the Korea Information Science Society, Nov. 1992.

[18] KUCH, J. and HUANG, T., Vision-based hand modeling and tracking for virtual teleconferencing and telecollaboration. International Symposium on Computer Vision, 1995.

[19] KULESSA, T. and HOCH, M., Efficient Color Segmentation under Varying Illumination Conditions. IEEE Image and Multidimensional Digital Signal Processing Workshop, 1998.

[20] KUMAR, P. and SENGUPTA, K., Foreground Background Segmentation using Temporal and Spatial Markov Processes, Department of Electrical and Computer Engineering, National University of Singapore, November 2000.

[21] KURATA, T., OKUMA, T. and KOUROGI, M. The Hand Mouse: GMM Hand-color Classification and Mean Shift Tracking. In Second International Workshop RATFG-RTS, Canada, 2001.

[22] LAPTEV, I. and LINDEBERG, T., Tracking of Multi-State Hand Models Using Particle Filtering and a Hierarchy of Multi-Scale Image Features, Technical report ISRN, 2000.

Page 98: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Bibliografia 98

[23] LEE, H. and KIM, J., An HMM-based threshold model approach for gesture recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999.

[24] LEE, J. and KUNII, T., Model-based analysis of hand posture. IEEE Computer Graphics and Applications, 1999.

[25] LIU, H. and SRINATH, M., Corner Detection from Chain-Codes. Pattern Recognition, pages 51-68 Vol. 1, 1990.

[26] MACCORMICK, J. and ISARD, M., Partitioned sampling, articulated objects and interface-quality hand tracking. European Conference on Computer Vision, 2000.

[27] OKA, K., SATO, Y. and KOIKE, H., Real-time Tracking of Multiple Fingertips and Gesture Recognition for Augmented Desk Interface Systems, In IEEE Automatic Face and Gesture Recognition, Washington, D.C. May 2002.

[28] PAVLOVIC, V., SHARMA, R. and HUANG, T., Visual Interpretation of Hand Gestures for Human-Computer Interaction: A Review, IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 1997.

[29] QUECK, F., MYSLIWIEC, T. and Zhao, M., Finger Mouse: A freehand pointing interface. International Workshop on Automatic Face and Gesture Recognition, Zurich, 1995.

[30] REGH, J. and KANADE, T., Visual Tracking of high DoF articulated structures: An application to human hand tracking. In European Conference on Computer Vision, 1994.

[31] SATO, Y., KOBAYASHI, Y. and KOIKE, H., Fast Tracking of Hands and Fingertips in Infrared Images for Augmented Desk Interface. International Conference on Automatic Face and Gesture Recognition, Grenoble, 2000.

[32] SCHLENZIG, J., HUNTER, E. and JAIN, R., Vision Based gesture interpretation using recursive estimation. In Asilomar Conference on Signals, Systems and Computer, 1994.

[33] SEGEN, J., GestureVR: Vision-Based 3D Hand interface for Spatial Interaction, ACM Multimedia Conference, Bristol, 1998.

Page 99: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Bibliografia 99

[34] SERRA J., Image Analysis and Mathematical Morphology, 1982, London: Academic Press.

[35] STAFFORD-FRASER, J., Video-Augmented Environments, PhD thesis, Gonville & Caius College, University of Cambridge, 1996.

[36] STANER, T. and PENTLAND, A., Real-Time American Sign Language recognition from video using hidden Markov models, International Symposium on Computer Vision, Coral Gables, USA, 1995.

[37] STENGER, B., MENDOÇA, P. and CIPOLLA, R., Model-based 3D Tracking of an articulated hand. In IEEE Conference on Computer Vision and Pattern Recognition, 2001.

[38] TRUCCO, E. and VERRI, A., Introductory Techniques for 3-D Computer Vision, 1998 by Pretince Hall, Inc.

[39] UKITA, N. and KIDODE, M., Wearable Virtual Tablet: Fingertip Drawing on a Portable Plane-Object using an Active-Infrared Camera. International Conference on Intelligent User Interfaces, 2004.

[40] VAN, V. and VERWER, H., A Contour Processing Method for fast Binary Neighborhood, Signal Processing 1991.

[41] VIVECK, A. and MEGGIOLARO, M., Sign language recognition using competitive learning in the HAVNET neural network. MIT, 2000.

[42] VOLGER, C. and METAXAS, D., Towards scalability in ASL recognition: Breaking down sings into phonemes. In Gesture Workshop, 1999.

[43] WEISSTEIN, E., Least Squares Fitting. From MathWorld - A Wolfam Web Resource. http://mathworld.wolfram.com/LeastSquaresFitting.html

[44] WILSON, A. and BOBICK, A., Parametric hidden markov models for gesture recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999.

[45] WOO, W., KIM, N. and IWADATE, Y., Object Segmentation for Z-keying Using Stereo Images, In Proc. IEEE WCC-ICSP’2000, August. 2000.

[46] WU, Q. and JENG, B., Background subtraction based on logarithmic intensities, IEEE Pattern Recognition Letters, 2002.

Page 100: Michel Alain Quintana Truyenque Uma Aplicação de Visão ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005... · 5.2. Detecção de Feições 69 5.3. Detecção dos Dedos 73

Bibliografia 100

[47] WU, Y., LIN, J. and HUANG, T., Capturing natural hand articulation. In IEEE International Conference on Computer Vision, 2001.