DESENVOLVIMENTO DE UMA NOVA INTERFACE GESTUAL … · ii RESUMO Este trabalho apresenta o...
-
Upload
truongkhuong -
Category
Documents
-
view
220 -
download
0
Transcript of DESENVOLVIMENTO DE UMA NOVA INTERFACE GESTUAL … · ii RESUMO Este trabalho apresenta o...
TICIANO AUGUSTO CALLAI BRAGATTO
GRR20023959
DESENVOLVIMENTO DE UMA NOVA INTERFACE GESTUAL
USANDO PROCESSAMENTO DIGITAL DE VÍDEO PARA CONTROLE
INTERATIVO DE SISTEMAS COMPUTACIONAIS EM TEMPO REAL
Relatório final de atividades do Projeto Final de Curso do Curso de Engenharia Elétrica, Setor de Tecnologia, Universidade Federal do Paraná
Orientador: Prof. Dr. Evélio Martín Garcia Fernández
Co-Orientador: Prof. Marcus Vinícius Lamar, Ph. D.
CURITIBA
2006
ii
RESUMO
Este trabalho apresenta o desenvolvimento de uma nova interface homem-máquina,
que possibilita substituir o dispositivo apontador tradicional (mouse) pelo movimento e
mudança de posturas da mão. Ao mesmo tempo propõe a implementação de um
ambiente virtual que utiliza as duas mãos, criando uma experiência com múltiplos
apontadores. Isto é feito utilizando-se diversas técnicas de Visão Computacional – para
extrair algumas características da imagem - e Inteligência Artificial, para reconhecer
as características e classificá-las. Para operar o sistema necessita de apenas uma
webcam. O movimento do apontador é segue o movimento da mão, e os cliques são
executados conforme uma das quatro possíveis posturas é feita.
iii
SUMÁRIO
RESUMO ................................................................................................................................... ii SUMÁRIO................................................................................................................................. iii ÍNDICE DE FIGURAS ............................................................................................................. iv 1. INTRODUÇÃO ..................................................................................................................... 1 2. REVISÃO BIBLIOGRÁFICA .............................................................................................. 3
2.1. TRABALHOS ANTERIORES .................................................................................. 3 2.2. CARACTERÍSTICAS IMPORTANTES................................................................... 5
3. SISTEMA PROPOSTO......................................................................................................... 7 3.1. CONDIÇÕES DE CONTORNO DO SISTEMA..................................................... 10 3.2. SUBTRAÇÃO DE FUNDO..................................................................................... 12 3.3. SEGMENTAÇÃO DE COR DE PELE ................................................................... 14
3.3.1. Criação do Modelo de Tom de Pele ................................................................. 14 3.3.2. Detecção de Tom de Pele ................................................................................. 15
3.4. LOCALIZAÇÃO E RASTREAMENTO DAS MÃOS ........................................... 16 3.5. CLASSIFICAÇÃO DE POSTURA ......................................................................... 19 3.6. TRADUÇÃO PARA MOVIMENTO E CLIQUES DE MOUSE............................ 21
4. RESULTADOS OBTIDOS................................................................................................. 22 4.1. CAPTURA DO SINAL DE VÍDEO ........................................................................ 22 4.2. SUBTRAÇÃO DE FUNDO..................................................................................... 22 4.3. SEGMENTAÇÃO DE COR DE PELE ................................................................... 23 4.4. LOCALIZAÇÃO E RASTREAMENTO DAS MÃOS ........................................... 24 4.5. CLASSIFICAÇÃO DE POSTURA ......................................................................... 25 4.6. TRADUÇÃO EM MOVIMENTOS E CLIQUES DE MOUSE............................... 26 4.7. ESTUDO DE CASO 1: APONTADOR ÚNICO..................................................... 27 4.8. ESTUDO DE CASO 2: APONTADOR MÚLTIPLO ............................................. 27
5. CONCLUSÃO ..................................................................................................................... 28 5.1. TRABALHOS FUTUROS....................................................................................... 29
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................... 30
iv
ÍNDICE DE FIGURAS
FIGURA 1 – FLUXOGRAMA GERAL DO SISTEMA........................................................... 9 FIGURA 2 – A) IMAGEM ORIGINAL; B) IMAGEM DE FUNDO; C) QUADRO DIFERENÇA; D) DIFERENÇA EM ESCALA DE CINZA; E) MÁSCARA BINÁRIA ...... 13 FIGURA 3 – (A) MÁSCARA ANTES E (B) DEPOIS DA SEGMENTAÇÃO DE CORES 16 FIGURA 4 – (A) REGIÕES EXISTENTES E (B) REGIÕES PÓS FILTRAGEM ................ 17 FIGURA 5 – ÁREAS DE CALIBRAÇÃO.............................................................................. 18 FIGURA 6 – POSTURAS MANUAIS: A) MÃO ABERTA; B) MÃO FECHADA; C) MÃO LATERAL VERTICAL; E D) MÃO LATERAL HORIZONTAL......................................... 20 FIGURA 7– VALORES DE LIMIAR (A)10; (B)20; (C) 30(VALOR USADO); (D)40; (E)80; (F)120; (G)170 E (H)220.......................................................................................................... 23 FIGURA 8 – VALORES DE LIMIAR EM FUNÇÃO DE DISTÂNCIA MODELO (A)0,5; (B)1; (C)2; (D)3; (E)4; (F)5; (G)6 E (H)7. ............................................................................... 24 FIGURA 9 – RASTREAMENTO DA MÃO EM 4 QUADROS CONSECUTIVOS A)1; B) 2; C) 3 E D) 4 ........................................................................................................................... 25
1
1. INTRODUÇÃO
Hoje em dia, a interação humana com os computadores e máquinas
inteligentes se faz principalmente com o uso de dispositivos como teclado, mouse,
touch-pad, tela sensível ao toque, etc. No entanto o uso de tais dispositivos não é a
forma natural dos humanos se comunicarem entre si. O uso de voz e gestos é a nossa
forma natural de comunicação, portanto o estudo e desenvolvimento de modelos que
permitam que computadores entendam essas formas naturais é de grande interesse
quando visamos à criação de máquinas que tenham interfaces mais amigáveis e
intuitivas.
O estudo de processamento de voz com a finalidade de reconhecimento e
síntese, facilitando a comunicação auditiva intuitiva com as máquinas, já está sendo
desenvolvido desde a segunda metade de século passado, tendo sido atingido um grau
de desenvolvimento aceitável[1]. No entanto, uma forma de interação visual intuitiva
ainda é um desafio para os cientistas. Pesquisas neste campo envolvem o uso de
técnicas de Visão computacional que são extremamente complexas
computacionalmente, exigindo computadores com grande poder de processamento,
que apenas começaram a surgir no início deste século. Assim sendo, o uso de Visão
Computacional no desenvolvimento de novos métodos de iteratividade com máquinas
inteligentes é um campo que está apenas iniciando, havendo muita pesquisa ainda por
fazer. É neste ponto que se encaixa o presente projeto de graduação.
Este projeto visa a proposição e desenvolvimento de um novo paradigma de
HCI (Human Computer Interface). Inicialmente, é proposto a utilização de dois
apontadores simultâneos, ao invés de apenas um único apontador, técnica esta já
mundialmente aceita pela comunidade desde a década de 70, quando do surgimento do
mouse, e usado em todos os sistemas de interface gráfica com o usuário, tais como o
Windows, Linux, MacOS, Solaris, etc. O uso de dois apontadores pode melhorar
muito a produtividade e acesso aos sistemas, tanto em aplicações específicas como
CAD e Ambientes Virtuais, quanto na própria manipulação do Sistema Operacional
2
Gráfico utilizado. No entanto este trabalho não visa discutir sobre essas possibilidades,
sendo HCI uma área de pesquisa específica emergente da Ciência da Computação.
Este trabalho tem por objetivo desenvolver uma solução tecnicamente viável para a
sua implementação baseada nos paradigmas de Visão Computacional.
Este trabalho está estruturado da seguinte maneira: No capítulo 2 é feita a
revisão bibliográfica, visando apresentar ao leitor o estado-da-arte das técnicas de
Visão Computacional, que serão utilizadas no decorrer deste trabalho. O capítulo 3 é
dedicado a apresentação e detalhamento técnico do sistema implementado. Os
resultados obtidos são apresentados e discutidos no capítulo 4. O capítulo 5 apresenta
as conclusões deste trabalho e indica as possibilidades de trabalhos futuros.
3
2. REVISÃO BIBLIOGRÁFICA
Os trabalhos publicados que apresentam objetivos semelhantes aos deste
projeto, estão localizados principalmente na área de Visão Computacional aplicada ao
reconhecimento e rastreamento de objetos. Uma das principais aplicações é a tradução
da Linguagem dos Sinais, cujo objetivo é realizar o reconhecimento dos gestos
manuais e classificá-los de acordo com a gramática usada. Para esta aplicação, técnicas
de rastreamento e classificação de posturas manuais estão sendo desenvolvidas. Tais
técnicas também se aplicam no presente projeto. As técnicas básicas de Processamento
de Imagens e Vídeo também são necessárias ao sucesso deste projeto, de modo que
são apresentados também artigos que propõem e discutem técnicas de subtração de
fundo, identificação e classificação de cores, rastreamento de objetos e classificação de
silhuetas,
2.1. TRABALHOS ANTERIORES
Nos sistemas de reconhecimento de gestos, que usam apenas uma câmera,
tendo como produto uma imagem 2D, alguns parâmetros como posição dos dedos,
contornos e cor são extraídos e utilizados em outras etapas.
O trabalho de Staner et al [2] utiliza 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. Já o trabalho de Sato et al [3] utiliza uma câmera infravermelha para
capturar a mão, que tem algumas posturas simples reconhecidas.
Outra categoria de sistemas é especialista na utilização de feições dos dedos
e mãos, a fim de reconhecer posturas mais complexas. Nesta área, destacam-se os
trabalhos que se baseiam na silhueta. Para determinação desta, são usados diversos
algoritmos. A silhueta pode ser modelada através de correlação(Heap[4] e Hall et al
[5]) ou também utilizando um ambiente controlado e algumas heurísticas(Segen[6]).
Outra técnica utilizada para o reconhecimento de gestos é utilizar imagens de
4
um conjunto de treino para modelar as posturas a serem classificadas. Laptev et al
[7]utiliza funções gaussianas para representar o conjunto de regiões que forma a mão.
Também se destaca outro tipo de modelamento estatístico, baseado em HMM (Hidden
Markov Models), conforme pode ser visto nos trabalhos de Lee et al [8], Vogler et al
[9] e Wilson et al [10]. Já o trabalho de Viveck [11] utiliza a transformada inversa de
Laplace em conjunto com Redes Neurais Artificiais.
Estes trabalhos citados anteriormente, levam em conta a postura manual
como um todo, visando a tradução desta com fins de interagir e simular o mouse ou o
teclado (no caso de alfabetos). Porém, estas técnicas nem sempre apresentam a
precisão necessária a um apontador. Por isto existe um segundo grupo de trabalhos,
que têm foco em reconhecimento de dedos, uma vez que a ponta de um dedo é um
indicador de posição mais preciso que o centro de mão, por exemplo.
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.
Neste campo, um dos trabalhos pioneiros é o de Quek et al[12], que
apresenta um sistema simples, onde a mão, com apenas o dedo indicador em riste deve
ser posicionada paralela ao teclado. É feita uma detecção de tom de pele e o ponto
mais alto é considerado a ponta do dedo e do mouse. Os eventos de clique são gerados
quando o usuário pressiona uma tecla.
Um trabalho importante na área de detecção de tom de pele é o de Kulessa et
al [13], onde é mostrado que é de grande dificuldade implementar um modelo de cor
que não seja invariante a variações de iluminação, fundamentando uma das principais
limitações em sistemas que utilizem unicamente as informações de cor.
Alguns sistemas, para facilitar a etapa de segmentação utilizam câmeras
5
infravermelhas, permitindo uma separação mais robusta das mãos. No trabalho de
Ukita et al [14] os dedos são modelados como semicírculos, que são utilizados em um
processo de correlação com imagens modelo, com a finalidade de desenhar linhas na
tela. Já Oka et al [15] modela as pontas dos dedos como círculos, faz a correlação e,
com o movimento dos dedos reconhece algumas figuras geométricas, que são
interpretadas e transformadas em comandos.
Outra modalidade de classificação consiste em trabalhar na silhueta da mão,
procurando picos, nesta silhueta, que representam as pontas dos dedos. Normalmente
estes sistemas fazem a modelagem do contorno utilizando curvas B-Splines ou
contornos ativos (Snakes) e o rastreamento destes pontos é feito com algoritmos como
Kalman ou Condensation. Os trabalho de Hall et al[5] e MacKornick et al[16] utilizam
estas técnicas e posterior detecção dos dedos.
2.2. CARACTERÍSTICAS IMPORTANTES
O trabalho de Imagawa et al [17] tem como objetivo localizar e seguir a mão
mesmo quando ela se sobrepõe à face, trabalhando e trat ando este problema.
Primeiramente, a imagem passa por um segmentador de cor, que separa
todos os pontos da imagem como sendo ou pele ou fundo, usando um classificador
baseado em crominância. Filtros morfológicos de dilatação e erosão são usados e, com
um limiar de tamanho, regiões pequenas são apagadas.
Com as regiões restantes, um classificador baseado em histograma é
aplicado, que possibilita a percepção de mudanças de intensidade na cor da pele. Estes
dados são utilizados então, em conjunto com um filtro de Kalman para fazer o
rastreamento das mãos, e uma segmentação mais apurada.
Já no trabalho de Girondel et al[18], se utilizam métodos diferentes para
subtração de fundo, detecção de pele, localização das mãos e rastreamento, com o
objetivo final atingido de criar uma ferramenta de submersão do usuário em uma
mistura de mundos real e virtual.
6
Neste trabalho, um fundo estático é definido e subtraído de todos os quadros
seguintes. A classificação dos pontos em tom de pele é feita usando as crominâncias e
quatro limiares, para separar os pontos em tom de pele e não.
A localização da face e das mãos acontece por análise de critérios, usando
uma série de listas ordenadas (componentes mais alto, maiores regiões, etc.) que
também contém informações de rastreamento de quadros anteriores.Com base nestas
listas, em todo o frame são selecionadas três regiões – duas mãos e a face.
A detecção de cores, em especial a cor da pele humana, é um assunto
amplamente pesquisado pela comunidade científica e com diversos trabalhos [19] que
apresentam bons resultados. A grande questão nesta área é escolher a melhor razão
entre qualidade e velocidade.
O artigo de Kjeldsen et al[20] apresenta um detector de cores baseado em
uma estrutura de histograma e um classificador chamado de Color Predicate, que
apresentou bons resultados. Este classificador usa as informações de tonalidade,
saturação e intensidade de cada pixel, para classificá-lo. Os pontos considerados tom
de pele são computados para a atualização do classificador, o que diminui a velocidade
porém adapta lentamente o sistema a mudanças de iluminação.
Após obter o mapa binário da imagem que indica se a cor é pele ou não, o
sistema considera mão a maior região presente. O contorno desta região é extraído e
usado em uma Rede Neural Artificial para classificar a postura.
7
3. SISTEMA PROPOSTO
A fim de viabilizar o uso de dois apontadores simultâneos, novas técnicas de
interfaceamento de hardware poderiam ser propostas. No entanto isso implicaria na
necessidade de aquisição de novo hardware pelos usuários desejosos em utilizar esta
nova tecnologia, o que certamente, impediria a sua disseminação em massa e acesso a
classe de mais baixa renda da população. Mas, hoje em dia o uso de webcam de baixo
custo, que utiliza a interface USB 1.1, já está muito difundido tanto em grandes
empresas quanto em land houses e usuários particulares. Entretanto, seu uso se
restringe essencialmente à utilização para comunicação visual, através do uso de
programas como o MSN Menseger, SKYPE, Yahoo Menseger, e tantos outro já
bastante populares.
Mesmo com a enorme popularização das webcams, seu uso como um
dispositivo visual de interação do usuário com o computador é muito pouco explorado.
O principal objetivo deste projeto é o desenvolvimento de um sistema capaz de
permitir a interação natural entre usuário e computador, usando a movimentação de
suas mãos, em detrimento ao clássico dispositivo apontador padrão (mouse),
permitindo deste modo a criação de um sistema apontador totalmente inovador. Como
grande diferencial, tem-se o objetivo de se utilizar ambas as mãos, como se o usuário
dispusesse de dois dispositivos apontadores, dando a ele uma experiência de grau mais
elevado em termos de interação homem-máquina.
No entanto, como 100% dos sistemas existente hoje em dia não estão
preparados para absorver esta nova tecnologia de imediato, propomos inicialmente que
o apontador já existente nos Sistemas Operacionais seja controlado pelos movimentos
de uma das mãos, dando ao usuário a idéia e sensação de uso, e que este vislumbre as
possibilidades da nova interface. A seguir desenvolvemos uma aplicação virtual que
utiliza as duas mãos para demonstrar suas capacidades estendidas.
Para simular o apontador clássico (mouse), o sistema deve utilizar uma API
(Application Programming Interface) do sistema operacional MS Windows®, neste
8
caso, para gerar as interrupções e fazer com que o restante do sistema operacional
receba os mesmos sinais gerados por um movimento real do mouse.
Os sistemas operacionais utilizados atualmente não suportam múltiplos
dispositivos apontadores, então esta experiência se dará em um ambiente virtual, que
funciona como uma demonstração das potencialidades da utilização de múltiplos
apontadores.
O sistema foi implementado utilizando-se o programa VISUAL C, e baseia-
se em duas fases: fase de calibração e a fase de utilização. Na fase de calibração, é
requisitado ao usuário que defina seu ambiente de utilização, tais como o cenário de
fundo, nível de iluminação, etc; e dados que o identifiquem, através do modelamento
da cor de sua pele, ajustando-se o sistema de forma a otimizar seu desempenho. Ainda
nessa fase o usuário precisa escolher se irá utilizar o ambiente clássico com um
apontador, através do uso de apenas uma das mãos, ou irá experimentar o ambiente
com múltiplos apontadores, que faz o uso de ambas as mãos.
O diagrama de fluxograma do sistema é apresentado na Figura 1.
9
FIGURA 1 – FLUXOGRAMA GERAL DO SISTEMA
10
O sistema é composto basicamente pelos blocos de:
• Subtração de Fundo: Separa os objetos da frente, do fundo da cena,
definindo o que será analisado;
• Segmentação de Cor de Pele: Percorre os pontos dos objetos da frente,
classificando-os como sendo tom de pele ou não;
• Localização das Mãos: Dentre todas as regiões que possuem pontos
que parecem tom de pele, uma ou duas são escolhidas;
• Rastreamento: Funciona em conjunto com a etapa anterior, analisando
as possibilidades de movimento da mão e prevendo possíveis
movimentos, para aumentar as chances de escolha correta da região;
• Classificação de Postura: Com uma ou duas regiões selecionadas,
classifica a postura da mão nas possibilidades treinadas, e;
• Tradução para movimento e cliques de mouse: Converte o movimento
e postura de uma das mãos em movimento e cliques do mouse ou de
ambas as mãos para o ambiente virtual do protótipo.
Por se tratar de um protótipo, várias condições de contorno devem ser
cumpridas para que o sistema funcione de maneira satisfatória. A seção seguinte
enumera, descreve e justifica estas condições de contorno.
3.1. CONDIÇÕES DE CONTORNO DO SISTEMA
As principais condições limitadoras assumidas no desenvolvimento do
sistema, neste protótipo, são:
• Fundo estático: a câmera deve permanecer imóvel durante o período
de utilização. Esta limitação visa reduzir a complexidade
computacional da etapa de localização de objetos de interesse.
Sistemas adaptativos, onde a posição da câmera possa ser ajustada na
fase de utilização, podem ser desenvolvidos, sendo no entanto
11
necessário um hardware com maior capacidade de processamento do
que os existentes hoje em dia. Assim sendo, na fase de calibração é
solicitado ao usuário que capture o cenário ou ambiente no qual o
sistema será utilizado, para que técnicas de subtração de fundo
possam ser eficientemente empregadas ;
• Determinação do tom de pele do usuário: Embora tenha-se visto na
revisão bibliográfica que vários pesquisadores indicam que o tom de
pele é praticamente inalterável de pessoa para pessoa, independente
de sua origem étnica, observou-se que para obter tal grau de
independência é necessário um processamento muito complexo da
imagem e análise de cores. A fim de simplificar este protótipo, na fase
de calibração o usuário deve exibir sua mão para o dispositivo
calibrador, na distância aproximada de utilização do sistema, a fim de
determinar a área da palma da qual o sistema estima os parâmetros
que determinam o modelo para sua cor de pele;
• Ocultar braços e ante-braços: Para que não haja má demarcação das
áreas de mão, confundindo-as com braços e ante-braços, é necessário,
que estes estejam e permaneçam cobertos, por casaco ou camisa, de
preferência de coloração diferente da pele do usuário. Modelos que
permitam identificar a localização da mão podem ser utilizados a fim
de determinar o limite entre o pulso e o ante-braço, no entanto esse
foco está fora no escopo deste trabalho, neste primeiro momento, e;
• Para iniciar a localização e rastreamento das mãos, colocá-las em
retângulos demarcados, definidos pelo dispositivo calibrador. Tal
atitude garante ao sistema a escolha correta de regiões iniciais para o
rastreamento.
12
3.2. SUBTRAÇÃO DE FUNDO
O sistema foi desenvolvido utilizando-se da biblioteca de código aberto
dedicada à Visão Computacional OpenCV[21], amplamente utilizada e mantida
atualizada pelos maiores grupos de pesquisa na área. Esta biblioteca possui muitas
funções implementadas de modo otimizado, o que permite ao desenvolvedor escolher
entre usar uma rotina já existente ou mesmo implementar uma nova, agregando mais
valores e funcionalidades a esta biblioteca..
Para realizar a subtração de fundo, inicialmente, é realizada a diferença entre
duas imagens – quadro atual e fundo previamente definido pelo usuário, de forma a
evidenciar as diferenças existentes no quadro atual quando comparado com o quadro
de fundo. A imagem resultante possui faixa dinâmica de -255 a 255 para cada
componente de cor RGB, fora portanto do padrão visualizável. Esta imagem é então
convertida para tons de cinza (0-255) através da Equação 3.1
onde Pgray corresponde à imagem diferença convertida para tons de cinza. A esta
imagem é aplicada uma comparação pixel a pixel com um limiar pré-definido
empiricamente, resultando em uma imagem binária (máscara), contendo pixels de
valores 0 ou 1, indicando se o pixel pertence ao fundo ou ao objeto, respectivamente.
A figura 2 mostra os resultados parciais e final desta etapa do
processamento.
( ) ( ) ( ) ( ), , ,, 1286
x y x y x ygray
R G BP x y
+ += + (3.1)
13
A) B)
C) D)
E)
FIGURA 2 – A) IMAGEM ORIGINAL; B) IMAGEM DE FUNDO; C) QUADRO DIFERENÇA; D) DIFERENÇA EM ESCALA DE CINZA; E) MÁSCARA BINÁRIA
A imagem resultante, chamada de máscara binária, determina a área de
interesse para todo o resto do sistema, uma vez que os demais procedimentos
necessitam serem aplicados apenas aos objetos ditos de frente, e não aos detalhes
14
pertencentes ao fundo.
3.3. SEGMENTAÇÃO DE COR DE PELE
Para determinar as regiões, pertencentes a área de interesse previamente
definida pela subtração de fundo, que possuem pixels de cor similar ao tom da pele,
são necessárias 2 etapas: Definição do modelo de cor de pele e etapa de classificação
da cor do pixel. A primeira executada apenas uma vez, para que seja criado o modelo
de tom de pele do usuário, e a outra executada a cada quadro capturado e processado.
3.3.1. Criação do Modelo de Tom de Pele
No início da execução do programa, o usuário exibe a palma de sua mão, ajustando-a
dentro de uma região de calibração, à distância que é pretendida a utilização do
sistema, conforme visto na figura 2.A. O sistema automaticamente detecta a presença
da mão, uma vez que a mesma é diferente do fundo previamente definido, e extrai os
pixels que serão utilizados na geração do modelo de cor de pele. Estes pixels são
colocados em uma lista de tamanho i alocada dinamicamente na memória.
Faz-se a média para os valores R, G e B, divididos pela soma destes valores
de acordo com a Eq. 3.2, desta lista, conforme as equações 3.3, 3.4 e 3.5, obtendo-se
um modelo de tom de pele no espaço RBG normalizado.
BGRS ++= (3.2)
0
1 ix
Rx
RMod
i S=
= ∑ (3.3)
0
1 ix
Gx
GMod
i S=
= ∑ (3.4)
0
1 ix
Bx
BMod
i S=
= ∑ (3.5)
Com este modelo médio, percorre-se novamente todos os pontos
classificados como pele, desta vez calculando-se a média das distâncias, de acordo
15
com a Equação 3.6, entre os pontos colhidos e o modelo obtido previamente.
2 2 2
0
1 ix x x
Dist R G Bx
R G BMod Mod Mod Mod
i S S S=
= − + − + −
∑ (3.6)
Essa média obtida é chamada de Distância Modelo (ModDist) e é o quarto
parâmetro, junto com o modelo R,G e B, a ser usado na detecção de cor de pele.
3.3.2. Detecção de Tom de Pele
Uma vez criado o modelo, cada pixel selecionado na etapa de subtração do
fundo é comparado com este modelo através da Equação 3.7.
2
),(2
),(2
),(
−+
−+
−= B
yxG
yxR
yx ModS
BMod
S
GMod
S
RDist (3.7)
O critério de classificação é baseado na distância Euclidiana do pixel ao
modelo obtido, de acordo com a Eq. 3.8
1, .
0, .Dist
PeleDist
seDist ModMask
seDist Mod
αα
≤= >
(3.8)
Se esta distância (Dist) do pixel for menor que a distância modelo (ModDist)
escalonada por um fator α, o pixel é classificado como sendo tom de pele, sendo
atribuído o valor “1” à máscara. Caso a distância seja maior, o pixel é descartado, por
não ser tom de pele, sendo atribuído o valor “0”. O parâmetro de tolerância α é
definido através do cálculo do desvio padrão das distâncias do modelo.
A Figura 3 mostra a máscara binária antes e após a segmentação de cores.
16
(A) (B)
FIGURA 3 – (A) MÁSCARA ANTES E (B) DEPOIS DA SEGMENTAÇÃO DE CORES
Pode-se notar que a segmentação foi muito bem sucedida, resultando que as
grandes regiões conexas representam com fidelidade regiões de pele. Com exceção da
grande região branca que aparece na parte inferior esquerda que corresponde à sombra,
que devido a iluminação local e cor da parede, possui coloração próxima ao tom da
pele. Porém o algoritmo de rastreamento aplicado em seguida, ainda assim é capaz de
distinguir corretamente as regiões correspondentes às mãos do usuário.
3.4. LOCALIZAÇÃO E RASTREAMENTO DAS MÃOS
Após as etapas anteriores, é necessário separar as regiões conexas, para
decidir quais as duas regiões correspondentes às mãos.
Para fazer esta separação, primeiramente aplicam-se operações morfológicas
de abertura e fechamento de modo a conectar e reduzir o número de pequenas regiões.
A seguir, um algoritmo de detecção de bordas é utilizado sobre as regiões conexas.
Devido à complexidade desnecessária nesta aplicação da análise da silhueta, um
modelamento da região pelo menor retângulo de contém é feito.
Porém, ainda assim existem algumas regiões pequenas, que são indesejadas e
não são eliminadas pelas etapas anteriores. Para eliminá-las, aplica-se um limiar de
tamanho, que remove as regiões cuja soma de altura e largura de seu retângulo seja
17
menor que 70 pontos, valor este empiricamente definido observando-se o tamanho
mínimo da mão em uma aplicação real.
A figura 4 mostra o resultado da segmentação e desta filtragem por tamanho.
(A) (B)
FIGURA 4 – (A) REGIÕES EXISTENTES E (B) REGIÕES PÓS FILTRAGEM
Com estas regiões restantes, tem-se que escolher as relevantes,
correspondentes às mãos para aplicar o pós-processamento de classificação de postura
e tradução para sinais de mouse.
Para cada mão, é criada uma estrutura de dados, que contém os dados da
posição anterior e atual, postura anterior e atual, e um flag de status, que pode ser
“Sem Mão”, “Mão OK” e “Mudaram Informações”.
Ambas estruturas, para as mãos direita e esquerda, iniciam a execução do
programa com status “Sem Mão”, que significa que a mão ainda não foi encontrada.
Para a localização inicial das mãos, é necessário que o usuário as posicione
dentro das duas áreas de calibração definidas, que podem ser vistas na figura 5 em azul
e amarelo.
Quando uma região adentra um destes quadrados, é feita a checagem de
tamanho, definindo-se que a mão pode ser no máximo 40 % maior que o retângulo,
para que seja fixada a distância mínima de operação do sistema. Se a região tiver um
tamanho adequado, ela é transformada em mão, equivalente à cor do
18
retângulo(amarela – mão direita e azul – mão esquerda).
Então, o status desta mão passa para “Mão OK” e a mesma passará a ser
rastreada a partir do quadro seguinte.
FIGURA 5 – ÁREAS DE CALIBRAÇÃO
Isto possibilita saber quais os dois, de todos os objetos selecionados nas
etapas anteriores são efetivamente as mãos do usuário. O procedimento para
localização e rastreamento é o mesmo para ambas as mãos, logo, será discutido o
procedimento utilizando-se apenas uma mão, de modo a deixar a explicação mais
clara.
A partir do próximo quadro, todas as regiões são percorridas, medindo-se a
distância entre esta e a posição atual da mão. A região que tiver menor distância,
representa a nova posição da mão. A posição anterior é atualizada como sendo a atual
e esta recebe a nova posição.
Uma linha é desenhada entre as posições atual e anterior para que o usuário
possa acompanhar o movimento da centróide da mão para fins de visualização e
avaliação das técnicas.
19
3.5. CLASSIFICAÇÃO DE POSTURA
Para este protótipo, cada uma das mãos pode assumir apenas 4 posturas
diferentes, correspondendo à postura natural, e mais 3 posturas associadas a tipos de
cliques diferentes para cada apontador.
A fim de reduzir a complexidade computacional, e por conseguinte os
requerimentos mínimos de hardware para a execução do sistema, e aumentar a
robustez do classificador, a identificação da postura é feita com base na razão η entre
altura e largura do retângulo obtido da etapa de modelamento, segundo a Equação 3.9
AB
η = (3.9)
onde A corresponde a dimensão vertical e B a dimensão horizontal do retângulo
modelado.
As quatro posturas adotadas neste protótipo podem ser vistas na figura 6,
juntamente com sua detecção de bordas e seus retângulos modelos correspondentes.
20
A) B)
C) D)
FIGURA 6 – POSTURAS MANUAIS: A) MÃO ABERTA; B) MÃO FECHADA; C) MÃO LATERAL VERTICAL; E D) MÃO LATERAL HORIZONTAL
A classificação das posturas apresentadas na Figura 6, segue as condições
apresentadas na Equação 3.10,
onde MLH, corresponde à postura Mão Lateral Horizontal mostrada pela Fig. 6(D);
MA, corresponde à Mão Aberta mostrada na Fig. 6(A); MF, corresponde à postura
Mão Fechada apresentada na Fig. 6(B); e MLV, corresponde à postura Mão Lateral
, 0.6, 0.6 1.2
, 1.2 1.7, 1.7
MLH paraMF para
PosturaMA paraMLV para
ηη
ηη
< ≤ <= ≤ < ≥
(3.10)
21
Vertical mostrada pela Fig. 6(C).
3.6. TRADUÇÃO PARA MOVIMENTO E CLIQUES DE MOUSE
Com as etapas anteriores executadas, estando o sistema sendo executado
como controlador apontador único, os movimentos e posturas da mão são traduzidos
em movimentos e cliques de mouse. Devido a diferença existente entre a resolução da
imagem capturada, tipicamente formato SIF 352x288 pixels, e a resolução da área de
trabalho do sistema, tipicamente 1024x768 pixels, o movimento necessita ser
escalonado. Este escalonamento é dado pela razão da resolução da imagem capturada
pela resolução usada no sistema operacional.
Já a postura de mão aberta (MA) representa a operação livre, sem nenhum
botão sendo pressionado. A mão fechada (MF), por sua vez, executa um duplo-clique
no botão esquerdo do mouse, ser usado para abrir arquivos e programas.
Alternar a postura para mão lateral vertical (MLV) possui o significado de
pressionar o botão esquerdo do mouse, sem soltá-lo. Mexendo a mão com esta postura,
simula a execução do comando arrastar, utilizado para mudar ícones de lugar ou
selecionar texto. Deixando de executar esta postura, faz com que o botão esquerdo do
mouse seja liberado, interrompendo a operação prévia.
De mesma forma, a postura MLH (Mão Lateral Horizontal) simula o botão
direito. Com uma mudança rápida para esta postura e novamente para mão aberta
permite, por exemplo, abrir menus de contexto.
Todos estes comandos são passados aos Sistemas Operacionais compatíveis
com Windows XP, utilizando uma função do SDK (Software Development Kit)
fornecido pela Microsoft, que simula as chamadas de interrupção de dispositivos
SendInput. Esta função pode simular tanto interrupções provenientes do mouse quanto
do teclado, permitindo, assim, que seja desenvolvida uma interface de interação
totalmente independente dos recursos de hardware existentes atualmente
22
4. RESULTADOS OBTIDOS
Os resultados aqui apresentados correspondem aos obtidos com o protótipo
desenvolvido durante este trabalho e descrito no Capítulo 3. São apresentados os
resultados alcançados em cada etapa do processamento separadamente. Uma análise
do desempenho dos dois casos de aplicação do sistema, a saber, um único apontador
controlando o mouse e uma aplicação com múltiplos apontadores, são feitas no final
deste capítulo.
4.1. CAPTURA DO SINAL DE VÍDEO
Para efetuar a captura dos sinais de vídeo foram usadas APIs disponíveis
nativamente na biblioteca openCV. O formato SIF, cuja resolução de 352x288 pixels
no formato RGB com 24bits/pixel, se mostrou leve computacionalmente para a
execução de todo o processamento proposto do sinal de vídeo em tempo real,
atingindo o limite de captura da câmera de 30fps, em um computador SEMPROM
2.2GHz com 512MB de memória RAM.
4.2. SUBTRAÇÃO DE FUNDO
A etapa de subtração de fundo é importante a fim de tornar o sistema robusto
em situações onde tenhamos um cenário bastante detalhado e com cores similares aos
tons de pele. Conforme explicado no Capítulo 3, o usuário inicialmente define a
imagem de fundo a ser usada nesta etapa.Cada quadro é subtraído desta imagem e
aplicado um limiar de modo a classificar o pixel como pertencente ao fundo ou a um
objeto. A grande variação que pode ser obtida aqui se deve à definição deste limiar na
para criação da máscara dos objetos.
A imagem 7 mostra a diferença na máscara binária para diversos valores de
limiar.
23
(A) (B) (C) (D)
(E) (F) (G) (H)
FIGURA 7– VALORES DE LIMIAR (A)10; (B)20; (C) 30(VALOR USADO); (D)40; (E)80; (F)120; (G)170 E (H)220.
Pode-se perceber que, para valores inferiores a 30, fica notável a presença de
grande quantidade de ruído, tornando as regiões menos corretamente delimitadas.
Assim sendo, arbitramos este valor como o limiar. Deste modo, os pontos da imagem
diferença em escala de cinza, apresentados na figura 2.(D), que tiverem valores
menores que 30 são considerados como pertencentes ao fundo, e mostrados na cor
preta, e os que tiverem valores maiores ou iguais a 30, são considerados objetos da
frente, mostrados na cor branca na Figura 7.
Devemos notar que a escolha deste limiar influencia significativamente os
resultados das etapas seguintes, portanto ele deve ser analisado a cada inicialização do
aplicativo na etapa de calibração do sistema. Neste trabalho, não nos preocupamos em
desenvolver uma metodologia de cálculo desse limiar, embora vejamos claramente sua
necessidade.
4.3. SEGMENTAÇÃO DE COR DE PELE
Esta seção exibe os resultados da segmentação, demonstrando a variação dos
resultados devido à mudança da quantidade de distâncias modelo.
A variação nesta etapa é proveniente da Distância Modelo definida no
Capítulo 3. A figura 8 mostra 8 possibilidades desta distância, e seu resultado na
24
máscara binária.
(A) (B) (C) (D)
(E) (F) (G) (H)
FIGURA 8 – VALORES DE LIMIAR EM FUNÇÃO DE DISTÂNCIA MODELO (A)0,5; (B)1; (C)2; (D)3; (E)4; (F)5; (G)6 E (H)7.
Em condições ideais e com um espaço amostral considerável, a própria
Distância Modelo, sem uso do fator de escalonamento α, seria suficiente para obter um
elevado índice de acerto na classificação da cor de um pixel em cor de pele ou não. O
escalonamento da Distância Modelo usando um valor de α igual a 3, aumenta a
robustez do sistema, sem afetar sua velocidade.
4.4. LOCALIZAÇÃO E RASTREAMENTO DAS MÃOS
A figura 9 mostra as mãos sendo rastreadas no modo de operação de
múltiplos apontadores, demonstrando a funcionalidade deste módulo.
25
A) B)
C) D)
FIGURA 9 – RASTREAMENTO DA MÃO EM 4 QUADROS CONSECUTIVOS A)1; B) 2; C) 3 E D) 4
Para a definição exata da posição dos apontadores, linhas amarela e azul, na
tela é utilizada a centróide do retângulo modelo obtido a partir dos contornos
mostrados na Figura 9 para cada mão.
A operação do sistema multi apontador apresenta a limitação de que para se
identificar corretamente a mão esquerda e direita, é necessário que as duas nunca se
cruzem. Técnicas mais avançadas de rastreamento, que consideram também o fluxo
ótico, permitem superar esta limitação ao preço de um maior custo computacional.
4.5. CLASSIFICAÇÃO DE POSTURA
Para poder mensurar a qualidade do classificador de posturas proposto, fez se
um experimento no qual um conjunto de posturas é gerado e cada quadro é
26
classificado manualmente. A classificação manual é comparada com o resultado
obtido automaticamente em termos de percentuais de acerto. Foi criada uma seqüência
de teste contendo 200 quadros, com 50 quadros de cada postura. Nesse experimento, o
classificador acertou 83% das posturas. Este resultado, será melhorado sabendo que
uma postura não se altera rapidamente entre dois quadros consecutivos, dada a
velocidade de movimentação humana ser limitada.
4.6. TRADUÇÃO EM MOVIMENTOS E CLIQUES DE MOUSE
Como o sistema alcança uma taxa de execução muito alta, é necessário
desenvolver um dispositivo de controle para a interpretação das informações.
As regiões das mãos não são detectadas da mesma forma em todos os
quadros, o que provoca pequenas mudanças na localização das centróides destas
regiões. Estas mudanças fazem com que o apontador fique se movimentando, quase
aleatoriamente, em torno de um ponto central. A fim de reduzir este efeito indesejável,
criado pelo ruído de todo o sistema de processamento de imagens , implementaram-se
dois filtros passa-baixas FIR de média móvel de 10ª ordem, Equação 4.1de modo a
suavizar as variações de alta freqüência existentes na posição do apontador.
9
0
1( )
10i
i
H z z−
=
= ∑ (4.1)
Os filtros são aplicados temporalmente aos sinais x e y, posição horizontal e
vertical do apontador na tela. Com isso, obteve -se uma boa estabilização e com isso
maior precisão na movimentação do apontador pela tela. O preço pago foi um maior
tempo de atualização da posição, mas que devido à alta velocidade do sistema não
chega a incomodar o usuário.
27
4.7. ESTUDO DE CASO 1: APONTADOR ÚNICO
A fim de validar efetivamente o desenvolvimento deste projeto, o sistema
controlador do apontador único baseado em Visão Computacional, foi implementado
no Sistema Operacional Windows XP, com uma webcam USB 1.1. O sistema
mostrou-se estável e preciso, possibilitando o uso da mão direita para controlar a
posição do mouse, além de permitir cliques dos botões direito, esquerdo e duplo
clique. Aplicativos como Word e Paint foram controlados com resultados satisfatórios
durante os testes.
4.8. ESTUDO DE CASO 2: APONTADOR MÚLTIPLO
Um ambiente de ponteiro múltiplo não é comum hoje em dia nas aplicações
existentes. Assim sendo, desenvolveu-se um ambiente capaz de ser acionado com esse
novo tipo de dispositivo. O ambiente trata-se de um mini aplicativo de desenho na tela.
Os resultados obtidos foram satisfatórios, uma vez que nenhum usuário está
acostumado com essa nova dimensão de controle de apontadores,
28
5. CONCLUSÃO
Desenvolveu-se nesse projeto uma nova concepção de controle do
dispositivo apontador em sistemas operacionais gráficos, baseado em interface visual.
O uso de uma simples webcam possibilita um novo meio de interação do usuário com
a máquina através do controle gestual da posição do apontador e cliques gerados por
ele. Como diferencial, provou-se ser possível, sem custo adicional de hardware,
desenvolver um novo conceito de múltiplos apontadores, controlados pelas mãos do
usuário, abrindo as portas para que aplicações inovadoras sejam criadas.
O sistema foi desenvolvido em linguagem ANSI C em ambiente Windows,
sendo, no entanto, facilmente portável para outros Sistemas Operacionais com
interface gráfica com o usuário, tais como Linux e MacOS. Utilizou-se a biblioteca de
código aberto openCV de forma a otimizar os recursos e reduzir o tempo de
desenvolvimento e implementação.
O processamento do sinal de vídeo é efetuado em tempo-real, a fim de retirar
a influência do cenário através da subtração de fundo ; identificação de tons de pele
utilizando um modelo bastante simples baseado em distância Euclidiana e modelo de
cor RGB normalizado; detecção e classificação da postura da mão através de um
modelo retangular da mão. A interface entre a etapa de processamento de vídeo e
controle do(s) apontador(es) do sistema depende intrinsecamente do sistema
operacional utilizado,
As aplicações desenvolvidas basearam-se em dois estudos de casos:
• Utilizando o apontador convencional, porém controlado visualmente pelos
gestos de uma mão do usuário. Aplicaram-se os conceitos e resultados do
processamento do sinal de vídeo para o controle genérico do mouse no sistema
Windows XP, podendo-se comandar quaisquer programas instalados de
maneira natural.
• Criação de um ambiente específico para a validação do conceito de múltiplos
apontadores controlados visualmente pelos gestos de ambas as mãos do usuário.
29
Desenvolveu-se um pequeno aplicativo gráfico que demonstra as
potencialidades da interface multi-apontador controlada por gestos.
O protótipo desenvolvido obteve sucesso, indicando o pleno cumprimento
dos objetivos determinados no início deste projeto, realizando as tarefas de
processamento de vídeo em tempo real, a 30quadros por segundo, para controle de
apontadores.
5.1. TRABALHOS FUTUROS
Como trabalhos futuros podemos destacar o desenvolvimento de técnicas
mais robustas de rastreamento da mão. Aprimoramento das técnicas de classificação
de posturas manuais de forma a dispensar o uso do teclado como dispositivo de
entrada de dados. Criação de aplicativos tais como controle de ambientes de realidade
virtual, tele medicina, CADs, que tirem proveito do conceito de interface controlada
por multi-apontadores. O desenvolvimento de formas de controle de mais de dois
apontadores seria também uma extensão natural deste projeto.
30
REFERÊNCIAS BIBLIOGRÁFICAS
[1] SHIMIZU, Y.; KAJITA, S.; TAKEDA, K.; ITAKURA, F., "Speech recognition based on space diversity using distributed multi -microphone," Acoustics, Speech, and Signal Processing, 2000. ICASSP '00. Proceedings. 2000 IEEE International Conference on , vol.3, no.pp.1747-1750 vol.3, 2000.
[2] STANER, T.; PENTLAND, A., “Real -Time American Sign Language
recognition from video using hidden Markov models”, International Symposium on Computer Vision, Coral Gables, USA, 1995.
[3] SATO, Y.; KOBAYASHI, Y. ; 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.
[4] HEAP, T., “Real Time Hand Tracking and Gesture Recognition using
Smart Snakes,” In Interface to Real and Virtual Worlds, Montpellier, 1995. [5] HALL, D.; CROWLEY, J., “Tracking Fingers and Hands with a Rigid
Contour Model in an Augmented Reality,” International Workshop on Managing Interactions in Smart Environments, 1999.
[6] SEGEN, J., “GestureVR: Vision-Based 3D Hand interface for Spatial
Interaction,” ACM Multimedia Conference, Bristol, 1998. [7] LAPTEV, I.; LINDEBERG, T., “Tracking of Multi -State Hand Models
Using Particle Filtering and a Hierarchy of Multi -Scale Image Features,” Technical report ISRN, 2000.
[8] LEE, H.; KIM, J., “An HMM-based threshold model approach for
gesture recognition,” IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999.
[9] VOLGER, C.; METAXAS, D., “Towards scalability in ASL recognition:
Breaking down sings into phonemes,” In Gesture Workshop, 1999. [10] WILSON, A.; BOBICK, A., “Parametric hidden markov models for
gesture recognition”. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1999.
[11] VIVECK, A.; MEGGIOLARO, M., “Sign language recognition using
competitive learning in the HAVNET neural network,” MIT, 2000.
31
[12] QUECK, F.; MYSLIWIEC, T.; ZHAO, M., “Finger Mouse: A freehand pointing interface,” International Workshop on Automatic Face and Gesture Recognition, Zurich, 1995.
[13] KULESSA, T.; HOCH, M., “Efficient Color Segmentation under Varying
Illumination Conditions,” IEEE Image and Multidimensional Digital Signal Processing Workshop, 1998.
[14] UKITA, N.; KIDODE, M., “Wearable Virtual Tablet: Fingertip Drawing
on a Portable Plane-Object using an Active-Infrared Camera,” International Conference on Intelligent User Interfaces, 2004.
[15] OKA, K.; SATO, Y.; 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.
[16] MACCORMICK, J.; ISARD, M., “Partitioned sampling, articulated
objects and interface-quality hand tracking.” European Conference on Computer Vision, 2000.
[17] K. IMAGAWA, S. LU, S. IGI, "Color-Based Hands Tracking System for
Sign Language Recognition," International Conference on Automatic Face and Gesture Recognition , p. 462, 1998.
[18] V. GIRONDEL, L. BONNAUD, A. CAPLIER, “Hands Detection and
Tracking For Interactive Multimedia Applications,” International Conference on Computer Vision and Graphics, 2002.
[19] VEZHNEVETS V., SAZONOV V., ANDREEVA A., "A Survey on Pixel -
Based Skin Color Detection Techniques". Proc. Graphicon-2003, pp. 85-92, Moscow, Russia, September 2003.
[20] R. KJELDSEN, J. KENDER, "Finding skin in color images," International
Conference on Automatic Face and Gesture Recognition, p. 312, 1996. [21] INTEL. Open Computer Vision Library 1.0. 2006. Biblioteca de Funções de
Programação, Disponível em http://sourceforge.net/projects/opencvlibrary/.