Sistema de Controle de Acesso Baseado no Reconhecimento de Faces Access Control System Based on Face Recognition Tiago A. Neves, Welton S. De Oliveira e Jean-Jacques De Groote Faculdades COC de Ribeirão Preto tiagoecp@gmail.com; welton.ecp@gmail.com; jean_groote@yahoo.com.br RESUMO Neste trabalho é apresentado um sistema para o reconhecimento de faces utilizando técnicas de Processamento Digital de Imagens, de modo que, por meio da comunicação do computador com um dispositivo eletrônico, seja possível controlar o acesso de pessoas a áreas restritas. Com o auxílio de uma câmera ligada a um computador a captura da imagem da face de uma pessoa é realizada e, através de técnicas biométricas, a imagem é caracterizada por meio do cálculo da distância relativa entre os olhos, entre os olhos e o nariz, e a distância entre os olhos e a boca. Palavras-Chave: reconhecimento de faces, técnicas de processamento de Imagens. ABSTRACT In this work a face recognition system based on image processing techniques is presented, in such a way that with a computer parallel communication port it is possible to control people access to restricted areas. By using webcams faces images are captured and identified by the relative distance between the eyes, eyes-nose, and eyes-mouth. Key-words: face recognition, image processing techniques. 1. INTRODUÇÃO Atualmente vem aumentando a utilização de sistemas de identificação pessoal, assim como o interesse em métodos de reconhecimento baseados em características biométricas. Os sistemas biométricos atualmente investigados baseiam-se essencialmente em impressões digitais, voz, assinatura pessoais, íris e faces [1]. Por sua vez, o reconhecimento facial vem sendo estudado há algum tempo, como por exemplo, Neto em 1997 [2], Oliveira em 2003 [3] e Macheraldi em 2007 [4], que utilizaram redes neurais, Thomazini em 2008 [5], que utilizou a técnica de estatística, Almeida em 2006 [6], que utilizou a técnica Principal Component Analysis (PCA) e a transformada de Wavelet, e Campos em 2001 [7], que utilizou a regra dos K vizinhos mais próximos. A técnica Principal Component Analysis (PCA) foi desenvolvida por Karl Pearson em 1901 [8], e é a mais antiga e conhecida técnica de análise multivariada, utilizada para a redução do espaço formado com os dados obtidos, permitindo a análise do agrupamento dos dados, a investigação de dependência entre estes, e a realização de previsões. Assim, essa técnica permite aplicar um processo de diminuição da dimensão dos dados, e mesmo havendo perda de informação, essa perda é reduzida. A técnica Eigenfaces foi desenvolvida por Sirovick e Kirby para representar de forma eficiente imagens de rostos utilizando PCA [9], através desta técnica, uma coleção de imagens de faces pode ser aproximadamente reconstruída armazenando uma pequena coleção de pesos para cada rosto e um pequeno conjunto de imagens padrão. Segundo Pentland (1991) [9], se uma infinidade de imagens de faces pode ser reconstruída pela soma ponderada de uma pequena coleção de características de imagens, então uma maneira eficiente de reconhecer faces poderia ser a de construir as características de imagens de faces e reconhecer rostos comparando os pesos necessários para reconstruí-las com os pesos associados com os indivíduos conhecidos. A proposta deste trabalho é apresentar um sistema capaz de realizar o reconhecimento de faces baseado em técnicas de processamento digital de imagens para extração de características necessárias para o reconhecimento em tempo real. No processo utilizado para o reconhecimento facial são utilizadas como base as medidas obtidas entre o olho direto e o nariz, olho esquerdo e o nariz, olho direito e a boca, e olho esquerdo e a boca. O propósito do método desenvolvido é permitir que resultados precisos sejam obtidos por meio de um algoritmo que possa ser executado em sistemas de modesta capacidade computacional. 2. METODOLOGIA Para o reconhecimento de faces foi desenvolvido um software que realiza o processamento digital da imagem adquirida através de uma câmera digital. O método utilizado é baseado na identificação dos atributos faciais, sobrancelhas, olhos, nariz e boca da face de um usuário. O processo é utilizado em uma primeira etapa no cadastro dos usuários, e em seguida, 163
no caso de reconhecimento positivo, outro módulo do software verifica se é permitido o acesso a áreas restritas. A simulação de acesso é realizada por meio de um sinal enviado a porta paralela do computador, que pode ser utilizado para acionar um dispositivo eletrônico de controle. O programa foi elaborado utilizando a IDE Delphi, versão 7. O Delphi é uma plataforma de desenvolvimento adequada à proposta desta pesquisa por permitir versatilidade na implementação dos algoritmos com componentes visuais. Além disso, a linguagem base, o pascal, facilita o processo de verificação de erros, e o programa executável resultante é significativamente mais rápido que versões desenvolvidas em linguagens baseadas em compiladores virtuais. Uma etapa fundamental do trabalho foi a implementação do método de aquisição dos dados das imagens da vídeo-câmera, no caso uma webcam 2 Mpixels acoplada ao próprio computador, um notebook DELL, Inspiron 1525. Para isso, o componente opensource DSPack para aplicações multimídia foi utilizado. Suas classes e métodos permitem a aquisição das imagens de câmeras de vídeo digital quadro a quadro. Cada imagem capturada é então decomposta nos componentes RGB de cada pixel e atribuídos a matrizes numéricas utilizadas na implementação das técnicas de processamento das imagens. Para auxiliar a identificação dos elementos básicos do rosto citados, foi estabelecida uma grade que separa a imagem em quatro regiões, como pode ser observado na Fig. 1. algoritmo estabelece uma busca por atributos faciais na imagem iniciando pela sobrancelha direita e esquerda. Os algoritmos realizam as buscas pelos atributos faciais em locais pré-determinados, enumerados de um a quatro (Fig. 1), tornando a busca mais rápida. O usuário enquadra o rosto na moldura central da tela no processo de cadastramento e no processo de reconhecimento. Para o processo de busca foram implementadas máscaras que, ao percorrer a imagem em um processo de convolução, fazem uma derivada vertical regional (região superior menos a inferior, por exemplo), que resulta no destaque de áreas que apresentam transições de brilho. Na Fig. 2, pode ser observado o resultado deste filtro, notando-se que as regiões das sobrancelhas, olhos, nariz e boca ficaram destacadas na imagem. Figura 2 Resultado da convolução utilizando a máscara 40x34 pixels. Na Tabela 1 pode-se observar um exemplo reduzido da máscara que foi utilizada nos algoritmos de busca. Figura 1: Grade desenvolvida para auxiliar a identificação dos elementos de interesse da face. Desta forma, o algoritmo torna-se mais rápido considerando que as regiões de busca são reduzidas, e específicas a cada item (olhos, nariz e boca). Além disso, a questão de escala relativa à distância face - câmera deixa de ser um fator limitante. Estes pontos foram levados em consideração para tornar possível a identificação dos elementos da imagem em tempo real. Tanto no processo de cadastramento do usuário quanto no processo de reconhecimento, o Tabela 1 Máscara de convolução 10x8 3. SOFTWARE O algoritmo desenvolvido estabelece inicialmente a busca pela sobrancelha direita na região 1 da imagem, e a sobrancelha esquerda na região 2, com o processo descrito na seção anterior. Foi utilizada uma máscara de tamanho 49x34 pixels para realizar a busca pelas sobrancelhas, sendo sua metade superior com valor 1 e a metade inferior com valor -1. Quando a aplicação da máscara indica a maior transição naquela região, é inserido um marcador (shape) neste local, e a 164
posição x e y da sobrancelha direita e esquerda são registradas (Fig. 3). O shape é um componente do Delphi, com forma retangular, que pode ser superposto a imagem e serve como indicador visual para auxiliar a análise dos resultados. imagem, a partir da posição x do olho direito, até a posição x do olho esquerdo. Foi utilizada uma máscara 89x33 pixels que percorre a imagem guardando a posição x e y e colocando um marcador no local que apresenta o maior valor do somatório dos valores Vermelho/Verde dos pixels (Fig. 3d). Tabela 3 Máscara utilizada na busca pela boca Figura 3 Identificação das sobrancelhas (a), olhos (b), nariz (c) e boca (d). A busca pelo olho direito e esquerdo é feita a partir da posição y da sobrancelha direita e esquerda, respectivamente, utilizando uma máscara de 25x34 pixels. A região de busca é delimitada pela mesma área das sobrancelhas. Quando o software encontra a maior transição a partir da posição y da sobrancelha posiciona um marcador e guarda a posição x e y referente a cada olho. Para realizar a busca do nariz (Fig. 3c), foi utilizada uma máscara diferente das anteriores, neste caso foi desenvolvida uma máscara Fx17 pixels, sendo F a distância entre os olhos dividida por dois, um exemplo deste filtro pode ser visto na Tabela 2. A busca é feita na região 3 da imagem, entre a posição x do olho direito e esquerdo. O software coloca um marcador e guarda a posição x e y do local que apresenta a maior transição de tonalidade dos pixels na imagem (Fig. 3c). Após os processos de busca pelos atributos faciais, são calculadas as distâncias entre os olhos e o nariz, e entre os olhos e a boca. No processo de cadastramento, o software captura e processa um número pré-estabelecido de imagens, calculando as quatro distâncias Euclidianas, sendo em seguida realizada a média referente a cada distância, e calculada a variância e o desvio padrão de cada uma. Todos os dados obtidos (média, variância e desvio padrão) são armazenados em um arquivo para serem utilizados no processo de reconhecimento do usuário. Para o processo de reconhecimento, o aplicativo captura e processa a imagem, determinando as quatro distâncias, e então realiza uma comparação com os dados armazenados no arquivo, verificando se os dados obtidos estão entre a média, mais ou menos meio do desvio padrão. O usuário será aceito se três entre as quatro medidas estiverem dentro deste intervalo, caso contrário o usuário será recusado. 4. RESULTADOS Inicialmente foram capturadas cem medidas entre os olhos e o nariz, e entre os olhos e a boca, de quatro pessoas diferentes. A partir destes dados foram elaborados histogramas para analisar as dispersões dos valores obtidos. Na Fig. 4 são apresentados os histogramas de cem distâncias entre os olhos e o nariz, e entre os olhos e a boca. Tabela 2 Modelo reduzido da máscara utilizada na busca pelo nariz Para localizar a boca, foi desenvolvido outro tipo de máscara (Tabela 3), que percorre a imagem fazendo o somatório dos valores da razão Vermelho/Verde de cada pixel. O objetivo é destacar a diferença de tonalidade pele/boca. Para obter maior precisão, a busca pela boca foi realizada na região 4 da 165
Tabela 4 Testes realizados Nome Acertos Falsos Falsos Total de Negativos Positivos Tentativas Precisão Pessoa1 28 2 0 30 93,33% Pessoa2 19 8 3 30 63,33% Pessoa3 27 3 0 30 90,00% Pessoa4 22 3 5 30 73,33% Total 96 16 8 120 80,00% Figura 4 Histogramas das distâncias identificadas Através da análise modal dos histogramas, pode-se notar que possuem valores diferentes, como por exemplo, no histograma Olho Direito - Nariz, a maioria dos valores ficou em torno de 0.825, 1.028, 0.960 e 0.977, para Pessoa1, Pessoa2, Pessoa3 e Pessoa4, respectivamente. As distâncias entre os elementos foram divididas pela distância entre os olhos direito e esquerdo para tornar as medidas independentes da distância que o usuário estiver da câmera. Através da análise modal dos histogramas pode-se perceber que em alguns casos, como por exemplo, no histograma Olho Esquerdo Nariz, a Pessoa1 e a Pessoa3 possuem a mesma classe modal, e nos histogramas Olho Direito Boca e Olho Esquerdo - Boca, a Pessoa2 e a Pessoa4 possuem também a mesma classe modal. Com isto, pode-se notar que apenas uma distância não seria suficiente para a realização do reconhecimento facial. Quanto menor o número de parâmetros utilizados no processo de reconhecimento facial, menor será o índice de falsos negativos (o sistema recusa um usuário legítimo), porém, será maior o índice de falsos positivos (o sistema aceita um usuário que não está cadastrado), pois aumenta a probabilidade de usuários com parâmetros similares. Por outro lado, quanto maior o número de parâmetros utilizados, maior deve ser a precisão do processo de identificação dos atributos faciais para evitar o aumento do número de falsos negativos. Foram realizados trinta testes com quatro pessoas distintas, sendo elas Pessoa1, Pessoa2, Pessoa3 e Pessoa4. As quatro pessoas já estavam cadastradas no sistema, e o teste foi realizado com cada uma separadamente. A Tabela 4 apresenta a quantidade de acertos, falsos negativos, falsos positivos e a precisão do software para cada usuário que realizou o teste. Os resultados apresentados mostram os limites do procedimento. De um total de cento e vinte tentativas, obtiveram-se noventa e seis acertos, dezesseis falsos negativos e oito falsos positivos. O software desenvolvido apresentou uma precisão de 80,00% de acertos nos testes realizados. 5. CONCLUSÃO Neste trabalho foi realizada uma pesquisa com o objetivo desenvolver um sistema de controle de acesso baseado no reconhecimento de faces, para impedir ou permitir o acesso de pessoas a certas áreas restritas. Foram utilizadas técnicas de Processamento Digital de Imagens para criar algoritmos capazes de realizar a busca por atributos faciais nas imagens capturadas pela câmera. Técnicas de programação da plataforma de desenvolvimento Delphi também foram investigadas, de forma a permitir a aquisição de imagens de webcams, e a implementação dos algoritmos necessários para o processamento das imagens em tempo real. Foram criados algoritmos de busca para os atributos faciais sobrancelhas, olhos, nariz e boca, de forma que cada algoritmo percorre uma área prédeterminada da imagem tornando assim a busca mais rápida. O resultado do processo de busca se mostrou eficiente nos testes realizados, com a identificação de todos os atributos a uma velocidade de duas imagens da vídeo-câmera por segundo. Esta velocidade permite a determinação de um valor médio para as medidas, aumentando a precisão da identificação dos usuários. No processo de reconhecimento facial o software desenvolvido utiliza propriedades estatísticas das distribuições dos dados adquiridos, fornecendo 80% de acertos nos testes realizados com quatro pessoas distintas. Esse resultado pode ser melhorado significativamente com o desenvolvimento de um ajuste fino na determinação das coordenadas dos atributos. Outra forma de tornar o processo mais eficiente é a utilização de algoritmos baseados em inteligência artificial para classificar os usuários utilizando as distâncias dos elementos faciais como conjunto de treinamento. 166
6. REFERÊNCIAS [1] PINHEIRO, J. M. Biometria nos Sistemas Computacionais: Você é a Senha. Rio de Janeiro: Editora Ciência Moderna Ltda., 2008. [2] NETO, E. L. A. Sistemas de Identificação Pessoal Utilizando Técnicas de Reconhecimento e Verificação Facial Automáticas. Dissertação de Mestrado em Engenharia Elétrica. Universidade de Campinas. São Paulo, 1997. Disponível em: http://libdigi.unicamp.br/document/?code=vtls0001150 09, Acessado em: 5/06/2009. [3] OLIVEIRA, R. D. Reconhecimento de faces usando redes neurais e biometria. Dissertação de Mestrado do Curso de Pós-Graduação em Computação Aplicada. INPE (Instituto Nacional de Pesquisas Espaciais) de São José dos Campos, 2003. [4] MACHERALDI, M. L. Eficiência da utilização de Redes Neurais para Reconhecimento de Faces. Trabalho de Conclusão de Curso em Ciências da Computação. Faculdades COC. Ribeirão Preto, 2007. [5] THOMAZINI, J. B. A. Identificação por assinatura biométrica facial. Trabalho de Conclusão de Curso em Ciências da Computação. Faculdades COC. Ribeirão Preto 2009. [6] ALMEIDA, O. C. P. Técnica de processamento de imagens para localização e reconhecimento de faces. Dissertação de Mestrado em Ciências da Computação e Matemática Computacional. Universidade de São Paulo. São Carlos, 2006. Disponível em: http://www.teses.usp.br/teses/disponiveis/55/55134/tde -22012007-160023/, Acessado em: 02/06/2009. [7] CAMPOS, T. E. Técnicas de seleção de características com aplicações em reconhecimento de faces. Dissertação de Mestrado em Ciências da Computação. Universidade de São Paulo. São Paulo, 2001. Disponível em: http://www.teses.usp.br/teses/disponiveis/45/45134/tde -23112001-085134/, Acessado em: 02/06/2009. [8] PEARSON, K. On line and planes of closest fit to systems of points in space. Disponível em: <http://stat.smmu.edu.cn/history/pearson1901.pdf>, Acessado em: 14/02/2009. [9] TURK, M. e PENTLAND, A. Face recognition using eigenfaces. Proc. IEEE Conference on Computer Vision and Pattern Recognition. PP. 586-591. Disponível em: < http://www.cs.ucsb.edu/~mturk/papers/mturk- CVPR91.pdf>, Acessado em: 15/05/2009. 167