APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf ·...

77
APLICAC ¸ ˜ AO DE REDES NEURAIS PARA RECONHECIMENTO FACIAL Igor Paladino Gomes da Costa Projeto de Gradua¸c˜ ao apresentado ao Curso de Engenharia Eletrˆ onicaedeComputa¸c˜ao da Escola Polit´ ecnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necess´ arios ` aobten¸c˜ ao do t´ ıtulo de Enge- nheiro. Orientadores: Felipe Maia Galv˜ aoFran¸ca John Stonham Rio de Janeiro Agosto de 2015

Transcript of APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf ·...

Page 1: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

APLICACAO DE REDES NEURAIS PARA RECONHECIMENTO

FACIAL

Igor Paladino Gomes da Costa

Projeto de Graduacao apresentado ao Curso

de Engenharia Eletronica e de Computacao

da Escola Politecnica, Universidade Federal

do Rio de Janeiro, como parte dos requisitos

necessarios a obtencao do tıtulo de Enge-

nheiro.

Orientadores: Felipe Maia Galvao Franca

John Stonham

Rio de Janeiro

Agosto de 2015

Page 2: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho
Page 3: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Escola Politecnica - Departamento de Eletronica e de Computacao

Centro de Tecnologia, bloco H, sala H-217, Cidade Universitaria

Rio de Janeiro - RJ CEP 21949-900

Este exemplar e de propriedade da Universidade Federal do Rio de Janeiro, que

podera incluı-lo em base de dados, armazenar em computador, microfilmar ou adotar

qualquer forma de arquivamento.

E permitida a mencao, reproducao parcial ou integral e a transmissao entre bibli-

otecas deste trabalho, sem modificacao de seu texto, em qualquer meio que esteja

ou venha a ser fixado, para pesquisa academica, comentarios e citacoes, desde que

sem finalidade comercial e que seja feita a referencia bibliografica completa.

Os conceitos expressos neste trabalho sao de responsabilidade do(s) autor(es).

iii

Page 4: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

DEDICATORIA

Dedico este trabalho

aos meus pais, Dulce e Walnei.

Fica aqui uma pequena retribuicao

a tudo que voces fazem e sempre fizeram por mim.

Eu amo voces!

iv

Page 5: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

AGRADECIMENTO

Agradeco a Deus pela minha saude e pelas otimas pessoas que tenho prazer e

felicidade de compartilhar a minha vida. Alem dos bons momentos, sou muito grato

pela forca e pelo conforto concedidos nos momentos difıceis.

Agradeco demais aos meus pais, Walnei da Costa e Dulce Paladino, por tudo que

fazem e sempre fizeram por mim, pelo amor e dedicacao. Se cheguei ate aqui, foi

gracas a voces que sempre me incentivaram a estudar e me deram todo o apoio.

Amo muito voces!

Agradeco a minha famılia. Em especial agradeco a minha avo Nilza Paladino, que

sempre torceu muito por mim, vibrando a cada vitoria que conquisto.

Tive o prazer de fazer grandes amigos na faculdade que foram fundamentais nos

anos de graduacao, espero levar alguns deles para o resto da vida. Dentre eles,

agradeco a Laıs Ferreira Crispino e Thiago Valentin de Oliveira.

Agradeco aos amigos que ja me acompanham desde antes mesmo da faculdade. E

de extrema importancia para mim saber que posso contar com voces.

Agradeco aos professores do Departamento de Engenharia Eletronica e de Com-

putacao, e incrıvel e inspirador como a relacao aluno professor e harmoniosa. Obri-

gado pelos ensinamentos e conhecimentos passados. Um agradecimento especial ao

professor Carlos Jose Ribas D’Avila.

Agradeco aos colegas dos laboratorios de que fiz parte: o Laboratorio de Proces-

samento de Sinais (LPS) e o Laboratorio de Eletronica de Potencia (ELEPOT). Sou

muito grato por ter iniciado na area de pesquisa nestes laboratorios.

Agradeco aos professores John Stonham e Felipe Maia Galvao Franca pelos ensi-

namentos, orientacao e incentivo, sem os quais este projeto nao seria possıvel.

v

Page 6: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

RESUMO

Neste trabalho sera desenvolvido um sistema para reconhecimento facial. Para

implementar tal sistema, fara-se o uso dos conceitos de redes neurais artificiais. As

redes neurais artificiais sao modelos computacionais inspirados no sistema nervoso

central animal que tem a capacidade de aprender e reconhecer padroes. O modelo

de rede neural abordado sera o modelo de redes neurais sem peso. Testes serao

feitos para validar o funcionamento do sistema de reconhecimento desenvolvido com

o uso de imagens de cor e de profundidade. Para a aquisicao das imagens utilizadas

no reconhecimento foi utilizado o dispositivo Kinect (Xbox 360) composto por uma

camera convencional e um sensor infra-vermelho de profundidade.

Palavras-Chave: reconhecimento facial, redes neurais, aprender, padroes, profun-

didade, Kinect.

vi

Page 7: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

ABSTRACT

In this work a face recognition system is going to be developed. In order to

implement this system, it is going to be used the neural artificial networks concepts.

The neural artificial networks are computational models inspired by the animal

nervous system, having the capacity of learning and recognising patterns. The

neural network model covered is the weightless neural network. The face recognition

system is going to be tested in order to validate its functionality using color and

depth images. The images used in the recognition system were acquired using the

Kinect (Xbox 360) device that is composed of a conventional camera and a infrared

depth sensor.

Key-words: face recognition, neural networks, learning, patterns, depth, Kinect.

vii

Page 8: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

SIGLAS

GB - Gigabyte

KB - Kylobyte

PB - Petabyte

RAM - Random Access Memory

TB - Terabyte

WiSARD - Wilkie, Stonham and Aleksander’s Recognition Device

viii

Page 9: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Sumario

1 Introducao 1

1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Delimitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.6 Descricao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Redes Neurais Sem Peso 4

2.1 Redes neurais artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Fases de treinamento e teste . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 Capacidade de generalizacao . . . . . . . . . . . . . . . . . . . . . . . 11

2.4 Representacao das imagens . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4.1 Segmentacao de Imagens . . . . . . . . . . . . . . . . . . . . . 13

2.4.2 Lidando com nıveis de cinza . . . . . . . . . . . . . . . . . . . 14

2.4.3 Imagens de profundidade . . . . . . . . . . . . . . . . . . . . . 18

3 Arquitetura do Sistema de Reconhecimento Facial 20

3.1 Modulo Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2 Modulo MinhaImagem . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.3 Modulo Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.4 Modulo Funcoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.5 Modulo Opcoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Exercitando o Sistema de Reconhecimento Facial 32

4.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

ix

Page 10: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

4.2 Teste da Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.3 Algoritmo de treino e teste . . . . . . . . . . . . . . . . . . . . . . . . 36

4.3.1 Reconhecimento de uma imagem treinada . . . . . . . . . . . 37

4.3.2 Treinamento multiplo de uma mesma imagem . . . . . . . . . 37

4.3.3 Treinamento multiplo de diferentes imagens . . . . . . . . . . 38

4.4 Comparando fotos de luminancia e de profundidade e as tecnicas de

representacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.5 Ajustando os parametros da rede . . . . . . . . . . . . . . . . . . . . 48

4.5.1 Tamanho das n-uplas . . . . . . . . . . . . . . . . . . . . . . . 49

4.5.2 Mapeamento pseudo-randomico . . . . . . . . . . . . . . . . . 52

4.5.3 Mapeamentos sequenciais . . . . . . . . . . . . . . . . . . . . 54

4.5.4 Teste com um outro padrao . . . . . . . . . . . . . . . . . . . 56

5 Conclusoes 60

Bibliografia 62

x

Page 11: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Lista de Figuras

2.1 Diagrama de bloco do modelo de Mcculloch-Pitts. Fonte: [1]. . . . . . . . 5

2.2 Exemplo de funcao threshold. . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 Diagrama de blocos das camadas de uma rede neural artificial. Fonte: [2]. 5

2.4 Diagrama de um no de uma rede neural sem peso WiSARD. . . . . . . . 6

2.5 Fase de treinamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.6 Fase de treinamento - Primeira imagem. . . . . . . . . . . . . . . . . . . 9

2.7 Fase de treinamento - Segunda imagem. . . . . . . . . . . . . . . . . . . 9

2.8 Fase de teste - Primeira imagem. . . . . . . . . . . . . . . . . . . . . . . 10

2.9 Fase de teste - Segunda imagem. . . . . . . . . . . . . . . . . . . . . . . 11

2.10 Imagens da mesma face - 1 bit de resolucao por pıxel na primeira linha, 8

bits de resolucao na segunda. . . . . . . . . . . . . . . . . . . . . . . . . 14

2.11 Fase de treinamento - Imagem escala de cinza. . . . . . . . . . . . . . . . 16

2.12 Fase de treinamento - Imagem escala de cinza 2. . . . . . . . . . . . . . . 16

2.13 Fotos de luminancia e de profundidade. . . . . . . . . . . . . . . . . . . 18

3.1 Diagrama de blocos dos modulos do codigo implementado. . . . . . . . . 21

3.2 Diagrama de blocos do algoritmo de treino e teste. Os blocos azuis simbo-

lizam a execucao de uma acao. Os blocos amarelos simbolizam tomadas

de decisao. Os blocos rosas simbolizam um processo pre-definido, uma

sub-rotina. E os blocos brancos simbolizam uma estrutura pre-definida.

O fluxo das acoes do diagrama segue as linhas cheias, enquanto as linhas

pontilhadas representam operacoes ou ligacoes que nao interferem no fluxo

do diagrama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.3 Interface do programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.7 Programa rodando na opcao “(11) Testar rede com camera”. . . . . . . . 28

3.4 Fluxograma das opcoes de treino 5, 6 e 7. . . . . . . . . . . . . . . . . . 29

xi

Page 12: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

3.5 Fluxograma das opcoes de treino 8 e 9. . . . . . . . . . . . . . . . . . . 30

3.6 Fluxograma das opcoes de treino 10, 11 e 12. . . . . . . . . . . . . . . . 31

4.1 Memoria com o treinamento da rede. Rede treinada com 8 imagens de

luminancia e de profundidade. . . . . . . . . . . . . . . . . . . . . . . . 35

4.2 Fotos de luminancia usadas para treinamento. . . . . . . . . . . . . . . . 36

4.3 Fotos de profundidade usadas para treinamento. . . . . . . . . . . . . . . 36

4.4 Testando uma mesma dupla de imagens previamente treinadas. Cada

dupla de imagem composta por uma imagem de luminancia e uma imagem

de profundidade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.5 Treinando uma mesma dupla de imagens multiplas vezes. Cada dupla

de imagem composta por uma imagem de luminancia e uma imagem de

profundidade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.6 Treinando redes com diferentes imagens. Rede treinada com 100 duplas de

imagens. Cada dupla de imagem composta por uma imagem de luminancia

e uma imagem de profundidade. . . . . . . . . . . . . . . . . . . . . . . 40

4.7 Teste de uma rede usando a tecnica de segmentacao. Rede de n-upla de

tamanho igual a 5. Rede treinada usando a tecnica de validacao cruzada

com metodo k-fold com k igual a 6, grupo total de 24 duplas de imagens. . 44

4.8 Fotos usando a tecnica de segmentacao usadas para treinamento. Fotos de

um mesmo rosto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.9 Fotos usando a tecnica de segmentacao usadas para o teste. Fotos de 2

rostos diferentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.10 Teste de uma rede usando a tecnica de ranqueamento. Rede de n-upla de

tamanho igual a 5. Rede treinada usando a tecnica de validacao cruzada

com metodo k-fold com k igual a 6, grupo total de 24 duplas de imagens. . 47

4.11 Fotos usando a tecnica de segmentacao usadas para treinamento. Fotos de

um mesmo rosto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.12 Fotos usando a tecnica de segmentacao usadas para o teste. Fotos de 2

rostos diferentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.13 Testando n-uplas de diferentes tamanhos usando a tecnica de ranquea-

mento. Rede treinada usando a tecnica de validacao cruzada com metodo

k-fold com k igual a 10, grupo total de 100 duplas de imagens. . . . . . . 51

xii

Page 13: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

4.14 Testando diferentes mapeamentos pseudo-randomicos usando a tecnica de

ranqueamento. Rede treinada usando a tecnica de validacao cruzada com

metodo k-fold com k igual a 10, grupo total de 100 duplas de imagens. . . 54

4.15 Testando mapeamentos sequenciais usando a tecnica de ranqueamento.

Rede treinada usando a tecnica de validacao cruzada com metodo k-fold

com k igual a 10, grupo total de 100 duplas de imagens. . . . . . . . . . . 56

4.16 Testando n-uplas de diferentes tamanhos usando a tecnica de ranquea-

mento. Rede treinada usando a tecnica de validacao cruzada com metodo

k-fold com k igual a 10, grupo total de 100 duplas de imagens. . . . . . . 58

4.17 Fotos usando a tecnica de ranquemaneto usadas para treinamento. Fotos

de um mesmo rosto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.18 Fotos usando a tecnica de ranqueamento usadas para o teste. Fotos de 2

rostos diferentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

xiii

Page 14: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Lista de Tabelas

2.1 Tamanho da n-upla × Tamanho da memoria. . . . . . . . . . . . . . . . 13

2.2 Ordem de ranqueamento de uma n-upla de 3 entradas. . . . . . . . . . . 15

2.3 Tamanho das n-uplas × Tamanho da memoria. . . . . . . . . . . . . . . 18

xiv

Page 15: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Capıtulo 1

Introducao

1.1 Tema

O tema do trabalho e o uso de redes neurais artificiais para reconhecimento facial.

Ao olhar uma foto, as pessoas facilmente sao capazes de reconhecer seus familiares,

amigos, conhecidos e sao capazes de reconhecer ate mesmo pessoas que foram vistas

poucas vezes. Buscando inspiracao nessa capacidade de aprendizado de reconheci-

mento tao intuitiva e natural para os seres humanos, busca-se desenvolver um sistema

capaz de fazer o mesmo. Um sistema de rede neural sem peso para reconhecimento

facial sera implementado e serao feitos testes para validar sua funcionalidade.

1.2 Delimitacao

O objeto de estudo e a aplicacao de redes neurais sem peso para o reconhecimento

facial. Os testes e as analises serao feitas abordando apenas esse tipo particular de

rede neural. O parametros de ajuste da rede neural serao estudados para entender a

sua influencia na resposta da rede. Como trabalho correlato do uso de redes neurais

sem peso para o reconhecimento facial, tem-se a tese de doutorado “Weightless

Neural Networks for Face and Pattern Recognition: an Evaluation Using Open-

Source Databases”, Khaki, 2013.

1

Page 16: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

1.3 Justificativa

Para realizar-se diversas operacoes como: sacar dinheiro no banco, votar, fazer

uma compra com cartao de credito, comprovar presenca no trabalho, fazer uma

prova ou acessar sua caixa de emails e necessario passar por algum processo de

identificacao ou autenticacao. A proposta da biometria e aumentar a qualidade da

autenticacao ou identificacao, tornando esse processo mais pratico e seguro. Entre

as tecnologias de autenticacao biometrica, tem-se: impressao digital, geometria da

mao, leitura de ıris, leitura de retina, reconhecimento de voz, assinatura digital,

reconhecimento facial, entre outras [3].

No contexto dessa necessidade de tornar o processo de autenticacao mais pratico

e seguro, esse trabalho propoe fazer a implementacao de um sistema para reconheci-

mento facial. Para implementar-se tal sistema sera usado o modelo de redes neurais

artificiais, que e um modelo computacional inspirado no sistema nervoso central.

1.4 Objetivos

O objetivo geral e validar o uso do modelo computacional de redes neurais sem

peso para a implementacao de um sistema de reconhecimento facial. Desta forma,

tem-se como objetivos especıficos: (1) desenvolver em uma linguagem de programacao

para o sistema de reconhecimento; (2) estudar os parametros das redes neurais e

como ajusta-los para obter um bom resultado, e (3) testar o funcionamento do

sistema na pratica.

1.5 Metodologia

Neste trabalho, sera usado o conceito de redes neurais para desenvolver um sis-

tema de reconhecimento facial. As redes neurais sao modelos computacionais de

vasta aplicacao. Atraves desses modelos e possıvel desenvolver um sistema capaz de

aprender e reconhecer padroes.

Primeiramente, sera dada uma breve explicacao do conceito de redes neurais ar-

tificiais, exemplificando algumas de suas topologias. Um foco maior sera dado no

2

Page 17: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

modelo da rede neural sem peso. A partir desse modelo, sera desenvolvido um

programa em linguagem de programacao.

Para o reconhecimento facial sera necessario captar as informacoes do rosto do

usuario do sistema. A forma mais intuitiva para captar tal informacao e atraves de

uma foto tirada por uma camera. Alem da foto da camera, sera usado tambem um

sensor infra-vermelho para captar as informacoes de profundidade do rosto. Assim,

esses dados serao usados para treinar o sistema, o fazendo reconhecer o padrao de

um rosto especıfico. O exito deste trabalho esta na implementacao do sistema e em

validar o uso do mesmo para a aplicacao em reconhecimento facial.

1.6 Descricao

Apos a introducao feita neste capıtulo, o tema do trabalho sera tratado mais

a fundo nos capıtulos seguintes. No Capıtulo 2 sera dada uma explicacao sobre

os modelos computacionais das redes neurais. Alem disso, tambem sera abordado

como usar imagens para o reconhecimento facial no modelo das redes neurais artifi-

ciais. O Capıtulo 3 apresenta como foi feita a arquitetura em codigo do sistema de

reconhecimento facial a partir do modelo das redes neurais.

No Capıtulo 4, primeiramente serao realizados alguns testes para certificar que

o sistema implementado esta de acordo com os conceitos de redes neurais. Esses

testes vao verificar o funcionamento adequado do sistema. Posteriormente, os testes

de reconhecimento facial serao apresentados. Neles o sistema sera validado. Os

ajustes dos parametros das redes neurais serao alterados para entender-se melhor

a influencia dos mesmos no desempenho da rede e, assim, melhorar o resultado do

sistema.

Na conclusao sera feita um apanhado geral do que foi apresentado no trabalho.

Sera avaliada a adequacao da aplicacao do sistema de redes neurais para o reconhe-

cimento facial. Ideias de melhorias para trabalhos futuros serao dadas.

3

Page 18: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Capıtulo 2

Redes Neurais Sem Peso

Neste capıtulo sera dada uma explicacao sobre alguns modelos de redes neurais.

Dentro desses modelos, sera dado um enfoque maior no modelo de redes neurais sem

peso e sua aplicacao para o reconhecimento facial. Na ultima secao do capıtulo sera

abordado como representar imagens para usa-las no modelo de redes neurais.

2.1 Redes neurais artificiais

A rede neural artificial e um sistema inspirado na funcao do neuronio e consiste

de elementos de processamento analogo a ele: chamados nos ou unidades de proces-

samento [4]. Esses elementos conectados formam a rede neural, existindo diferentes

topologias para fazer essas conexoes.

O primeiro modelo proposto para redes neurais foi o modelo de Mcculloch-Pitts,

de 1943, representado no diagrama da Fig. 2.1. O diagrama representa uma unidade

de processamento de uma rede neural. Nesse modelo, a unidade de processamento

recebe os parametros de entrada e aplica pesos diferentes para cada entrada. Uma

funcao e calculada a partir desses pesos; por simplicidade, pode-se escolher como

funcao um somatorio. A saıda dessa funcao se torna a entrada da funcao de ativacao

que gera a saıda da unidade de processamento. A funcao de ativacao e uma funcao

de caracterıstica nao linear que determina a mudanca de estado da unidade de

processamento. Uma das funcoes de ativacao mais simples e a funcao threshold,

usada para classificar a entrada em diferentes categorias. Um exemplo dessa funcao

4

Page 19: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

e mostrado na Fig. 2.2.

Figura 2.1: Diagrama de bloco do modelo de Mcculloch-Pitts. Fonte: [1].

Figura 2.2: Exemplo de funcao threshold.

A rede neural artificial pode ser composta por multiplas camadas: uma camada

de entrada, uma camada de saıda e multiplas camadas intermediarias. A camada

de entrada recebe a entrada do meio externo; a camada de saıda leva o resultado

dos nos ao meio externo; e as camadas intermediarias sao compostas pelos nos entre

as duas camadas anteriores e e onde a maior parte do processamento e feito. A Fig.

2.3 ilustra as camadas de uma rede neural artificial.

Figura 2.3: Diagrama de blocos das camadas de uma rede neural artificial. Fonte: [2].

5

Page 20: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Em 1984 foi criada rede neural sem peso WiSARD por Wilkes, Stonham e Alek-

sander [5]. Na rede WiSARD as unidades de processamento sao implementadas com

memorias RAM. A Fig. 2.4 representa num diagrama de blocos de uma rede neural

sem peso WiSARD.

Figura 2.4: Diagrama de um no de uma rede neural sem peso WiSARD.

Na Fig. 2.4, cada bit na memoria de 2n corresponde a uma sequencia de um

conjunto de n entradas binarias. Como as entradas sao binarias, para cada conjunto

de n entradas, existem 2n sequencias binarias possıveis.

No total, o tamanho da memoria e m × 2n, onde m e o numero de funcoes. O

numero de funcoes e dado pela divisao entre o numero total de entradas N e o

numero de entradas por agrupamento n: Nn

. Esses agrupamentos sao denominados

de n-uplas. Caso o tamanho da n-upla n nao seja divisıvel pelo pelo numero total

de entradas N , o numero de funcoes m sera o valor da divisao Nn

truncada. As-

sim, algumas entradas nao sao associadas a nenhuma n-upla e nao sao usadas pela

rede neural. Esse numero de entradas nao utilizadas normalmente e tao pequeno

comparado com numero total de entradas que nao afeta o desempenho da rede.

O numero de entradas por n-upla pode variar entre os extremos 1 e N , o primeiro

extremo equivaleria a ter N funcoes unitarias, o outro extremo equivaleria a ter

apenas uma funcao. Como o tamanho da memoria e calculada pela expressao:

6

Page 21: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

m × 2n = Nn× 2n, quanto maior for n, o numero de entradas por agrupamento,

maior sera a memoria.

Usando a rede neural sem peso para imagens, cada pıxel na imagem e usado como

uma entrada. Caso os pıxeis sejam binarios: preto ou branco, esse sistema se aplica

perfeitamente; bastando codificar o preto e branco em 0 ou 1. Sera apresentado

mais a frente uma solucao para o caso de uma imagem em escala de cinza, onde

cada pıxel e representado por 8 bits.

Nesse trabalho se fara o uso de uma rede neural sem peso WiSARD para o reco-

nhecimento facial. Portanto, um foco maior sera dado para esse modelo de rede.

2.2 Fases de treinamento e teste

A rede neural deve passar por uma fase de treinamento ou aprendizagem para

depois poder ser usada para reconhecer padroes. Assim, duas fases podem ser se-

paradas: a fase de treinamento e a fase de teste. Tambem e possıvel usar a rede de

forma que durante a fase de teste, ela esteja sob treinamento. Contudo, essas duas

fases serao analisadas de forma separada.

Na fase de treinamento, coloca-se como entrada da rede, dados que se deseje

que o sistema reconheca. No caso da rede sem peso WiSARD, os bits da memoria

inicialmente estao zerados. A cada treinamento, os bits da memoria correspondentes

aos padroes das imagens sao alterados para “1”.

Na fase de teste, coloca-se os dados na entrada da rede com o intuito de observar a

sua classificacao na saıda. A rede deve mostrar um resultado positivo ou negativo em

relacao ao reconhecimento. Alternativamente, o resultado pode ser um percentual

de reconhecimento. Nessa fase, nao se faz escrita na memoria, ela e apenas lida para

gerar um resultado.

As fases de treinamento e teste serao ilustradas com um exemplo. No exemplo,

considera-se um sistema com imagens binarias de dimensao 3 × 3 pıxeis como mos-

trado na Fig. 2.5. O numero de pıxeis por n-upla e escolhido como 3. Portanto,

7

Page 22: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

ha 3 funcoes, cada uma composta por 3 pıxeis. Nesse exemplo, a rede sera treinada

com 2 imagens e depois sera testada tambem com 2 imagens. A rede sera treinada

para reconhecer padroes similares a letra “T”.

Como cada funcao e composta de 3 entradas, cada parte da memoria correspon-

dente a cada funcao tem 23 = 8 bits na memoria. O primeiro bit da memoria da

funcao F1 corresponde a sequencia (0,0,0) dos pıxeis 5,3,7, como pode ser visto na

Fig. 2.5. O segundo bit corresponde a sequencia (0,0,1), e assim por diante, ate

o oitavo bit que corresponde a sequencia (1,1,1). A mesma logica e valida para

as funcoes F2 e F3, cujos mapeamentos de pıxel sao, respectivamente, 6,9,4 e 2,1,8

como mostrado na Fig. 2.5. O mapeamento de pıxeis de cada funcao foi escolhido de

forma pseudo-randomica. Para cada aplicacao, sequencias ou metodos particulares

de mapeamento de pıxeis podem implicar em melhores resultados [6].

Figura 2.5: Fase de treinamento.

A primeira imagem treinada e mostrada na Fig. 2.6. Inicialmente, todos os bits

da memoria estao zerados. As funcoes F1, F2 e F3 leem respectivamente (1,1,0),

(0,0,0) e (1,1,1). Os bits de memoria correspondentes a essas sequencias de bits

sao alterados para “1”. Nesse caso, o penultimo bit da memoria da funcao F1 e o

primeiro bit da F2 e o ultimo da F3, como ilustrado na Fig. 2.6.

8

Page 23: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Figura 2.6: Fase de treinamento - Primeira imagem.

A segunda imagem treinada e mostrada na Fig. 2.7. Os mesmos passos descritos

no treinamento da primeira imagem se repetem aqui. Nesse caso, as funcoes F1 e

F2 leem as mesmas sequencias lidas na primeira imagem treinada, respectivamente

(1,1,0) e (0,0,0), portanto, a parte da memoria correspondente a essas funcoes per-

manece a mesma. A funcao F3 le a sequencia: (1,0,1), portanto, o sexto bit de

memoria correspondente a F3 e alterado para “1”.

Figura 2.7: Fase de treinamento - Segunda imagem.

Agora que a rede ja foi treinada, serao feitos dois testes com duas imagens di-

ferentes das treinadas. O primeiro teste pode ser visto na Fig. 2.8. A imagem

pertence ao padrao “T”, mas nao foi treinada pela rede. As funcoes F1, F2 e F3

leem (1,0,0), (0,0,0) e (1,1,1), respectivamente. Os bits de memoria correspondentes

a essas sequencias sao lidos da memoria. A funcao F1 le 0, as funcoes F2 e F3 leem 1.

Os valores lidos pelas funcoes sao somados e sao passados pela funcao de ativacao.

Nesse exemplo, a funcao de ativacao e a funcao threshold mostrada abaixo:

9

Page 24: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Funcao Threshold =

positivo, se∑

≥ 2,

negativo, se∑

< 2.

Portanto, a saıda e positiva. Em outras palavras, o padrao da imagem de entrada

foi reconhecido pela rede. Esse resultado foi muito positivo, pois o proposito dessa

rede e justamente o de reconhecer padroes similares a letra “T”. Certamente, se as

imagens usadas para treinamento fossem usadas para o teste, a saıda seria positiva.

A capacidade de reconhecer imagens nao vistas de um mesmo padrao como a imagem

da Fig. 2.8 e a chave para usar redes neurais.

Figura 2.8: Fase de teste - Primeira imagem.

Agora sera testada outra imagem que nao pertence aos padroes similares a letra

“T”. Essa imagem, como mostrada na Fig. 2.9 e um linha diagonal. As 3 funcoes

F1, F2 e F3 leem 0 da memoria. Portanto, a soma e 0, e a saıda da funcao de ativacao

e negativa.

10

Page 25: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Figura 2.9: Fase de teste - Segunda imagem.

O resultado desse teste foi muito positivo tambem. Uma imagem de um padrao

diferente nao foi reconhecido pela rede, como desejado. Uma das dificuldades de se

usar redes neurais e a de treinar a rede suficientemente para que ela possa reconhecer

imagens nao treinadas do mesmo padrao. No entanto, se a rede for treinada demais,

ela pode acabar reconhecendo imagens nao pertencentes ao padrao de treino.

2.3 Capacidade de generalizacao

As n-uplas sao definidas pelos agrupamentos das entradas. O tamanho das n-

ulpas - o numero de entradas por agrupamento - define o numero de funcoes de uma

rede neural. Quanto maior o tamanho das n-uplas, menor o numero de funcoes. A

escolha do tamanho da n-upla e de extrema importancia para a rede funcionar como

desejada. Dependo do caso de aplicacao, um tamanho de n-upla maior ou menor

implicara em melhores resultados.

A fim de entender melhor a influencia do tamanho da n-upla, serao analisados os

dois extremos, quando o numero de entradas por agrupamento e unitario e quando

ele e o numero total de entradas.

Quando o tamanho da n-upla n e unitario: n = 1, cada entrada e uma funcao

do sistema. No caso de estudo das imagens binarias, cada pıxel e uma funcao.

O tamanho da memoria necessaria e mınimo: 2n × Nn

= 21 × N1

= 2N , onde N

e o numero total de entradas. Cada pıxel, que e uma funcao, possui dois bits

11

Page 26: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

associados na memoria: um indicando 0 ao valor do pıxel e o outro indicando 1.

Nesse caso e muito provavel que apos o treinamento de muitas imagens, um pıxel

em particular assuma ambos os valores 0 e 1. Assim, os dois bits da memoria

associados a funcao desse pıxel estarao marcados como “1”. Quando todos os bits

da memoria associados a uma funcao estao marcados como “1”, a funcao perde sua

utilidade, pois independente da imagem a ser testada, essa funcao, em particular,

tera a mesma resposta. Ou seja, a funcao nao e mais capaz de ajudar a rede a

reconhecer um determinado padrao [7].

Uma das propriedades-chave de uma rede neural e a generalizacao. Dados alguns

exemplos do padrao na fase de treinamento, o sistema deve ser capaz de reconhecer

imagens pertencentes ao mesmo padrao, alem das imagens treinadas. Essa capaci-

dade explica o conceito de generalizacao. No entanto, essa generalizacao nao pode

ser tao grande ao ponto de o sistema comecar a reconhecer imagens nao pertencentes

ao padrao treinado. Quando n = 1, o sistema fica saturado - a memoria fica cheia

de 1’s - muito rapido. Em outras palavras, o sistema generaliza demais.

Por outro lado, quando n = N , o tamanho da memoria e maximo: 2N , e o sistema

sera capaz de reconhecer apenas as mesmas imagens que foram treinadas. O sistema

perde toda a capacidade de generalizacao. No entanto, a memoria se torna muito

mais difıcil de saturar. E uma relacao de trade-off, aumentando o tamanho da n-

upla n, o sistema se torna menos suscetıvel a saturacao, mas perde a capacidade

de generalizacao. Diminuindo n, a rede generaliza mais, enquanto se satura mais

facilmente.

2.4 Representacao das imagens

Nos exemplos dados ate agora, usou-se um bit para representar cada pıxel das

imagens. Para muitas aplicacoes, e necessario que cada pıxel seja representado por

mais bits. Uma representacao comum para imagens, por exemplo, e a escala de

cinza com 8 bits. Ela permite representar 28 = 256 diferentes nıveis de cinza do

branco ao preto.

12

Page 27: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Em uma imagem de 66 × 45 pıxeis, usando um bit para representar cada pıxel, o

tamanho de memoria pode ser calculado pela expressao:

2n × (66 × 45)

n= 2n × 2970

n, onde n e o tamanho das n-uplas.

Na Tab. 2.1, o tamanho da memoria e calculado para diferentes tamanhos de

n-uplas n, considerando o numero total de pıxeis igual a 2970. Nesse exemplo pode

ser visto que a memoria cresce muito rapido com o aumento de n.

Tamanho da n-upla Tamanho da memoria

1 742.5 bytes

2 742.5 bytes

4 1.49 KB

8 11.88 KB

16 1.52 GB

32 49.83 TB

Tabela 2.1: Tamanho da n-upla × Tamanho da memoria.

2.4.1 Segmentacao de Imagens

Para trabalhar-se com imagens binarias, em que cada pıxel e representado por

um bit, pode-se fazer um processamento para transformar as imagens de 8-bits por

pıxel. Uma das formas de fazer esse processamento e pelo metodo de segmentacao

de imagens.

Ha diferentes metodos de segmentacao de imagens, de forma geral eles podem

ser divididos em dois grupos: os baseados em similaridade e os baseados em dissi-

milhancas. Os metodos baseados em dissimilhancas sao usados para a deteccao de

pontos, linhas ou arestas. Ja os metodos baseados em similaridade buscam repre-

sentar a imagem usando algum criterio para separar os objetos de caracterısticas

semelhantes. Um dos metodos mais simples e o metodo de Threshold, muito utili-

zado para segmentar imagens em termos de semelhanca de luminosidade [8].

Pelo metodo de Threshold, deve-se escolher por algum criterio um valor de limiar.

Defini-se um valor para atribuir aos objetos que tiverem valor maior que o limiar,

13

Page 28: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

geralmente, define-se o maior valor possıvel na representacao usada. E aos outros

objetos sao atribuıdos o valor zero. No caso para transformar as imagens de repre-

sentacao de 8 bits em imagens de apenas 1 bit, atribuı-se o valor 1 aos pıxeis de

valor maior que o limiar e 0 para os outros. Existem diversos criterios para estabe-

lecer um limiar, um muito utilizado por sua simplicidade e o criterio da media da

luminosidade, ou seja, o valor de limiar e a media dos valores dos pıxeis. Na Fig.

2.10 pode-se ver algumas imagens de faces com pıxeis representados em 8 bits e em

1 bit a partir do metodo de Threshold usando o criterio da media da luminosidade.

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 1 (f) foto 2 (g) foto 3 (h) foto 4

Figura 2.10: Imagens da mesma face - 1 bit de resolucao por pıxel na primeira linha, 8

bits de resolucao na segunda.

2.4.2 Lidando com nıveis de cinza

Para reconhecimento facial, do ponto de vista da inspiracao biologica, seria ne-

cessario uma resolucao maior do que um bit para cada pıxel. Uma vez que ate para

as pessoas ficaria difıcil reconhecer um rosto numa imagem com 1 bit por pıxel,

como pode ser visto nas fotos da primeira linha da Fig. 2.10 onde todas as imagens

sao da mesma face. Usando o padrao de 8 bits por pıxel, melhora-se sensivelmente

a capacidade de reconhecimento para as pessoas, como pode ser visto na Fig. 2.10.

Para uma representacao de 8-bits por pıxel e necessario uma memoria ainda maior.

Se cada bit for usado como uma entrada para a rede neural, o tamanho da memoria

14

Page 29: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

necessaria se torna 8 vezes maior. No entanto, nao faz muito sentido usar cada bit

como uma entrada, pois um bit sozinho nao e representativo para a imagem, ele

perde seu significado usado como uma entrada separada.

Uma tecnica possıvel a ser usada e a de ranqueamento. O uso dessa tecnica

no problema de segmentacao de imagens em nıveis de cinza foi apresentado pelo

Khaki, K. M. em 2013 na tese de doutorado “Weightless Neural Networks for Face

and Pattern Recognition: an Evaluation Using Open-Source Databases”. Nessa

tecnica, escolhe-se um numero n de entradas por n-upla e as possıveis ordens de

ranqueamento sao calculadas. Por exemplo, considerando uma imagem de 8 bits

por pıxel e n = 3, chama-se o primeiro pıxel da n-upla de A, o segundo de B e o

terceiro de C. Nesse caso, existem 6 ordens possıveis de ranqueamento dos pıxeis

como mostrado na Tab. 2.2. Para cada ranqueamento, e dado um endereco na

memoria [6].

As fases de treinamento e de teste sao executadas como descrito na Sec. 2.2.

Contudo, ao inves de escrever ou ler os bits da memoria de acordo com a sequencia

de bits das n-uplas, os bits da memoria sao acessados de acordo com a ordem de

ranqueamento das n entradas da n-upla.

Ordem de mapeamento Ranque

A ≥ B ≥ C 1

A ≥ C ≥ B 2

B ≥ A ≥ C 3

B ≥ C ≥ A 4

C ≥ A ≥ B 5

C ≥ B ≥ A 6

Tabela 2.2: Ordem de ranqueamento de uma n-upla de 3 entradas.

Nas Fig.s 2.11 e 2.12 e ilustrada a fase de treinamento de uma imagem em escala

de cinza de 3 por 3 pıxeis. Na Fig. 2.11 e mostrado o mapeamento dos pıxeis da

imagem e a memoria inicialmente vazia. Os agrupamentos foram feitos de 3 em 3

pıxeis, portanto a memoria associada a cada funcao deve ter 3! = 6 bits.

15

Page 30: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Figura 2.11: Fase de treinamento - Imagem escala de cinza.

Na Fig. 2.12 e mostrado uma imagem em escala de cinza sendo treinada. Cada

pıxel da imagem pode assumir tres cores na escala de cinza: preto, cinza e branco. A

cada cor foi atribuıdo um valor, respectivamente 0,1 e 2. Como cada n-upla possui 3

pıxeis, tem-se 6 combinacoes possıveis de ordenar do pıxel mais claro ao mais escuro.

Na Fig. 2.12 e mostrada a ordem dos pıxeis do maior valor para o menor para cada

uma das tres funcoes, dando sempre preferencia para os primeiros pıxeis das funcoes.

Por exemplo, se A1, B1 e C1 forem iguais, deve-se ordenar: A1 ≥ B1 ≥ C1. Pela

ordem de ranqueamento da Tab. 2.2, pode-se determinar que as funcoes F1, F2 e

F3 tem ranque 5, 3 e 3 respectivamente. Assim, chega-se a situacao da memoria

mostrada na Fig. 2.12.

Figura 2.12: Fase de treinamento - Imagem escala de cinza 2.

16

Page 31: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Uma das dificuldades do reconhecimento facial e a luminosidade. Duas fotos da

mesma face tiradas sob diferentes condicoes de luminosidade resultam em imagens

muito diferentes. Para as pessoas, e facil reconhecer rostos mesmo assim. No en-

tanto, a nıvel de pıxel, os valores se tornam muito diferentes. Portanto, treinar uma

rede neural para reconhecer um rosto especıfico requer que este rosto seja treinado

sob diferentes condicoes de luminosidade.

Uma das vantagens da tecnica de ranqueamento e que ela tende a minimizar a

influencia da luz. Como a classificacao e feita baseada na ordem de ranqueamento,

a classificacao depende da sequencia de pıxeis do mais claro para o mais escuro.

Na representacao de 8-bits, o preto e representado por 0 e o branco por 255. Se,

por exemplo, uma n-upla de 3 entradas e classificado como ranque 4. Nomeando,

os pıxeis em ordem como A, B e C; como o ranque e 4, do mais claro para o mais

escuro, a ordem deles e B,C,A como pode ser visto na Tab. 2.2. Tirando uma foto da

mesma face na mesma posicao sob uma condicao de maior luminosidade, na teoria,

fara com que todos os pıxeis fiquem mais claros. Entao a ordem de ranqueamento

permaneceria a mesma. De forma analoga, se a foto fosse tirada sob uma condicao

de menor luminosidade, a ordem de ranqueamento tambem permaneceria inalterada.

Usando a tecnica de ranqueamento, a quantidade de bits por pıxel nao se torna

mais relevante para o tamanho da memoria. A memoria passa a ser calculada pelo

produto do numero de funcoes pelo numero de possıveis ordens de ranqueamento.

O tamanho da memoria em funcao do tamanho das n-uplas pode ser calculada pela

expressao a seguir:

Tamanho da memoria = Numero de Funcoes × Numero de ordens de ranqueamento

=N

n× n!

= N × (n− 1)!, onde N e o numero total de pıxeis.

Para ter-se uma melhor ideia do tamanho da memoria necessario, na Tab. 2.3

sao mostrados alguns calculos para uma imagem de 66 × 45 pıxeis. O tamanho da

memoria cresce muito rapido com o aumento do tamanho das n-uplas. Para n = 16,

17

Page 32: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

e necessario uma memoria de 485.47 PB!

Tamanho das n-uplas Tamanho da memoria

1 371.25 bytes

2 371.25 bytes

4 2.23 KB

8 1.87 GB

16 485.47 PB

Tabela 2.3: Tamanho das n-uplas × Tamanho da memoria.

2.4.3 Imagens de profundidade

Caso a aplicacao do reconhecimento facial seja para reconhecimento de uma pessoa

e nao necessariamente de uma foto, pode-se pensar em outras maneiras de se captar

a face das pessoas. Como por exemplo, o uso de um sensor infra-vermelho para

avaliar-se medidas da profundidade do rosto.

Nas imagens da Fig. 2.13 sao mostrados alguns exemplos de fotos de luminancia

e de profundidade tiradas no mesmo instante de tempo. Uma grande vantagem

da imagem de profundidade e a sua total independencia da luminosidade. Nas

fotos de profundidade, quanto mais branca a imagem, mais afastada estara o objeto

fotografado, com excecao dos pıxeis pretos absolutos que podem representar pıxeis

de profundidade indefinida. Esses pontos de profundidade indefinida ocorrem por

limitacoes do sensor em captar a profundidade em duas situacoes: quando os objetos

que estao mais perto do sensor geram sombra nos objetos mais distantes; e quando

objetos sao compostos de materiais muito reflexivos [9].

(a) foto 1 - cor (b) foto 1 - pro-

fundidade

(c) foto 2 - cor (d) foto 2 - pro-

fundidade

Figura 2.13: Fotos de luminancia e de profundidade.

18

Page 33: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Assim como as fotos de cor, as fotos de profundidade podem ser usadas para

treinar uma rede neural. As tecnicas de segmentacao de imagem e de ranqueamento

tambem se aplicam a essas fotos.

Algumas especificacoes da camera e do sensor de profundidade usados para as

fotos da Fig. 2.13 sao listadas a seguir [10]:

1. Resolucao da camera: 640x480, 8-bit;

2. Resolucao do sensor de profundidade: 640x480, 11-bit;

3. Alcance do sensor de profundidade: 0.4m a 7m.

O sensor infra-vermelho de profundidade usado foi o Kinect (Xbox 360). As fotos

foram tiradas a uma distancia de 80 cm a 1,1 m do sensor que tem uma resolucao

de 2 mm nessa faixa[11].

Nas imagens mostradas na Fig. 2.13, cada pıxel esta sendo representado numa

escala de cinza de 8 bits, a mesma resolucao da camera. Ja a resolucao do sensor de

profundidade e maior: 11 bits. Para nao perder-se resolucao, foi necessario fazer um

processamento antes de converter os dados de profundidade para a escala de cinza.

Como a faixa de interesse dos dados de profundidade e apenas a faixa de 80cm a

1,1m, pode-se converter apenas essa faixa de interesse, sem perder resolucao.

19

Page 34: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Capıtulo 3

Arquitetura do Sistema de

Reconhecimento Facial

Foi feita a implementacao de uma rede neural usando a linguagem de programacao

Python. Toda a teoria explicada no Cap. 2 foi escrita em algoritmo para funcionar

em um computador com uma camera externa e com um sensor infra-vermelho de

profundidade. Sera dada uma breve explicacao sobre o codigo.

O codigo pode ser dividido em 7 modulos: Main, Aplicativo, Rede, MinhaImagem,

Funcoes, Camera e Opcoes. O modulo Main e apenas o modulo que faz as chamadas

dos demais modulos. O Aplicativo e o que implementa a interface do programa para

o usuario. O modulo Rede contem as definicoes e parametros da rede neural sem

peso. O MinhaImagem define alguns parametros para as imagens utilizadas na rede.

O modulo Funcoes implementa a maioria das funcoes que a rede precisa, basicamente

duas funcoes: uma para treinar a rede, outra para testa-la. O modulo Camera e

o responsavel por lidar com a camera externa e com o sensor infra-vermelho de

profundidade. O modulo Opcoes funciona apenas como um vınculo entre o modulo

Aplicativo e os modulos Camera e Funcoes. De acordo com o comando do usuario

atraves da interface, o modulo Opcoes faz as chamadas necessarias.

Na Fig. 3.1, e apresentado um diagrama simplificado mostrando as relacoes entre

os modulos do codigo e seus atributos, assim como a camera e o sensor externo.

Como mencionado, os modulos MinhaImagem e Rede definem as classes para os

objetos das imagens e das redes neurais, respectivamente. O modulo Camera se

20

Page 35: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

relaciona com o MinhaImagem para gerar as imagens capturadas. Ja o modulo

Funcoes se relaciona tanto com o MinhaImagem quanto com o Rede para fazer o

treinamento e o teste das redes neurais.

Figura 3.1: Diagrama de blocos dos modulos do codigo implementado.

Nas secoes seguintes, alguns modulos serao explicados com mais detalhes.

3.1 Modulo Rede

O modulo Rede define a estrutura da rede neural sem peso. Esse modulo tem 10

atributos: linhas, colunas, tamanhoNupla, numFuncoes, funcoes, memoria 2d, me-

moria profundidade, threshold, vezes treinadas, nomeArquivo, uns 2d e uns profundidade.

Os atributos linhas e colunas sao as dimensoes das imagens que a rede esta espe-

rando treinar ou testar. O tamanhoNupla guarda o tamanho das n-uplas, ou seja,

o numero de entradas por agrupamento da rede, enquanto o numFuncoes guarda o

numero de funcoes da rede.

O atributo funcoes guarda as funcoes que fazem o mapeamento dos pıxeis das ima-

gens. Lembrando que as funcoes da rede sao as sequencias de mapeamento de pıxeis

das n-uplas da rede. Os mapeamentos sao gerados atraves de algoritmos pseudo-

randomicos. Os atributos memoria 2d e memoria profundidade sao as memorias da

21

Page 36: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

rede, a primeira e usada para as imagens de luminancia e a segunda usada para as

imagens de profundidade. A funcao de ativacao do sistema e a funcao ilustrada na

Fig. 2.2, e o valor escolhido para a funcao fazer a decisao se a resposta da rede sera

positiva ou negativa e definido pelo atributo threshold. O atributo vezes treinada

guarda quantas vezes a rede foi treinada. Os atributos uns 2d e uns profundidade

guarda a quantidade de bits “1” nas memorias memoria 2d e memoria profundidade,

respectivamente. E o atributo nomeArquivo guarda o nome para o arquivo onde a

rede e guardada com todos os seus parametros.

3.2 Modulo MinhaImagem

O modulo MinhaImagem, assim como o Rede, tambem define uma estrutura, a

estrutura usada para as imagens. Essa estrutura guarda algumas informacoes das

imagens como: nome, numero de colunas e linhas, numero de pıxeis e uma matriz

representando a imagem. Essas informacoes sao guardadas respectivamente nos

atributos: nomeArquivo, colunas, linhas, numpıxeis e matriz.

O atributo matriz guarda uma matriz com numeros decimais representando cada

pıxel da imagem associada a ela. O intuito de guardar esses atributos na estrutura

e deixar essas informacoes de facil acesso.

3.3 Modulo Camera

O modulo Camera e o responsavel em capturar e processar as fotos de luminancia

e profundidade. Esse modulo faz a leitura da camera e do sensor infra-vermelho de

profundidade externos como representado na Fig. 3.1. A camera e o sensor usados

foram do modulo Kinect (Xbox 360). Algumas especificacoes basicas desse modulo

foram listadas na Sec. 2.4.3.

O modulo Camera aciona a camera e o sensor de profundidade do Kinect (Xbox

360) de forma intercalada. Assim, o Kinect envia uma imagem de luminancia seguida

de uma imagem de profundidade para o modulo Camera. Como o intercalacao e feita

de maneira rapida, pode-se considerar que as imagens de luminancia e profundidade

22

Page 37: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

sao tiradas no mesmo instante de tempo. Como mencionado na Sec. 2.4.3, ambas as

imagens tem resolucao de 640x480 pıxel, mas enquanto a camera tem uma resolucao

de 8 bits, o sensor tem uma resolucao de 11 bits. O processamento explicado na

Sec. 2.4.3 para converter a imagem de profundidade para 8 bits e realizado nesse

modulo.

A camera e sensor infra-vermelho registram o ambiente de posicoes diferentes, pois

a lente da camera e o sensor ficam alguns centımetros de distancia um do outro. A

imagem da camera e deslocada para conseguir-se que a camera e o sensor tenham

o mesmo enquadramento. As imagens capturadas sao cortadas em um tamanho

apropriado para caber um rosto, passando a ter dimensao de 192x144 pıxeis.

Como o sensor de infra-vermelho nao captura objetos a uma distancia menor do

que 40cm, as imagens sao capturadas com o rosto a uma distancia maior - de 80cm

a 1,1m. Para conseguir preencher quase toda a imagem apenas com o rosto de uma

pessoa, e feita uma operacao de zoom. O zoom dado foi de aproximadamente 3 vezes,

usando o metodo de interpolacao linear. Apos essa operacao as imagens voltam a ter

dimensao de 640x480 pıxeis. Depois desse processamento, as imagens de luminancia

e profundidade sao mostradas ao usuario do programa. Para o usuario ambas as

imagens sao mostradas superpostas a um contorno em linha branca do formato de

um rosto para ajuda-lo a posicionar o seu proprio rosto para tirar as fotos, como

pode ser visto na Fig. 3.7.

E desejado que a imagem a ser usada na rede neural seja quase toda composta

pelo rosto a ser treinado ou testado. Para isso, a imagem e mais uma vez cortada,

passando a ter dimensao 440x300 pıxeis. Esse corte e feito do tamanho do menor

retangulo contendo todo o contorno em linha branca mostrado na Fig. 3.7. Para

a aplicacao deste trabalho em reconhecimento facial usando redes neurais, a quan-

tidade de pıxeis como entrada para a rede ainda e muito grande: 440x300 pıxeis.

Para diminuir a resolucao da imagem, e feita novamente uma operacao de inter-

polacao. Agora a imagem e reduzida em aproximadamente 7 vezes, resultando em

uma imagem de dimensao 66x45 pıxeis. Os pıxeis fora do contorno em linha branca

sao pintados de branco, para assim tirar da imagem as informacoes que nao do

23

Page 38: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

rosto do usuario. Na Fig. 2.13 tem-se exemplos de imagens depois de todo esse

processamento. Imagens como essas sao usadas na rede para o treinamento e teste.

3.4 Modulo Funcoes

O modulo Funcoes faz a interacao entre o modulo MinhaImagem e o modulo

Rede. As funcoes de treinamento e de teste sao feitas nesse modulo. Ambas as

funcoes recebem um objeto do modulo rede, a rede neural; e objetos do modulo

MinhaImagem, uma dupla de imagens, uma de luminancia e uma de profundidade.

Cada treinamento ou teste e feito de forma duplicada: uma para a imagem de

luminancia e outra para a imagem de profundidade. Os algoritmos tanto para o

treinamento quanto para o teste sao essencialmente iguais. A unica diferenca e que

no treinamento, e feita uma escrita na memoria, enquanto no teste faz-se apenas a

leitura da memoria.

Na Fig. 3.2 o algoritmo e representado de forma simplificada em diagrama

de blocos. O parametro funcoes do objeto do modulo Rede e lido pelo sistema.

Esse parametro guarda os mapeamentos dos pıxeis de todas as n-uplas da rede em

questao. Seguindo o mapeamento da primeira n-upla, e feita a leitura dos pıxeis

da imagem. Essa sequencia de pıxeis e passada para uma funcao auxiliar que cal-

cula qual a ordem de ranqueamento correspondente. Caso se deseje realizar o modo

de treinamento, e feita a escrita no espaco de memoria correspondente a ordem de

ranqueamento. Por outro lado, caso se deseje realizar o modo de teste, o espaco de

memoria correspondente a ordem de ranqueamento e lido da memoria e esse valor e

passado para um somador que guarda o resultado da soma.

Esse algoritmo e executado de forma recursiva lendo o mapeamentos de todas as

n-uplas. No modo de teste, o valor do resultado guardado no somador e mostrado

ao usuario. Esse valor pode ser mostrado em porcentagem para o usuario ter uma

ideia do reconhecimento feito pela rede. Ou pode-se tambem escolher uma funcao

de ativacao para mostrar ao usuario se o reconhecimento foi positivo ou negativo.

24

Page 39: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Figura 3.2: Diagrama de blocos do algoritmo de treino e teste. Os blocos azuis simbolizam

a execucao de uma acao. Os blocos amarelos simbolizam tomadas de decisao. Os blocos

rosas simbolizam um processo pre-definido, uma sub-rotina. E os blocos brancos simbo-

lizam uma estrutura pre-definida. O fluxo das acoes do diagrama segue as linhas cheias,

enquanto as linhas pontilhadas representam operacoes ou ligacoes que nao interferem no

fluxo do diagrama.

3.5 Modulo Opcoes

O modulo Opcoes oferece alternativas ao usuario de como usar a rede. A Fig.

3.3 mostra as diferentes opcoes oferecidas na interface do programa. O usuario

deve escolher uma das opcoes, entrar com os dados pedidos e clicar em “Executar”.

A primeira opcao e “(1) Criar uma rede”, os dados necessarios sao: Nome da rede,

numero de linhas, numero de colunas e o tamanho das n-uplas. O numero de colunas

e linhas sao necessarios para criar a rede, pois e necessario saber as dimensoes das

imagens que serao treinadas ou testadas na rede.

25

Page 40: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Figura 3.3: Interface do programa.

A segunda opcao e “(2) Ler rede a partir de um arquivo”. Ao entrar com o nome

do arquivo da rede, o programa mostra as propriedades da mesma. Na opcao “(3)

Determinar um valor de threshold”, o usuario pode mudar o valor de threshold de

rede desejada. O valor de threshold deve estar entre 1 e o numero de funcoes da

rede. A opcao “(4) Copiar rede” faz uma copia de uma rede escolhida pelo usuario.

Nas opcoes “(5) Treinar rede com arquivos de imagens”, “(6) Treinar rede com

arquivos de imagens, testar rede antes de cada treinamento” e “(7) Treinar rede com

arquivos de imagens, treinar apenas as nao reconhecidas” o usuario pode treinar

uma rede com imagens em um diretorio. O programa espera sempre encontrar fotos

em pares para treinar: sempre uma de luminancia e uma de profundidade. Os

fluxogramas dessas tres opcoes sao mostrados na Fig. 3.4. Na opcao 5, a rede e

treinada com todas as imagens do diretorio. Na opcao 6, cada imagem do diretorio

e testada e a resposta da rede e mostrada ao usuario que pode escolher treina-la na

rede ou nao. Na opcao 7, apenas as imagens em que a resposta da rede for negativa

26

Page 41: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

sao testadas. Essa restricao da opcao 7 e uma forma de previnir que a memoria da

rede fique saturada.

As opcoes “(8) Treinar rede com camera” e “(9) Treinar rede com camera, tes-

tar antes de cada treinamento” permitem ao usuario treinar a rede diretamente da

camera e do sensor de profundidade. Os fluxogramas dessas duas opcoes sao mos-

trados na Fig. 3.5. Na opcao 8, a camera e o sensor tiram fotos de 5 em 5 segundos

e treinam a rede com essas fotos. A camera e o sensor param de tirar fotos apenas

quando o usuario pressiona “ESC” no teclado. Na opcao 9, o usuario deve pressionar

“ENTER” para que a camera e o sensor tirem fotos e elas sejam testadas na rede.

A resposta da rede e mostrada ao ao usuario que pode escolher treinar a rede ou

nao com as fotos.

As opcoes “(10) Testar rede com arquivos de imagem”, “(11) Testar rede com

camera” e “(12) Testar rede com camera e salvar as fotos” permitem ao usuario

testar a rede com imagens de um diretorio, ou diretamente da camera e do sensor.

Os fluxogramas dessas tres opcoes sao mostrados na Fig. 3.6. Assim como no

treinamento, no teste, a rede espera receber as imagens aos pares: sempre uma de

luminancia e uma de profundidade. Na opcao 10, todas as imagens de uma pasta

sao testadas. Na opcao 11, a camera e o sensor capturam as imagens e as testam

na rede. Uma barra indicando a resposta da rede em porcentagem e mostrada. A

opcao 12 e basicamente o mesmo que a 11, a diferenca e que na opcao 12 as fotos

tiradas sao salvas em arquivos cada vez que o “ENTER” e pressionado. Na Fig. 3.7,

e mostrado o programa rodando a opcao 11.

27

Page 42: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Figura 3.7: Programa rodando na opcao “(11) Testar rede com camera”.

A opcao “(13) Depurador” e apenas uma opcao extra usada no desenvolvimento

do programa. Essa opcao era usada para depurar o codigo e corrigir alguns bugs.

28

Page 43: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) Opcao “(5) Treinar rede com arquivos

de imagens”

(b) Opcao “(6) Treinar rede com arquivos de imagens, testar rede antes de cada

treinamento”

(c) Opcao “(7) Treinar rede com arquivos de imagens, treinar apenas as nao

reconhecidas”

Figura 3.4: Fluxograma das opcoes de treino 5, 6 e 7.

29

Page 44: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) Opcao “(8) Treinar rede com camera”

(b) Opcao “(9) Treinar rede com camera, testar antes de cada treinamento”

Figura 3.5: Fluxograma das opcoes de treino 8 e 9.

30

Page 45: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) Opcao “(10) Testar rede com arquivos de imagem” (b) Opcao “(11) Testar

rede com camera”

(c) Opcao “(12) Testar rede com camera

e salvar as fotos”

Figura 3.6: Fluxograma das opcoes de treino 10, 11 e 12.

31

Page 46: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Capıtulo 4

Exercitando o Sistema de

Reconhecimento Facial

Agora que a arquitetura em codigo do sistema de reconhecimento facial ja foi ex-

plicada, sera dado seguimento aos testes. Inicialmente serao realizados alguns testes

para verificar se a arquitetura do sistema foi implementada de forma correta. De-

pois disso, serao realizados os testes para avaliar de fato o sistema de reconhecimento

facial.

4.1 Metodologia

Nas Sec. 4.2 e 4.3 serao feitas algumas verificacoes da arquitetura do sistema. Na

Sec. 4.2 serao feitos testes para verificar o funcionamento da memoria. Na secao

seguinte, 4.3, os algoritmos de treino e teste serao verificados. As imagens usadas

nos testes tem dimensao 66 por 45 pıxeis. A tecnica de ranqueamento, explicada

na Sec. 2.4.2 foi usada tanto nas imagens de luminancia quanto nas imagens de

profundidade nos testes dessas duas secoes.

Nas Sec. 4.4 e 4.5 o sistema de reconhecimento facial sera testado de fato. Concei-

tos apresentados nos capıtulos anteriores serao usados para testar o reconhecimento.

Na propria estrutura da rede neural, alguns parametros como : tamanho da n-upla,

tipo de mapeamento e quantidade de treinamentos podem ser ajustados para me-

lhorar o desempenho da rede.

32

Page 47: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Alem dos parametros da rede, pode-se tambem alterar os dados de entrada para

a rede. Pode-se usar como entrada as fotos de luminancia tiradas da camera, as

fotos de profundidade tiradas pelo sensor infra-vermelho, ou ambas as entradas.

Para a representacao das fotos de entrada pode-se utilizar diferentes tecnicas como

a tecnica de segmentacao por Threshold e a tecnica de ranqueamento, apresentadas

respectivamente nas Sec. 2.4.1 e Sec. 2.4.2.

Entre os ajustes de parametros da rede e dos dados de entrada, pode-se gerar

diferentes configuracoes para comparar o desempenho da rede. Na Sec. 4.4 serao es-

colhidos parametros fixos para as rede neurais: um tamanho definido de n-upla, um

mapeamento pseudo-aleatorio fixo e uma quantidade fixa de numero de treinamen-

tos. Com esses parametros fixados, serao comparados o desempenho da rede usando

apenas imagens de cor, apenas imagens de profundidade e uma combinacao das duas

utilizando a tecnica de segmentacao por Threshold e a tecnica de ranqueamento.

Apos a escolha dos dados de entrada e entre as tecnicas de representacao das

imagens, o foco sera dado aos parametros da rede. Na Sec. 4.5 esses parametros

serao alterados com o proposito de comparar suas influencias no sistema.

Para os testes das Sec. 4.4 e 4.5, sera usada a tecnica de validacao cruzada

metodo k-fold para avaliacao do modelo. Nessa tecnica, o conjunto total de dados

e dividido em k subconjuntos mutuamente exclusivos de mesmo tamanho. No caso,

os dados sao as fotos dos rostos. O sistema e treinado e testado k vezes. Em cada

iteracao, um dos k subconjuntos e usado como entrada de teste, enquanto os outros

k-1 subconjuntos sao usados como entrada para treinamento [12].

4.2 Teste da Memoria

Este teste verificara se a memoria esta sendo escrita com o treinamento da rede.

Quando a rede e treinada pela primeira vez, e esperado que a memoria seja gravada

com uma quantidade de “uns” igual ao numero de n-uplas da rede. No segundo

treinamento, a memoria pode ser gravada com mais “uns”, o numero de gravacoes

no segundo treinamento pode variar de zero ao numero de n-uplas da rede. Se a

33

Page 48: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

segunda figura for igual a primeira, consequentemente nao havera nenhuma gravacao.

Quanto mais diferente a nova imagem a ser treinada for das imagens ja treinadas,

maior sera o numero de gravacoes de “uns” na memoria.

Conforme a rede vai sendo treinada e esperado que o numero de gravacoes de

“uns” em cada treinamento va se tornando menor. Isso e esperado, pois, quanto

mais a rede foi treinada, pressupoe-se que mais ela ja aprendeu sobre o padrao a ser

reconhecido.

A Fig. 4.1 ilustra uma rede sendo treinada. Nessa rede os agrupamentos de

pıxeis sao feitos de 7 em 7. O numero de n-uplas da rede pode ser calculado por:

Nn

, e o tamanho da memoria pode ser calculado por: N × (n − 1)!, onde N e o

numero total de pıxeis e n e o tamanho das n-uplas. Entao o numero de n-uplas

e 66×457

= 424.2, como o resultado nao e inteiro, ele deve ser truncado. Assim,

tem-se 424 n-uplas, porem alguns pıxeis acabam nao sendo associados a nenhuma

n-upla. Como o numero de pıxeis nao associados e muito pequeno em relacao a

totalidade de pıxeis da imagem, isso nao compromete o sistema. Nesse, caso sao 2

pıxeis nao associados num universo de 2970 pıxeis, menos de 0.07%. O tamanho da

memoria e (66 × 45) × (7 − 1)! = 2.138.400 bits. Como cada rede e treinada com

fotos de luminancia e fotos de profundidade, a rede possui 2 memorias de tamanho

N × (n− 1)!.

34

Page 49: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Figura 4.1: Memoria com o treinamento da rede. Rede treinada com 8 imagens de

luminancia e de profundidade.

O grafico em azul mostra o preenchimento da memoria com o treinamento das

fotos de luminancia da Fig. 4.2. E o grafico em vermelho mostra o preenchimento

da memoria com o treinamento das fotos de profundidade da Fig. 4.3. No eixo a

esquerda, a quantidade de “uns” e mostrada em numeros absolutos. Ja a direita,

ela e mostrada em porcentagem em relacao ao tamanho total de cada memoria.

No grafico, pode ser visto que no primeiro treinamento a quantidade de “uns” na

memoria esta entre 400 e 500 para ambas as memorias. A cada treinamento o numero

de “uns” vai aumentando. Contudo, nota-se que o aumento de uns vai se tornando

menor. Na memoria das fotos de cor, do primeiro para o segundo treinamento houve

um aumento de 397; do segundo para o terceiro: 333, e nos seguintes: 228 e 170.

O mesmo comportamento e visto na memoria das fotos de profundidade, onde o

aumento foi de: 250 do primeiro para o segundo treinamento, 194, 196 e 137 nos

seguintes.

Conforme esperado, no primeiro treinamento a quantidade de “uns” na memoria

e de 424, e nos treinamentos seguintes o incremento de “uns” na memoria vai se

tornando menor, indicando que a rede neural ja esta aprendendo sobre o padrao

35

Page 50: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

treinado.

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.2: Fotos de luminancia usadas para treinamento.

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.3: Fotos de profundidade usadas para treinamento.

4.3 Algoritmo de treino e teste

Os proximos testes verificarao o funcionamento das fase de treinamento e teste da

rede. No total, tres testes serao feitos: reconhecimento de uma imagem treinada,

treinamento multiplo de uma mesma imagem, e treinamento multiplo de diferentes

36

Page 51: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

imagens. Os testes sao explicados e mostrados adiante.

4.3.1 Reconhecimento de uma imagem treinada

Neste teste a rede sera treinada e testada com a mesma dupla de imagens de uma

face: uma de luminancia e uma de profundidade. Nessa rede os agrupamentos de

pıxeis sao feitos de 7 em 7. A resposta de saıda da rede sera calculada fazendo

uma media da resposta da imagem de luminancia e da imagem de profundidade.

E esperado receber uma resposta de 100 % ja que as imagens a serem testadas ja

foram treinadas na rede. Na Fig. 4.4, a resposta de 100% pode ser vista no grafico.

Figura 4.4: Testando uma mesma dupla de imagens previamente treinadas. Cada dupla

de imagem composta por uma imagem de luminancia e uma imagem de profundidade.

4.3.2 Treinamento multiplo de uma mesma imagem

Neste teste uma rede sera criada e treinada multiplas vezes com a mesma dupla

de imagens - uma de luminancia e uma de profundidade - de uma face. Nessa rede

os agrupamentos de pıxeis tambem sao feitos de 7 em 7.

E esperado que o numero de “uns” permaneca inalterado. Como a rede esta sendo

treinada sempre com a mesma imagem, a funcao ira gerar sempre a mesma resposta.

37

Page 52: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Portanto, nao havera “uns” adicionais na memoria. Na Fig. 4.5 pode ser visto que

o numero de uns na memoria realmente permanece inalterado depois dos multiplos

treinamentos.

Figura 4.5: Treinando uma mesma dupla de imagens multiplas vezes. Cada dupla de

imagem composta por uma imagem de luminancia e uma imagem de profundidade.

4.3.3 Treinamento multiplo de diferentes imagens

Neste teste a rede sera treinada com diferentes imagens da mesma face. Como

as imagens sao diferentes, espera-se que o numero de “uns” na memoria aumente.

Contudo, depois de muito treinamento, e esperado que o incremento de “uns” na

memoria va se tornando cada vez menor. O motivo para tal comportamento e que se

a rede esta aprendendo um padrao, com o passar do treinamento ela vai necessitando

de menos aprendizado.

Se uma rede continua aprendendo indefinidamente ate a sua memoria ficar satu-

rada, nao e bom para o sistema. Nesse caso, significa que a memoria esta apren-

dendo todas as possibilidades de respostas das funcoes da rede. Consequentemente

qualquer imagem testada na rede ira produzir uma resposta alta e a rede perde a

capacidade de diferenciar o padrao treinado.

38

Page 53: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Como apenas o rosto de uma pessoa esta sendo treinado, a memoria da rede nao

deveria ficar com muitos “uns”. Pois e esperado que fotos de um mesmo rosto gere

apenas algumas das muitas possıveis respostas das funcoes.

Na Fig. 4.6, pode-se ver dois testes com duas redes diferentes. Elas foram treina-

das com 100 imagens diferentes. O primeiro grafico ilustra uma rede de n-upla igual

a 4. O numero de “uns” na memoria vai aumentando como esperado. Conforme

a rede vai sendo treinada, o incremento de “uns” vai sendo cada vez menor como

se a rede estivesse estabilizando. Esse comportamento pode ser visto em ambas as

memorias. Porem, ele e mais acentuado na memoria das fotos de profundidade.

No segundo grafico da Fig. 4.6, tem-se o treinamento de uma n-upla de tamanho

8. O numero de “uns” na memoria tambem vai aumentando. O incremento de

“uns” da memoria de profundidade vai diminuindo com o passar dos treinamentos,

como no caso da rede de n-upla de tamanho 8. Contudo, o incremento de “uns”

na memoria das fotos de luminancia nao diminui significativamente. Isso acontece

por dois motivos: a rede de n-upla igual a 8 tem mais bits de memoria e mais

possibilidades para as funcoes; e o fato de as fotos de luminancia serem mais sujeitas

a variacoes devido a luminosidade. Portanto, a memoria das fotos de luminancia

demora mais para estabilizar.

39

Page 54: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) Rede de n-upla de tamanho igual a 4

(b) Rede de n-upla de tamanho igual a 8

Figura 4.6: Treinando redes com diferentes imagens. Rede treinada com 100 duplas de

imagens. Cada dupla de imagem composta por uma imagem de luminancia e uma imagem

de profundidade.

40

Page 55: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

4.4 Comparando fotos de luminancia e de profun-

didade e as tecnicas de representacao

Para realizar comparacao entre os tipos de fotos e as tecnicas de representacao,

uma rede neural devera ser pre-definida. Na Tab. 2.1 e mostrado o tamanho ne-

cessario de memoria para o tamanho de n-upla escolhido para imagens de 66 × 45

pıxeis usando imagens em que cada pıxel e representado por 1 bit. Esse seria o caso

do uso da tecnica de segmentacao por Threshold. Pode ser visto nesta Tabela que

um tamanho de n-upla igual a 16 requer uma memoria de quase 2 GB.

Na Tab. 2.3 tambem e mostrado o tamanho necessario de memoria para imagens

de 66 × 45 pıxeis em que e usada a tecnica de ranquemento. Esta Tabela mostra

que uma rede de n-upla igual a 8 requer uma memoria de quase 2 GB. De forma

arbitraria sera escolhida um tamanho de n-upla menor do que 8, ja que uma n-upla

de tamanho 8 exigiria muito espaco fısico de armazenamento. O tamanho de n-upla

escolhido e: 5.

Tambem sera estipulado um numero fixo de imagens para os treinamentos. Cada

rede neural sera treinada com 20 duplas de imagens, sendo uma de luminancia e

outra de profundidade. Para avaliacao do modelo sera usada a tecnica de validacao

cruzada, metodo k-fold com k igual a 6. O conjunto total de fotos sera de 24 duplas

de imagens. Esse conjunto sera dividido em 6 subconjuntos de 4 duplas de imagens.

Em cada uma das iteracoes um subconjunto sera usado para teste, enquanto os

outros 5 serao usados para o treinamento da rede.

Na Fig. 4.7 sao mostradas as respostas da rede para a tecnica de segmentacao

por Threshold com o criterio da media da luminosidade. As respostas sao medidas

de similaridade, ainda nao submetidas a um criterio de decisao, ou seja, no modelo

de redes neural sem peso da Fig. 2.4, as respostas sao a saıda da funcao soma antes

de passar pela funcao de ativacao. Nao foi feita uma escolha da funcao de ativacao,

um criterio de decisao.

41

Page 56: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

No primeiro grafico da Fig. 4.7, as 24 duplas de imagens usadas sao fotos diferentes

do rosto de uma mesma pessoa. Esse grafico mostra a media das respostas dos testes

nas 6 iteracoes, com a barra de erro representando o desvio padrao. A barra em

azul mostra a resposta da rede considerando apenas a resposta das fotos de cor,

enquanto as barra em vermelho mostra a resposta considerando apenas a resposta

das fotos de profundidade. Ja a barra preta mostra a resposta do sistema atraves

da media entre as duas respostas.

No segundo grafico da Fig. 4.7 a mesma rede - utilizando mesmo mapeamento

pseudo-randomico - e testada. As imagens utilizadas para o treinamento sao as

mesmas 24 duplas de imagens do primeiro grafico. Porem para o teste, sao utilizadas

4 duplas de imagens de rostos de outras pessoas, sendo cada 2 duplas de imagens

de uma pessoa diferente. Portanto, as imagens de teste sao as mesmas, enquanto as

imagens usadas no treino seguem a tecnica de validacao cruzada com metodo k-fold

com k igual a 6. Ou seja, em cada uma das iteracoes 5 subconjuntos sao usados

para o treinamento da rede. Assim como o primeiro grafico, e mostrada a media e

o desvio padrao das respostas dos testes nas 6 iteracoes.

No primeiro grafico tem-se uma resposta de aproximadamente 88% com desvio

padrao de 10% para as fotos de cor, ja as fotos de profundidade apresentam uma

resposta de 95% com desvio padrao de 7%. Usando a respostas de ambas as fotos,

a resposta e de 92% com um desvio padrao de 7%.

No segundo grafico tem-se uma resposta de aproximadamente 70% com desvio

padrao de 9% para as fotos de cor, 66% com desvio padrao de 8% para as fotos de

profundidade, e 68% com um desvio padrao de 6% para ambas as fotos.

As respostas do primeiro grafico sao maiores que a do segundo, como desejado.

Comparativamente a resposta das fotos de profundidade teve melhor desempenho

apresentando o maior valor para o primeiro grafico onde sao testadas fotos do mesmo

rosto usado no treinamento. Alem de apresentar o menor valor no segundo grafico

onde foram testadas imagens de pessoas pessoas diferentes da pessoa usada no trei-

namento.

42

Page 57: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Na Fig. 4.8 sao mostradas fotos de algumas das imagens do rosto treinado. A

Fig. 4.9 mostrada algumas das imagens de rostos de outras pessoas usados nos testes

apresentados no segundo grafico da Fig. 4.7.

43

Page 58: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) Rede testada com imagens nao vistas da mesma pessoa treinada.

(b) Rede testada com imagens nao vistas de pessoas diferentes da pessoa treinada.

Figura 4.7: Teste de uma rede usando a tecnica de segmentacao. Rede de n-upla de

tamanho igual a 5. Rede treinada usando a tecnica de validacao cruzada com metodo

k-fold com k igual a 6, grupo total de 24 duplas de imagens.

44

Page 59: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.8: Fotos usando a tecnica de segmentacao usadas para treinamento. Fotos de

um mesmo rosto.

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.9: Fotos usando a tecnica de segmentacao usadas para o teste. Fotos de 2 rostos

diferentes.

Na Fig. 4.10 tambem e mostrado a resposta de uma rede com n-uplas de tamanho

igual a 5, mas usando a tecnica de ranqueamento, as mesmas fotos usadas no teste

de segmentacao sao usadas nesse teste. Assim como no caso anterior, as respostas

sao medidas de similaridade nao submetidas a um criterio de decisao. O primeiro

grafico mostra a resposta da rede a imagens nao vistas do mesmo rosto usado no

45

Page 60: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

treinamento. Ja o segundo grafico mostra a resposta da rede a imagens de rostos

de outras pessoas diferentes da pessoa usada para treinamento. A barra em azul e

referente as fotos de cor; a em vermelho e referente as fotos de profundidade; e a

preta e referente a media entre as respostas dos dois tipos de fotos.

No primeiro grafico tem-se uma resposta de aproximadamente 80% com desvio

padrao de 8% para as fotos de cor, ja as fotos de profundidade apresentam uma

resposta de 96% com desvio padrao de 3%. Usando a respostas de ambas as fotos,

a resposta e de 87% com um desvio padrao de 5%.

No segundo grafico tem-se uma resposta de aproximadamente 52% com desvio

padrao de 10% para as fotos de cor, 60% com desvio padrao de 9% para as fotos de

profundidade, e 57% com um desvio padrao de 7% para ambas as fotos.

Assim como no caso anterior, as respostas do primeiro grafico sao maiores do a do

segundo, como desejado. Comparativamente a resposta das fotos de profundidade

tambem tiveram melhor desempenho apresentando o maior valor para o primeiro

grafico e o menor valor no segundo grafico.

Na Fig. 4.11 sao mostradas fotos de algumas das imagens do rosto treinado. A

Fig. 4.12 mostra algumas das imagens de rostos de outras pessoas usados nos testes

apresentados no segundo grafico da Fig. 4.10.

Comparando os resultados obtidos com as tecnicas de segmentacao e de ranque-

amento, pode-se concluir que o ranqueamento gerou resultados melhores. Com a

tecnica de segmentacao, as respostas do segundo grafico, onde a rede e testada com

imagens de rostos de outras pessoas diferentes da pessoa usada para treinamento,

foram significativamente menores.

Devido ao melhor desempenho da tecnica de ranqueamento como representacao

de imagem, nos testes das secoes seguintes sera usada apenas essa tecnica.

46

Page 61: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) Rede testada com imagens nao vistas da mesma pessoa treinada.

(b) Rede testada com imagens nao vistas de pessoas diferentes da pessoa treinada.

Figura 4.10: Teste de uma rede usando a tecnica de ranqueamento. Rede de n-upla de

tamanho igual a 5. Rede treinada usando a tecnica de validacao cruzada com metodo

k-fold com k igual a 6, grupo total de 24 duplas de imagens.

47

Page 62: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.11: Fotos usando a tecnica de segmentacao usadas para treinamento. Fotos de

um mesmo rosto.

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.12: Fotos usando a tecnica de segmentacao usadas para o teste. Fotos de 2

rostos diferentes.

4.5 Ajustando os parametros da rede

Na Sec. 4.4 as tecnicas de representacao de fotos foram comparadas concluindo-

se que a a tecnica de ranqueamento apresentou o melhor resultado. Portanto nos

48

Page 63: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

proximos testes apenas essa tecnica sera usada. Assim como na secao anterior, as

respostas da rede mostradas nos graficos dessa secao sao medidas de similaridade,

ainda nao submetidas a um criterio de decisao.

Nessa secao o foco sera dado aos parametros da rede. Esses parametros serao alte-

rados com o proposito de comparar suas influencias no sistema. Quatro parametros

serao analisados: tamanho das n-uplas; mapeamentos pseudo-randomicos e sequen-

ciais; numero de treinamentos; e memoria com contador. As fotos usadas para os

treinamentos e os testes nessa secao sao as mesmas fotos usadas nos testes da Sec.

4.4.

4.5.1 Tamanho das n-uplas

Cinco redes foram treinadas usando tecnica de validacao cruzada com metodo

k-fold com k igual a 10. Assim como, na Sec. 4.4, cada rede sera testada tanto

para fotos de rostos da mesma pessoa usada na fase de treino quanto para fotos de

pessoas diferentes.

O conjunto total de imagens, nesse caso, e de 100 duplas de fotos, cada dupla sendo

uma imagem de luminancia e uma imagem de profundidade. Tem-se, portanto, 10

subconjuntos de 10 duplas de imagens. Em cada iteracao, 9 subconjuntos - totali-

zando 90 duplas de imagens - serao usadas para o treinamento da rede. Enquanto

o subconjunto restante sera usado para teste. Nesse caso, tem-se 10 iteracoes.

Usando as mesmas redes treinadas de acordo a tecnica de validacao cruzada, serao

testadas um conjunto de 10 duplas de imagens de rostos de outras pessoas. Assim,

pode-se avaliar a rejeicao do sistema a fotos de pessoas nao treinadas. Nesse teste,

o conjunto de fotos e maior em relacao aos testes da Sec. 4.4. Porem, as pessoas

fotografadas sao as mesmas.

Na Fig. 4.13, a resposta para as imagens de teste sao mostradas para cada uma

das redes. Na primeira linha de graficos, e mostrada a resposta de uma rede de

n-upla igual a 4. Na segunda, uma rede de n-upla igual a 5 e assim por diante ate a

ultima rede de n-upla igual a 8. Os graficos a esquerda mostram a resposta da rede

49

Page 64: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

a imagens de fotos nao vistas do mesmo rosto da fase de treino. Ja os graficos a

direita mostram a resposta da rede a imagens de fotos de rostos diferentes, no total

10 duplas de imagens, sendo cada 5 duplas de imagens de uma pessoa diferente. A

barra em azul e referente as fotos de cor; a em vermelho, as fotos de profundidade;

e a preta e referente a media entre as respostas dos dois tipos de fotos.

(a) n-upla = 4, rede testada com imagens nao vistas

da mesma pessoa treinada.

(b) n-upla = 4, rede testada com imagens nao vistas

de pessoas diferentes da pessoa treinada.

(c) n-upla = 5, rede testada com imagens nao vistas

da mesma pessoa treinada.

(d) n-upla = 5, rede testada com imagens nao vistas

de pessoas diferentes da pessoa treinada.

50

Page 65: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(e) n-upla = 6, rede testada com imagens nao vistas

da mesma pessoa treinada.

(f) n-upla = 6, rede testada com imagens nao vistas

de pessoas diferentes da pessoa treinada.

(g) n-upla = 7, rede testada com imagens nao vistas

da mesma pessoa treinada.

(h) n-upla = 7, rede testada com imagens nao vistas

de pessoas diferentes da pessoa treinada.

(i) n-upla = 8, rede testada com imagens nao vistas

da mesma pessoa treinada.

(j) n-upla = 8, rede testada com imagens nao vistas

de pessoas diferentes da pessoa treinada.

Figura 4.13: Testando n-uplas de diferentes tamanhos usando a tecnica de ranqueamento.

Rede treinada usando a tecnica de validacao cruzada com metodo k-fold com k igual a 10,

grupo total de 100 duplas de imagens.

51

Page 66: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

No primeiro grafico, uma rede de n-upla igual a 4 foi testada. Pode-se ver que

as respostas sao bem altas, como desejado, proximo de 100%. Contudo, a resposta

no segundo grafico, onde foram testadas fotos de pessoas que nao foram treinadas

tambem esta alta, proximo de 85%.

No terceiro e quarto graficos, uma rede n-upla igual a 5 foi testada. Pode-se notar

uma queda significativa da resposta as fotos de pessoas que nao foram treinadas

ficando entre 70% e 75%; enquanto as respostas as fotos nao vistas da mesma pessoa

que foi treinada cai bem menos, ficando proxima de 95%.

Esse comportamento continua, com o aumento do tamanho da n-upla da rede.

Porem, a resposta da rede as fotos nao vistas da mesma pessoa treinada passa a

cair mais significativamente. Pode-se notar tambem que a as fotos de profundidade

apresentam uma resposta mais satisfatoria para as redes de n-uplas maiores. Pois, a

resposta as fotos nao vistas da mesma pessoa treinada sao altas, em contrapartida da

baixa respostas da rede as fotos de pessoas que nao foram treinadas. Comparando os

resultados dessas diferentes n-uplas, pode-se ver que nas redes de n-upla de tamanho

4 e 5 e mais difıcil separar as imagens que deveriam ser reconhecidas das demais

imagens.

4.5.2 Mapeamento pseudo-randomico

Nessa secao, um tamanho de n-upla sera fixado e diferentes mapeamentos pseudo-

randomicos serao testados para entender melhor a influencia do mapeamento na

resposta da rede. De forma arbitraria, sera escolhido o tamanho de n-upla igual a

7. O metodo de validacao cruzada foi usado como na Sec. 4.5.1, fazendo o uso das

mesmas imagens.

Na Fig. 4.14, a resposta para as imagens de teste sao mostradas para 4 redes com

mapeamentos pseudo-randomicos diferentes. Em cada linha e mostrada a resposta

de uma rede. Os graficos a esquerda mostram a resposta da rede a imagens de fotos

nao vistas do mesmo rosto da fase de treino. Ja os graficos a direita mostram a

resposta da rede a imagens de fotos de rostos diferentes. A barra em azul e referente

as fotos de cor; a em vermelho, as fotos de profundidade; e a preta e referente a media

52

Page 67: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

entre as respostas dos dois tipos de fotos. A abordagem usada para o treinamento

e teste e a mesma usada na Sec. 4.5.1 com o mesmo conjunto de imagens

(a) rede testada com imagens nao vistas da mesma

pessoa treinada.

(b) rede testada com imagens nao vistas de pessoas

diferentes da pessoa treinada.

(c) rede testada com imagens nao vistas da mesma

pessoa treinada.

(d) rede testada com imagens nao vistas de pessoas

diferentes da pessoa treinada.

(e) rede testada com imagens nao vistas da mesma

pessoa treinada.

(f) rede testada com imagens nao vistas de pessoas

diferentes da pessoa treinada.

53

Page 68: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(g) rede testada com imagens nao vistas da mesma

pessoa treinada.

(h) rede testada com imagens nao vistas de pessoas

diferentes da pessoa treinada.

Figura 4.14: Testando diferentes mapeamentos pseudo-randomicos usando a tecnica de

ranqueamento. Rede treinada usando a tecnica de validacao cruzada com metodo k-fold

com k igual a 10, grupo total de 100 duplas de imagens.

Pode ser visto que a respostas dos diferentes mapeamentos randomicos sao muito

similares, ressalvando algumas especıficas diferencas. Comparando os graficos, conclui-

se que a escolha do mapeamento pseudo-randomico nao influi significativamente nas

respostas da rede.

4.5.3 Mapeamentos sequenciais

Nessa secao, duas redes com n-upla igual a 7 e diferentes funcoes de mapeamento

serao treinadas e e testadas. Ao inves de usar o mapeamento pseudo-randomico,

dois mapeamentos sequenciais serao usados. O primeiro mapeamento a ser testado

e o mapeamento sequencial por linha. As n-uplas sao agrupadas de 7 em 7 pıxeis em

sequencia, a primeira n-upla e formada pelos 7 pıxeis das colunas 1 a 7 - a contar

da esquerda para a direita - da primeira linha. Ao chegar ao fim de cada linha sao

agrupados os pıxeis da linha seguinte, comecando da coluna 1 ate juntar os 7 pıxeis,

e assim ate o fim da imagem. Como no caso o numero total de pıxeis nao e divisıvel

por 7, alguns pıxeis nao sao associados a nenhuma n-upla.

O segundo mapeamento testado e o mapeamento sequencial por coluna. Os pıxeis

tambem sao agrupados de 7 em 7, mas agora a primeira n-upla e formado pelos pıxeis

da primeira coluna das linhas de numero 1 a 7 - a contar de cima para baixo. Os

54

Page 69: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

agrupamentos continuam a serem feitos na primeira coluna ate o seu fim, pulando

para o pıxel da segunda coluna e primeira linha e depois descendo para as linhas

abaixo, continuando assim ate o fim da imagem. Como no mapeamento sequencial

por linha, alguns pıxeis nao sao associados a nenhuma n-upla.

O metodo de validacao cruzada foi usado como na Sec. 4.5.1, fazendo o uso das

mesmas imagens. Nos graficos da Fig. 4.15 pode-se ver a resposta da rede com

os mapeamentos sequenciais por linha e por coluna. Os dois primeiros graficos sao

referentes ao mapeamento por linha e os dois ultimos ao mapeamento por coluna.

Os graficos a esquerda mostram a resposta da rede a imagens de fotos nao vistas

do mesmo rosto da fase de treino. Ja os graficos a direita mostram a resposta da

rede a imagens de fotos de rostos diferentes. A barra em azul e referente as fotos de

cor; a em vermelho, as fotos de profundidade; e a preta e referente a media entre as

respostas dos dois tipos de fotos. A abordagem usada para o treinamento e teste e

a mesma usada na Sec. 4.5.1 com o mesmo conjunto de imagens.

Comparando as respostas obtidas nesses graficos com a reposta da rede de mapea-

mento pseudo-randomico ilustrada no grafico (a) da Fig. 4.14, por exemplo, pode-se

ver que os mapeamentos sequenciais pioraram a capacidade da rede de reconhecer o

rosto treinado. As respostas as imagens de rostos de pessoas diferentes da treinada

aumentaram significativamente.

(a) rede testada com imagens nao vistas da mesma

pessoa treinada.

(b) rede testada com imagens nao vistas de pessoas

diferentes da pessoa treinada.

55

Page 70: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(c) rede testada com imagens nao vistas da mesma

pessoa treinada.

(d) rede testada com imagens nao vistas de pessoas

diferentes da pessoa treinada.

Figura 4.15: Testando mapeamentos sequenciais usando a tecnica de ranqueamento. Rede

treinada usando a tecnica de validacao cruzada com metodo k-fold com k igual a 10, grupo

total de 100 duplas de imagens.

4.5.4 Teste com um outro padrao

Ate agora todos os testes foram feitos usando o rosto de uma mesma pessoa para

a fase treinamento. Agora se verificara o funcionamento do sistema treinando com

o rosto de uma outra pessoa.

Duas redes foram treinadas usando tecnica de validacao cruzada com metodo k-

fold com k igual a 6. Uma rede de n-upla de tamanho igual a 5 e outra de tamanho

7. Assim como, na Sec. 4.4, cada rede sera testada tanto para fotos de rostos da

mesma pessoa usada na fase de treino quanto para fotos de pessoas diferentes.

O conjunto total de imagens, nesse caso, e de 24 duplas de fotos, cada dupla sendo

uma imagem de luminancia e uma imagem de profundidade. Tem-se, portanto, 6

subconjuntos de 4 duplas de imagens. Em cada iteracao, 5 subconjuntos - totali-

zando 20 duplas de imagens - serao usadas para o treinamento da rede. Enquanto

o subconjunto restante sera usado para teste. Nesse caso, tem-se 6 iteracoes.

Usando as mesmas redes treinadas de acordo a tecnica de validacao cruzada, serao

testadas um conjunto de 4 duplas de imagens de rostos de outras pessoas. Assim,

pode-se avaliar a rejeicao do sistema a fotos de pessoas nao treinadas.

56

Page 71: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Nos graficos da Fig. 4.16 pode-se ver as respostas das redes. Os dois primeiros

graficos sao referentes a rede de n-upla de tamanho 5 e os dois ultimos a rede de n-

upla de tamanho 7. Os graficos a esquerda mostram a resposta da rede a imagens de

fotos nao vistas do mesmo rosto da fase de treino. Ja os graficos a direita mostram

a resposta da rede a imagens de fotos de rostos diferentes, das 4 duplas de imagens

cada 2 duplas de uma pessoa diferente.. A barra em azul e referente as fotos de

cor; a em vermelho, as fotos de profundidade; e a preta e referente a media entre as

respostas dos dois tipos de fotos. A abordagem usada para o treinamento e teste e

a mesma usada na Sec. 4.5.1.

Na Fig. 4.16 pode-se ver que a resposta do sistema para as imagens nao vistas da

mesma pessoa treinada sao na media significativamente maiores do as respostas das

fotos de demais pessoas. No caso da rede de n-upla de tamanho igual a 7, o desvio

padrao e consideravelmente alto.

Na Fig. 4.17 sao mostradas fotos de algumas das imagens do rosto treinado. A

Fig. 4.18 mostra algumas das imagens de rostos de outras pessoas usados nos testes

apresentados no segundo e quarto graficos da Fig. 4.16.

(a) n-upla = 5, rede testada com imagens nao vistas

da mesma pessoa treinada.

(b) n-upla = 5, rede testada com imagens nao vistas

de pessoas diferentes da pessoa treinada.

57

Page 72: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(c) n-upla = 7, rede testada com imagens nao vistas

da mesma pessoa treinada.

(d) n-upla = 7, rede testada com imagens nao vistas

de pessoas diferentes da pessoa treinada.

Figura 4.16: Testando n-uplas de diferentes tamanhos usando a tecnica de ranqueamento.

Rede treinada usando a tecnica de validacao cruzada com metodo k-fold com k igual a 10,

grupo total de 100 duplas de imagens.

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.17: Fotos usando a tecnica de ranquemaneto usadas para treinamento. Fotos

de um mesmo rosto.

58

Page 73: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

(a) foto 1 (b) foto 2 (c) foto 3 (d) foto 4

(e) foto 5 (f) foto 6 (g) foto 7 (h) foto 8

Figura 4.18: Fotos usando a tecnica de ranqueamento usadas para o teste. Fotos de 2

rostos diferentes.

59

Page 74: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Capıtulo 5

Conclusoes

Nesse trabalho uma rede neural sem peso foi implementada usando a linguagem

Python. O objetivo da rede neural era o uso para reconhecimento facial. Primeira-

mente foram feitos alguns testes para garantir que a rede estava funcionando como

planejado. Depois, o sistema foi testado de fato para o reconhecimento facial. Os

parametros da rede foram alterados para entender-se melhor a influencia de cada

parametro na rede e tentar-se melhorar o desempenho da mesma.

A rede neural sem peso pode ser vista como um sistema realmente versatil, po-

dendo ser usado em diferentes aplicacoes. O sistema apresentou uma resposta sa-

tisfatoria para o reconhecimento facial com o uso de imagens de luminancia e de

profundidade, mas ha melhorias que podem ser implementadas.

Uma das maiores dificuldades para o reconhecimento facial e a luminosidade. A

resposta da rede para as fotos de luminancia e dependente da luminosidade. Uma

foto de um mesmo rosto sob diferentes condicoes de luminosidade resulta respostas

da rede significativamente diferentes.

Uma ideia para futuros trabalhos para minimizar a dependencia da luz e aplicar

um pre-processamento nas imagens tanto na fase de treinamento como na fase de

teste. Uma outra linha de pesquisa seria o uso de outras tecnicas mais complexas

para o limiar de segmentacao alem da media da luminancia, como por exemplo a

tecnica de segmentacao de Otsu [13] e a de Tsallis [14].

60

Page 75: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Os resultados obtidos no projeto podem mostrar que o uso de redes neurais sem

peso para o reconhecimento facial e promissor.

61

Page 76: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

Referencias Bibliograficas

[1] MCCULLOCH, W. S., PITTS, W., “A logical calculus of the ideas immanent in

nervous activity”, The bulletin of mathematical biophysics, v. 5, n. 4, pp. 115–

133, 1943.

[2] RUMELHART, D. E., HINTON, G. E., WILLIAMS, R. J., “Parallel Distri-

buted Processing: Explorations in the Microstructure of Cognition, Vol. 1”.

chapter Learning Internal Representations by Error Propagation, Cambridge,

MA, USA, MIT Press, pp. 318–362, 1986.

[3] MAGALHAES, P. S., SANTOS, H. D. D., “Biometria e autenticacao”, , 2003.

[4] JURS, P. C., ISENHOUR, T. L., Chemical applications of pattern recognition,

1975.

[5] ALEKSANDER, I., THOMAS, W., BOWDEN, P., “WISARD, a radical step

forward in image recognition”, Sensor review, v. 4, n. 3, pp. 120–124, 1984.

[6] KHAKI, K. M., “Weightless Neural Networks for Face and Pattern Recognition:

an Evaluation Using Open-Source Databases”, , 2013.

[7] PICTON, P., Neural Networks. Palgrave, 2000.

[8] HIRATA JR, R., Segmentacao de imagens por morfologia matematica. Ph.D.

dissertation, Instituto de Matematica e Estatıstica da Universidade de Sao

Paulo, 07.03. 97., 1997.

[9] DANCIU, G., BANU, S., CALIMAN, A., “Shadow removal in depth images

morphology-based for Kinect cameras”. In: System Theory, Control and Com-

puting (ICSTCC), 2012 16th International Conference on, pp. 1–6, Oct 2012.

62

Page 77: APLICAC˘AO DE REDES NEURAIS PARA …monografias.poli.ufrj.br/monografias/monopoli10014718.pdf · AGRADECIMENTO Agrade˘co a Deus pela minha saude e pelas otimas pessoas que tenho

[10] STOWERS, J., HAYES, M., BAINBRIDGE-SMITH, A., “Altitude control of

a quadrotor helicopter using depth map from Microsoft Kinect sensor”. In:

Mechatronics (ICM), 2011 IEEE International Conference on, pp. 358–362,

April 2011.

[11] KHOSHELHAM, K., ELBERINK, S. O., “Accuracy and resolution of kinect

depth data for indoor mapping applications”, Sensors, v. 12, n. 2, pp. 1437–

1454, 2012.

[12] FUSHIKI, T., “Estimation of prediction error by using K-fold cross-validation”,

Statistics and Computing, v. 21, n. 2, pp. 137–146, 2011.

[13] “A Threshold Selection Method from Gray-Level Histograms”, Systems, Man

and Cybernetics, IEEE Transactions on, v. 9, n. 1, pp. 62–66, Jan 1979.

[14] Tsallis, C., “Possible generalization of Boltzmann-Gibbs statistics”, Journal of

Statistical Physics, v. 52, pp. 479–487, Jul. 1988.

63