Este documento apresenta um algoritmo para detecção de faces em imagens utilizando redes neurais do tipo perceptron multicamadas (MLP). O algoritmo passa por etapas de captura de imagens, extração de características com filtros de Gabor, classificação com MLP e avaliação dos resultados. Testes com diferentes configurações da camada oculta mostraram que uma única unidade oculta obteve a melhor taxa de acerto de 97% com menos épocas de treinamento.
1. Detecção 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
detecção de faces. Uma etapa muito importante para uma grande variedade de sis-temas
biométricos atuais, e com finalidades similares. Este problema consiste, em
identificar em imagens ou vídeos a presença ou não de faces e onde as mesmas estão
localizadas. Por ser uma das primeiras técnicas utilizadas por esses sistemas bio-métricos,
propomos uma solução utilizado redes neurais, com o objetivo de se obter
os melhores resultados possíveis para esta importante etapa, uma vez que ela pode
influenciar no resultado geral destes sistemas.
Palavras-Chave. Detecção de Faces, Sistema Facial , Redes Neurais.
1. Introdução e Motivação
As pesquisas em detecção e reconhecimento de faces são tão antigas quanto à própria área de
Visão Computacional, 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.
Os algoritmos de detecção de face são muito importantes para as áreas de identificação
biométrica, e para outras diversas áreas, sua importância nos leva a estudar seu funcionamento
e impulsiona o desenvolvimento de novas técnicas para aplica-los em tais sistemas que fazem o
uso destes algoritmos.
2. Fundamentação Teórica
A detecção e reconhecimento automático de faces é alvo de uma série de estudos e pesquisas.
Entre as suas aplicações existentes está à biometria, que é que é o estudo das características
físicas e comportamentais individuais, essa que inclui o reconhecimento da íris ou das digitais
por exemplo. Porém, a vantagem da utilização da face como meio de identificação biométrica
é que esse método é menos invasivo e, em geral, não são necessários equipamentos sofisticados
para a obtenção da imagem, podendo-se utilizar câmeras digitais ou webcams (ZHAO, 2003).
O que parece algo simples e automático no ser humano, representa um desafio em sis-temas
computacionais devido às diversas variáveis do ambiente: posição facial e distância com
relação à(s) câmera(s), iluminação do ambiente e possíveis sombras projetadas sobre a face, e
alguns aspectos individuais, como o uso de barba, variações de peso e cortes de cabelo, etc.
Contudo, geralmente algumas características básicas são mantidas independentemente
do ambiente e o reconhecimento é possível através da análise dos padrões encontrados em
diferentes imagens de um mesmo indivíduo (GOTTUMUKKAL e ASARI, 2003; ZHAO, 2003).
2. O reconhecimento, ou detecção de face humana, pode ser feito tanto em imagens quanto
em vídeos. A etapa de detecção facial é uma das iniciais para o reconhecimento, sendo, por-tanto,
de extrema importância para os algoritmos de reconhecimento. Diferentes técnicas po-dem
ser utilizadas na tarefa de detecção facial, podendo-se citar PCA-LDA (Principal Compo-nent
Analysis), proporção divina, RNA SOM (Self-Organizing Map) e, sistemas Fuzzy e RNA
Multi-Layer Perceptron (MLP).
Diversas áreas que se beneficiam de sistemas de reconhecimento de face, incluindo en-tretenimento,
como na interação humano-robô/computador e em vídeo games; segurança da
informação, como em login de dispositivos pessoais, segurança na Internet e segurança em ae-roportos;
e a área de vigilância, como na análise de vídeos de câmeras de segurança (ZHAO,
2003).
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.
4. Estado atual do Trabalho
A detecção de faces consiste na utilização de técnicas computacionais para determinar se exis-tem
faces ou não em uma imagem e, se existirem, deve retornar a localização de cada face.
Embora a detecção de faces seja uma tarefa fácil para os seres humanos, a implementação de
sistemas computacionais que realize esta tarefa é complexa, devido a diversas dificuldades, tais
como.
Pose: a posição de uma ou mais face presente numa imagem varia devido à posição da
face em relação à câmera (frontal, 45 graus, perfil, de cabeça para baixo) e, além disso, alguns
componentes faciais como olhos e nariz, podem estar parcialmente ou totalmente obstruídos
por ruídos.
Presença ou ausência de componentes estruturais da face: a presença de elementos
na face tais como, barba, bigode e óculos, que podem modificar características como a forma,
o tamanho e a cor.
Expressão facial: a expressão da face afeta diretamente a aparência da face.
Oclusão: as faces podem estar parcialmente obstruídas por outros objetos presentes no
mesmo ambiente.
Orientação da imagem: as imagens podem variar diretamente com a rotação da câmera
ao redor do eixo.
Condições da imagem: quando a imagem é formada, fatores de iluminação (espectro,
fonte de distribuição e intensidade) e características da câmera (resposta de sensor e lentes)
podem afetar a aparência da face.
Em geral sistemas de detecção de face, passam pelas seguintes etapas (imagem 1): Cap-tura
dessas imagens, por meio de aparelhos como Webcam, filmadoras ou maquinas digitais,
utilização de filtros e recursos de processamento de imagens para extração das características
pertinentes a face, essas características são passadas adiante para alguma técnica computacional
capaz de identificar e classificar a mesma e por ultimo a saída com a face detectada ou não.
3. Figura 1. Representação de um sistema de reconhecimento de faces
5. Redes Neurais
As redes neurais artificiais tentam simular o cérebro humano de forma computacional, mode-lando
a maneira como o cérebro realiza uma tarefa particular ou função de interesse.
A rede é normalmente implementada utilizando-se componentes eletrônicos ou é simu-lada
por programação em um computador digital através de softwares computacionais. Para
alcançarem bom desempenho, as redes neurais empregam uma interligação maciça de células
computacionais simples denominadas de “neurônios” ou “unidades de processamento”, assim
como ocorrem nos neurônios biológicos, a figura 2 demostra esse modelo de neurônio compu-tacional.
Figura 2. Modelo de um neurônio simples
A forma que esses neurônios estão conectados e organizados definem a arquitetura da
rede neural, e esta arquitetura es diretamente relacionada com o algoritmo de treinamento da
mesma.
Pode-se identificar 4 tipos de arquiteturas de redes neurais: redes feedforward unica-mada
(Perceptron), redes feedforward multicamada, redes recorrentes e estrutura de Lattice
(Reticulada). A seguir, será descrita a arquitetura da rede Perceptron multicamada (MLP)
que é um tipo de rede feedforward, e que será utilizada na implementação deste trabalho.
O perceptron multicamadas (MLP, multilayer perceptron) é uma rede do tipo feed-forward,
que contêm uma ou mais camadas internas (Figura 3). Que tem sido aplicada com
sucesso, na resolução de problemas das mais diversas áreas, podendo-se citar: reconhecimento
de padrões, processamento de imagens e de sinais, e previsão de séries temporais. O seu treina-mento
é realizado de forma supervisionada com o algoritmo de retropropagação de erro (error
back-propagation). Este algoritmo baseia-se na regra de aprendizagem por correção de erro.
4. 6. Análise de Resultados
Para treinamento da rede optamos por utilizar a base de dados LFW composta por 60 ima-gens
em escala de cinza, de faces e 60 imagens de não face. Dessas imagens 40 delas foram
destinadas para treino, 20 validações, e as outras 10 para teste.
Como o filtro Gabor responsável pelo processamento das imagens, faz a leitura delas
na horizontal, cuja as imagens possuem dimensão 18x27 cada uma, teremos como parâmetro
na camada de entrada 2160 dados, e um neurônio na camada de saída responsável pela classi-ficação,
se aquela determinada região trata-se ou não de uma face. A configuração da rede esta
representada na figura 3 conforme descrito anteriormente.
Figura 3. Configuração da rede neural
Para os testes foi executado modificações no número de neurônios da camada oculta,
com a finalidade de verificar sua taxa de acerto, bem como sua performance, ou seja, o número
de épocas necessárias para encontrar o menor erro possível, a tabela 1 descreve estes testes e
seus devidos resultados.
Neurônios Camada Oculta Épocas Taxa de acerto
1 18 97,00%
2 24 88,15%
3 37 87,44%
4 33 84,10%
5 57 79,95%
Tabela 1. Resultados dos testes para 10 execuções
Podemos observar pelos resultados que, apesar de aumentar o número de neurônios da
camada oculta para 2, reduzindo assim o número de épocas necessárias, para se chegar no menor
erro médio quadrático, os resultados de acerto foram inferiores aos encontrados para 1 neurônio
na camada oculta, tomamos então a configuração 1 como a melhor configuração.
Outra observação vizualizada nos experimentos, foi que a partir de 3 neurônios na ca-mada
oculta, o número de épocas necessárias para se chegar no menor erro cresce esporadica-mente.
Os gráficos das figuras 4 e 5 respectivamente demostram esses resultados, de forma
visual do resultado obtido a partir destes testes.
O número de neurônios da camada oculta e única para cada tipo de problema, o que
se pode prever e que sistemas mais complexos tendem a requerer maior número de neurônios
nesta camada.
Por outro lado se muitos neurônios forem utilizados, o treinamento da rede irá se tornar
excessivamente longo e a rede pode sofrer problemas de sobreajuste (’overfitting’) resultando
na perda da capacidade preditiva da rede, pois observa-se pequenos desvios de previsão para
5. os dados usados na fase de treino, mas grandes desvios quando novos dados de entrada são
utilizados. Dados com ruídos ou redundantes podem provocar a falha da rede na convergência
de uma solução genérica, o que pode ter acontecido nestes experimentos.
Figura 4. Performace para 1 neurônios na camada oculta
Figura 5. Performace para 5 neurônios na camada oculta
6. 7. Referências
1-ZHAO, W. et al. Face recognition: A literature survey. Journal ACM Computing
Surveys (CSUR). 2003. Disponível em:<http://www.cs.ucf.edu/ dcm/Teaching/COT4810-
Spring2011/Literature/DiegoVelasquez-FaceRecognitionLiteratureSurvey.pdf>. Acesso em:
01 dez. 2014.
2-GOTTUMUKKAL, R.; ASARI, V. An improved face recognition techni-que
basedon modular PCA approach. Elsevier. 2003. Disponível em:
<http://www.utdallas.edu/ sxb027100/dock/25-429.pdf >. Acesso em: 03 dez.2014.
3-ITO, Y. et al. Detection of eyes by circular Hough transform and histogram of
gradient. 21st International Conference on Pattern Recognition (ICPR 2012).2012. Disponível
em: <http://vision.unipv.it/VA/VAEn/TEST/Circuit%20board%20MM/Eyes.pdf >. Acesso
em: 06 dez. 2014.