SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
Reconhecimento de Faces Utilizando Redes Neurais MLP 
Autor: Adilmar Coelho Dantas1, 
Orientador: Márcia Aparecida Fernandes1 
1Programa de Pós-Graduação em Ciência da Computação 
Universidade Federal do Uberlândia (UFU) 
Uberlândia – MG – Brasil 
adilmar@mestrado.ufu.br 
Nível: Mestrado 
Resumo. Este artigo apresenta um algoritmo usando técnicas de redes neurais para 
reconhecimento de faces. Este problema consiste na entrada de imagens contendo fa-ces 
associadas com um identificador, tais características são extraídas para o correto 
reconhecimento de padrões após passar pela rede neural que são modelos computaci-onais 
inspirados pelo sistema nervoso central de um animal (em particular o cérebro) 
que é capaz de realizar o aprendizado de máquina bem como o reconhecimento de pa-drões, 
neste trabalho são analisadas variações da própria rede neural e comparação 
com outras técnicas apresentadas como solução para este problema. 
Palavras-Chave. Reconhecimento de Faces, Reconhecimento de Facial , Redes Neu-rais. 
1. Introdução e Motivação 
As pesquisas em reconhecimento de faces são tão antigas quanto à própria área de Visão Com-putacional, 
com trabalhos datados a mais de trinta anos, assim a literatura sobre o assunto é 
bastante extensa e contém as mais variadas técnicas e também muitas aplicações [1]. 
Dentre as motivações deste artigo proposto pode-se citar: autenticação para sistemas 
biométricos passaportes e fichas criminais; sistemas de segurança e controles de acesso; moni-toramento 
de multidões em estações, shoppings, criação de retratos falados, exploração, com-paração 
de técnicas para esse tipo de aplicação. 
2. Fundamentação Teórica 
Segundo (Sung et al., 1994), o reconhecimento de faces está diretamente relacionado à detec-ção 
de tais objetos dentro das imagens apresentadas como entrada de um sistema reconhece-dor. 
Uma primeira etapa para um reconhecedor automático de faces é portanto a detecção da 
presença de um rosto na imagem e, a partir daí, a comparação de tal rosto com os modelos 
conhecidos pelo sistema. 
O reconhecimento consiste em confirmar se uma imagem de face é conhecida pelo sis-tema. 
Não é necessário realizar a ligação da face a um nome e sim atribuir-lhe uma classifi-cação: 
conhecida ou desconhecida. A identificação deve realizar o reconhecimento e associar 
uma identidade à face apresentada. 
Redes Neurais Artificiais ou simplesmente Redes Neurais, são sistemas computacionais 
que procuram reproduzir, através de programas de computadores ou circuitos eletrônicos, de 
maneira simplificada, o funcionamento de uma rede neural biológica do cérebro humano.
As redes neurais artificiais têm contribuído no desenvolvimento de sistemas de reconhe-cimento 
e classificação de padrões em processamento de imagens e são utilizadas em vários 
trabalhos voltados ao reconhecimento de expressões faciais [2]. 
As mais variadas topologias e arquiteturas de redes neurais artificiais são utilizadas nes-ses 
tipos de sistemas, dentre as quais destacamos a MLP (Multi-Layer Perceptron) [3], RBF 
(Radial Base Fuction) [4] e também trabalhos que usam redes de Hopfield, com o objetivo 
de detectar mudanças de expressões em uma face [5] [6] e classificação apenas de cores em 
imagens [7]. 
Dentre outras técnica para reconhecimento e classificação de sistemas diversos inclu-sive 
de reconhecimento facial podemos citar a análise dos componentes principais (PCA) é um 
meio de se identificar padrões em um conjunto de dados e expressar suas similaridades e dife-renças. 
Também é um método bastante eficaz para quando há a necessidade da caracterização 
de padrões a partir de dados com alta dimensionalidade. 
Todas essas técnicas têm como objetivo comum aumentar a precisão e reduzir o tempo 
de execução. Segundo (Ben-Yacoub et al., 1999) a confiabilidade e o tempo de resposta de um 
sistema de detecção de rostos influencia diretamente no desempenho e emprego desse sistema. 
De forma geral, sistemas de reconhecimento facial devem passar pelas seguintes etapas, 
descritas na figura 1, essas estapas serão descritas mais adiante no artigo. 
Figura 1. Etapas para reconhecimento automático de faces 
Primeiro e definida uma base de dados para os experimentos,neste artigo a base de dados 
selecionada é a ORL composta por 400 images ao todo, e com 40 faces diferentes, após este 
proceso extrai-se dessas imagens as informações pertinentes para o sistema, cria-se uma base 
contendo esses padrões que através de alguma técnica será capaz de realizar o reconhecimento, 
identificação ou categorização das mesmas. 
3. Contribuição do Trabalho 
O reconhecimento de faces por se tratar de um sistema biométrico traz grandes contribuições 
para a área de sistemas de segurança. Uma vez que estes sistemas podem utilizar desta téc-nica 
ou de um conjunto delas para garantir a eficiência e eficácia deste sistema, ou até mesmo 
combiná-las com outras técnicas existentes. 
Outra grande contribuição forte é que o trabalho proposto demostra que com técnicas 
simples, sem envolver funções complexas de processamento de imagens é possível desenvolver 
um sistema com tal funcionalidade e alcançar resultados significantes em combinação com 
redes neurais.
4. Estado atual do Trabalho 
Dentre os problemas encontrados durante a reprodução do trabalho podemos citar que algumas 
especificações das técnicas e da própria configuração da rede neural não constavam ou estavam 
incompletas ou até mesmo não foram descritas. 
Para sanar algumas das dificuldades da técnica utilizada no trabalho para converter a 
imagem em entrada para a rede neural, foi experimentada duas técnicas, a primeira delas a 
transformada discreta do cosseno. A mesma realiza o acúmulo dos coeficientes mais significa-tivos 
no canto superior direito da imagem, proporcionando melhor capacidade de compressão 
da informações antes de repassar como entrada para a rede neural. 
A segunda técnica testada utiliza todas as informações de cada pixel pertencentes a ima-gem 
extraída da base de dados ORL que possuem 23 colunas por 28 linhas, nota-se este apre-sentou 
ser mais similar ao artigo proposto para reprodução, na figura 2 temos a representação 
desta conversão. 
Figura 2. Converção da imagem em RGB para entrada na rede neural 
Nos testes realizados para a classificação da face, as duas técnicas obtiveram pratica-mente 
os mesmos resultados, a grande diferença está neste pre processamento realizado pela 
técnica da transformada discreta de cosseno, reduzindo o volume de dados gerados quando 
processado as 400 imagens, ao todo pertencentes a base de dados um uso. 
Outra dificuldade foi a escolha do ambiente para desenvolvimento da rede neural, o qual 
não foi citado, optamos por questões de maior experiência de uso e pelo fato das ferramentas 
ligadas para a área de redes neurais disponíveis a plataforma Matlab. 
Sanada essas dificuldade foi desenvolvida a rede neural MLP, este tipo de rede durante o 
treinamento com o algoritmo backpropagation, a rede opera em uma sequência de dois passos. 
Primeiro, um padrão é apresentado à camada de entrada da rede. A atividade resultante flui 
através da rede, camada por camada, até que a resposta seja produzida pela camada de saída. 
No segundo passo, a saída obtida é comparada à saída desejada para esse padrão particular. Se 
esta não estiver correta, o erro é calculado. O erro é propagado a partir da camada de saída até 
a camada de entrada, e os pesos das conexões das unidades das camadas internas vão sendo 
modificados conforme o erro é retropropagado. 
Os primeiros testes os resultados não bateram justamente pelo fato de no trabalho pro-posto 
não conter a configuração ideal para a rede neural desenvolvida, especificadamente para 
este problema de reconhecimento facial. 
Para sanar essa dificuldade e consequentemente obter melhores resultados a rede neural 
foi testada exaustivamente com diversas configurações no número de camadas ocultas, uma vez
que o número de neurônios da saída é o número de classificações possíveis, neste caso 40. A 
melhor configuração encontrada para o número de neurônios da camada oculta foi de 90 neurô-nios, 
a camada de entrada mesmo passando todos os 644, ou seja, cada pixel pertencente da 
imagem de dimensões 28x23. A função do Matlab determina automaticamente esses neurônios 
de entrada quando este é muito grande, a figura 3 demostra com mais detalhes a rede neural e 
suas configurações finais. 
Figura 3. Rede neural MLP e suas configurações 
5. Análise de Resultados 
Para se chegar na configuração ideal para rede neural, em específico o número de neurônios 
da camada oculta foi testado valores em um intervalo de 10 até 100 neurônios e analisado o 
tempo de execução da rede neural, a partir destes dados foi possível montar o seguinte gráfico, 
apresentado na figura 4, o qual demostra essa relação entre números de neurônios e o tempo de 
treinamento da rede neural. 
Figura 4. Relação: Neurônios da camada oculta x Tempo de execução 
Com base nestes resultados optamos por fixar o número de neurônios da camada oculta 
em 90 neurônios, garantindo assim um bom tempo de execução e uma boa convergência. 
Para testes da rede neural, utilizamos a seguinte configuração: quantidade de imagens 
para treino, teste e validação. Os testes foram realizados com 1-2-7, 3-2-5, 5-2-3, 7-2-1 , a
tabela 1 demostras esses experimentos e suas respectivas taxas de acerto. Os experimentos 
foram executados em um total de 10 execuções. 
Relação Taxa de Acerto 
1-2-7 64,11% 
3-2-5 89,15% 
5-2-3 93,66% 
7-2-1 98,33% 
Tabela 1. Resultados com os dez experimentos 
Podemos observar pelos resultados que a relação 7-2-1 obteve a melhor taxa de reco-nhecimento 
foi a 7-2-1 um pouco melhor do que a encontrada no artigo mesmo que relativa-mente 
pequena a diferença. A pior taxa de acerto foi para a configuração 1-2-7 onde a rede 
neural chegou a errar 130 vezes durantes os testes, pois a base de dados contém imagens de 
diversas posições com e sem acessórios como por exemplo óculos. 
Como o algoritmo PCA não utiliza imagens para validação, os testes foram realizados 
somando as quantidades das imagens de treino e validação das relações utilizadas para o treino 
das Redes Neurais, onde estas imagens foram transformadas nos vetores de características (base 
de treino). Para cada pessoa testada a imagem é transformada pelo PCA também no vetor de 
característica e comparado através da menor Distância Euclidiana encontrada na base de treino. 
O número de características utilizadas para o cálculo da Distância Euclidiana foi fixado 
em 10. Na figura 5 temos um comparativo entre as taxas de acerto utilizando redes neurais MLP 
e a técnica de PCA. 
Figura 5. Performace entre MLP e PCA 
Para uma melhor facilidade de realização de teste foi desenvolvida uma interface para 
treinamento e para o reconhecimento da face, essa interface pode ser observada na figura 6. 
Apesar de simples, ela facilita o acesso ao sistema tanto na parte de MLP e PCA.
Figura 6. Interface desenvolvida 
6. Referências 
1-Haykin, S.; Neural networks: a comprehensive foundation, 2/E; Prentice Hall, 1999. 
2-Neto, E.; Ling, L. Lee; Sistema de Reconhecimento Facial Baseado em Análise de 
Componentes Principais; SBT 97, 1997. 
3-Neto, E.; Sistema de Identificação Pessoal Utilizando Técnicas de Reconhecimento 
e Verificação Facial Automáticas. Tese de Mestrado, 1997. 
4-Bianchi, R.;Visão Computacional Aplicada ao Controle de Micro Robôs. São Paulo, 2001. 
5-Feitosa, R.; Vellasco, M.; Oliveira, D.; Andrade, D.; Maffra, S.; Classificação de Ex-pressões 
Faciais Utilizando Redes Neurais Backpropagation e RBF. Rio de Janeiro, 1999. 
6-Tiscione, J.; Projeto OCHRE. Avaliado como http://www.hhs.net/tiscione/applets/ochre.html. 
7-Universidade Estadual de Maringá. Análise de Componentes Principais, Avaliado 
como http://www.din.uem.br/ia/pca/. 
Sung, KK.; Poggio, T., Example-Based Learning for View-Based Human Face 
Detection,IEEE- Transactions on Pattern Analysis and Machine Intelligence, vol. 
20, No 1, janeiro de 1998.

Mais conteúdo relacionado

Semelhante a Reconhecimento Facial com Redes Neurais MLP

A rede neural supervisionada chamada perceptron multicamadas
A rede neural supervisionada chamada perceptron multicamadasA rede neural supervisionada chamada perceptron multicamadas
A rede neural supervisionada chamada perceptron multicamadascesar do amaral
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAdilmar Dantas
 
INTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNAINTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNACarlos Cheth
 
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Ricardo Brasil
 
Banner sic 02
Banner sic 02Banner sic 02
Banner sic 02siridakis
 
Revisão fatec versão final rede som03
Revisão fatec versão final rede som03Revisão fatec versão final rede som03
Revisão fatec versão final rede som03Edquel B. Prado Farias
 
Aplicação de redes neurais artificiais à engenharia de estruturas
Aplicação de redes neurais artificiais à engenharia de estruturasAplicação de redes neurais artificiais à engenharia de estruturas
Aplicação de redes neurais artificiais à engenharia de estruturasFamília Schmidt
 
Modelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regrasModelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regrasSuzana Viana Mota
 
Aprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosAprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosDiego Negretto
 
Meta-aprendizado para otimização de parâmetros de redes neurais
Meta-aprendizado para otimização de parâmetros de redes neuraisMeta-aprendizado para otimização de parâmetros de redes neurais
Meta-aprendizado para otimização de parâmetros de redes neuraisOrlando Junior
 
Trabalho final neurais_v1
Trabalho final neurais_v1Trabalho final neurais_v1
Trabalho final neurais_v1Diego Damasceno
 

Semelhante a Reconhecimento Facial com Redes Neurais MLP (17)

A rede neural supervisionada chamada perceptron multicamadas
A rede neural supervisionada chamada perceptron multicamadasA rede neural supervisionada chamada perceptron multicamadas
A rede neural supervisionada chamada perceptron multicamadas
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de Emoções
 
INTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNAINTELIGENCIA ARTIFICIAL RNA
INTELIGENCIA ARTIFICIAL RNA
 
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
 
Modelos de previsão de Ocorrências
Modelos de previsão de OcorrênciasModelos de previsão de Ocorrências
Modelos de previsão de Ocorrências
 
Banner sic 02
Banner sic 02Banner sic 02
Banner sic 02
 
Revisão fatec versão final rede som03
Revisão fatec versão final rede som03Revisão fatec versão final rede som03
Revisão fatec versão final rede som03
 
Aplicação de redes neurais artificiais à engenharia de estruturas
Aplicação de redes neurais artificiais à engenharia de estruturasAplicação de redes neurais artificiais à engenharia de estruturas
Aplicação de redes neurais artificiais à engenharia de estruturas
 
Redes neurais
Redes neuraisRedes neurais
Redes neurais
 
Modelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regrasModelagem de cargas utilizando sistemas baseados em regras
Modelagem de cargas utilizando sistemas baseados em regras
 
Aprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de DadosAprendizado de Máquina para Classificação de Dados
Aprendizado de Máquina para Classificação de Dados
 
Meta-aprendizado para otimização de parâmetros de redes neurais
Meta-aprendizado para otimização de parâmetros de redes neuraisMeta-aprendizado para otimização de parâmetros de redes neurais
Meta-aprendizado para otimização de parâmetros de redes neurais
 
20120305 - presentation
20120305 - presentation20120305 - presentation
20120305 - presentation
 
Trabalho final neurais_v1
Trabalho final neurais_v1Trabalho final neurais_v1
Trabalho final neurais_v1
 
Trabalho PI I
Trabalho PI ITrabalho PI I
Trabalho PI I
 
160277 redes neurais artificiais
160277 redes neurais artificiais160277 redes neurais artificiais
160277 redes neurais artificiais
 
RNA_Matlab.pdf
RNA_Matlab.pdfRNA_Matlab.pdf
RNA_Matlab.pdf
 

Mais de Adilmar Dantas

APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...Adilmar Dantas
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1Adilmar Dantas
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and ConquerAdilmar Dantas
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Adilmar Dantas
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesAdilmar Dantas
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoçõesAdilmar Dantas
 
ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoAdilmar Dantas
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSAdilmar Dantas
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAdilmar Dantas
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufuAdilmar Dantas
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Adilmar Dantas
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de AlgoritmosAdilmar Dantas
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaAdilmar Dantas
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testesAdilmar Dantas
 
Qualidade de Software Web
Qualidade de Software WebQualidade de Software Web
Qualidade de Software WebAdilmar Dantas
 
Compilador analise lexica
Compilador analise lexicaCompilador analise lexica
Compilador analise lexicaAdilmar Dantas
 
Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory Adilmar Dantas
 

Mais de Adilmar Dantas (20)

Querying nosql stores
Querying nosql storesQuerying nosql stores
Querying nosql stores
 
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and Conquer
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de Emoções
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoções
 
ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - Escalonamento
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
 
Alinhamento de Sequencia DNA
Alinhamento de Sequencia DNAAlinhamento de Sequencia DNA
Alinhamento de Sequencia DNA
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufu
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de Algoritmos
 
Servidores Web
Servidores WebServidores Web
Servidores Web
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação Remota
 
Weblab TCC
Weblab TCCWeblab TCC
Weblab TCC
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
Qualidade de Software Web
Qualidade de Software WebQualidade de Software Web
Qualidade de Software Web
 
Compilador analise lexica
Compilador analise lexicaCompilador analise lexica
Compilador analise lexica
 
Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory
 

Reconhecimento Facial com Redes Neurais MLP

  • 1. Reconhecimento de Faces Utilizando Redes Neurais MLP Autor: Adilmar Coelho Dantas1, Orientador: Márcia Aparecida Fernandes1 1Programa de Pós-Graduação em Ciência da Computação Universidade Federal do Uberlândia (UFU) Uberlândia – MG – Brasil adilmar@mestrado.ufu.br Nível: Mestrado Resumo. Este artigo apresenta um algoritmo usando técnicas de redes neurais para reconhecimento de faces. Este problema consiste na entrada de imagens contendo fa-ces associadas com um identificador, tais características são extraídas para o correto reconhecimento de padrões após passar pela rede neural que são modelos computaci-onais inspirados pelo sistema nervoso central de um animal (em particular o cérebro) que é capaz de realizar o aprendizado de máquina bem como o reconhecimento de pa-drões, neste trabalho são analisadas variações da própria rede neural e comparação com outras técnicas apresentadas como solução para este problema. Palavras-Chave. Reconhecimento de Faces, Reconhecimento de Facial , Redes Neu-rais. 1. Introdução e Motivação As pesquisas em reconhecimento de faces são tão antigas quanto à própria área de Visão Com-putacional, com trabalhos datados a mais de trinta anos, assim a literatura sobre o assunto é bastante extensa e contém as mais variadas técnicas e também muitas aplicações [1]. Dentre as motivações deste artigo proposto pode-se citar: autenticação para sistemas biométricos passaportes e fichas criminais; sistemas de segurança e controles de acesso; moni-toramento de multidões em estações, shoppings, criação de retratos falados, exploração, com-paração de técnicas para esse tipo de aplicação. 2. Fundamentação Teórica Segundo (Sung et al., 1994), o reconhecimento de faces está diretamente relacionado à detec-ção de tais objetos dentro das imagens apresentadas como entrada de um sistema reconhece-dor. Uma primeira etapa para um reconhecedor automático de faces é portanto a detecção da presença de um rosto na imagem e, a partir daí, a comparação de tal rosto com os modelos conhecidos pelo sistema. O reconhecimento consiste em confirmar se uma imagem de face é conhecida pelo sis-tema. Não é necessário realizar a ligação da face a um nome e sim atribuir-lhe uma classifi-cação: conhecida ou desconhecida. A identificação deve realizar o reconhecimento e associar uma identidade à face apresentada. Redes Neurais Artificiais ou simplesmente Redes Neurais, são sistemas computacionais que procuram reproduzir, através de programas de computadores ou circuitos eletrônicos, de maneira simplificada, o funcionamento de uma rede neural biológica do cérebro humano.
  • 2. As redes neurais artificiais têm contribuído no desenvolvimento de sistemas de reconhe-cimento e classificação de padrões em processamento de imagens e são utilizadas em vários trabalhos voltados ao reconhecimento de expressões faciais [2]. As mais variadas topologias e arquiteturas de redes neurais artificiais são utilizadas nes-ses tipos de sistemas, dentre as quais destacamos a MLP (Multi-Layer Perceptron) [3], RBF (Radial Base Fuction) [4] e também trabalhos que usam redes de Hopfield, com o objetivo de detectar mudanças de expressões em uma face [5] [6] e classificação apenas de cores em imagens [7]. Dentre outras técnica para reconhecimento e classificação de sistemas diversos inclu-sive de reconhecimento facial podemos citar a análise dos componentes principais (PCA) é um meio de se identificar padrões em um conjunto de dados e expressar suas similaridades e dife-renças. Também é um método bastante eficaz para quando há a necessidade da caracterização de padrões a partir de dados com alta dimensionalidade. Todas essas técnicas têm como objetivo comum aumentar a precisão e reduzir o tempo de execução. Segundo (Ben-Yacoub et al., 1999) a confiabilidade e o tempo de resposta de um sistema de detecção de rostos influencia diretamente no desempenho e emprego desse sistema. De forma geral, sistemas de reconhecimento facial devem passar pelas seguintes etapas, descritas na figura 1, essas estapas serão descritas mais adiante no artigo. Figura 1. Etapas para reconhecimento automático de faces Primeiro e definida uma base de dados para os experimentos,neste artigo a base de dados selecionada é a ORL composta por 400 images ao todo, e com 40 faces diferentes, após este proceso extrai-se dessas imagens as informações pertinentes para o sistema, cria-se uma base contendo esses padrões que através de alguma técnica será capaz de realizar o reconhecimento, identificação ou categorização das mesmas. 3. Contribuição do Trabalho O reconhecimento de faces por se tratar de um sistema biométrico traz grandes contribuições para a área de sistemas de segurança. Uma vez que estes sistemas podem utilizar desta téc-nica ou de um conjunto delas para garantir a eficiência e eficácia deste sistema, ou até mesmo combiná-las com outras técnicas existentes. Outra grande contribuição forte é que o trabalho proposto demostra que com técnicas simples, sem envolver funções complexas de processamento de imagens é possível desenvolver um sistema com tal funcionalidade e alcançar resultados significantes em combinação com redes neurais.
  • 3. 4. Estado atual do Trabalho Dentre os problemas encontrados durante a reprodução do trabalho podemos citar que algumas especificações das técnicas e da própria configuração da rede neural não constavam ou estavam incompletas ou até mesmo não foram descritas. Para sanar algumas das dificuldades da técnica utilizada no trabalho para converter a imagem em entrada para a rede neural, foi experimentada duas técnicas, a primeira delas a transformada discreta do cosseno. A mesma realiza o acúmulo dos coeficientes mais significa-tivos no canto superior direito da imagem, proporcionando melhor capacidade de compressão da informações antes de repassar como entrada para a rede neural. A segunda técnica testada utiliza todas as informações de cada pixel pertencentes a ima-gem extraída da base de dados ORL que possuem 23 colunas por 28 linhas, nota-se este apre-sentou ser mais similar ao artigo proposto para reprodução, na figura 2 temos a representação desta conversão. Figura 2. Converção da imagem em RGB para entrada na rede neural Nos testes realizados para a classificação da face, as duas técnicas obtiveram pratica-mente os mesmos resultados, a grande diferença está neste pre processamento realizado pela técnica da transformada discreta de cosseno, reduzindo o volume de dados gerados quando processado as 400 imagens, ao todo pertencentes a base de dados um uso. Outra dificuldade foi a escolha do ambiente para desenvolvimento da rede neural, o qual não foi citado, optamos por questões de maior experiência de uso e pelo fato das ferramentas ligadas para a área de redes neurais disponíveis a plataforma Matlab. Sanada essas dificuldade foi desenvolvida a rede neural MLP, este tipo de rede durante o treinamento com o algoritmo backpropagation, a rede opera em uma sequência de dois passos. Primeiro, um padrão é apresentado à camada de entrada da rede. A atividade resultante flui através da rede, camada por camada, até que a resposta seja produzida pela camada de saída. No segundo passo, a saída obtida é comparada à saída desejada para esse padrão particular. Se esta não estiver correta, o erro é calculado. O erro é propagado a partir da camada de saída até a camada de entrada, e os pesos das conexões das unidades das camadas internas vão sendo modificados conforme o erro é retropropagado. Os primeiros testes os resultados não bateram justamente pelo fato de no trabalho pro-posto não conter a configuração ideal para a rede neural desenvolvida, especificadamente para este problema de reconhecimento facial. Para sanar essa dificuldade e consequentemente obter melhores resultados a rede neural foi testada exaustivamente com diversas configurações no número de camadas ocultas, uma vez
  • 4. que o número de neurônios da saída é o número de classificações possíveis, neste caso 40. A melhor configuração encontrada para o número de neurônios da camada oculta foi de 90 neurô-nios, a camada de entrada mesmo passando todos os 644, ou seja, cada pixel pertencente da imagem de dimensões 28x23. A função do Matlab determina automaticamente esses neurônios de entrada quando este é muito grande, a figura 3 demostra com mais detalhes a rede neural e suas configurações finais. Figura 3. Rede neural MLP e suas configurações 5. Análise de Resultados Para se chegar na configuração ideal para rede neural, em específico o número de neurônios da camada oculta foi testado valores em um intervalo de 10 até 100 neurônios e analisado o tempo de execução da rede neural, a partir destes dados foi possível montar o seguinte gráfico, apresentado na figura 4, o qual demostra essa relação entre números de neurônios e o tempo de treinamento da rede neural. Figura 4. Relação: Neurônios da camada oculta x Tempo de execução Com base nestes resultados optamos por fixar o número de neurônios da camada oculta em 90 neurônios, garantindo assim um bom tempo de execução e uma boa convergência. Para testes da rede neural, utilizamos a seguinte configuração: quantidade de imagens para treino, teste e validação. Os testes foram realizados com 1-2-7, 3-2-5, 5-2-3, 7-2-1 , a
  • 5. tabela 1 demostras esses experimentos e suas respectivas taxas de acerto. Os experimentos foram executados em um total de 10 execuções. Relação Taxa de Acerto 1-2-7 64,11% 3-2-5 89,15% 5-2-3 93,66% 7-2-1 98,33% Tabela 1. Resultados com os dez experimentos Podemos observar pelos resultados que a relação 7-2-1 obteve a melhor taxa de reco-nhecimento foi a 7-2-1 um pouco melhor do que a encontrada no artigo mesmo que relativa-mente pequena a diferença. A pior taxa de acerto foi para a configuração 1-2-7 onde a rede neural chegou a errar 130 vezes durantes os testes, pois a base de dados contém imagens de diversas posições com e sem acessórios como por exemplo óculos. Como o algoritmo PCA não utiliza imagens para validação, os testes foram realizados somando as quantidades das imagens de treino e validação das relações utilizadas para o treino das Redes Neurais, onde estas imagens foram transformadas nos vetores de características (base de treino). Para cada pessoa testada a imagem é transformada pelo PCA também no vetor de característica e comparado através da menor Distância Euclidiana encontrada na base de treino. O número de características utilizadas para o cálculo da Distância Euclidiana foi fixado em 10. Na figura 5 temos um comparativo entre as taxas de acerto utilizando redes neurais MLP e a técnica de PCA. Figura 5. Performace entre MLP e PCA Para uma melhor facilidade de realização de teste foi desenvolvida uma interface para treinamento e para o reconhecimento da face, essa interface pode ser observada na figura 6. Apesar de simples, ela facilita o acesso ao sistema tanto na parte de MLP e PCA.
  • 6. Figura 6. Interface desenvolvida 6. Referências 1-Haykin, S.; Neural networks: a comprehensive foundation, 2/E; Prentice Hall, 1999. 2-Neto, E.; Ling, L. Lee; Sistema de Reconhecimento Facial Baseado em Análise de Componentes Principais; SBT 97, 1997. 3-Neto, E.; Sistema de Identificação Pessoal Utilizando Técnicas de Reconhecimento e Verificação Facial Automáticas. Tese de Mestrado, 1997. 4-Bianchi, R.;Visão Computacional Aplicada ao Controle de Micro Robôs. São Paulo, 2001. 5-Feitosa, R.; Vellasco, M.; Oliveira, D.; Andrade, D.; Maffra, S.; Classificação de Ex-pressões Faciais Utilizando Redes Neurais Backpropagation e RBF. Rio de Janeiro, 1999. 6-Tiscione, J.; Projeto OCHRE. Avaliado como http://www.hhs.net/tiscione/applets/ochre.html. 7-Universidade Estadual de Maringá. Análise de Componentes Principais, Avaliado como http://www.din.uem.br/ia/pca/. Sung, KK.; Poggio, T., Example-Based Learning for View-Based Human Face Detection,IEEE- Transactions on Pattern Analysis and Machine Intelligence, vol. 20, No 1, janeiro de 1998.