A Arte da Animação: História da Animação e Técnicas de Animação
Visão Computacional e Interface Homem- Máquina na Animação...
Transcript of Visão Computacional e Interface Homem- Máquina na Animação...
Nelson Ferreira de Souza Junior
Visão Computacional e Interface Homem-
Máquina na Animação de Grupos de
Humanos Virtuais
São Leopoldo - RS
2008
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
Nelson Ferreira de Souza Junior
Visão Computacional e Interface Homem-
Máquina na Animação de Grupos de
Humanos Virtuais
Dissertação submetida a avaliação como requisito parcial para a obtenção do grau de Mestre em Computação Aplicada.
Orientador: Cláudio Rosito Jung
São Leopoldo - RS
2008
Dados Internacionais de Catalogação na Publicação (CIP)
(Bibliotecária Cristiane Dias
CRB 10/1029)
S729v Souza Júnior, Nelson Ferreira de Visão Computacional e Interface Homem-Máquina na Animação de Grupos
de Humanos Virtuais. / por Nelson Ferreira de Souza Júnior
São Leopoldo: PPICA da UNISINOS, 2008.
f. 95
Dissertação (Mestrado)
Universidade do Vale do Rio do Sinos. Ciência Exatas e Tecnológicas. Programa de Pós Graduação em Computação Aplicada, 2008. Orientação Prof. Dr. Cláudio Rosito Jung; Co-Orientação Prof. Dr. Fernando Santos Osório
1. Interação Homem-Máquina 2. Humanos Virtuais 3. Redes Neurais I. Título
CDU: 004.94
Agradecimentos
À minha amada e sempre presente esposa Aline, pelo incentivo e apoio
incondicional. Pela paciência, por suprir a falta, ocupando todas as lacunas
durante este tempo.
Aos meus amados filhos por serem o motivo desta jornada.
Aos professores Cláudio Rosito Jung (Orientador) e Soraia Raupp Musse, pelos
ensinamentos, dedicação e disposição de sempre. Por abrir as portas, acreditar
nesta conquista e principalmente pela compreensão nas horas difíceis.
Ao amigo Rogério pelo auxílio nos estudos quando as coisas se mostravam
nebulosas.
Em especial aos meus pais, Nelson e Ana Maria (in memorian), pelos
ensinamentos, incansáveis durante toda a vida.
Resumo
Este trabalho apresenta um modelo para a identificação de posturas de
mãos utilizando técnicas de Visão Computacional associadas a Redes Neurais,
sem que haja a necessidade de utilização de artefatos como luvas ou dedais.
Tem como intenção servir de interface na interação com aplicações de
simulação, em tempo real.
Neste modelo, as posturas das mãos são adquiridas através de imagens
capturadas a partir de uma câmera de topo. As mão são isoladas utilizando
técnicas de processamento de imagens, e vetores de feição são extraídos para
alimentarem RNAs
Rede Neurais Artificiais, que analisam as métricas e
classificam as posturas correspondentes dentro de um conjunto de posturas pré-
estabelecidas. Depois da etapa de classificação, as posturas identificadas são
enviadas a uma ferramenta de simulação de humanos virtuais onde pode ser
validada visualmente a interação com o usuário, que não faz uso de dispositivos
tradicionais como mouse e teclado. Tal ferramenta de simulação foi utilizada
por este modelo, para reproduzir, através das imagens processadas, os eventos
de interação do usuário com a interface.
Palavras-Chave: Visão Computacional, Interação Humano-
Computador (IHC), Posturas de mão, Redes Neurais, Humanos Virtuais.
Abstract
This paper presents a model for hand posture identification using
computing techniques associated to Artificial Neural Networks regardless of
the use of any extra markers such as gloves or thimbles. It aims at being an
interface for the interaction with other simulation applications in real time.
In this model, hand postures are acquired through images captured by a
top-down camera. The hands are isolated using image processing techniques
and feature vectors are extracted to serve as input to ANNs
Artificial Neural
Networks which analyze the metrics and classify the correspondent postures
inside a pre-established postures set. After classification step, the hand postures
identified are sent to a human virtual simulation tool where the interaction with
the user can be visually validated regardless the use of traditional devices such
as the mouse or keyboard. Such tool was used by this model in order to
reproduce through the processed images the interaction events between user
and interface.
Key words: Computing vision, human-computer interaction (HCI),
hand postures, neural networks, virtual humans.
Lista de Figuras
Figura 1: Data Glove expondo os dispositivos internos (ZIMMERMANN; LANIER;
BLANCHARD; BRYSON; HARVILL, 1987) ................................................................... 32
Figura 2: Configuração inicial proposta por Queck, Mysliwiec e Zhao, teclado e máscara de
teclado utilizada (QUECK,;MYSLIWIEC; ZHAO, 1995) .................................................. 33
Figura 3: ( a ) - Orientação da mão utilizada para dirigir um robô; ( b ) - Diferença de imagens
pode ser utilizada para inferir direção e movimento ; ( c ) - Histogramas de orientação para
reconhecer diferentes posturas da mão (FREEMAN; ANDERSON; BEARDSLEY, 1998)33
Figura 4: Câmera de topo capturando imagem e algoritmo detectando o contorno da mão.
(MACCORMICK; ISARD, 2000) ....................................................................................... 34
Figura 5: Setup experimental, modelo proposto por Sato e Saito (SATO; SAITO, 2001) .. 34
Figura 6: Demonstração do evento de clique padrão do mouse. Algum tempo, no mesmo local
mantendo a postura, determina o evento (HANDENBERG, 2001). ................................... 35
Figura 7: Detecção da ponta dos dedos em interação através de forma geométrica. (OKA;
SATO; KOIKE, 2002) ......................................................................................................... 35
Figura 8: (a) algoritmo em busca da ponta do dedo; (b) ponta do dedo detectada (UKITA;
KIDODE, 2004) ................................................................................................................... 36
Figura 9: Detecção de duas diferentes posturas (MACKIE; MCCANE, 2004) .................. 36
Figura 10: Contornos das mãos em diferentes fundos e com diferentes condições de
luminosidade (MANRESA; VARONA; MAS; PERALES, 2005). .................................... 37
Figura 11: Exemplo de interação do usuário com o sistema, que pretende incentivar a atividade
física (DE PAULA; BONINI; MIRANDA, 2006). ............................................................. 38
Figura 12: Resultados da detecção da postura "dois dedos" (CHEN; GEORGANAS; PETRIU,
2007) .................................................................................................................................... 39
Figura 13: Ilustra os gestos previstos num intervalo de 0,5 segundos entre eles (CHAN; LAU;
LI, 2008). ............................................................................................................................. 40
Figura 14: Usuário interagindo com multidão de humanos virtuais em um teatro (MUSSE;
OSÓRIO, 2000) ................................................................................................................... 41
Figura 15: Postura de mão utilizada para instruir ação de bater palmas (MUSSE; OSÓRIO,
2000) .................................................................................................................................... 41
Figura 16: Interface onde o designer descreve as trajetórias (ULICNY; CIECHOMSKI;
THALMANN, 2004) ........................................................................................................... 42
Figura 17: Rede Neural Artificial como uma "caixa preta" (Eberhart, 1996) ..................... 44
Figura 18: Estrutura geral de um neurônio de uma RNA (HAYKIN, 2002). ...................... 45
Figura 19: RNA feedforward de uma camada (GALLANT, 1993) ..................................... 46
Figura 20: RNA feedforward multicamada (GALLANT, 1993) ........................................ 47
Figura 21: Representação de uma rede neural recorrente (GALLANT, 1993) ................... 48
Figura 22: Perceptron de Múltiplas Camadas ...................................................................... 50
Figura 23: Gráfico de uma superfície de erro de uma RNA (GALLAGHER, 2000). ......... 51
Figura 24: Parada antecipada, baseada em validação cruzada (HAYKIN, 2002) ............... 53
Figura 25: Figura que ilustra a utilização da técnica Chroma-Key (Wikipedia) ................. 55
Figura 26: Método PFinder em interação com o usuário (WREN, 1997) ........................... 56
Figura 27: Resultados obtidos com o método W4 (HARITAOGLU; DAVIS, 2000) ......... 57
Figura 28: Remoção de sombra em extensão ao método W4 (JACQES; JUNG; MUSSE, 2005).
58
Figura 29: Arquitetura do sistema proposto ......................................................................... 60
Figura 30: Requisitos básicos do Sistema. Notebook padrão PC, webcam e tripé (JUNIOR;
JUNG; MUSSE; OSÓRIO; KEHL, 2007.) .......................................................................... 62
Figura 31. a) Canal azul da imagem adquirida; b) Resultado da binarização; c) Resultado do
fechamento morfológico; d) Resultado final (restrito ao bounding box)........................... 64
Figura 32: Ilustra o controle do fundo da cena capturada em superfície clara facilitando o
contraste com a mão. ............................................................................................................ 64
Figura 33: Extração das mãos utilizando um fundo mais complexo ................................... 67
Figura 34: Exemplos de posturas a serem reconhecidas ...................................................... 69
Figura 35: Projeções em x e y de uma imagem de postura de mão aberta binarizada ......... 69
Figura 36: Topologia da rede 22-22-6 criada a partir do JavaNNS ..................................... 70
Figura 37: A interação do usuário serve como estímulo para o agrupamento de humanos
virtuais em formação militar (versão anterior do modelo) (JUNIOR; JUNG; MUSSE; OSÓRIO;
KEHL, 2007) ........................................................................................................................ 74
Figura 38: Arquitetura de funcionamento de um socket ...................................................... 75
Figura 39: Ambiente com fundo menos controlado, utilizando subtração de backgroud e
remoção de sombras ............................................................................................................. 78
Figura 40: Exemplos de postura com maior ocorrência de erros na etapa de classificação.80
Figura 41: Matriz de Confusão - RNA escolhida para posturas da mão direita .................. 80
Figura 42: Log da evolução do MSE em 1000 épocas. ....................................................... 81
Figura 43: Gráfico da evolução do MSE para as 1000 épocas iniciais. ............................... 81
Figura 44: Matriz de Confusão - RNA escolhida para posturas da mão esquerda .............. 82
Figura 45: Log da evolução do MSE em 1000 épocas - posturas da mão esquerda ............ 83
Figura 46: Gráfico da evolução do MSE para as 1000 épocas iniciais - posturas da mão
esquerda ............................................................................................................................... 83
Figura 47: Testes com o protótipo com mãos de tamanhos diferentes ................................ 84
Figura 48: Diferença na altura e ângulo da câmera - regulagens levemente diferentes ....... 85
Figura 49: Diferentes fontes de luminosidade podem gerar resultados não satisfatórios no
processo de segmentação ..................................................................................................... 86
Lista de Tabelas
Tabela 1: Configuração do hardware utilizado .................................................................... 61
Tabela 2: Relação entre as posturas e as respectivas classes. .............................................. 69
Tabela 3: Resultados obtidos com dez execuções da RNA da mão direita ......................... 72
Tabela 4: Resultados obtidos das dez execuções da RNA da mão esquerda ....................... 72
Tabela 5: Relação de ações executadas pelo simulador através de posturas de mãos ......... 74
Tabela 6: Resultados da etapa de validação/testes da Rede Neural - SVR 2007 ................. 77
Abreviaturas
ANN - Artificial Neural Network
IHC - Interaction Human-Computing ou Interação humano-computador
MLP - Multi Layer Perceptron
MSE - Mean Square Error
PC - Personal Computer ou Computador Pessoal
RBV - Rede Brasileira de Visualização
RNA - Redes Neurais Artificiais
RPROP - Resileint Propagation
SSE - Sun of Squared Error
USB - Universal Serial Bus
Sumário
Lista de Figuras .................................................................................................................... 19
Lista de Tabelas ................................................................................................................... 22
Abreviaturas ......................................................................................................................... 23
1 Introdução .................................................................................................................... 26
1.1 O Problema .................................................................................................................. 27
1.2 Objetivos Gerais ........................................................................................................... 28
1.3 Objetivos Específicos ................................................................................................... 28
2 Revisão Bibliográfica ................................................................................................... 30
2.1 Interfaces Homem-Máquina e Visão Computacional .................................................. 30
2.2 Interação com grupos de humanos virtuais .................................................................. 41
3 Fundamentos ................................................................................................................ 43
3.1 Redes Neurais Artificiais - RNAs ................................................................................ 43
3.1.1 Arquitetura das Redes Neurais Artificiais ................................................................ 45
3.1.1.1 Redes Feedforward de uma camada....................................................................... 46
3.1.1.2 Redes Feedforward Multicamada .......................................................................... 46
3.1.1.3 Redes Recorrentes .................................................................................................. 47
3.1.2 O processo de aprendizagem das RNAs ................................................................... 48
3.1.3 O Perceptron de Múltiplas Camadas e o Aprendizado por Retropropagação de Erro49
3.1.3.1 Algoritmo de Retropropagação de Erro (Error Back-Propagation) ....................... 50
3.1.3.2 O algoritmo de propagação resiliente ou Rerilient Propagation - RPROP ............ 52
3.1.4 Generalização das RNAs .......................................................................................... 52
3.2 Técnicas de Subtração de fundo .................................................................................. 54
3.2.1 Técnicas Utilizadas ................................................................................................. 55
4 Método proposto .......................................................................................................... 59
4.1 Recursos utilizados ...................................................................................................... 61
4.2 Segmentação da mão .................................................................................................... 62
4.2.1 Ambiente controlado ................................................................................................. 63
4.2.2 Segmentação por subtração de background .............................................................. 65
4.3 Definição das posturas e seleção do vetor de feições .................................................. 67
4.4 Detecção das posturas e gestos usando Redes Neurais ................................................ 70
4.5 Interface com o simulador ........................................................................................... 73
5 Resultados experimentais ............................................................................................. 77
5.1 Limitações do modelo .................................................................................................. 85
6 Considerações finais e trabalhos futuros ....................................................................... 87
Referências
Anexo - Publicações
RESUMO
26
1 Introdução
O reconhecimento de padrões está engajado no campo da Visão Computacional e
Inteligência Artificial de forma muito importante, a fim de alcançar e realizar a "máquina
inteligente". Em particular, o reconhecimento de padrões desempenha um papel
importante no que diz respeito à Interação Homem-Máquina baseados em Visão
Computacional.
Interfaces alternativas de interação com o computador vêm sendo desenvolvidas e
testadas ao longo dos anos para diversas aplicações. Algumas dessas interfaces são caras e
de difícil acesso, enquanto outras, nem tão práticas a ponto de dispensar o mouse e o
teclado.
Neste contexto, apenas os jogos conseguiram popularizar o Joystick como interface
refletindo na comercialização do dispositivo em larga escala e por preços acessíveis. Uma
razão para isso é que um elemento imprescindível à aceitação de uma interface pelo
usuário é a sua simplicidade. É sabido, que a eficiência do usuário é diretamente
influenciada pela interface e, normalmente, o usuário opta por interfaces de interação mais
agradáveis a uma que ofereça maior funcionalidade ou desempenho do sistema.
Sistemas de interação baseados em Visão Computacional utilizam câmeras a fim de
capturar imagens, com o objetivo de extrair destas imagens padrões e comportamentos.
Agora, com a massificação de dispositivos como webcams, temos uma oportunidade barata
de substituir os dispositivos tradicionais por algo mais confortável, onde os velhos mouse e
teclado poderão servir apenas como complementares. No caso de conseguirmos interfaces
realmente mais naturais, poderíamos criar ambientes interativos onde crianças com
dificuldade de aprendizagem, pessoas portadoras de deficiências físicas ou com
dificuldades de movimentação fossem beneficiadas.
Neste trabalho, faremos uso de uma interface que propõe a aquisição de imagens de
posturas de mãos sobre uma superfície de observação, através de uma webcam. Estas
27
imagens após processadas via técnicas de Visão Computacional, resultarão em dados de
entrada para uma RNA a fim de identificar posturas pré-determinadas e classificá-las.
Depois da etapa de classificação, as posturas são enviadas por meio de instruções ou
comandos a uma aplicação apta a interagir em tempo real com o usuário.
1.1 O Problema
Uma interface de interação em meio computacional é responsável pelo
mapeamento das ações do usuário sobre dispositivos de entrada, traduzindo-as em
requisições de processamento para a aplicação, que é responsável pela apresentação
adequada dos resultados que foram produzidos. Então, tendo como objetivo colocar a
prova o método que está sendo descrito, é preciso utilizar uma aplicação específica que
possa fazer uso dos recursos providos por esta interface. Para isso, utilizaremos um
ambiente de simulação de Humanos Virtuais denominado VHSimul, que está sendo
desenvolvido no Laboratório de Humanos Virtuais da Pontifícia Universidade Católica do
Rio Grande do Sul
PUC/RS, em conjunto com o CROMOS
Laboratório de Simulação
de Humanos Virtuais, da Unisinos
Universidade do Vale do Rio dos Sinos.
Nesse ambiente, o objetivo é simular diferentes interações do usuário com humanos
virtuais em locais previamente modelados. A partir disso, uma série de comportamentos e
interações serão definidas como, por exemplo, seleção de agentes e movimentações que os
grupos de humanos virtuais poderão executar em função do tempo.
As interações e a movimentação dos agentes no sistema de simulação estão
relacionadas diretamente às posturas de mão do usuário que, sobre uma superfície, serão
adquiridas como seqüência de imagens, através de uma Webcam, pré-processadas e
classificadas a partir de Redes Neurais Artificiais dando origem a instruções e comandos
que serão enviados para a aplicação de simulação.
28
1.2 Objetivos Gerais
A motivação maior para o desenvolvimento deste trabalho é a utilização de técnicas
de visão computacional para a construção de uma interface barata de interação entre o
usuário e o computador, baseada em posturas de mãos, e que seja totalmente confiável. É
importante que estas técnicas possam prover recursos e servir como uma interface natural e
intuitiva na interação com outros sistemas de computação, e que possam rodar em tempo
real .
Também queremos demonstrar a viabilidade de uso de RNAs
Redes Neurais
Artificiais em interfaces baseadas em Visão Computacional, contando simultaneamente
com a utilização junto a sistemas de simulação de grupos de humanos virtuais.
1.3 Objetivos Específicos
Para desenvolver o sistema de interação baseado em visão computacional, há
diversos objetivos parciais que devem ser atingidos:
Adquirir imagens de posturas de mãos através de uma câmera top-down;
Utilizar procedimentos de subtração de fundo da cena e detecção de
sombras para extrair as mãos;
Processar as imagens adquiridas a ponto de extrair delas vetores de feições;
Construir uma RNA a partir de ferramentas gráficas e proceder a sua
exportação para linguagem C++
Proceder à integração do ambiente MATLAB aos scripts C++ gerados;
Gerar as bases de treinamento e validação da RNA em procedimentos
idênticos aos utilizados na execução do protótipo;
Treinar a RNA para que ela seja capaz de diferenciar e classificar as
diferentes posturas adotadas;
29
Enviar de forma transparente os dados extraídos das imagens para a RNA
bem como ser transparente no envio do resultado da classificação à
ferramenta de simulação de Humanos Virtuais;
Integrar os diversos ambientes em um único e simples protótipo
No capítulo que segue serão apresentados alguns trabalhos considerados como
estado da arte no que diz respeito à Interação Homem-Máquina baseada em Visão
Computacional, utilizando gestos ou posturas de mãos. Também será feita uma revisão
geral da literatura sobre interação com grupos de humanos virtuais. No capítulo 3 serão
descritos fundamentos de RNAs
Redes Neurais Artificiais e fundamentos de subtração de
Background. O capítulo 4 descreve o modelo proposto dando ênfase à segmentação das
imagens e definição das posturas, à seleção e extração das feições das imagens, à
classificação das posturas através das RNAs, e a interface com o simulador de humanos
virtuais. Os resultados por conta dos experimentos com o modelo apresentado estarão
descritos no capítulo 5, e as conclusões apresentadas no capítulo 6.
30
2 Revisão Bibliográfica
Este capítulo está dividido em duas seções: a primeira apresenta uma visão geral a
respeito de Interfaces Homem-Máquina utilizando Visão Computacional, ao mesmo tempo
em que comenta a respeito do estado da arte. A segunda seção está focada em trabalhos
relativos à interação do usuário com humanos virtuais ou grupos de humanos virtuais.
O objetivo principal deste capítulo é apresentar e comentar brevemente alguns
trabalhos importantes que serviram de referência à técnica proposta, no que diz respeitos
aos assuntos centrais deste trabalho.
2.1 Interfaces Homem-Máquina e Visão Computacional
Pesquisas relacionadas à interação Homem-Máquina baseada em Visão
Computacional têm se desenvolvido muito nos últimos anos. No que diz respeito à
interação utilizando as mãos, muito sistemas têm se dedicado ao reconhecimento de gestos
e posturas, mas não existe um que seja amplamente utilizado (TRUYENQUE, 2005).
O que mais chama a atenção quando o assunto em pauta é o estado da arte em
Visão Computacional é que ainda não existe nenhum modelo de percepção visual passível
de ser aplicado na prática ou que tenha sido aplicado em grande escala ou que pudesse ser
utilizado genericamente. O que existe hoje são diversos métodos para resolver algumas
tarefas bem definidas nas quais as ténicas são bastante especializadas. O que acontece na
realidade é que, para resolvermos uma determinada demanda de interpretação de imagens
utilizamos um conjunto de algoritmos bastante específicos, que são respectivamente
responsáveis por realizar subtarefas limitadas dentro do processo de interpretação dessa
imagem. Esses algoritmos são divididos em grupos, como filtros de contraste, detectores
de bordas de objetos, segmentadores de imagens em regiões, classificadores de texturas e
assim por diante. Normalmente a solução para um problema específico passa pela
execução de uma série desses algoritmos especializados, um após o outro, para chegarmos
31
a um resultado satisfatório que funcionará para um conjunto de imagens com
características muito específicas, podendo deixar de funcionar satisfatoriamente para
algumas outras. Isto significa que, em sistemas de visão computacional, a generalização
para situações mais complexas pode ser difícil, uma vez que os computadores são pré-
programados para resolver uma tarefa particular adequada para condições específicas.
Nesta seção serão relacionados trabalhos que serviram de referência à técnica aqui
apresentada, abordando interfaces de interação entre pessoas e o computador, bem como
interfaces projetadas que utilizam técnicas de Visão Computacional.
Uma definição básica para delimitar o escopo deste trabalho de pesquisa passa pela
definição de postura e gesto (CADOZ; WANDERLEY, 2000). Alguns autores consideram
postura (de mãos) como o oposto ao gesto (MULDER, 1998). Assim, uma postura seria
estática, um gesto, dinâmico. Uma postura seria a fotografia de um gesto em um
determinado instante. O problema desta definição é que ela não leva em conta as forças
envolvidas na sustentação da postura, como a transição entre uma postura e outra.
Em sistemas de reconhecimento de gestos ou posturas, uma das fases mais
importantes é a de aquisição de dados, porque ela é a responsável pelas medidas dos
mesmos. Os dados podem ser adquiridos, por exemplo, através de sensores ópticos,
acústicos e eletromagnéticos. Essas medidas servirão para comparar e distinguir os gestos
ou posturas adotadas. No que diz respeito aos dispositivos de aquisição de dados, citamos
as duas correntes mais importantes: a das luvas instrumentadas e a da visão por
computador.
Zimmermann at al, (ZIMMERMANN; LANIER; BLANCHARD; BRYSON;
HARVILL, 1987) já relatavam o desenvolvimento de um dispositivo para ser colocado nas
mãos, que fornece ao computador as informações do gesto em tempo real, dando a ele sua
posição e orientação. Esta luva, como foi concebida, incorporava uma série de tecnologias
como sensores analógicos, sensores magnéticos, componentes capazes de medir a
dobradura do dedo entre outros. Este modelos 3D permitiriam que fossem manipulados
objetos não-reais , gerados pelo computador.
32
Figura 1: Data Glove expondo os dispositivos internos (ZIMMERMANN; LANIER;
BLANCHARD; BRYSON; HARVILL, 1987)
Segundo Sturman e Zeltzer (STURMAN; ZELTZER, 1994) algumas das pesquisas
em interface e relacionadas aos gestos são baseadas em elementos marcadores nas mãos.
Esses elementos podem ser luvas de realidade virtual ou outros tipos de elementos ou
dispositivos que são usados pelos usuários a fim de que se detectem gestos, posturas e
posições em relação a pontos de referência.
Os sistemas de reconhecimento de gestos da mão, segundo Pavlovic (PAVLOVIC;
SHARMA, 1997), podem ser classificados em dois grupos. Os baseados em modelos 3D
são definidos através de um conjunto de parâmetros que descrevem todos os seus graus de
liberdade, e os 2D são baseados na aparência da imagem.
Outros trabalhos foram realizados usando-se técnicas de mãos limpas ou apenas
de mão livres, ou seja, baseiam-se em métodos onde não há a necessidade de vestirem-se
as mãos com dispositivos, sejam eles mecânicos, magnéticos ou ópticos. Um desses
métodos sem revestimentos ou dispositivos conectados às mãos foi utilizado por Queck,
Mysliwiec e Zhao (QUECK; MYSLIWIEC; ZHAO, 1995) utilizando uma câmera de topo.
O sistema FingerMouse lança mão de uma máquina de estados finito e de segmentação
baseada em cor de pele para a detecção de mãos como apontador que substituísse o mouse,
sobre um teclado utilizado como fundo da cena.
33
Figura 2: Configuração inicial proposta por Queck, Mysliwiec e Zhao, teclado e máscara
de teclado utilizada (QUECK,;MYSLIWIEC; ZHAO, 1995)
Algumas técnicas para a interação através de visão são descritas por Freeman e
Anderson (FREEMAN; ANDERSON; BEARDSLEY, 1998). Figura 3 (a) mostra como a
orientação da mão, que é o conjunto de pixels diferentes do fundo, é utilizada para dirigir
um robô. A Figura 3 (b) mostra como a diferença de imagens pode ser utilizada para inferir
direção e movimento, e no outro exemplo, Figura 3 ( c ), mostra como os chamados
histogramas de orientação dos pixels são utilizados para reconhecer diferentes posturas da
mão.
( a ) ( b ) ( c )
Figura 3: ( a ) - Orientação da mão utilizada para dirigir um robô; ( b ) - Diferença de
imagens pode ser utilizada para inferir direção e movimento ; ( c )
Histogramas de
orientação para reconhecer diferentes posturas da mão (FREEMAN; ANDERSON;
BEARDSLEY, 1998)
34
Trabalhos como os de Hall e Crowley (HALL; CROWLEY, 1999) e de
Maccormick e Isard (MACCORMICK; ISARD, 2000) detectam o contorno da mão, ou a
silhueta da mão através de curvas B-Splines ou Snakes (Figura 4). Depois, são utilizadas
técnicas para a detecção e o seguimento dos contornos, onde são detectados os pontos que
representam as pontas dos dedos.
Figura 4: Câmera de topo capturando imagem e algoritmo detectando o contorno da mão.
(MACCORMICK; ISARD, 2000)
Sato e Saito (SATO; SAITO, 2001) propuseram um modelo para seguir a
movimentação da mão do usuário, em 3D, e reconhecer o gesto de mão em tempo real.
Eles utilizaram múltiplas câmeras com a finalidade de determinar a posição e orientação da
mão do usuário. Tal método identifica gestos pré-determinados usando uma rede neural
treinada anteriormente.
Figura 5: Setup experimental do modelo proposto por Sato e Saito (SATO; SAITO, 2001)
35
(HANDENBERG, 2001) Apresenta 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.
Interações em forma de postura, como o clique padrão e o clique direito do mouse são
implementados.
Figura 6:
Demonstração do evento de clique padrão do mouse. Algum tempo, no mesmo
local mantendo a postura, determina o evento (HANDENBERG, 2001).
No trabalho de Oka (OKA; SATO; KOIKE, 2002) as pontas dos dedos são
modeladas como sendo círculos. O movimento dos dedos detectados é utilizado para
reconhecer algumas figuras geométricas que são utilizadas como comandos na interação
(Figura 7).
Figura 7: Detecção da ponta dos dedos em interação através de forma geométrica. (OKA;
SATO; KOIKE, 2002)
36
Outros sistemas facilitam a segmentação utilizando câmeras infravermelhas, o que
permite uma segmentação mais acurada das mãos. No trabalho de Ukita e Kidode
(UKITA ; KIDODE, 2004) é mostrado um sistema que utiliza o dedo para desenhar, em
que os dedos são modelados como sendo semicírculos, os quais são utilizados no processo
de correlação.
Figura 8:
(a) algoritmo em busca da ponta do dedo; (b) ponta do dedo detectada (UKITA ;
KIDODE, 2004)
Mackie e McCane (MACKIE; MCCANE, 2004) apresentaram um sistema capaz de
reconhecer gestos e posturas em mãos livres (Figura 9). É um sistema de estimativa de
posições que pode ser aplicado a Interfaces Virtuais e Interfaces de Realidade Aumentada.
Aqui, utilizaram árvores de decisão (QUINLAN, 1996) em um ambiente de aprendizado
Weka1.
Figura 9: Detecção de duas diferentes posturas (MACKIE; MCCANE, 2004)
Manresa et. al, (MANRESA; VARONA; MAS; PERALES, 2005) apresentam um
algoritmo para monitorar e reconhecer gestos e posturas para interagir com um videogame.
1 http://www.cs.waikato.ac.nz/ml/
37
Tal algoritmo baseia-se em três etapas principais: segmentação da mão,
monitoramento da mão e reconhecimento das características do gesto. Para a segmentação
da mão usam características de cor de pele e suas variantes onde o usuário tem o tom de
pele adquirido durante um processo de treinamento. Para evitar erros na segmentação foi
incluído um processo de monitoramento. A partir do processo de monitoramento que são
extraídas as características dos gestos que servem de entradas a uma máquina de estados
finitos, para a classificação. A mão pode ser classificada em quatro categorias de gestos ou
uma das quatro opções de direção que dão diferentes movimentos.
No campo dos jogos, De Paula e colaboradores (DE PAULA; BONINI;
MIRANDA, 2006) descrevem o Camera Kombat. É um jogo de lutas que dispensa o uso
de dispositivos tradicionais de interação, utiliza técnicas de visão computacional e uma
webcam. Durante a partida os jogadores fazem seus movimentos em frente a uma webcam,
o avatar que representa o jogador executa alguma tarefa de ataque quando uma seqüência
de movimentos é detectada. Não existe necessidade de contato físico entre os jogadores
(Figura 11), e as seqüências de movimentos são pré-cadastradas. Na fase de segmentação
dos jogadores são utilizadas técnicas de subtração de fundo e os gestos são reconhecidos
com auxílio da técnica de fecho convexo. Segundo os autores, este tipo de abordagem
apresenta um elevado nível de atividade física e é mais atraente ao consumo do que
dispositivos tradicionais de interação como o teclado, o mouse e joysticks.
Figura 10: Contornos das mãos em diferentes fundos e com diferentes condições de
luminosidade (MANRESA; VARONA; MAS; PERALES, 2005).
38
Figura 11: Exemplo de interação do usuário com o sistema, que pretende incentivar a
atividade física (DE PAULA; BONINI; MIRANDA, 2006).
Uma abordagem estatística para reconhecer gestos de mão em tempo real com uma
única webcam como o dispositivo de entrada, baseado na classificação dos gestos, é
proposta por Chen (CHEN; GEORGANAS; PETRIU, 2007). É composta por dois níveis: o
primeiro nível implementa o reconhecimento de posturas através de recursos Haar-Like,
que se concentra mais nas informações dentro de uma certa
área da imagem ao invés de cada pixel, e com algoritmo de aprendizagem AdaBoost para
melhorar a classificação a precisão para alcançar desempenho em tempo real; o segundo
implementa o reconhecimento de gestos, com base em analise sintática. Baseados na
cascata de classificadores (Figura 12), uma estrutura paralela é aplicada para classificar
diferentes posturas mão.
39
Figura 12: Resultados da detecção da postura dois dedos
(CHEN; GEORGANAS;
PETRIU, 2007)
Chan et. al (CHAN; LAU; LI, 2008) Apresentam um método para modelar e
prever movimentos da mão humana considerando as limitações físicas dos movimentos
dos dedos, a fim de lidar com o problema de alta latência da rede Internet, para beneficiar
aplicações que requerem o compartilhamento remoto de gestos de mãos. Classificam as
limitações em estáticas e dinâmicas e concentram sua modelagem no estado de transição
entre a movimentação. A Figura 13 ilustra a previsão de gestos num intervalo de 0,5
segundos entre eles.
40
Figura 13: Ilustra os gestos previstos num intervalo de 0,5 segundos entre eles (CHAN;
LAU; LI, 2008).
41
2.2 Inter ação com grupos de humanos virtuais
O objetivo desta seção é apresentar alguns dos poucos trabalhos encontrados
relacionados a grupos de humanos virtuais, no que diz respeito à interação e a forma como
estes indivíduos são controlados pelo usuário.
Musse e Osório (MUSSE; OSÓRIO, 2000) apresentam um sistema para fornecer a
interação facilitada do usuário com multidões de humanos virtuais, e detectam as posturas
das mãos com a ajuda de uma DataGlove, onde uma RNA é responsável pela classificação
e reconhecimento da postura (Figura 14). As posturas das mãos são reconhecidas fazendo
uso do NeuSim (OSORIO, 1999) que é um simulador de RNAs baseado no algoritmo de
aprendizagem Cascade-Correlation (FAHLMAN, 1990).
Figura 14: Usuário interagindo com multidão de humanos virtuais em um teatro (MUSSE;
OSÓRIO, 2000)
Figura 15: Postura de mão utilizada para instruir ação de bater palmas (MUSSE; OSÓRIO,
2000)
42
Ulicny et al (ULICNY; CIECHOMSKI; THALMANN, 2004) propõem uma
ferramenta (Crowdbrush) que distribui, modifica e controla os membros de uma multidão
em tempo real. O designer trabalha em um ambiente 2D, utilizando o mouse e o teclado
para manipular os objetos correspondentes em 3D. Pode-se incluir ou remover membros da
multidão, alterar suas aparências, animação, configurar um comportamento de alto nível,
pré-determinar trajetórias para a multidão, ou enviar eventos para um subsistema de
comportamentos. A Figura 16 exibe uma multidão seguindo as trajetórias especificadas
pelo designer. Este trabalho é um excelente exemplo de controle de multidões baseada em
intervenção com o usuário (user-based).
Figura 16: Interface onde o designer descreve as trajetórias (ULICNY; CIECHOMSKI;
THALMANN, 2004)
Neste capítulo foram apresentadas importantes referências relacionadas aos
assuntos tratados neste trabalho, principalmente no que diz respeito a Interfaces Homem-
Máquina utilizando Visão Computacional à interação do usuário com Humanos Virtuais ou
Grupos de Humanos Virtuais.
O capítulo que segue apresentará, de forma sintética, fundamentos sobre as Redes
Neurais Artificiais, ao mesmo tempo em que explora conceitos e técnicas de subtração de
background.
43
3 Fundamentos
Tendo como base a literatura existente, e a estratégia que se pretende adotar neste
trabalho, serão apresentados neste capítulo fundamentos sobre as Redes Neurais Artificiais
e sobre subtração de background. Em particular, serão abordados conceitos, vantagens,
aplicações e técnicas utilizadas.
3.1 Redes Neurais Artificiais - RNAs
As representações a respeito das Redes Neurais Artificiais
RNAs
estão
fortemente ligadas ao conhecimento relativo ao cérebro humano. Elas foram inspiradas nas
redes neurais biológicas e comportam-se como modelos simplificados do sistema nervoso
central (HAYKIN, 2002). Elas possuem a capacidade de aprender e generalizar funções
através de uma experiência anterior. São estruturas compostas por unidades processadoras
simples, distribuídas e paralelas, que tem o objetivo de armazenar conhecimento e depois,
torná-los disponíveis para uso.
As redes neurais também são encontradas na literatura como neurocomputadores,
redes conexionistas, entre outros (HAYKIN, 2002). Trata-se de uma estrutura
extremamente interligada de unidades computacionais, denominadas por neurônios ou
nodos, que possuem capacidade de aprendizagem. Pode ser comparada ao cérebro humano
em dois aspectos (HAYKIN, 2002).
1. O conhecimento é adquirido pela rede a partir do meio ambiente através de
mecanismos de aprendizagem;
2. A força das conexões entre as unidades processadoras são minimizadas ou
maximizadas de forma a armazenar melhor o conhecimento adquirido.
A denominação Neurônio ou Nodo é dada à unidade processadora de uma rede
neural, que é implementada através de uma função matemática. Durante o processo de
44
aprendizagem, realizado através de um algoritmo de aprendizagem ou treino, a força ou
peso das conexões é ajustada de forma a atingir um dado estado de conhecimento da rede
ou uma forma ordenada para alcançar um objetivo desejado. Depois de executado o
processo de aprendizagem, as RNAs tornam-se robustas ferramentas que respondem
adequadamente às entradas, até mesmo com ruídos ou totalmente desconhecidas durante o
seu treino ou aprendizagem.
As redes neurais artificiais podem ser implementadas ou simuladas através de
componentes eletrônicos. Em geral, as redes neurais são sistemas de processamento de
informações que podem ser compreendidas como caixas pretas (EBERHART 1996),
cujas entradas são fornecidas e saídas são obtidas (Figura 17).
Figura 17: Rede Neural Artificial como uma caixa preta (Eberhart, 1996)
Uma RNA é, de uma forma simples, um conjunto de unidades computacionais,
denominadas neurônios, células ou nodos, que possuem alguma memória local, e um
conjunto de conexões entre esses nodos (GALLANT, 1993). Um nodo representa uma
unidade de processamento, que é a chave para a operação de uma RNA. Eles exercem um
papel de comparador e produzem uma saída quando o efeito cumulativo das entradas
excede um dado valor limite.
Cada ligação entre os nodos, conhecida como conexão ou sinapse, tem a si
associados valores numéricos aos quais se atribui à denominação pesos. Na medida em que
o tempo passa, cada unidade examina as suas entradas e a partir destas calcula um valor
numérico chamado ativação. Esse valor de ativação é passado então ao longo das outras
conexões, que levam as outras células.
45
Figura 18: Estrutura geral de um neurônio de uma RNA (HAYKIN, 2002).
Na figura 18 identificam-se elementos básicos do modelo de neurônio artificial:
1) Um conjunto de sinapses ou conexões, cada uma, caracterizada por um peso próprio.
Um sinal xj na entrada da sinapse j conectada ao neurônio k é multiplicado pelo peso sináptico
Wkj. O primeiro índice (k) se refere ao neurônio e o segundo (j) ao terminal de entrada da
sinapse à qual o peso se conecta.
2) Um somador, para somar os sinais de entrada, ponderados pelas respectivas sinapses
do neurônio.
3) Uma função de ativação não linear (f) para restringir a amplitude da saída do
neurônio. Tipicamente, o intervalo normalizado da amplitude da saída de um neurônio é escrito
como o intervalo unitário fechado [0,1] ou, alternativamente, [-1,1].
Este modelo inclui também um bias aplicado externamente, que tem o efeito de
aumentar ou diminuir a entrada líquida da função de ativação, dependendo se é positivo (> 0)
ou negativo (< 0).
3.1.1 Arquitetura das Redes Neurais Artificiais
A arquitetura de uma RNA define a forma como os seus neurônios estão
organizados e está intimamente ligada aos algoritmos de aprendizagem utilizados para
46
treinar a rede. Existem diversas topologias de RNAs que distinguem-se pelo número de
camadas e pelo arranjo de conexões entre seus neurônios. Em geral enquadram-se em três
categorias (GALLANT, 1993), descritas a seguir:
3.1.1.1 Redes Feedforward de uma camada
É a forma mais simples de uma rede em camadas, onde temos uma camada de
entrada que se comunica diretamente através das sinapses com a camada de saída em
sentido único, ou seja, esta rede é sempre alimentada adiante (Figura 19), por isso
denominada de rede feedforward ou acíclica. É considerada de uma camada, uma vez que
os neurônios da camada de entrada apenas fazem o repasse do sinal e não desempenham
nenhum processamento. Então o termo unicamada se refere à camada de saída, a qual é a
única responsável pelo tratamento do sinal de entrada.
Figura 19: RNA feedforward de uma camada (GALLANT, 1993)
3.1.1.2 Redes Feedforward Multicamada
As redes neurais feedforward multicamadas se distinguem das redes com uma só
camada por apresentarem uma ou mais camadas intermediárias entre a entrada e a saída da
rede. Estas camadas são denominadas camadas ocultas, cujos nodos computacionais são
chamados correspondentemente de neurônios ocultos. A razão para a presença de
neurônios ocultos é proporcionar às redes neurais a capacidade de extrair estatísticas de
ordem mais elevada sobre os dados de entrada. Este tipo de arquitetura é particularmente
valioso quando se tem uma camada de entrada muito grande.
47
A Figura 20 mostra uma rede feedforward multicamada 2-3-2. Esta rede neural
possui 2 (dois) neurônios na camada de entrada da rede, 3 (três) na segunda camada
(oculta) e 2 (dois) na terceira (saída). Uma RNA é considerada totalmente ligada ou
conectada quando todo neurônio de uma camada qualquer estiver conectado a todos os
neurônios da camada subseqüente, caso contrário, é denominada parcialmente ligada.
Figura 20: RNA feedforward multicamada (GALLANT, 1993)
3.1.1.3 Redes Recorrentes
Redes Neurais Recorrentes são diferentes das feedforward por apresentarem pelo
menos um laço de retro-alimentação, como ilustra a Figura 21. Quando uma saída de um
elemento influência de algum modo a entrada para esse mesmo elemento, criando-se assim
um ou mais ciclos. Assim que uma ou mais conexões cíclicas são incluídas numa rede, esta
passa a ter um comportamento não linear, podendo ser utilizadas para modelar novas
funções cognitivas tais como as de memória associativa e/ou temporal (BOSE; LIANG,
1996). Assim, as saídas não são função, exclusivamente das ligações entre nodos, mas
também de uma dimensão temporal; i.e, existe presença de um cálculo recursivo, que
obedecerá naturalmente a uma certa condição de parada, com a última iteração a ser dada
como a saída para o nodo (RIEDMILLER; BRAUN, 1993).
48
Figura 21: Representação de uma rede neural recorrente (GALLANT, 1993)
3.1.2 O processo de aprendizagem das RNAs
A mais importante propriedade das Redes Neurais Artificiais é a capacidade de
aprender a partir do contexto onde estão inseridas, para melhorar o seu desempenho através
deste aprendizado. Mas para que uma RNA possa aprender é preciso apresentar-lhe uma
quantidade de exemplos de forma seqüencial e iterativa. Este processo denomina-se treino,
onde a cada iteração os pesos sinápticos e o bias são ajustados. Isso se repete até que a rede
alcance o seu objetivo. Segundo (HAYKIN, 2002), aprendizagem no âmbito das redes
neurais pode ser definida como processos pelos quais parâmetros livres da rede são
adaptados e estimulados pelo ambiente em questão, ao longo de vários ciclos, onde a forma
pela qual a modificação dos parâmetros ocorre, determina o tipo de aprendizagem.
(GALLANT, 1993) também fala da seqüência de eventos que envolvem o
aprendizado de uma rede neural:
A RNA é estimulada por informação que emana de um dado ambiente ou
universo de discurso em que se desenvolve;
Certos parâmetros livres, normalmente os pesos das conexões, são alterados
em resultado desse estímulo;
A RNA responde de uma nova forma a estímulos que emanem do ambiente,
em virtude das alterações sofridas pela sua estrutura interna.
Existem três estratégias ou paradigmas de aprendizagem para as redes neurais: o
Supervisionado, Semi-Supervisionado ou De Reforço e o Não-Supervisionado
49
(HAYKIN, 2002) (EBERHART , 1996) (OSÓRIO, 1999). Mencionaremos aqui apenas os
paradigmas Supervisionado e Não-Supervisionado:
Supervisionado
Método bastante popular onde são fornecidas respostas
exatas à rede. A rede aprende a partir de um conjunto de casos onde cada
caso, também chamado de exemplo ou caso de treino, é composto por um
vetor de entrada e por um vetor de resposta ou saída. Durante o processo de
aprendizagem, é executada uma comparação entre o valor desejado com o
valor de saída da rede, originando um erro. O erro resultante é utilizado para
de alguma forma ajustar os pesos da rede. Uma chamada do procedimento
de treino é composta por ajustes iterativos ou em lote para todos os casos de
treino. A aprendizagem é então conseguida quando, após várias iterações, o
erro é reduzido para valores aceitáveis;
Não-Supervisionado
Também chamado de auto-organização, é uma
abordagem onde não é fornecida ao sistema qualquer indicação sobre a
resposta certa. Assim, a aprendizagem da RNA é feita pela descoberta de
similaridades nos dados de entrada, que são agrupados estatisticamente ou
segundo seu comportamento, de acordo com os casos de treino. Exemplos
típicos deste tipo de aprendizagem são as redes de Kohonen (KOHAVI,
1995).
3.1.3 O Perceptron de Múltiplas Camadas e o Aprendizado por
Retropropagação de Erro
A Figura 22 apresenta uma Rede Neural Artificial conhecida como Perceptron de
Múltiplas Camadas, tida como exemplo de uma rede totalmente conectada. Isso significa
que um neurônio artificial de qualquer camada está conectado a todos os neurônios da
camada anterior. Ela faz com que o sinal progrida através da rede, para frente, de camada
em camada.
50
Figura 22: Perceptron de Múltiplas Camadas
3.1.3.1 Algoritmo de Retropropagação de Erro (Error Back-Propagation)
É o algoritmo de aprendizagem supervisionado mais popular e que vem sendo
muito utilizado em conjunto com pereceptrons multicamadas na solução de diversos
problemas (HAYKIN , 2002). Este algoritmo se mantém como um marco para a
comunidade das RNAs uma vez que ele e seus derivados constituem um método muito
eficiente de computação para treinamento de redes MLPs.
Basicamente o algoritmo Back-Propagation consiste em dois passos através das
diferentes camadas da rede neural. Na etapa de propagação, é fornecido um vetor de
entrada aos neurônios da camada de entrada da RNA e seu sinal se propaga para frente, no
sentido das conexões sinápticas, através de cada uma das camadas da rede. Quando esse
sinal atinge a camada de saída da RNA, um vetor de saída é produzido pela rede. Na etapa
de propagação não existem alterações dos pesos sinápticos da rede. Na fase de
retropropagação é onde ocorrem os ajustes dos pesos sinápticos da RNA, de acordos com
regras de correção de erro, que calculam a diferença entre o vetor de resposta real
fornecido pela rede e a resposta alvo associado ao vetor de entrada fornecido. A rede
obtém assim um sinal de erro que se retropropaga pela rede, camada por camada, no
sentido contrário ao das conexões sinápticas, com a finalidade de ajustar os pesos
sinápticos da RNA e fazer com que a resposta real se mova para mais perto da resposta
desejada para o respectivo vetor de entrada.
51
O treinamento de uma RNA pode ser visto, então, como uma busca pela
minimização do erro, entre a saída esperada e a saída obtida para um determinado padrão
de entrada, através do ajuste dos pesos sinápticos. Cada problema a ser resolvido por uma
RNA apresenta uma superfície característica, que representa a relação entre os pesos e o
erro na saída da rede. A busca pela minimização do erro da RNA constitui-se, dessa forma,
na busca pelo mínimo global de uma superfície (que é o ponto de menor erro possível para
a rede - idealmente igual a zero). Cada valor de erro da RNA corresponde a um conjunto
de valores para os pesos de todas as sinapses da RNA. É nessa superfície multidimensional
- onde o erro da rede, e cada um dos pesos sinápticos, correspondem às dimensões do
espaço em que a superfície se encontra - que a busca pelo erro mínimo é efetuada. Um
exemplo de superfície de erro para dois pesos pode ser observado na Figura 23
(GALLAGHER, 2000).
Figura 23: Gráfico de uma superfície de erro de uma RNA (GALLAGHER, 2000).
A busca pelo mínimo global na superfície de erros pode se dar através do método
de descida do gradiente que, segundo (RUMELHART at al., 1986), minimiza os quadrados
das diferenças entre os valores de saída desejado e o real da RNA, em busca do menor erro
mínimo global, ou a minimização da função de erro, através de uma superfície
multidimensional definida pelos pesos sinápticos e pelas magnitudes dos erros para cada
conjunto de pesos.
52
3.1.3.2 O algoritmo de propagação resiliente ou Rerilient Propagation
RPROP
O RPROP é um aprimoramento da técnica de aprendizagem por retropropagação de
erro (RIEDMILLER, 1993). Esta melhoria apresenta uma adaptação direta na alteração dos
pesos, baseados em informações de gradiente locais. Introduz, para cada peso o seu valor
de atualização ji que determina apenas o tamanho da alteração no respectivo peso. Este
valor individual de atualização ji evolui durante o processo de aprendizado, baseado
apenas no sinal local da função de erro E, baseado em regras de aprendizado.
Um dos aspectos da descida do gradiente é que pesos muito distantes da camada de
saída são menos modificados e, conseqüentemente, aprendem mais lentamente.
Utilizando então o RPROP, o tamanho da atualização dos pesos depende apenas da
seqüência de troca de sinais das derivadas parciais, não dependendo da sua magnitude.
Dessa forma, com os pesos distantes da camada de saída tendo a mesma oportunidade de
aprendizado daqueles próximos à camada de saída, o aprendizado é distribuído de maneira
homogênea pela RNA, o que garante uma maior eficiência na aprendizagem da RNA.
3.1.4 Generalização das RNAs
Para garantir determinado grau de generalização para o aprendizado de uma RNA
pode-se utilizar técnicas como a validação cruzada. Ela permite o desenvolvimento de uma
boa generalização a partir de um conjunto de dados de treinamento (HAYKIN, 2002). Na
validação cruzada o conjunto de dados para treinamento, com seus respectivos vetores de
saída é dividido em dois subconjuntos: o conjunto de treino; e o conjunto de validação ou
teste.
Durante a etapa de treinamento de uma RNA do tipo perceptron de múltiplas
camadas, utilizando-se o algoritmo de retropropagação de erro, o erro quadrático médio
(mean squared error
MSE) inicia com um valor alto, decresce rapidamente e continua a
descer de modo mais lento enquanto a RNA busca um mínimo local na superfície do erro.
O MSE para uma rede de múltiplas camadas do tipo perceptron e definido por
53
onde p é o número de padrões fornecidos como entrada para a RNA, s é o número de
neurônios na camada de saída da rede, tij é o valor objetivo para o neurônio i da camada de
saída dado um padrão de entrada j, e xij é o valor estimado (fornecido pela RNA) para o
neurônio i da camada de saída dado um padrão de entrada j.
É difícil determinar em qual época n deve-se suspender o treino quando se busca
uma boa generalização para a rede. Deve-se evitar que a RNA fique exaustivamente
adaptada aos dados de treino. Por isso, efetuam-se processos de treinamento e validação
chamados de treinamento com parada antecipada, que viabiliza a verificação da época mais
adequada para suspender o treinamento da rede.
Figura 24: Parada antecipada, baseada em validação cruzada (HAYKIN, 2002)
A Figura 24 ilustra a curva de aprendizado durante o treino, a partir da qual
poderíamos permitir que a RNA melhorasse seus resultados ao continuar ser treinada para
além do ponto mínimo da curva de aprendizado na validação. Porém, a partir deste ponto,
pode ocorrer um super aprendizado ou overtraining, i.e., a rede se especializa demais
nos dados de treinamento e, ao invés de generalizar, passa a decorar sugerindo que um
ponto mínimo na curva de aprendizado na validação seja utilizado adequadamente para a
suspensão da fase de treino da RNA (HAYKIN, 2002).
(3.1)
54
3.2 Técnicas de Subtração de fundo
Quando câmeras estáticas são empregadas, uma técnica comum para extrair objetos
em movimento é a subtração de fundo (background subtraction). Basicamente, ela consiste
em se obter um modelo matemático do fundo (modelo do background) da cena, e subtrair
cada quadro da seqüência de imagens por este modelo. Pontos que atingem um
determinado limiar são associados aos objetos em movimento (foreground), e os demais
são associados ao fundo da imagem (background) (JACQUES, 2006). Em geral, as
técnicas de subtração de fundo seguem três etapas: treinamento, classificação e
atualização.
Treinamento: Consiste na estimativa de um modelo para o fundo (modelo
do background). Em alguns sistemas, é calculado dinamicamente, na
medida em que decorre o processo.
Classificação: É a etapa onde é definido se cada pixel (x,y) pertence ao
fundo da cena ou a algum objeto do foreground. É baseada na comparação
de cada quadro com o modelo de fundo.
Atualização: é responsável por manter a coerência do modelo de fundo,
tentando tratar eventuais mudanças como, de iluminação ou de geometria,
que possam ocorrer no modelo de fundo.
Há diversas abordagens para cada uma das etapas acima, e algumas técnicas de
subtração de fundo existentes na literatura serão brevemente descritas a seguir.
55
3.2.1 Técnicas Utilizadas
Os primeiros métodos que surgiram para remoção de fundo foram os não-
estatísticos. A implementação desses métodos é simples e o resultado da segmentação é
relativamente bom para casos em que a variação de luz é mais suave e o fundo é estático.
São também conhecidos como Subtração Básica de Fundo (HALL et al, 2005). Esses
métodos pioneiros baseiam-se na diferenciação direta de quadros consecutivos em relação
a um limiar (OTSU, 1979)
Na mesma linha, o grupo de Cucchiara (CUCCHIARA et al., 1996) utiliza a
mediana, referente a sucessivas imagens capturadas durante um treinamento prévio para
representar o modelo de fundo. Nesses métodos não adaptativos, o modelo de fundo não
sofre atualizações após ser calculado. A etapa de classificação desses métodos funciona
com cada pixel da imagem do novo quadro, onde este é subtraído pelo pixel
correspondente do modelo.
Uma técnica bastante popular utilizada em grande escala na televisão é o Chroma-
Key (Wikipedia) (Figura 25). Consiste em colocar uma imagem sobre outra anulando uma
cor padrão. É muito comum serem utilizados tecidos de uma única cor, que cobrem a
região do fundo da cena, e utilizam luminosidade controlada para que essa cor mantenha
suas características. Apesar de ser uma solução razoável ao que se propõe, o Chroma-Key
acaba sendo pouco utilizado em problemas cotidianos de visão computacional. A luz
controlada e fundo estático de uma cor está longe de ser uma realidade em cenas do nosso
dia-a-dia.
Figura 25: Figura que ilustra a utilização da técnica Chroma-Key (Wikipedia)
56
Uma proposta de subtração de background que combina informação de cor e
informação do gradiente para detecção de foreground, tratamento de sombras e valores de
pixels contendo pouca informação de cor foi introduzida por McKenna et al (MCKENNA
et al., 2000). Detecta regiões, pessoas e grupos de pessoas; cria modelos de aparência de
pessoas para que elas possam ser rastreadas também em situações de oclusão.
A abordagem estatística das técnicas de Subtração de Fundo permitiu construir
modelos de fundo mais sofisticados, que pudessem representar melhor a cena e as
mudanças que ocorrem nelas. Um dos pioneiros nessa abordagem foi o método Pfinder
(WREN, 1997) (Figura 26) que utiliza uma distribuição normal ou gaussiana para modelar
o fundo. A idéia do Pfinder é inicialmente realizar uma etapa de treinamento. Durante essa
etapa, é necessária a ausência total de objetos em movimento na cena. Assim, cada pixel (i,
j) do fundo é modelado de maneira independente, pois é calculado para cada um a sua
média (i, j)
e sua matriz de covariância. De posse desses dados, o método busca encontrar
uma função densidade de probabilidade Gaussiana nos últimos n valores dos pixels do
treinamento. Para evitar o recálculo constante da probabilidade Gaussiana, foram definidas
algumas equações para que os valores da média e covariância sejam atualizados
dinamicamente a cada quadro após o treinamento.
Figura 26: Método PFinder em interação com o usuário (WREN, 1997)
O método Pfinder é uma abordagem limitada e com resultados nem tão
satisfatórios. Apresenta alguns problemas que são: não suportar mudanças na iluminação,
não permitir mais de um único objeto em movimento e esperar mudanças lentas na
geometria do fundo. Este método serviu, entretanto, como base para os métodos de
57
subtração de fundo que surgiram depois dele, como o Spfinder (AZARBAYJANI ; WREN;
PENTLAND, 1996) que utilizava câmeras em estéreo e o LOTS (BULT, 2001), criado
para aplicativos militares propondo mudanças para que o método se torne mais robusto,
principalmente para a camuflagem.
Um importante método proposto por Haritaoglu et al (HARITAOGLU; DAVIS,
2000) surgiu mais ou menos na mesma época do PFinder. Chamado W4, recebeu essa
denominação devido ao fato de que o sistema se propõe a resolver as quatro questões: o
que eles fazem? (What), onde eles atuam? (Where), quando eles atuam? (When) e quem
são eles? (Who). É um modelo estatístico de background, que utiliza imagens em tons de
cinza, e representa cada pixel por valores mínimo e máximo de intensidade, e diferença
máxima de intensidade entre quadros consecutivos, durante o período de aprendizado. O
sistema W4 é aplicado em vigilância visual para detectar e rastrear múltiplas pessoas, e
monitorar suas atividades em ambientes abertos. Opera com uma câmera capturando
imagens em tons de cinza ou infra-vermelho, uma vez que durante a noite se tem muito
pouca informação de cor. O W4 não faz nenhum tratamento para sombras. Utiliza uma
combinação de análise de forma e tracking para localizar pessoas e suas partes (cabeça,
mãos, pés e tronco) e para criar modelos de aparência de pessoas para que elas possam ser
rastreadas também em situações de oclusão. O sistema pode determinar quando uma região
de foreground contém múltiplas pessoas e consegue segmentar as pessoas para
acompanhá-las individualmente (Figura 27). Detecta também pessoas carregando um
objeto; cria modelos de aparência para os objetos para identificá-los em quadros futuros, e
reconhece quando uma pessoa deposita ou retira um objeto da cena (JACQUES, 2006).
Figura 27: Resultados obtidos com o método W4 (HARITAOGLU; DAVIS, 2000)
58
Este método possui os mesmos problemas do Pfinder, além de não tratar sombras
(que são erroneamente detectadas como objetos em movimento). Uma extensão do método
W4, com tratamento de sombras, foi proposta por (JACQUES; JUNG; MUSSE, 2005).
Alguns resultados dessa técnica são ilustrados na Figura 28.
Figura 28: Remoção de sombra em extensão ao método W4 (JACQES; JUNG; MUSSE,
2005).
Outra abordagem para subtração de fundo com remoção de sombra foi proposta em
(JACQUES; JUNG; MUSSE 2006). Tal método utiliza a mediana temporal como modelo
de fundo, e explora a consistência espacial na etapa de classificação. O cálculo de
variâncias locais de razões de pixels é adotado para detectar e eliminar regiões de sombra.
Esse método é bastante rápido, requer apenas imagens monocromáticas e apresenta bons
resultados.
Deve-se salientar que existem várias outras técnicas de subtração de fundo com
remoção de sombra, mas a grande maioria explora informação de cor (CUCCHIARA et al.,
2003), (ELGAMAL et al., 2002), (KAEWTRAKULPONG; BOWDEN, 2003). Entretanto,
optou-se neste trabalho utilizar a técnica de (JACQUES; JUNG; MUSSE 2006), devido á
boa relação entre custo computacional, flexibilidade, desempenho e disponibilidade do
código.
Neste capítulo exploramos assuntos especialmente ricos como Redes Neurais
Artificiais e Subtração de Backgroud, onde seus conceitos e técnicas podem ser aplicados
em outros modelos. No capítulo 4 veremos particularmente, a aplicação destes
fundamentos na apresentação do modelo proposto por conta deste trabalho.
59
4 Método proposto
O método apresentado neste capítulo propõe uma interface de interação do usuário
com o computador através do reconhecimento de padrões em imagens de posturas de
mãos, baseado em Visão Computacional, utilizando recursos das RNAs. Tem como
objetivo prover uma interface genérica a ser utilizada por outros sistemas de computação
em tempo real, e poderá ser integrado a sistemas de simulação de humanos virtuais para
fins de validação visual da interação e validação dos resultados.
No que diz respeito à interação homem-computador, o termo tempo real é muito
freqüentemente substituído pelo termo fortemente acoplado. Neste contexto, Fitzmaurice
et.al. (FITZMAURICE; ISHII; BUXTON, 1995) descrevem 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 . Entretanto, o termo perfeitamente sincronizado também exige uma tradução, dada
por ele como: 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.
A técnica apresentada consiste basicamente na aquisição quadro-a-quadro de
imagens de mãos do usuário, através de uma câmera de topo posicionada acima da
superfície observada. Nesta área, o usuário empostará suas mãos utilizando as posturas
previamente adotadas, a fim de interagir com a aplicação. Posturas pré-determinadas são
realizadas podendo-se utilizar ambas as mãos, tendo sido convencionadas funções
específicas para cada uma delas. Sendo assim, a mão esquerda poderá determinar
estrategicamente eventos quaisquer (dentro do contexto da interação com os humanos
virtuais), e à mão direita poderá ditar direções e a movimentação dos agentes, por exemplo.
Depois de postadas as mãos sobre a superfície e capturadas as imagens correspondentes às
posturas, técnicas de processamento de imagens tratarão de segmentar a cena adquirida de
forma a extrair os objetos de interesse (no caso, as mãos). Um vetor de informações para
cada mão será extraído com as características das imagens processadas naquele instante.
Este vetor de feições será composto por uma série de atributos ou métricas originadas das
imagens durante a etapa de processamento, e deve ser escolhido visando uma boa
60
separação entre as diferentes posturas. O conjunto de dados resultante é enviado quadro-a-
quadro à RNA, onde se dá a classificação da postura utilizada, através do treinamento
prévio da rede neural. O próximo passo então é avaliar a consistência temporal das
respostas produzidas pela RNA, e remeter ao simulador de Humanos Virtuais as saídas
para que lá sejam tratadas e convertidas em comandos ou instruções necessárias para a
interação com os agentes virtuais.
Para melhor representar o modelo, o diagrama mostrado na Figura 29 subdivide as
etapas do processo, em fases distintas, como segue:
Fase 1
Etapa de aquisição e processamento das imagens através
técnicas de visão computacional;
Fase 2
Etapa do processo onde são aplicadas técnicas de treinamento e
classificação vias Redes Neurais Artificiais;
Fase 3 - Etapa onde os dados extraídos através do processo de
classificação interagem com a aplicação de simulação de humanos
virtuais.
Figura 29: Arquitetura do sistema proposto
Treinamento RNA
Classificador RNA
Aplicação de simulação de humanos
virtuais
Fase 2 Redes Neurais
Fase 3 Simulação de humanos virtuais
Fase 1 Visão Computacional
Aquisição e processamento das imagens
61
4.1 Recursos utilizados
Na execução deste trabalho alguns recursos de hardware e de software foram
necessários. Listados brevemente, são comentadas suas particularidades, na medida em que
se faz necessário.
Com o objetivo não impactar significativamente sobre o hardware utilizado
atualmente nos microcomputadores domésticos fizemos uso durante o projeto, de um
notebook considerado padrão de comercialização nos dias de hoje. A Tabela 1 descreve
sucintamente as características do hardware utilizado.
Configuração utilizada nos experimentos do modelo
Processador 1.8 Ghz
Memória Principal 1 Gb
Disco Rígido 40 Gb
Webcam USB Resolução mínima 640x480
Tripé para máquina fotográfica Convencional com regulagem de altura
Tabela 1: Configuração do hardware utilizado
Para capturar as imagens que serviram de entradas ao sistema foi utilizada uma
câmera de topo, por permitir um campo de visão perpendicular à superfície de observação
(Figura 30). Com a finalidade de manter o objetivo inicialmente traçado, de um hardware
facilmente encontrado e por preços acessíveis, utilizamos durante os experimentos uma
webcam com resolução total de 640 x 480 pixels, de interface USB 2.0 (para permitir
maior velocidade na aquisição das imagens), afixada a aproximadamente 75 cm de altura
da superfície de observação. Esta superfície de observação é a área capaz de ser capturada
pela webcam, onde as posturas deverão ser executadas.
Alguns ambientes de software foram utilizados durante os experimentos. Na etapa
de aquisição e processamento das imagens, foi utilizado o Matlab, da Mathworks em sua
62
versão R2006a (HANSELMAN; LITTLEFIELD, 2003). Em seguida, se fez necessária a
utilização do JavaNNS - Java Neural Network Simulator (JAVANNS, 2005) para criação
das RNAs em ambiente gráfico, e do SNNS2C - Stuttgart Neural Network Simulator
(SNNS, 1995) para a exportação das redes neurais para a linguagem C. Quando da
necessidade de integração entre os scripts Matlab e a customização dos procedimentos para
execução com as redes foi utilizado o ambiente de desenvolvimento Microsoft Visual
Studio 2005. A seguir, as etapas envolvidas no método proposto são descritas com maiores
detalhes.
Figura 30: Requisitos básicos do Sistema. Notebook padrão PC, webcam e tripé (JUNIOR;
JUNG; MUSSE; OSÓRIO; KEHL, 2007.)
4.2 Segmentação da mão
A primeira etapa necessária para a identificação das posturas é a segmentação das
mãos do usuário. Neste trabalho, comentaremos a segmentação das mãos em dois
contextos:
Em ambientes controlados, com fundo homogêneo e controle de
iluminação.
Em ambientes parcialmente controlados, com fundo genérico, e menor
controle de iluminação.
63
4.2.1 Ambiente controlado
A fim de verificar a viabilidade técnica e, para extrair preliminarmente alguns
resultados, foi utilizado nos experimentos iniciais um ambiente bastante controlado. As
posturas foram executadas sobre uma superfície clara e homogênea, com iluminação o
mais uniforme possível, e o usuário utilizava uma camisa de manga de cor clara. Estes
requisitos tinham como objetivo produzir maior contraste entre as mãos e o fundo
facilitando o processo de segmentação da mão, a fim de possibilitar a extração de um vetor
de características ou feições para cada postura de mão.
Uma câmera posicionada por sobre a cena provendo uma visão de cima para baixo
(top-down) capturava imagens das posturas em cores, em 320×240 pixels. Para diferenciar
a região da imagem pertencente à mão foi usado apenas o canal de cor azul da câmera, pois
fornece uma baixa reflectância da cor da pele da mão em relação ao fundo claro. Apenas
com essas providências já foi possível uma boa distinção entre as intensidades da cor da
pele da mão em relação ao restante da imagem. Em seguida foi utilizado um simples limiar
adaptativo para identificar a região da mão (OTSU, 1979), assumindo que as mãos são
mais escuras do que as outras estruturas na cena.
Embora a simples limiarização forneça uma boa separação entre mãos e demais
estruturas, alguns artefatos devidos ao ruído e sombras permanecem. Em particular, as mão
segmentadas podem apresentar buracos, que podem ser preenchidos através de operadores
morfológicos. Em particular, foi aplicado sobre a imagem segmentada um fechamento
morfológico (GONZALEZ; WOODS, 2002) utilizando um elemento estruturante em
formato de diamante, com raio igual a n pixels estimado com base na dimensão das
imagens capturadas. Foram utilizados nos experimentos valores para n entre 2 e 4, tendo o
valor intermediário apresentado melhor resultado.
Mesmo depois do fechamento morfológico, algumas pequenas regiões isoladas
foram consideradas como sendo parte da mão. Porém, essas regiões classificadas
erroneamente são consideravelmente menores do que a área da mão propriamente.
Consideramos então a mão como elementos conexos da imagem e que possui a maior área.
Para extrair as duas mãos, analisam-se separadamente os semi-planos esquerdo e direito da
imagem, onde as respectivas mãos devem estar.
64
Com estes procedimentos chegamos ao nosso objeto de interesse. A partir dele será
extraída uma moldura ou bounding box utilizado posteriormente para a obtenção dos
valores que servirão de entradas às RNAs para a classificação das posturas. A Figura 31
ilustra os passos descritos para a extração da imagem binária da mão.
Figura 31. a) Canal azul da imagem adquirida; b) Resultado da binarização; c)
Resultado do fechamento morfológico; d) Resultado final (restrito ao bounding box).
Embora os resultados obtidos com esta abordagem tenham sido satisfatórios, a
técnica descrita não é muito genérica. O fundo da cena deve ser claro e consideravelmente
uniforme (Figura 32) o que, limita sua aplicação prática.
Figura 32: Ilustra o controle do fundo da cena capturada em superfície clara facilitando o
contraste com a mão.
A seguir, é descrita uma abordagem considerada mais genérica, uma vez que não
necessita de controle total do fundo da cena.
65
4.2.2 Segmentação por subtração de background
Uma segunda abordagem para extração das mãos é a utilização de técnicas de
subtração de background. Conforme descrito no Capítulo 3, há diversas técnicas existentes
de subtração de background, cujo objetivo principal é diferenciar o fundo estático de
objetos em movimento. Neste trabalho, foi escolhida a técnica proposta por (JACQES;
JUNG; MUSSE, 2006), por sua simplicidade, flexibilidade (pois não requer informação de
cor), e disponibilidade de código (obtido diretamente com os autores). Além disso, a
técnica oferece identificação e tratamento de sombras, que podem comprometer o resultado
da identificação das mãos. Tal técnica é descrita brevemente a seguir.
No primeiro instante do processo, é utilizado um filtro da mediana temporal em
cada pixel durante um determinado período de tempo para distinguir pixels em movimento
de pixels estáticos. O valor da mediana (x,y) em cada pixel é adotado como sendo o valor
esperado do fundo da cena. Ainda no treinamento, é estimado o desvio padrão (x,y) do
ruído da câmera para cada pixel da imagem. Entretanto, objetos em movimento tendem a
afetar significativamente a estimativa do desvio padrão. Assumindo que a maior parte dos
pixels no período de treinamento não contém objetos em movimento, o histograma de
(x,y) deve apresentar um pico grande próximo da origem, relacionado às estimativas
corretas do desvio padrão. Assim, é computado um valor m, que corresponde à posição do
primeiro pico no histograma de (x,y).
No período de teste, é calculada a diferença entre cada nova imagem I(x,y)
capturada pela câmera e o modelo de fundo (x,y). Além disso, como pixels relacionados a
objetos em movimento tendem a aparecer em blocos conexos (e não isolados), um
processo de coerência espacial é empregado. Mais especificamente, um pixel (x,y) faz parte
do fundo se:
,),( mkAyxI
onde
121
242
121
16
1A .
(4.1)
66
O símbolo
denota a convolução, e k é uma constante que controla o desvio
máximo permitido da mediana (foi usado o valor k = 6, conforme sugerido pelos autores).
Pixels que não satisfazem a Equação acima são marcados como objetos em movimento.
Para identificação de sombras, a razão entre a imagem capturada pela câmera e o
modelo de fundo é explorada. De fato, a hipótese dos autores é que, em regiões de sombra,
tal razão é aproximadamente constante. Assim, um pixel (x,y) está em região de sombra se
stdR Lyx
yxIstd
),(
),(
e highLyx
yxI
),(
),(,
onde ),(
),(
yx
yxIstdR
denota o desvio padrão das razões em uma região retangular de
tamanho 3 x 3 centrada em (x,y), stdL é o limiar que controla o desvio máximo permitido
em uma região de sombra (foi usado stdL = 0.05), e highL é um limiar que impede que
regiões muito escuras sejam erroneamente classificadas como sombras (foi usado highL =
0.5).
Salienta-se que, assim como no processo de limiarização simples descrito na Seção
anterior, o resultado da subtração de fundo também apresenta ruído. Dessa forma, os
mesmos operadores morfológicos descritos na Seção anterior são empregados, assim como
o procedimento de escolher o componente conexo com maior área como sendo a mão. A
Figura 33 mostra o resultado da segmentação da mão em ambiente menos controlado e
ilustra as melhorias no processo de segmentação das mãos, onde foi utilizado a subtração
de background, com relação ao modelo que utiliza fundo branco e uniforme.
(4.2)
67
Figura 33: Extração das mãos utilizando um fundo mais complexo
4.3 Definição das posturas e seleção do vetor de feições
Baseado nos estudos realizados durante este trabalho e tendo como suporte os
resultados obtidos nos experimentos anteriores, algumas posturas de mãos foram
selecionadas para possível utilização durante os testes com o protótipo. Inicialmente foi
dada a preferência à ergonomicidade entre as posturas, ou seja, as posturas mais fáceis de
serem realizadas em detrimento às mais difíceis. O objetivo aqui é maximizar o bem-estar
humano e o desempenho geral do sistema.
Igualmente, existe a necessidade de coerência entre as ações e movimentação dos
agentes na ferramenta de simulação e as posturas utilizadas pelo usuário durante a
interação. As funções e comandos atribuídos ao simulador de humanos virtuais devem
remeter a um comando de mão intuitivo, de fácil aprendizagem e memorização por parte
do usuário.
68
Em seguida, outros critérios foram utilizados a fim de restringir o universo de
estudo. Para que o sistema apresente uma baixa taxa de erros na classificação, é necessário
que se escolha um conjunto de feições adequado para representar as posturas selecionadas.
Tais feições devem ser semelhantes ao máximo nas realizações da mesma postura, e
significativamente distintas para posturas diferentes. De fato, os problemas de definição
das posturas e seleção das feições dependem um do outro.
Com base no conjunto inicial de posturas de mão, cujo principal fator de
diferenciação era a posição dos dedos, optou-se por calcular as projeções vertical e
horizontal da imagem binarizada de cada mão para compor o vetor de feições. Outras
feições consideradas relevantes foram as dimensões do bounding box ao redor de cada
postura, principalmente para caracterizar a postura de mão fechada. Mais especificamente,
se B(x,y) representa a imagem binária de uma mão restrita a seu bounding box cujas
dimensões são yx NN , então as projeções vertical e horizontal são dadas,
respectivamente, por
N
Nky
N
Nk
Nxx
yy
x
yxBkP
)1(
0
),()( , para 1,...,0 Nk ,
N
Nlx
N
Nl
Nyy
xx
y
yxBlP
)1(
0
),()( , para 1,...,0 Nl ,
onde N representa a discretização empregada nas projeções. Foram utilizados nos
experimentos dez intervalos na discretização (ou seja, N = 10), gerando vinte valores de
projeções. Além disso, a largura e a altura do bounding box, também são incluídas no vetor
de características, gerando um total de vinte e duas feições. Este vetor de informações
características é enviado a uma Rede Neural Artificial como entrada, para treinamento e
posterior classificação.
Com base em um conjunto de posturas consideradas ergonômicas, foi selecionado
um subconjunto contendo aquelas que apresentaram o menor erro nas saídas das RNAs de
(4.3)
(4.4)
69
acordo com as feições descritas acima. Foram então utilizadas seis posturas para cada uma
das mãos. A Figura 34 mostra as posturas selecionadas, enquanto a Figura 35 ilustra as
projeções, horizontal e vertical para a imagem binária relativa à postura de mão aberta
(terceira imagem da esquerda para a direita) da Figura 34.
Figura 34: Exemplos de posturas a serem reconhecidas
As imagens na Figura 31 pertencem respectivamente às classes adotadas como
saídas para a rede neural designada para as posturas da mão direita, como mostra a Tabela
2.
Postura Classe
0 dedos = mão fechada 1 0 0 0 0 0 1 dedo = dedo mínimo 0 1 0 0 0 0 5 dedos = mão aberta 0 0 1 0 0 0 1 dedo = dedo polegar 0 0 0 1 0 0 2 dedos = polegar + mínimo 0 0 0 0 1 0 1 dedo = indicador 0 0 0 0 0 1
Tabela 2: Relação entre as posturas e as respectivas classes.
Figura 35: Projeções em x e y de uma imagem de postura de mão aberta binarizada
0
500
1000
1500
2000
2500
3000
1 2 3 4 5 6 7 8 9 10
0
500
1000
1500
2000
2500
1 2 3 4 5 6 7 8 9 10
70
Salienta-se que algumas outras características poderiam ter sido extraídas das
imagens, e adicionadas no vetor de feições. Por exemplo, a densidade de preto e branco da
imagem, a alternância entre pretos e brancos, etc. Entretanto, isso não se fez necessário,
uma vez que os resultados obtidos através das redes neurais foram excelentes em resposta
às feições utilizadas. Além disso, as respostas visuais ao processo funcionaram
razoavelmente bem, e adicionar mais etapas no processamento das imagens poderia
impactar diretamente no custo computacional do modelo.
4.4 Detecção das posturas e gestos usando Redes Neurais
Para o reconhecimento das posturas descritas na Seção anterior, foram utilizadas
duas redes neurais do tipo MLP, cada uma delas com a função específica de classificar
posturas de uma das mãos. Ambas possuem 22 neurônios na camada de entrada da rede, 22
neurônios na camada oculta e 6 neurônios na camada da rede responsável pela saída. Esta
configuração 22-22-6 foi escolhida por ter apresentado o melhor resultado em comparação
com outras topologias testadas previamente.
Figura 36: Topologia da rede 22-22-6 criada a partir do JavaNNS
As redes neurais concebidas neste estudo foram criadas a partir de uma ferramenta
de modelagem chamada JavaNNS. Este programa possui uma interface gráfica que facilita
a visualização da arquitetura da rede neural e auxilia na configuração dos parâmetros
71
utilizados nas simulações. Ajuda também na visualização dos logs e dos gráficos do erro
de aprendizado (e.g. MSE - Mean Squared Error, SSE - Sum of Squared Errors). A Figura
36 mostra a arquitetura utilizada para as redes neurais modeladas para este estudo.
O treinamento das redes também foi feito através do JavaNNS. As bases de treino
foram geradas automaticamente por um processo específico e independente, baseado na
fase de processamento das imagens. Essa base contém os vetores de características para
cada postura onde cada uma das 6 posturas (classes) possui um número igual de exemplos
em cada uma das bases.
Para o processo de aprendizagem, foi escolhido o algoritmo de aprendizagem
supervisionado RPROP - Resilient Propagation baseado no algoritmo Back-Propagation,
pelo fato de ter um melhor desempenho em um número menor de épocas. Foram utilizados
nos experimentos com este modelo apenas 1000 épocas.
Uma quantidade muito grande de dados foi gerada em momentos distintos, e foi
utilizada a validação cruzada para estimar e validar significativamente as taxas de
acertos/erros. De um total de 7.200 padrões, 75% do conjunto total dos dados compõem a
base de dados de treino, enquanto 25% do total compõem a base de teste ou validação. Na
base de treino, foram utilizados 5400 padrões (6 classes x 900 imagens por classe) durante
o aprendizado supervisionado. Na base de dados de teste, foram utilizadas 1800 imagens (6
classes x 300 imagens por classe) durante a etapa de validação da rede. Os 5400 padrões
que compõem a base de dados de treino serviram para ajustar os pesos da rede, enquanto
que os 1800 padrões que compõem a massa de dados de teste forneceram a avaliação do
desempenho do classificador.
Foram feitas dez rodadas de execuções diferentes, utilizando a semente randômica
diferente a cada rodada, dando origem a dez redes neurais devidamente treinadas e que
sofreram a avaliação do software SNNS e Analyse. As Tabela 3 e 4 mostram os resultados
obtidos nas dez execuções das redes, uma para cada mão.
Após o processo de análise dos resultados, as redes que obtiveram o menor erro
durante a etapa de validação foram escolhidas para serem utilizadas durante os
experimentos. Para ser utilizada com a mão direita foi adotada a rede 1, enquanto a rede da
mão esquerda tem como melhor resultado a rede 9.
72
Execução Épocas Treino Teste
Rede1 Step 1000 MSE: 0.018623551262749567 0.15270731608072916 Rede2 Step 1000 MSE: 0.03425416946411133 0.17964818318684897 Rede3 Step 1000 MSE: 0.021111102634006076 0.3000764634874132 Rede4 Step 1000 MSE: 0.014249976476033528 0.21736282348632813 Rede5 Step 1000 MSE: 0.040007519192165795 0.19174628363715276 Rede6 Step 1000 MSE: 0.01416572994656033 0.24733030531141492 Rede7 Step 1000 MSE: 0.014689216613769531 0.17121610853407118 Rede8 Step 1000 MSE: 0.025991391075981987 0.2148279995388455 Rede9 Step 1000 MSE: 0.02205216301812066 0.2381883748372396 Rede10 Step 1000 MSE: 0.03337131924099392 0.20755196465386286
Tabela 3: Resultados obtidos com dez execuções da RNA da mão direita
Execução Épocas Treino Teste
Rede1 Step 1000 MSE: 0.010080315272013347 0.10994441562228732 Rede2 Step 1000 MSE: 0.010090399848090278 0.13670039706759982 Rede3 Step 1000 MSE: 0.005202996465894911 0.13060415479871962 Rede4 Step 1000 MSE: 0.0023330487145317926 0.1454690890842014 Rede5 Step 1000 MSE: 0.00272970093621148 0.12717302958170573 Rede6 Step 1000 MSE: 0.00713078498840332 0.12945120069715713 Rede7 Step 1000 MSE: 0.0055176321665445964 0.14626825968424478 Rede8 Step 1000 MSE: 0.013432250552707248 0.14580540974934897 Rede9 Step 1000 MSE: 0.015933024088541668 0.10367241753472223 Rede10 Step 1000 MSE: 0.00478118896484375 0.12233692593044705
Tabela 4: Resultados obtidos das dez execuções da RNA da mão esquerda
O processo descrito acima identifica, a cada quadro capturado pela câmera, a
postura da mão do usuário. Para a identificação dos gestos, analisa-se a evolução temporal
das posturas detectadas. Sendo assim, existe a possibilidade de identificação de posturas de
maneira equivocada, uma vez que os quadros correspondentes às transições entre as
posturas também são submetidas ao processo de extração de características. Essas
transições entre posturas, ou posturas intermediárias podem ser classificadas erroneamente
pelas redes neurais gerando resultados que não corresponderiam à realidade e a intenção do
usuário. Ainda, mudanças rápidas de luminosidade ou pequenas sombras que surgem
rapidamente sobre a superfície durante a interpretação das posturas, e após a geração do
modelo do fundo da cena, podem também resultar em ruídos dificultando a interação.
Para que esses ruídos ou transições entre posturas sem controle não fossem
repassados diretamente à aplicação de simulação de humanos virtuais, é utilizado um
método de coerência temporal com o objetivo de aguardar que a postura a ser executada
73
pelo usuário se estabilize, e somente após estar imóvel pro algum tempo, repassar a classe
respectiva à aplicação de destino. Neste modelo, validamos uma quantidade mínima
exigida para posturas classificadas como pertencendo à mesma classe, para somente depois
enviá-la via sockets para a aplicação. Objetivamente, uma postura classificada é adotada
como válida apenas depois de ter se mantido estável por mais de i quadros consecutivos.
Valores maiores para i geram resultados mais estáveis, mas com maior atraso. Por
outro lado, valores menores para i geram menor atraso, mas maior instabilidade.
Experimentalmente, constatou-se que i = 3 fornece um bom compromisso entre tempo de
resposta e estabilização da postura. Deve-se notar que, se o vídeo for processado a uma
taxa de f quadros por segundo, então o atraso entre a mudança efetiva da postura e sua
estabilização detectada é de f
i1000 milisegundos. No caso ideal de processamento a 30
quadros por segundo, tal atraso fica em 100 milisegundos (na prática, a velocidade de
processamento é menor, como será descrito no capítulo 6).
4.5 Interface com o simulador
Em conjunto com especialistas e desenvolvedores do Laboratório de Modelagem de
Ambientes e Humanos Virtuais da Pontifícia Universidade Católica do Rio Grande do Sul,
responsáveis pela ferramenta de simulação de Humanos Virtuais denominada VHSimul,
foram listadas algumas possibilidades de interação que podem ser passados ao simulador
através das posturas de mão. Existe a possibilidade de serem simulados através da interface
proposta a movimentação de câmeras, a movimentação de humanos virtuais, apontamentos
e eventos de mouse, funções de rendering, de interface entre outros.
Com a finalidade de restringir o universo de possibilidades e proporcionar uma
experiência realmente válida em termos de funcionalidade e resultados da interação, optou-
se por usar na aplicação os comando ou funções mais utilizadas no simulador. Perfazem
um total de doze ações a serem simuladas, dentre elas eventos de mouse e eventos de
74
movimentação. A Tabela 5 abaixo descreve exemplos de comandos que podem ser
simulados pela ferramenta de humanos virtuais para cada uma das possíveis posturas mãos.
Comandos ou funções simuladas
Mão esquerda Mão direita
Criar agente Movimentar agente/grupo para frente
Deletar agente Movimentar agente/grupo para trás
Selecionar agente Movimentação agente/grupo a direita
Selecionar próximo agente Movimentação agente/grupo a esquerda
Selecionar todos os agentes Movimentação de câmera para frete
Deletar seleção Movimentação de câmera para trás
Tabela 5: Exemplos de ações que podem ser executadas pelo simulador através de posturas
de mãos
A interação do usuário com o sistema, executada através de uma postura,
processada através de técnicas de visão e classificada pelas redes neurais artificiais, deve
ser encaminhada à aplicação de simulação de humanos virtuais (Figura 37) para a resposta
visual ao estímulo capturado através da câmera.
Figura 37: A interação do usuário serve como estímulo para o agrupamento de humanos
virtuais em formação militar (versão anterior do modelo) (JUNIOR; JUNG; MUSSE;
OSÓRIO; KEHL, 2007)
75
Implementamos um protótipo em versão inicial utilizando a comunicação através
de sockets. Por terem produzidos resultados satisfatórios, as versões mais recentes mantêm
o mesmo tipo de comunicação entre os processos, que viabiliza a comunicação através de
rede de computadores, como ilustra a Figura 38. Dessa forma os processos podem ser
executados em máquinas diferentes e utilizando plataformas heterogêneas. Elas apenas
necessitam utilizar o mesmo esquema de endereçamento, protocolo e serviços de rede.
Dentro da arquitetura pretendida, um Servidor (máquina onde esta rodando o
simulador de humanos virtuais) cria um Socket , que fica aguardando que um Cliente
(máquina atualmente responsável pela interface) inicie a comunicação e fique mandando
mensagens para esta área. Estas mensagens, enviadas via Socket, nada mais são dos que as
classes de posturas classificadas pelas redes neurais.
Figura 38: Arquitetura de funcionamento de um socket
Os resultados visuais por conta da utilização do usuário com ambas as mãos não
foram produzidos até o presente momento. Isso se dá, uma vez que a implementação para a
integração entre a interface proposta e a ferramenta de simulação de humanos virtuais
ainda não chegou ao seu término. Porém, julgamos possível reproduzir os mesmos
resultados obtidos com as versões anteriores do protótipo. Na versão ilustrada pela Figura
76
37 acima, a interação do usuário com apenas uma mão obteve excelentes resultados.
Portanto, são esperados os mesmos resultados para a versão estendida do modelo, que está
sendo apresentado aqui, onde as duas mãos do usuário são utilizadas durante a interação.
A seguir, serão apresentados os resultados produzidos por conta dos experimentos
com modelo proposto, utilizando inicialmente um protótipo utilizando apenas uma mão.
Em seguida, os resultados preliminares conseguidos com aplicação do modelo estendido
para a utilização das duas mãos.
77
5 Resultados experimentais
Este capítulo descreve os resultados obtidos por conta da técnica proposta, explora
os resultados obtidos pela segmentação e pelo uso das redes neurais, e comenta algumas
limitações encontradas no modelo.
Primeiramente, alguns resultados foram obtidos com a implementação de um
protótipo utilizando a segmentação da mão em ambientes controlados (conforme descrito
na seção 4.3.1), e utilizando apenas uma mão. Embora tal protótipo exija um ambiente
controlado, ele produziu uma classificação robusta, conforme ilustrado na Tabela 6. Um
artigo relativo a este protótipo denominado Animando Humanos Virtuais em Tempo-Real
Usando Visão Computacional e Redes Neurais
foi publicado e apresentado na
conferência SVR 2007 - IX Symposium on Virtual and Augmented Reality , em 2007.
O resumo desse artigo se encontra no Anexo A deste documento.
Tabela 6: Resultados da etapa de validação/testes da Rede Neural - SVR 2007
(JUNIOR; JUNG; MUSSE; OSÓRIO; KEHL, 2007)
Objetivando que o protótipo rodasse em ambientes menos controlados, passou-se a
desenvolver um modelo estendido onde não fosse necessária a exigência de fundo branco e
homogêneo. Foi utilizado um algoritmo de subtração de fundo para segmentação das mãos
(ver seção 4.3.2), e foi incluída a análise das duas mãos ao invés de apenas uma. O modelo
de segmentação via subtração de fundo utilizado neste trabalho (Figura 39) mostrou que é
78
possível lidar com alguns problemas, tais como: a superfície de observação pouco
controlada, e sombras geradas no primeiro plano. Embora alguns problemas ainda tenham
persistido, os modelos de detecção e segmentação das mãos tiveram resultados
satisfatórios.
Figura 39: Ambiente com fundo menos controlado, utilizando subtração de backgroud e
remoção de sombras
Para garantir uma boa generalização por parte das redes neurais, utilizou-se uma
técnica denominada validação cruzada ou cross-validation , onde os dados de entrada das
redes neurais foram divididos em 2 bases de dados denominadas base de treinamento e
base de testes/validação. Então, com a finalidade de instruir as redes neurais no
aprendizado supervisionado durante a etapa de treinamento, utilizamos um total de 10.800
imagens, adquiridas em momentos bem distintos, em diferentes condições de
luminosidade, posicionamento da câmera e superfície de fundo. Cada uma das mãos
contribuiu com 5400 imagens de posturas onde três pessoas/usuários, com mãos de
diferentes tamanhos participaram do processo (mão pequena - criança, mão média - mulher
79
e mão grande - homem). Cada uma destas pessoas forneceu 300 imagens para cada uma
das posturas escolhidas. A base de dados de treinamento das redes neurais foi então
composta por 300 imagens de cada postura, de um total de seis posturas, totalizando 1800
padrões por usuário (300 imagens x 6 posturas x 3 usuários = 5.400 imagens x 2 mãos =
10.800 padrões).
Da mesma forma, para ser utilizada na etapa de validação/teste com as redes
neurais foi gerada uma base de dados contendo 3.600 imagens, destas 1.800 para cada uma
das mãos. Cada um dos três usuários contribuiu com 100 imagens de mãos para cada uma
das posturas escolhidas. Cada usuário foi responsável pelo total de 600 imagens, somando
1800 padrões a serem utilizados para validar o aprendizado das redes neurais artificiais
(100 imagens x 6 posturas x 3 usuários = 1.800 imagens x 2 mãos = 3.600 padrões).
A Figura 40 mostra os resultados por conta da RNA responsável pela classificação
das posturas relativas à mão direita.
De um total de 1800 padrões submetidos à validação (após executada a etapa de
treinamento), 1794 foram classificados corretamente, representando 99,67% de sucesso,
enquanto que em apenas 6 ocorrências não houve a exata classificação (Figura 41). Os
dados extraídos através da ferramenta Analyze detalham também os resultados conseguidos
pela RNA escolhida para classificar as posturas da mão direita, relacionando os problemas
encontrados com a postura da classe nº 4 onde 294 padrões foram classificados com êxito
de um total de 300.
80
Figura 40: Exemplos de postura com maior ocorrência de erros na etapa de classificação.
Figura 41: Matriz de Confusão
RNA escolhida para posturas da mão direita
81
A Figura 42 mostra o log da evolução do erro médio quadrático, para as 1000
épocas inicias, e o gráfico desta evolução é mostrado na Figura 43, extraído a partir do
software JavaNNS.
Figura 42: Log da evolução do MSE em 1000 épocas.
Figura 43: Gráfico da evolução do MSE para as 1000 épocas iniciais.
Os resultados por conta da RNA designada à classificação das posturas da mão
esquerda estão dispostos abaixo, tendo sido obtidos nas mesmas condições da rede
responsável pela classificação das posturas da mão direita. Assim, 5.400 posturas formam
a base de dados de treino e 1.800 posturas mantém a base de dados de validação,
fornecidas pelos três usuários participantes dos experimentos.
82
A Figura 44 fornece a Matriz de Confusão, a Figura 45 mostra a evolução do MSE
através de seu log e a Figura 45 mostra o gráfico da evolução do MSE para a rede da mão
esquerda em 1000 épocas. Como se pode perceber, houve 100% de acerto na classificação
da mão esquerda.
Figura 44: Matriz de Confusão
RNA escolhida para posturas da mão esquerda
83
Figura 45: Log da evolução do MSE em 1000 épocas - posturas da mão esquerda
Figura 46: Gráfico da evolução do MSE para as 1000 épocas iniciais
posturas da mão
esquerda
Foi possível validar visualmente a interação do usuário com o protótipo do
sistema antes mesmo da integração ao simulador de humanos virtuais. As saídas
resultantes desta interação são impressas em uma tela de interface textual, onde os dados
84
ali disponíveis são: as posturas classificadas pelas redes neurais, e os comandos resultantes
dessa classificação (só é adotada como comando uma postura após estar estável
3
quadros simultâneos classificando a mesma postura). Os comandos, resultantes desta
interação em função do tempo, estão diretamente relacionados aos padrões obtidos nas
saídas das RNAs.
Quando testada a interação de diferentes usuários, onde as dimensões das mãos são
significativas, o comportamento do sistema se mostrou estável. Foram utilizadas para a
geração dos resultados com o protótipo mãos pequenas, mãos médias e mãos grandes de
diferentes usuários. O resultado visual desta interação se mostrou satisfatório. A Figura 47
mostra os testes com a utilização de mãos de tamanhos diferentes, onde uma criança
interage com o protótipo.
Figura 47: Testes com o protótipo com mãos de tamanhos diferentes
No que diz respeito ao posicionamento da câmera, notou-se que pequenas
diferenças de altura e de angulação não repercutiram significativamente nos resultados
obtidos, salientando que não houve variações propositadas de altura da câmera durante a
aquisição das imagens de treino. Durante os experimentos (Figura 48), procurou-se manter
esta diferença no ângulo e na altura da câmera inferiores a 20%.
85
Figura 48: Diferença na altura e ângulo da câmera - regulagens levemente diferentes
5.1 Limitações do modelo
Algumas limitações por parte do modelo foram identificadas, e poderão ser
reavaliadas em trabalhos e experimentos futuros. Basicamente, as dificuldades encontradas
estão diretamente relacionadas ao ambiente, onde a posição e a quantidade das fontes
emissoras de luz podem produzir resultados diferentes em termos de sombras. Quando o
modelo se depara com sombras mais homogêneas, o processo de remoção é executado com
sucesso. Por outro lado, diferentes fontes emissoras de luminosidade e com intensidades
diferentes podem produzir inúmeras sombras, dificultando o processo de remoção.
Modificando os parâmetros utilizados na técnica de remoção de sombras adotada neste
trabalho, as sombras podem ser removidas com sucesso, porém o resultado da segmentação
(Figura 49) passa a ser de qualidade inferior impactando diretamente na imagem adquirida.
Outra dificuldade encontrada durante os estudos se dá quando o fundo da cena
ou superfície de observação é homogêneo e muito parecido com a cor das mãos e a sua
textura. Nesse caso, o modelo subtração do background pode não funcionar
eficientemente, gerando uma segmentação errônea das mãos.
86
Figura 49: Diferentes fontes de luminosidade podem gerar resultados não satisfatórios no
processo de segmentação
Também se deve salientar que a oscilação ou a movimentação indesejada da câmera
após a geração do modelo do background exige que a aplicação seja reiniciada, uma vez
que torna o fundo da cena diferente daquele que anteriormente foi adquirido para a geração
do modelo.
87
6 Considerações finais e trabalhos futuros
Este trabalho apresentou uma proposta de interação homem-computador através da
análise de posturas de mãos utilizando visão computacional e redes neurais artificiais.
Inicialmente, uma câmera de topo captura uma seqüência de imagens das mãos, que são
identificadas através de um processo de limiarização ou técnicas de subtração de
background. Um vetor de feições baseado em projeções horizontais e verticais da imagem
binária representando cada mão é então utilizado para treinar uma RNA no período de
treinamento. No período de operação, os vetores de feição são calculados e fornecidos para
a RNA, que classifica a postura conforme o aprendizado no período de treinamento. A
evolução temporal das posturas é então explorada para identificação de gestos, que são
utilizados como comandos de entrada para outros aplicativos.
Os resultados experimentais indicaram que a técnica proposta apresenta uma ótima
taxa de acertos nas posturas identificadas pela RNA, e alguma flexibilidade em termos de
variação do tamanho das mãos e altura da câmera entre o período de treinamento e de
operação. De fato, os testes realizados indicaram uma taxa de acerto de 99,67% na
classificação para a mão direita, e 100% para a mão esquerda na base de dados utilizada
para validação. Entretanto, deve-se salientar que a presença de iluminação variável e/ou
não-uniforme pode comprometer o processo de segmentação das mãos, degradando assim
o resultado do classificador. Além disso, os equipamentos encontrados atualmente no
mercado apresentam configuração igual ou melhor à utilizada neste trabalho (notebook
com processador de 1.8Ghz, memória RAM de 1GB, disco rígido de 40GB, e webcam
USB 2.0), indicando a aplicabilidade do método proposto. Em termos de custo
computacional, o protótipo implementado em MATLAB no equipamento mencionado
apresentou uma velocidade de execução média de 2,5 quadros por segundo, o que gera um
atraso de 1,2 segundos entre a troca efetiva da postura e sua identificação pelo sistema
(conforme descrito na Seção 4.4). Embora este atraso possa comprometer a interação em
tempo-real com o aplicativo, espera-se que a implementação em linguagens compiladas
(como C ou C++) deva reduzir significativamente o tempo de execução. Além disso, o uso
88
de computadores mais potentes, que atualmente estão disponíveis no mercado, também
pode contribuir para a aumentar a velocidade de processamento do algoritmo proposto.
Apesar dos resultados promissores demonstrados pela técnica proposta, há diversas
possibilidades para trabalhos futuros que podem trazer melhorias significativas à técnica,
gerando resultados ainda mais robustos. Dentre essas melhorias, poderíamos citar:
Estudar novas feições para caracterizar as posturas, de modo que posturas
mais intuitivas e confortáveis possam ser identificadas com robustez.
Utilizar informação colorida na subtração de background, visando melhorar
a detecção de sombras.
Explorar modelos de cor de pele, para aprimorar a segmentação das mãos.
Estender o modelo para trabalhar em espaço 3D (possivelmente com a
utilização de duas ou mais câmeras);
Implementar o modelo proposto em linguagens compiladas (como C ou
C++), visando reduzir o tempo de execução.
12
Referências
ALVES, F. O. Reconhecimento Inteligente de Sinais de Trânsito Brasileiros. Unisinos: Informática, Trabalho de Conclusão de Curso (TCC). São Leopoldo, RS, 2004.
AZARBAYJANI , A.: WREN, C.; PENTLAND, A. "Real-Time 3D Tracking of the human body". s.l. : Proc. IMAGE'COM, 1996.
BALLARD, D. H.; BROWN, C. M. Computer Vision. Englewood Cliffs, Prentice- Hall, 1982.
BOSE, N. K.; LIANG, P. Neural Network Fundamentals with Graphs, Algorithms and Applications, McGraw-Hill, 1996.
BOULT, T. E., et al. "Into the woods: Visual Surveillance of noncooperative and camouflaged targets in complex outdoor settings". Proceedings of the IEEE. October 2001, pp. 1382-1402.
BROGAN, D. C.; JOHNSON, N. L. Realistic humanwalking paths. Proceedings of Computer animation and social Agents, IEEE Computer Society, p. 94101, 2003.
CADOZ, C.; WANDERLEY, M. M.. Gesture-Music. In M. Wanderley and M. Battier: Trends in Gestural Control of Music. Paris: IRCAM - Centre Pompidou, 2000.
CHAN, A; LAU, R.; Li, L.. Hand Motion Prediction for Distributed Virtual Environments. IEEE Transactions on Visualization and Computer Graphics, Vol. 14, No. 1, January/February 2008
CHEN, Q; GEORGANAS N. D.; PETRIU E. M. Real-time Vision-based Hand Gesture Recognition Using Haar-like Features. Instrumentation and Measurement. Technology Conference
IMTC 2007 Warsaw, Poland, May 1-3, 2007
CHENNEY, S. Flow tiles. Eurographics/ACM SIGGRAPH Symposium on Computer Animation, p. 233242, 2004.
CUCCHIARA, R., et al. "Detecting Objects, Shadows and Ghosts in Video Streams by Exploiting". Italy : D.S.I. - University of Modena and Reggio Emilia, 1996.
CUCCHIARA, R. et al. Detecting moving objects, ghosts, and shadow in video streams. IEEE Transactions on Pattern Analysis and Machine Intelligence, v. 25, n. 10, p. 13371341, October 2003.
13
DE PAULA, L. R. P., BONINI, R., AND DE MIRANDA, F. R.. Camera kombat - Interação Livre para Jogos. SBGAMES - V Brazilian Symposium on Computer Games and Digital, 2006.
EBERHART, Russ. Computational intelligence PC Tools. - Boston : AP Professional, 1996. xxvii, 464 p.
FAHLMAN, S. E.; LEBIERE, C. The Cascade-Correlation Learning Architecture. Carnegie Mellon University - CMU, Computer Science Technical Report - CMU-CS-90-100. February 1990. http://www.cs.cmu.edu/Reports/index.html .
FREEMAN, W., ANDERSON, D. and BEARDSLEY, P., Computer Vision for Interactive Computer Graphics. IEEE Computer Graphics and Applications, 1998.
FISCHER, I., HENNECKE F., BANNES C., and ZE, A.. Javanns - java neural network simulator - user manual, version 1.1, 2005. http://wwwa.informatik.unituebingen.de/downloads/JavaNNS/
FITZMAURICE, G., ISHII, H. and BUXTON, W., Bricks: Laying the Foundations of Graspable User Interfaces. ACM conference on Computer-Human Interaction, 1995.
GALLAGHER, M. R.. Multi-layer Perceptron Error Surfaces: Visualization, Structure and Modelling. Doctor of Philosophy (PhD) Thesis. Department of Computer Science and Electrical Engineering - University of Queensland - Australia. 225 p. il. 2000.
GALLNAT, S Neural Network Learning and Expert Systems. MIT Press, Cambridge. USA, 1993
GONZALEZ, R. C.; WOODS, R. E.. Digital Image Processing. Addison-Wesley, Reading, MA, USA, 3 edition, 1992.
GONZALES, R.C., WOODS, R. E. Digital Image Processing, 2nd ed., New Jersey: Prentice-Hall, 2002.
HALL, D., et al. Beijing : "Comparison of target detection algorithms using adaptive background models . Proc. 2nd Joint IEEE Int. Workshop on Visual Surveillance and Performance Evaluation of Tracking and Surveillance, (VS-PETS), October 2005. pp 113-120.
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.
HANDENBERG, C., Fingertracking and Handposture Recognition for eal-Time Human-Computer Interaction, Master These at Fachbereich lektrotechnik und Informatik der Technischen Universität Berlin. 2001.
14
HARITAOGLU, D. H. I.; DAVIS, L. S. W4: Who? when? where? what? a real time system for detecting and tracking people. In: FG 98: Proceedings of the 3rd. Internacional Conference on Face & Gesture Recognition. Washington, DC, USA: IEEE Computer Society, 1998. p. 222. ISBN 0-8186-8344-9.
HARITAOGLU, D. H. I.; DAVIS, L. S. W4: Real-time surveillance of people and their activities. PAMI, v. 22, n. 8, p. 809830, August 2000.
HAYKIN, S. Redes Neurais
Princípios e Prática, 2.ed. Porto Alegre: Bookman, 2001. 900p.
HAYKIN, S. Redes neurais: princípios e prática. - 2. ed.
Porto Alegre : Artes Médicas, 2002. 900 p
HELBING, D.; FARKAS, I.; VICSEK, T. Simulating dynamical features of escape panic. Nature, v. 407, p. 487490, 2000.
HONG, D. and WOO, W., A Background Subtraction for a Vision-based User Interface, ICICS-PCM 2003, Singapore, December 2003.
HORN, B. K. P. "Robot Vision". s.l. : Massachusetts Institute of Technology, 1986.
HU, W., et al. "A Survey on Visual Surveillance of Object Motion and Behaviors". s.l. : IEEE Trans. SMC, August, 2004. Vol. 34, 3. pp. 334-353.
JACQES, C.S.J., JUNG, C. R., MUSSE, S. R Background Subtraction Model Adapted to Illumination Changes, IEEE International Conference on Image Processing, Atlanta, USA. Proceedings of the IEEE International Conference on Image Processing. IEEE Press, 2006. p.1817
1820
JACQES, C.S.J. Utilizando visão computacional para simular comportamentos de multidões de humanos virtuais. Dissertação de Mestrado em Computação Aplicada. Unisinos, São Leopoldo, 2006.
JACQES, C.S.J., JUNG, C. R., MUSSE, S. R "Background Subtraction and Shadow Detection in Grayscale Video Sequences", in Proceedings of SIBGRAPI, Natal, Brazil, October 2005, pp. 189196, IEEE Press.
JAVANNS: Java Neural Network Simulator University of Tübingen. Available at http://www-ra.informatik.unituebingen.de/software/JavaNNS/, 2005.
JUNIOR, N. F. S., JUNG, C. R., MUSSE, S. R, OSÓRIO, F. S, KEHL, T. " Animando Humanos Virtuais em Tempo-Real usando Visão Computacional e Redes Neurais ". IX Symposium on Virtual and Augmented Reality, 2007.
KJELDSEN, R; KENDER. J. Toward the use of gesture in traditional user Interfaces. In Proc. of IEEE International Conference on Automatic Face and Gesture Recognition, 1996. Pages 151-156.
15
KOHAVI, R. J. G., LONG R. , MANLEY, D & PFLEGER K (1994), MLC++ A machine learning library in C++ in Tools with Artificial Intelligence IEEE Computer Society Press, pp 740-743
MACKI, J.; MCCANE, B. Finger detection with decision trees. In proceedings of Image and Vision Computing, pages399403, New Zealand, 2004.
MACCORMICK, J. and ISARD, M., Partitioned sampling, articulated objects and interface-quality hand tracking. European Conference on Computer Vision, 2000.
MANRESA, C.; VARONA, J.; MAS, R.; PERALES, F. J.. Hand Tracking and Gesture Recognition for Human-Computer Interaction. Electronic Letters on Computer Vision and Image Analysis 5(3): 96-104, 2005
HUNT, B.; LIPSMAN, R.; ROSENBERG, J.; COOMBES, K.; OSBORN, J.; STUCK G. A Guide to MATLAB for Beginners and Experienced Users, 2001 - Information on this title: www.cambridge.org/9780521803809
HANSELMAN, D.; LITTLEFIELD B. - MATL AB 6: Curso completoPrentice Hall, 2003. - http://www.mathworks.com
MITCHELL, T. Machine Learning. WCB / McGrall-Hill - Computer Science Series, Boston, MA, 1997.
MULDER, A. Design of Virtual Three-Dimensional Instruments for Sound Control. PhD. thesis. Burnaby, BC, Canada: Simon Fraser University, 1998.
MUSSE, S. R.; OSÓRIO F. S., F. GARAT, M. GOMEZ, and D. Thalmann. Interaction with virtual human crowds using artificial neural networks to recognize hands postures. In Proceedings of III Workshop on Virtual Reality, pages 107 118, Gramado, RS, Brazil, 2000.
NEVES, J., CORTEZ, P. An Artificial Neural Network
Genetic Based Approach for Time Series Forecasting. In: Brazilian Symposium on Neural Networks, 4, 1997. Proceedings... Sociedade Brasileira de Computação, Belo Horizonte - MG, 1997. p.9-13.
OKA, K.; SATO, Y.; KOIKE, H., Real-time Tracking of Multiple Fingertips and Gesture Recognition for Augmented Desk Interface ystems, In IEEE Automatic Face and Gesture Recognition, Washington, .C. May 2002.
OSORIO, F. S.; AMY, B. INSS: A Hybrid System for Constructive Machine Learning . NeuroComputing 28(1999) 191-205. Elsevier Science, Amsterdam.
OSÓRIO, F. S.; VIEIRA, R.. Sistemas Híbridos Inteligentes. Tutorial apresentado no ENIA'99 - Encontro Nacional de Inteligência Artificial - XIX Congresso Nacional da Sociedade Brasileira da Computação (SBC). 61 p. il. 1999.
OSÓRIO, F. S.; BITTENCOURT, J.R. Sistemas Inteligentes Baseados em Redes Neurais Artificiais Aplicados ao Processamento de Imagens. I Workshop de Inteligência Artificial.
16
Departamento de Informática - Universidade de Santa Cruz do Sul (UNISC). 28 p. il. Junho de 2000.
OTSU, N. A threshold selection method from gray-level histograms. IEEE Transactions on Systems, Man and Cybernetics, 9(1):6269, 1979.
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.
QUECK, F., MYSLIWIEC, T. and ZHAO, M., Finger Mouse: A freehand pointing interface. International Workshop on Automatic Face and Gesture Recognition, Zurich, 1995.
QUINLAN, J. R.. Bagging, boosting and c4.5. In In Proceedings of the Thirteenth National Conference on Artificial Intelligence, pages 725730, Menlo Park, CA, 1996.
REZENDE, S. O.. Sistemas inteligentes: fundamentos e aplicações. Ed. Manole, São Paulo, 2003.
REYNOLDS, C. W. Flocks, herds and schools: a distributed behavioral model. SIGGRAPH, v. 21, n. 21, p. 2534, July 1987.
RIEDMILLER, M. and BRAUN, H. A direct adaptive method for faster backpropagation learning: The RPROP algorithm. In Proc. of the IEEE Intl. Conf. on Neural Networks, pages 586591, San Francisco, CA, 1993.
ROSIN, P. L.; ELLIS, T. Image difference threshold strategies and shadow detection. 6th
British Machine Vision Conf., Birmingham, p. 347356, 1995.
RUMELHART, D., HINTON, G., and WILLIAMS, R. Learning Internal Representations by Error Propagation - In: Parallel Distributed Processing. Cambridge: MIT Press, vol.1 edition, 1986.
SATO, H. K. Y.; SAITO, M. Real-time input of 3d pose and gestures of a users hand and its applications for hci. IEEE Virtual Reality Conference 2001 (VR01), page 79, March 2001.
SNNS - The Stuttgart Neural Network Simulator. University of Stuttgart
Institute for Parallel and Distributed High Performance Systems (IPVR), 1995.
SOILLE, Pierre. Morphological Image Analysis
Principles and Applications. Berlin: Springer, 1999.
STURMAN, D. J., ZELTZER D:. A survey of glove-based input. IEEE Computer Graphics and Applications, 14:3039, January 1994.
TRUYENQUE, M. A. Q. Uma Aplicação de Visão Computacional que Utiliza Gestos da Mão para Interagir com o Computador, Dissertação (mestrado)
Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática, 2005.
17
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.
ULICNY, B.; CIECHOMSKI, P. de H.; THALMANN, D. Crowdbrush: Interactive authoring of real-time crowd scenes. Eurographics/ACM SIGGRAPH Symposium on Computer Animation, p. 243252, 2004.
ZIMMERMANN, T. G., LANIER J., BLANCHARD, C., BRYSON, S., HARVILL, Y.: A hand gesture interface device. In In Proceedings ACM Conf. Human Factors in Computing Systems and Graphics Interface, pages 189192, 1987
WANG, L.; HU, W.; TAN, T. Recent developments in human motion analysis. Pattern Recognition, v. 36, p. 585601, 2003.
WEKA Machine learning project homepage, http://www.cs.waikato.ac.nz/~ml/ (August 2004)
WREN, C. R., et al. "PFinder: real-time tracking of the human body". IEEE Transactions on Pattern Analysis and Machine Intelligence. 1997, Vol. 19, no. 7, pp. 780-785.
18
Anexo - Publicações
Segue o resumo do artigo Animando Humanos Virtuais em Tempo-Real Usando Visão Computacional e Redes Neurais, desenvolvido no decorrer deste trabalho, submetido e aceito no SVR 2007 - IX Symposium on Virtual and Augmented Reality, em 2007.
RESUMO
Este artigo propõe o desenvolvimento de um modelo para animação de grupos de
humanos virtuais em tempo real, controlados através de posturas de mão, que são
identificadas por Redes Neurais. O trabalho também inclui pesquisa na área de visão
computacional para detecção de características de imagens que são enviadas a redes
neurais para treinamento e posterior identificação de posturas. Estas são enviadas, em um
sistema cliente-servidor, para serem estímulos de movimento a uma ferramenta de
animação de grupos de humanos virtuais. Este artigo descreve detalhes técnicos deste
modelo, apresenta os resultados obtidos e discute trabalhos futuros.
Livros Grátis( http://www.livrosgratis.com.br )
Milhares de Livros para Download: Baixar livros de AdministraçãoBaixar livros de AgronomiaBaixar livros de ArquiteturaBaixar livros de ArtesBaixar livros de AstronomiaBaixar livros de Biologia GeralBaixar livros de Ciência da ComputaçãoBaixar livros de Ciência da InformaçãoBaixar livros de Ciência PolíticaBaixar livros de Ciências da SaúdeBaixar livros de ComunicaçãoBaixar livros do Conselho Nacional de Educação - CNEBaixar livros de Defesa civilBaixar livros de DireitoBaixar livros de Direitos humanosBaixar livros de EconomiaBaixar livros de Economia DomésticaBaixar livros de EducaçãoBaixar livros de Educação - TrânsitoBaixar livros de Educação FísicaBaixar livros de Engenharia AeroespacialBaixar livros de FarmáciaBaixar livros de FilosofiaBaixar livros de FísicaBaixar livros de GeociênciasBaixar livros de GeografiaBaixar livros de HistóriaBaixar livros de Línguas
Baixar livros de LiteraturaBaixar livros de Literatura de CordelBaixar livros de Literatura InfantilBaixar livros de MatemáticaBaixar livros de MedicinaBaixar livros de Medicina VeterináriaBaixar livros de Meio AmbienteBaixar livros de MeteorologiaBaixar Monografias e TCCBaixar livros MultidisciplinarBaixar livros de MúsicaBaixar livros de PsicologiaBaixar livros de QuímicaBaixar livros de Saúde ColetivaBaixar livros de Serviço SocialBaixar livros de SociologiaBaixar livros de TeologiaBaixar livros de TrabalhoBaixar livros de Turismo