PONTIFICIA UNIVERSIDADE CATÓLICA DO PARANÁ
CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIAS
ENGENHARIA DE COMPUTAÇÃO
HAND FLOW
CURITIBA – PR
2011
2
GEAN FRANCESCO DEROSSO CHU
GILBERTO JOSÉ VERONA FILHO
HAND FLOW
INTERAÇÃO HOMEM-MÁQUINA POR MEIO DE GESTOS MANUAIS NATURAIS
Esta documentação de projeto final será apresentada à disciplina de Projeto Final II como nota integrante do segundo semestre sendo parte do projeto final de curso.
Professor: Luiz A. de P. Lima Jr.,
___________________________________________
ALCEU DE SOUZA BRITTO JR.
Professor-Orientador
CURITIBA – PR
2011
3
Sumário
Resumo ............................................................................................................................. 4
Introdução ........................................................................................................................ 4
Detalhamento do Problema ............................................................................................. 6
Detalhamento do Projeto ................................................................................................. 8
Treinamento da Rede ................................................................................................... 8
Utilização no Framework ............................................................................................ 14
Procedimento de Treinamento da Rede ........................................................................ 19
Aplicação ......................................................................................................................... 20
Procedimentos de Teste e Validação do Projeto ........................................................... 21
Resultados ...................................................................................................................... 22
Conclusão........................................................................................................................ 23
Referências Bibliográficas ............................................................................................... 24
Anexo A - Plano de Testes .............................................................................................. 25
Anexo B – Validação da Rede Neural ............................................................................. 27
4
Resumo
Sistemas de interface homem-máquina têm sido objeto de pesquisa científica
há vários anos. As pesquisas nesta área buscam melhores maneiras de traduzir a
vontade do usuário em comando para o sistema sendo operado. Neste contexto,
gestos manuais naturais podem ser utilizados como interface em sistemas
computacionais, entretanto, deve-se desenvolver uma maneira de rastrear a mão do
usuário e identificar os gestos utilizados como comandos, de modo que seja possível
tomar as ações adequadas. Este projeto apresenta um método baseado em técnicas
de visão computacional para, por meio de uma câmera e sensor de profundidade,
identificar a mão do usuário, rastrear sua posição e identificar gestos de comando
produzidos pela mesma.
Introdução
A interação homem-máquina vem sendo um assunto pesquisado desde o início
da computação, sendo que diferentes aplicações dependem de diferentes tipos de
interação entre o usuário e algum dispositivo. Mesmo que grande parte das operações
com dispositivos computacionais possa ser realizada por meio de teclado e mouse,
diferentes tipos de interações podem vir a aumentar consideravelmente a
produtividade do usuário em determinada tarefa.
Mesmo possuindo alto grau de complexidade, gestos manuais são movimentos
bastante naturais aos seres humanos, e possuem alta precisão. Desta forma, gestos
podem ser utilizados como interface em uma grande gama de aplicações,
possibilitando executar tarefas complexas através de comandos gestuais bastante
intuitivos ao usuário.
Devido a grande complexidade dos movimentos manuais humanos, sistemas
capazes de reconhecer gestos em grau satisfatório de detalhamento, porém utilizando
recursos computacionais moderados, são um desafio.
Este projeto teve como objetivo o desenvolvimento de um sistema de interação
homem-máquina, utilizando gestos manuais naturais como entrada para aplicações
computacionais. O sistema é capaz de determinar a posição espacial da mão em três
5
dimensões e de reconhecer movimentos mecânicos pré-determinados, como
deslocamentos circulares ou lineares. O sistema é, ainda, capaz de diferenciar posições
da mão baseado na posição ou configuração dos dedos, permitindo reconhecer
posições como mão aberta, fechada, entre outros.
Este documento está organizado da seguinte maneira:
•Detalhamento do Problema
Nesta seção são levantados os requisitos do sistema de interação
homem-máquina proposto, bem como problemas que haviam de ser
solucionados para a implementação do mesmo.
•Detalhamento do Projeto
Descrição do modelo lógico do sistema, apresentando seu mecanismo
de operação por meio de blocos funcionais e diagramas bem como uma
explicação de como cada bloco deve ser implementado.
Procedimento de Treinamento da Rede
Descrição do protocolo seguido nas coletas de dados para treinamento
da rede neural, bem como do processo de treinamento.
•Aplicação
Descrição da aplicação proposta para apresentação final do projeto.
•Procedimentos de teste e validação do projeto
Plano de teses para cada bloco lógico do sistema, bem como critério de
aceitação de funcionamento.
Resultados
Resultados obtidos com a finalização do projeto e análise da precisão do
sistema.
Conclusão
Considerações finais sobre o sistema.
6
Detalhamento do Problema
A identificação de gestos manuais naturais pode ser utilizada para o controle de
sistemas computacionais, entretanto é necessário que se estabeleça um universo finito
de entradas no sistema, de forma que seja possível caracterizar tais entradas e as
ações correspondentes. Como o sistema sugerido opera como uma interface genérica
para diversas aplicações, o mesmo deve possuir tipos de entrada de comandos
flexíveis o suficiente para permitir que seja utilizado em vários tipos de dispositivos.
Assim definiu-se que o sistema deveria ser capaz de:
• Rastrear a posição da mão em três dimensões;
• Identificar o movimento de “push”, caracterizado por um rápido e curto
deslocamento aproximando-se e, então,se afastando da câmera;
• Identificar os gestos:
1. Mão Aberta
Figura 1 - Gesto Mão Aberta
7
2. Mão Fechada
Figura 2 - Gesto Mão Fechada
3. Dois Dedos
Figura 3 - Gesto Dois Dedos
Como o sistema emprega uma câmera para o reconhecimento de comandos de
entrada, algumas precauções foram tomadas, como luminosidade ambiente, distância
entre o usuário e a câmera do sistema, e a inclinação da câmera em relação ao
usuário. Foram implementados também mecanismos para evitar a ocorrência de
interpretações errôneas de comandos e rotinas de interpretação dos comandos que
permitam um tempo de resposta satisfatório.
8
Detalhamento do Projeto
O projeto utiliza uma rede neural para realizar o reconhecimento de gestos do
usuário. Sendo assim, o projeto divide-se em duas etapas lógicas: a) o treinamento da
rede neural; e b) a utilização da rede treinada em um framework.
Treinamento da Rede
O sistema de treinamento é composto por uma câmera, a qual fornece os
frames de imagens de profundidade contendo exemplos de mãos para a realização do
treinamento; um sistema de coleta de dados, responsável por reconhecer o exemplo
de mão e armazená-lo no formato de padrão para treinamento; um sistema de
treinamento, que utiliza o arquivo de padrões para treinar a rede; e finalmente, um
sistema responsável por converter a rede treinada em código para compilação.
Figura 4 – Diagrama de Treinamento da Rede Neural
Câmera:
Neste projeto a câmera possui, internamente, um sensor de profundidade com
resolução de 640x480 e taxa de captura de quadros de 30 fps. A transmissão dos
quadros da câmera é feita por uma interface USB. É importante salientar que neste
grupo nenhum processamento das imagens para detecção de padrões é realizado.
Coleta de Dados:
Esta etapa é responsável por criar exemplos para o treinamento da rede neural.
O usuário informa explicitamente ao sistema o gesto a ser executado, de modo que
este pode então armazenar o padrão de mão do usuário e associar ao gesto que
representa. Para processamento e interpretação dos quadros recebidos, utilizou-se as
USB
Câmera Coleta de Dados Treinamento
.pat .net
Código Rede
Marcação
9
bibliotecas OpenCV e OpenNi, ambas de desenvolvimento livre. Esta etapa é
organizada da seguinte maneira:
Figura 5 – Diagrama de Coleta de Dados
Aguarda Mão:
Inicialmente realiza-se um protocolo de sincronia, onde o usuário realiza um
movimento de push, informando ao sistema qual é o objeto no campo tridimensional
visível, que representa a mão do usuário. A biblioteca OpenNI automaticamente
identifica o movimento e reconhece o objeto como sendo a mão do usuário.
Sem UsuárioSem Usuário
Handle OpenNI
Usuário Encontrado
Usuário Encontrado
Posição Mão
Buscando Usuário
Figura 6 – Diagrama de Detecção de Usuário
USB Aguarda Mão
Marcação de
Gestos
Arquivo .pat Marcação
10
Marcação de Gestos:
Nesta etapa o usuário apresenta sua mão formando gestos com os quais deseja
treinar o sistema, associando um número de identificação para cada tipo de gesto. O
resultado desta etapa é um arquivo de padrões que relaciona o padrão de mão
observado pelo sistema e o gesto que ele representa.
Inicia ColetaInicia Coleta
Frame
Isola Faixa de Profundidade
X,Y,Z da mão
Isola Mão
Normaliza Mão
Marca Gesto
Armazena Padrão
Armazena Padrão
Marcação de Gesto
Figura 7 – Diagrama de Coleta de Padrões
11
O primeiro passo é o isolamento dos objetos na mesma faixa de profundidade
da mão. Para tanto se cria uma matriz com a mesma resolução da imagem e, sabendo-
se a coordenada Z da mão, marca-se cada posição da matriz com 1 ou 0, indicando se o
pixel da imagem encontra-se ou não na mesma faixa de profundidade da mão.
Considera-se que um pixel está na mesma faixa de profundidade caso esteja a uma
margem de diferença de profundidade configurável pelo usuário.
Matriz(i,j)=1Matriz(i,j)=1
Pixel(i,j) na mesma faixa de Z? Matriz(i,j)=0Matriz(i,j)=0
Sim
Não
Fim da Imagem?
FimFim
Sim
Não
Figura 8 – Diagrama de Coleta de Padrões
No passo seguinte utiliza-se a biblioteca OpenCV para identificar todos os blobs
na matriz resultante, obtendo-se uma coleção de objetos que descrevem todos os
objetos na matriz. Com isso, pode-se verificar em qual destes objetos as coordenadas X
e Y da mão se encontram, de modo que se pode identificar qual destes objetos de fato
representa a mão do usuário. Cada blob é descrito por meio de um polígono, de modo
que, para reduzir-se o custo computacional da verificação das coordenadas X e Y nos
blobs, realiza-se a comparação com o menor retângulo que consegue abranger todo o
blob.
12
Pixel(X,Y) pertence a Retângulo(i)? FimFim
Sim
Não
Detecta Contornos
Detecta Contornos
Define Retângulo(i) para Contorno(i)
Define Retângulo(i) para Contorno(i)
Figura 9 – Diagrama de Detecção de Contornos da Mão
A rede neural planejada possui 400 neurônios de entrada, sendo que cada um
deverá receber um pixel de uma imagem 20x20 pixels. Sabendo-se qual retângulo
contém o objeto que representa a mão, o passo seguinte é normalizar o retângulo
para o tamanho 20x20 pixels, esticando e achatando as dimensões da imagem de
modo a transformá-la a este formato.
O passo final é escrever no arquivo de saída o valor de cada pixel, onde 1
representa a presença da mão e 0 representa a ausência, e associar a este conjunto de
pixels o gesto realizado no momento. Desta forma, juntando-se vários casos de gestos,
obtém-se um arquivo de padrões (.pat) que deverá ser utilizado no treinamento da
rede.
Treinamento
Nesta etapa, utiliza-se o arquivo de padrões para realizar o treinamento da
rede neural que deverá realizar a classificação dos gestos manuais. A rede neural
planejada deve possuir 400 neurônios de entrada, cada um representando um pixel da
imagem da mão, uma ou mais camadas escondidas, e 3 neurônios de saída,
representando cada um dos gestos possíveis. O software utilizado para o treinamento
da rede é o JavaNNS. O processo de criação e treinamento da rede é demonstrado na
Figura 10.
13
Tools Create Layers
Input
Hidden
Output
Criação da Rede
Treinamento da Rede
File Open (.pat)
Tools
Carregar Arquivo de Padrões
Treinar Rede
Control Pannel
Connections Feed-Forward
InitializingRandom Weights
Init
Learning Backpropagation
Step width
Max. Non propagated
error
Cicles
Steps
Shuffle
Learn All
File Save (.net)
Salvar Rede
Figura 10 – Diagrama de Criação e Treinamento da Rede Neural
14
Para obter bons resultados, foi gerada uma grande base de treinamento,
buscando coletar amostras de mãos de diferentes posições. O treinamento da rede foi
realizado testando diversas combinações de configuração de rede, bem como
diferentes valores para número de ciclos, tamanho do passo, etc., de modo a alcançar
uma taxa elevada de acertos, mas sem causar overfitting, que é uma situação onde a
rede torna-se “viciada”, perdendo a capacidade de avaliar amostras fora das do grupo
de treinamento.
Para avaliar a qualidade da rede foi utilizado um novo grupo de amostras,
buscando verificar a capacidade da rede de discernir amostras diferentes das utilizadas
no treinamento.
Código da Rede
Para finalizar a etapa de criação da rede neural, utilizou-se o software snns2c,
do pacote SNNS, que toma como entrada um arquivo descritor de rede neural (.net), e
gera uma função em linguagem C que avalia um vetor de entrada de tamanho igual ao
número de neurônios de entrada da rede e retorna um vetor de tamanho igual ao
número de neurônios de saída da rede. Este vetor de saída contém em cada posição a
probabilidade da entrada da rede ser pertencente a cada uma das classes de gestos
representadas na rede.
Utilização no Framework
Em uma visão mais geral, pode-se separar o sistema em três grupos, Câmera,
Framework e Aplicação.
Figura 11 – Diagrama de Utilização do Framework
Câmera Framework Aplicação
15
Câmera:
Mesmo sistema de câmera já descrito no processo de treinamento.
Framework:
Módulos responsáveis por interpretar os quadros recebidos para realizar a
detecção de mão, rastreamento e reconhecimento de padrões, passando os resultados
obtidos à Aplicação. Para processamento e interpretação dos quadros recebidos são
utilizadas as mesmas bibliotecas já citadas anteriormente. Este Framework está
organizado da seguinte maneira:
Figura 12 – Diagrama do Framework
Aguarda Mão:
Realiza o mesmo processo de espera por uma entrada do usuário já descrito
nas etapas de treinamento da rede neural.
Detecção de Movimentos:
Baseado na posição da mão em três dimensões é possível reconhecer um grupo
de movimentos, como deslocamentos, movimentos circulares, entre outros. A própria
biblioteca OpenNI implementa um mecanismo de Callback em que atribui-se a uma
função o tratamento de cada movimento. A biblioteca OpenNI fornece suporte a
outros tipos de movimento, mas no escopo deste projeto, apenas os tratamentos de
movimentos de “push” serão suportados. Na ocorrência da detecção do movimento, a
biblioteca executa a função atribuída ao tratamento do mesmo.
Aguarda Mão
Detecção de
Gestos
Detecção de
Movimento Movimentos
driver X, Y, Z
Gestos
16
Movimento Detectado
Movimento Detectado
Encerra Tratador
Encerra Tratador
Tratador do Movimento (Aplicação)Handle OpenNI
Figura 13 – Diagrama Detecção Padrão do Framework
Detecção de Blobs:
Sabendo-se a profundidade (coordenada Z) em que a mão se encontra,
eliminam-se da imagem todos os objetos que não estejam na mesma faixa de
profundidade, obtendo-se assim um conjunto de blobs, ou seja, objetos de interesse.
O mecanismo de detecção de blobs é o mesmo descrito da etapa de treinamento da
rede neural.
Sabendo-se as coordenadas X e Y da mão, eliminam-se todos os blobs
irrelevantes, deixando apenas o blob que representa a mão do usuário, como já
explicado anteriormente na etapa de treinamento do sistema.
Com base no formato da mão do usuário, determina-se, por meio de uma
avaliação utilizando a rede neural treinada, qual gesto representa. A avaliação da rede
neural resulta em um vetor de 3 posições, cada qual representando a probabilidade de
o gesto avaliado ser um dos treinados na rede.
17
Novo frameNovo frame
Frame
Isola Faixa de Profundidade
X,Y,Z da mão
Isola Mão
Normaliza Mão
Identifica Gesto
Informa Aplicação
Informa Aplicação
Figura 14 – Diagrama de Detecção dos Blobs
Ao detectar o gesto sendo efetuado, o sistema insere o gesto dentro de um
buffer de eleição. Apenas quando todas as posições do buffer informarem que o
usuário está realizando determinado gesto, é que este esta informação é exteriorizada
à aplicação.
O sistema foi feito de modo a ser facilmente configurável pelo usuário. Em um
arquivo denominado “config.h” o usuário pode ajustar:
18
Tamanho da mão, em pixels, que o sistema deve utilizar;
Quantidade de gestos que a rede deve interpretar;
Tamanho do buffer de eleição que determina se um gesto detectado é válido
ou não;
Período das amostragens, em milissegundos;
Porcentagem mínima de certeza da rede neural para que uma amostra seja
aceita;
Faixa de profundidade em que a mão do usuário deve ser analisada a partir de
seu centro.
19
Procedimento de Treinamento da Rede
Para treinar a rede neural utilizada no projeto, utilizou-se dados de mão de 6
voluntários. Cada voluntário seguiu o protocolo descrito abaixo, para coleta dos dados:
Distância entre o usuário e a câmera deve ser de 1,5m +- 20cm.
Altura da palma da mão do usuário em relação à câmera deve ser de 1m +-
20cm.
Usuário deve buscar manter a palma da mão virada em direção à câmera. É
permitida uma variação de ângulo de aproximadamente 30⁰ em qualquer eixo.
Ao todo foram coletadas cerca de 20000 amostras de mãos dos voluntários,
empregando gestos manuais variados.
20
Aplicação
A aplicação escolhida para demonstrar o funcionamento do sistema é uma
interface de um mouse padrão onde: a) o movimento da mão com a palma aberta –
Gesto 1 - movimentará a seta do mouse na tela do computador o fechamento da mão;
b) Gesto 2 - caracterizará um clique do botão esquerdo do mouse e a utilização do
dedão e do dedo indicador formando um L; e c) Gesto 3 – caracterizará o clique do
botão direito do mouse.
Adicionalmente, outra aplicação foi desenvolvida com o intuito de demonstrar
os recursos do sistema utilizando uma interface visual mais amigável. Nesta aplicação,
uma imagem representando os gestos do usuário é mostrada na tela no momento em
que o usuário realiza o gesto manual. Caso o sistema não consiga encontrar a mão do
usuário, uma imagem de “interrogação” é mostrada na tela. Para representar a
capacidade do sistema de detectar as coordenadas x, y e z da mão do usuário, as
imagens que ilustram o gesto sendo realizado são movimentadas e alteradas de
acordo com a posição da mão.
21
Procedimentos de Teste e Validação do Projeto
Os testes do sistema foram realizados utilizando uma amostra de potenciais
usuários, buscando diversificar o máximo possível a variação do formato e tamanho
das mãos destes a fim de verificar possíveis problemas na rede neural que detecta os
gestos manuais do usuário ativo no sistema.
A validação foi feita baseada na porcentagem de sucesso na leitura e
interpretação de gestos dos usuários, considerando uma taxa aceitável de erros
estipulada em 90% de acertos com um usuário que possua a mão em formato padrão
com os cinco dedos e tamanho médio de 20 cm entre o punho e a extremidade do
dedo médio e 20 cm entre as extremidades do dedão e do dedo mindinho.
O Plano de Testes encontra-se em anexo a este documento.
22
Resultados
Para avaliar a eficiência da detecção de gestos do sistema, uma base de dados
de validação foi coletada com amostras de mão de quatro voluntários. No total, 42
amostras foram coletadas, empregando os três gestos detectáveis pelo sistema. Do
total de amostras, apenas 7,14% apresentaram taxa de certeza da rede abaixo de 90%.
No entanto, avaliando-se o percentual de certeza de cada amostra, verificou-se que
destas, em 66,6% dos casos o maior percentual estava correto, mesmo que abaixo de
90%. Por este motivo, foi dada ao usuário a opção de configuração do percentual de
certeza aceito pelo sistema. Uma análise mais detalhada dos resultados da validação
encontra-se no Anexo B.
23
Conclusão
Com o sistema concluído pode-se entender o quão poderosa esta ferramenta
de interação homem-máquina se apresenta. Afinal, pode-se utilizá-la no dia a dia
simplesmente com o uso de um computador sem a utilização de um objeto físico, no
caso, o mouse ou teclado, para interação com o usuário. Além disto, tal sistema
também pode ser utilizado com fins mais nobres como o controle de robôs para
manipulação de sustâncias perigosas, por exemplo.
24
Referências Bibliográficas
STENGER, B.; THAYANANTHAN, A.; TORR, P.H.S.; CIPOLLA, R.;Model-based hand
tracking using a hierarchical Bayesian filter.Pattern Analysis and Machine Intelligence,
IEEE Transactions on Volume: 28, Issue: 9. Digital Object Identifier:
10.1109/TPAMI.2006.189. Publication Year: 2006, Page(s): 1372 – 1384.
EL-SAWAH, A.; GEORGANAS, N.D.; PETRIU, E.M.; A Prototype for 3-D Hand
Tracking and Posture Estimation.Instrumentation and Measurement, IEEE Transactions
on Volume: 57, Issue: 8. Digital Object Identifier: 10.1109/TIM.2008.925725.
Publication Year: 2008, Page(s): 1627 – 1636.
PHAN THE BAO; NGUYEN THANH BINH; TU DUY KHOA; A New Approach to
Hand Tracking and Gesture Recognition by a New Feature Type and HMM. Fuzzy
Systems and Knowledge Discovery, 2009.FSKD '09. Sixth International Conference on
Volume: 4. Digital Object Identifier: 10.1109/FSKD.2009.276. Publication Year: 2009,
Page(s): 3 – 6.
MONI, M.A.; ALI, A.B.M.S.; HMM based hand gesture recognition: A review on
techniques and approaches. Computer Science and Information Technology,
2009.ICCSIT 2009. 2nd IEEE International Conference on Digital Object Identifier:
10.1109/ICCSIT.2009.5234536 Publication Year: 2009, Page(s): 433 – 437.
ONG, S.C.W.; RANGANATH, S.; Automatic sign language analysis: a survey and
the future beyond lexical meaning. Pattern Analysis and Machine Intelligence, IEEE
Transactions on Volume: 27, Issue: 6. Digital Object Identifier:
10.1109/TPAMI.2005.112. Publication Year: 2005, Page(s): 873 – 891.
MOON-JIN JEON; SEUNG-EUN YANG; ZEUNGNAM BIEN;User adaptive hand
gesture recognition using multivariate fuzzy decision tree and fuzzy garbage
model.Fuzzy Systems, 2009.FUZZ-IEEE 2009. IEEE International Conference on Digital
Object Identifier: 10.1109/FUZZY.2009.5277156. Publication Year: 2009, Page(s): 474 –
479.
25
Anexo A - Plano de Testes
Figura 11 – Diagrama do Plano de Testes
Teste da Câmera –Para verificar o funcionamento adequado da câmera, dos drivers e
biblioteca OpenNI, deverá ser executado um software desenvolvido pela empresa
Prime Sense, desenvolvedora da biblioteca OpenNI, que adquire frames de imagens da
câmera de profundidade. Espera-se uma tela onde os frames da câmera de
profundidade sejam mostrados.
Teste de reconhecimento de movimento – Para verificar o funcionamento adequado
da detecção de movimento de push, a aplicação de demonstração deverá ser
executada. Neste software, o movimento de push indica a presença da mão do
usuário. Sendo assim, caso o movimento esteja sendo detectado de maneira
adequada, o software detectará a presença da mão do usuário.
Teste de detecção de gestos – Para verificar o funcionamento adequado da detecção
de gestos, deverá ser realizada uma avaliação da qualidade da detecção realizando
cada gesto em nove áreas do frame da câmera, como mostrado na Figura 1. Espera-se
que o sistema seja capaz de reconhecer 90% dos gestos em todas as áreas de análise.
Kinect Aguarda Mão
Detecção de
Gestos
Detecção de
Movimento Movimentos
driver X, Y, Z
Gestos
Aplicação
Câmera
26
Figura 2 – Áreas de análise de gestos
O protocolo a ser seguido na coleta de dados deve ser o seguinte:
Distância entre o usuário e a câmera deve ser de 1,5m +- 20cm.
Altura da palma da mão do usuário em relação à câmera deve ser de 1m +-
20cm.
Usuário deve buscar manter a palma da mão virada em direção à câmera. É
permitida uma variação de ângulo de aproximadamente 30⁰ em qualquer eixo.
A2 A1 A3
B3 B2 B1
C2 C3 C1
27
Anexo B – Validação da Rede Neural
Conjunto Total de Amostras de Validação
As tabelas a seguir relacionam o número da amostra de validação, o resultado
esperado e o resultado obtido. Dos três resultados possíveis, o primeiro representa
“mão aberta”, o segundo “mão fechada” e o terceiro “dois dedos em L”.
SNNS result file V1.4-3D generated at Sun Nov 24 17:35:52 2011
No. of patterns : 42 startpattern : 1
No. of input units : 400 endpattern : 42
No. of output units : 3 teaching output included
#1.1 #15.1 #29.1
1 0 0 0 1 0 0 0 1
0.92325 0.00026 0.18027 0.19197 0.50682 0.01253 0.00065 0.00003 0.99998
#2.1 #16.1 #30.1
1 0 0 0 1 0 0 0 1
0.99946 0 0.00785 0.01034 0.97685 0.02705 0.00049 0.00006 0.99994
#3.1 #17.1 #31.1
1 0 0 0 1 0 0 0 1
0.97156 0.00024 0.01789 0.01076 0.94134 0.03812 0.11362 0 0.9709
#4.1 #18.1 #32.1
1 0 0 0 1 0 0 0 1
0.98821 0.00179 0.00066 0.01006 0.97318 0.04876 0.00055 0.00004 0.99993
#5.1 #19.1 #33.1
1 0 0 0 1 0 0 0 1
0.98595 0.00095 0.01675 0.00777 0.98833 0.03794 0.00049 0.00007 0.99977
#6.1 #20.1 #34.1
1 0 0 0 1 0 0 0 1
0.99971 0.00041 0.00009 0.01634 0.98323 0.01788 0.00017 0.00007 0.99999
#7.1 #21.1 #35.1
1 0 0 0 1 0 0 0 1
0.99827 0.00011 0.00239 0.01713 0.96508 0.01382 0.00436 0.00002 0.99991
#8.1 #22.1 #36.1
1 0 0 0 1 0 0 0 1
0.99688 0 0.07073 0.07716 0.96595 0.00366 0.00085 0.00017 0.99995
#9.1 #23.1 #37.1
1 0 0 0 1 0 0 0 1
0.95964 0.00013 0.16319 0.05043 0.96559 0.00564 0.00019 0.00009 0.99999
28
#10.1 #24.1 #38.1
1 0 0 0 1 0 0 0 1
0.99427 0.00001 0.0732 0.5062 0.29597 0.00389 0.00854 0.00001 0.99983
#11.1 #25.1 #39.1
1 0 0 0 1 0 0 0 1
0.99934 0.00015 0.00054 0.00858 0.9866 0.0337 0.00677 0.00009 0.9988
#12.1 #26.1 #40.1
1 0 0 0 1 0 0 0 1
0.98284 0.0042 0.00194 0.01301 0.96665 0.02139 0.06946 0.00001 0.99322
#13.1 #27.1 #41.1
0 1 0 0 1 0 0 0 1
0.04213 0.89353 0.01185 0.01481 0.98286 0.0222 0.00356 0.00001 0.99972
#14.1 #28.1 #42.1
0 1 0 0 1 0 0 0 1
0.06082 0.74336 0.02459 0.03496 0.96306 0.00711 0.00173 0.00006 0.99915
Tabela 1 - Amostras de Validação
Conjunto de Amostras Corretas com Percentual do Esperado
#13.1
0 1 0
0.04213 0.89353 0.01185
#15.1
0 1 0
0.19197 0.50682 0.01253
Tabela 2 - Amostras de Validação com Acerto Abaixo do Esperado
Conjunto de Amostras Erradas
#24.1
0 1 0
0.5062 0.29597 0.00389
Tabela 3 - Amostras de Validação com Resultado Errado