Utilizando Eigenfaces para Reconhecimento de Imagens Thales Sehn Körting (Bolsista PIBIC-CNPq), Nelson Lopes Duarte Filho Engenharia de Computação - Fundação Universidade Federal do Rio Grande Av. Itália, Km. 8 s/n o 88302-202 Rio Grande, RS Departamento de Matemática Fundação Universidade Federal do Rio Grande Av. Itália, Km. 8 s/n o 88302-202 Rio Grande, RS thales@ecomp.furg.br, dmtnldf@furg.br Abstract. This paper presents a very utilized thecnique by the pattern recognition community, the Principal Component Analysis, through the use of Eigenfaces, that will be better described as follows. Besides the description of this method, this paper has the exposition of experimental results in face recognition, in order to prove the capacities of such method and the necessities of its use to this kind of application. Resumo. Este artigo apresenta uma técnica bastante utilizada na comunidade de reconhecimento de padrões, a chamada Análise dos Componentes Principais, pelo uso de Eigenfaces, os quais serão melhor descritos a seguir. Além da descrição completa do método, este artigo conta com a exposição de resultados experimentais de reconhecimento de faces, visando comprovar as capacidades do método em questão e a necessidade de seu uso para este tipo de aplicação. 1 Introdução Uma importante área de atuação da informática na vida cotidiana está no reconhecimento de faces, com diversos exemplos de uso, como na identificação de pessoas em cartões de crédito, carteiras de motorista, passaportes, etc., além da utilização em áreas de segurança, como retrato-falado, rastreamento em multidões, entre outros [Romdhani, 1996]. Podemos utilizar esta área para o próprio estudo da inteligência humana (um dos objetivos principais da Inteligência Artificial), tanto que Neuro-cientistas vêm conduzindo pesquisas neste campo. Suas propostas são de entender os mecanismos de visão do cérebro humano. Uma das técnicas utilizadas por eles é chamada Análise dos Componentes Principais (ou PCA - Principal Component Analysis) [Romdhani, 1996], e é esta técnica a inspiradora do método aqui apresentado.
Entretanto, para capacitar um computador de tal habilidade, precisamos treiná-lo com a utilização de imagens de referência, as quais possuem um tamanho relativamente grande, e como são necessárias diversas imagens visando o aumento da robustez do sistema, torna-se bastante difícil a criação de métodos com os quais se possa trabalhar em tempo real, visto que o processamento de todas essas informações contém um custo bastante elevado. A utilização de eigenfaces 1 visa reduzir a dimensionalidade dos dados de treinamento, com o intuito de contornar o problema recém citado, sendo sua descrição o objetivo principal deste trabalho. Atualmente diversas pesquisas têm sido conduzidas utilizando eigenfaces com o objetivo de aperfeiçoar o método, e o que se encontra na bibliografia são diversas técnicas derivadas da transformada PCA, como modelagem de densidade, eigenfeatures, similaridade Bayesiana, entre outros [Cendrillon e Lovell, 1999]. Além disso muitos projetos já vêm utilizando eigenfaces para o processamento de imagens em geral, como detecção de faces [Turk e Pentland, 1991], ou apenas dos olhos [Marques, Orlans e Piszcz, 2003], ou mesmo dos demais pontos principais de uma face, como nariz, boca, etc. [Liou, 1997] Ao longo deste artigo encontraremos a descrição do método, apresentando uma série de testes realizados em bases de dados contendo imagens de faces humanas, através de um sistema implementado para esse propósito, o qual é treinado com essa base e se torna capaz de discernir, ao receber uma nova imagem, se essa contém uma face humana e se a mesma (sendo uma face) é reconhecida dentro da base de treinamento. 2 Imagens Para a realização deste artigo foram utilizados alguns bancos de imagens de faces humanas 2, provenientes de duas fontes. O primeiro face bank utilizado foi o chamado ORL database 3 contendo um conjunto de imagens de faces criadas entre Abril de 1992 e Abril de 1994. Existem 10 imagens para cada uma das 40 pessoas envolvidas [Dogu, Kaynar e Vural, 2000]. O segundo face bank, disponível em [Danner e Datta, 2000] contém 86 imagens de 31 faces (2 ou 3 por pessoa). No primeiro face bank, como mostrado na figura 1, as imagens são das faces inteiras, com um pequeno fundo. Já no segundo as imagens foram recortadas, ressaltando pontos que vão desde a sobrancelha até o queixo. 1 Através da transformada PCA, também conhecida por transformada de Hotelling e por expansão de Karhunen-Loève [Campos, 2000]. 2 Os exemplos apresentados contém imagens de homens e mulheres. Serão referenciados por Face Banks. 3 Olivetti Research Laboratory
Figura 1: ORL Face Bank O computador interpretará as imagens dos face banks como vetores em uma matriz que as contém, para isso devemos fazer o processo de vetorização: sendo h o número de linhas de uma imagem e w o número de colunas, podese dizer que uma imagem é um padrão de características, ou um vetor no espaço -dimensional, o qual chamaremos de espaço de imagens [Campos, 2000]. Para trabalharmos com a técnica que será apresentada, fazemos a transposição das imagens para o espaço de imagens, como visto em [Campos, 2000], construindo assim a matriz, de tamanho, sendo e n o número de imagens a serem utilizadas durante a fase de treinamento. Conforme dito anteriormente, o uso de eigenfaces considera esse espaço de imagens como um espaço vetorial ( -dimensional), e entende cada uma das linhas de como um ponto neste espaço. O uso de técnicas da álgebra linear nos ajuda a reduzir os cálculos na hora de estabelecermos o reconhecimento das imagens envolvidas, através da projeção dos vetores (faces) em sub-espaços vetoriais, daí o uso de auto-valores e autovetores (os quais estamos chamando de eigenfaces). Esses auto-vetores, conforme a álgebra linear, refletem em um conjunto de vetores com direções que representam a maioria das direções dos demais vetores já presentes neste espaço. Para o reconhecimento de faces isto se faz importante, na medida em que os auto-vetores refletirão os componentes das imagens que são mais importantes ao reconhecimento, ou seja, aqueles que mais se fazem presentes em todas as imagens 4. Cabe salientar que os auto-valores refletem a importância dos auto-vetores, ou seja, os auto-vetores com maiores auto-valores refletirão em componentes das imagens que são mais importantes do que outros com auto-valores menores. Autovetores com auto-valores nulos poderão ser descartados, e isso é importante tam- 4 Daí a explicação do nome da técnica também ser conhecida como Análise dos Componentes Principais, ou PCA - Principal Component Analysis
bém pela redução de dimensionalidade na hora da realização das computações em busca do reconhecimento das faces. 3 Eigenfaces Já entendendo como funciona a criação do espaço de imagens e o que significam auto-valores e auto-vetores, podemos partir para a descrição do método 5. Pela facilidade do entendimento, serão utilizadas bastantes equações no formato matricial, acompanhadas por pequenas descrições dos passos envolvidos e das dimensionalidades de cada matriz gerada. Para a geração dos auto-valores e auto-vetores, precisamos inicialmente construir o espaço de imagens, e isso é feito da seguinte forma [Campos, 2000]: contento n cópias da média das imagens contidas em : Tendo um conjunto de n imagens para o treinamento,, criamos a matriz A diferença entre cada face sendo e a média é gravada em : Com esses dados podemos montar a matriz de covariância das imagens de treinamento. Os eigenfaces deveriam ser extraídos desta matriz, C, que é construída como segue: No entanto encontrar os auto-vetores de uma matriz é uma tarefa intratável para tamanhos de imagens típicos, de modo que uma maneira simplificada de cálculo deve ser adotada [Turk, 1991]. Consideremos a matriz!. Os primeiros n auto-vetores de C podem ser expressados como uma combinação linear entre os auto-vetores de L (denotados por V) e as imagens contidas em A [Wei, 2000], como mostrado: " #$ 5 A proposta original do uso deste método encontra-se em [Turk, 1991]
Figura 2: 3 primeiros e 3 últimos eigenfaces gerados Neste momento já possuímos os eigenfaces, armazenados na matriz U. Se mostrarmos cada linha desta matriz como uma imagem, perceberemos que estas apresentam similaridades com faces humanas, ressaltando as características principais do banco de imagens de faces utilizado. O reconhecimento de faces por eigenfaces é composto de dois estágios: um para o treinamento e outro para o reconhecimento [Wei, 2000]. No estágio de treinamento a face de cada indivíduo, é projetada no espaço de imagens, gerando a matriz " : Será com esta matriz que realizaremos as comparações na hora de executarmos o reconhecimento das imagens. Observe que ela possui uma dimensão muito menor do que a das imagens de entrada; esse é o objetivo principal da utilização dos eigenfaces. Para a posterior classificação das imagens, precisamos calcular um valor limiar para representar a maior distância aceitável entre imagens de teste e as imagens de treinamento: 4 Reconhecimento Como dito anteriormente, se mostrarmos os eigenfaces como imagens veremos que os mesmos apresentam figuras que lembram faces humanas, ou seja, imagens contendo os componentes principais das faces humanas. Eigenfaces com menores auto-valores apresentam imagens sem muitas características interessantes, por isso muitas vezes são descartadas. Os 3 primeiros e os 3 últimos eigenfaces gerados estão mostrados na figura 2.
Consideremos uma imagem de prova,, a qual será utilizada para testar o sistema, que deve discernir se a imagem representa ou não uma face humana além de, se realmente representar, conseguir detectar se a face apresentada é de alguma pessoa cuja face está no banco de treinamento ou se é outra pessoa. Para iniciarmos o processo, projetamos no espaço de imagens através do seguinte cômputo: " Também, para uso no cálculo posterior, reconstruímos a imagem de prova 6, guardando-a em, o que é feito pela equação abaixo: " será utilizada para que o sistema possa realizar a distinção entre imagens de prova contendo faces humanas e imagens quaisquer. Para isso calculamos a distância (vetorial) entre a imagem de prova e sua reconstrução: Além disso precisamos saber a distância entre a imagem de prova e todas as imagens do banco de faces. Armazenamos esses resultados em : Finalmente, com o cálculo de todos estes valores, podemos realizar a classificação da imagem de prova, utilizando a lógica a seguir: SE ENTAO a imagem não representa uma face humana; SE E ENTAO a imagem representa uma face humana, mas desconhecida pelo banco de faces; SE E ENTAO a imagem representa a face do indivíduo contido no índice k do banco de faces. 6 Se utilizarmos uma imagem já conhecida, devemos perceber que sua reconstrução será praticamente idêntica à imagem original
Figura 3: Testes realizados: esquerda, com sucesso e direita, sem sucesso Imagens utilizadas Resultados fase treinanento teste acertos erros taxa de acerto 1 a 120 (3 por pessoa) 280 237 43 84,54% 2 a 240 (6 por pessoa) 160 152 8 95,00% Tabela 1: Resultados 5 Conclusões e Trabalhos Futuros Aqui são apresentados alguns testes realizados na fase inicial do projeto 7, que visam ratificar a utilização da técnica explicada e impulsionam a continuidade da pesquisa para o aprimoramento dos resultados, os quais estão mostrados da seguinte maneira (figura 3): uma imagem de prova à esquerda, não pertencente ao banco de faces do treinamento, o resultado de sua reconstrução a partir da transformada PCA no centro e, em caso de ser detectada como um indivíduo conhecido, a face com a qual a imagem de prova mais se assemelha à direita. Na tabela 1 vemos uma descrição mais quantitativa dos primeiros resultados, utilizando 3 imagens de cada pessoa para a primeira fase e 6 imagens em um segundo momento, o que naturalmente aumentou a taxa de acertos. Como se pode perceber, a utilização da técnica proposta é bastante satisfatória quando utilizada sobre uma base de dados (faces) relativamente grande, permitindo ao sistema inferir, das imagens de prova posteriormente apresentadas, suas principais características e, partindo delas, realizar o reconhecimento das imagens utilizando um número bastante reduzido de cálculos. Pretende-se, ainda, desenvolver um sistema completo de reconhecimento de faces, com características de adaptação a faces desconhecidas, tornando o sistema capaz de aprender a reconhecer novas faces conforme a apresentação de indivíduos desconhecidos, e também de ratificar seu conhecimento sobre as 7 Todos executados sobre o banco de faces ORL
imagens já conhecidas. Além disso mais testes deverão ser realizados, visando a publicação dos resultados de forma estatística, comprovando a necessidade do uso de eigenfaces para este tipo de aplicação. Referências TURK, M. A., PENTLAND, A. P. Eigenfaces for Recognition. Journal of cognitive neuroscience, Vol. 3, No. 1, 1991. TURK, M. A., PENTLAND, A. P. Face Recognition Using Eigenfaces. IEEE CVPR, 1991. PENTLAND, A., MOGHADDAM, B., STARNER, T. View-Based and Modular Eigenspaces for Face Recognition. IEEE CVPR, 1994. CAMPOS, T. E. Técnicas de Seleção de Atributos e de Classificação para Reconhecimento de Faces. Dissertação de Mestrado, Departamento de Ciência da Computação, IME - USP. 2000. ROMDHANI, S. Face Recognition Using Principal Component Analysis. Dissertação de Mestrado. Departament of Electronics and Electrical Engineering, University of Glasgow, UK. 1996 DANNER, T. DATTA, I. Eigenfaces Group. Disponível em http://www.owlnet.rice.edu/~elec301/projects99/faces/. Acessado em 09/02/2004. WEI, S. Shape Analysis in Computer Vision Final Project Report: Face Recognition. Disponível em http://www.cim.mcgill.ca/~wsun/sa/project/. Acessado em 05/02/2004. DOGU, H., KAYNAR, Í., VURAL, F. T. Y. Face Recognition Using Eigenfaces. Disponível em http://www.cs.bilkent.edu.tr/~ilknurk/ undergraduate_projects/564/564_project_report_files/. Acessado em 02/05/2004. LIOU, C. J. A Real Time Face Recognition System. Departament of Electrical Engineering, National Taiwan University. 1997. CENDRILLON, R. LOVELL, B. C. Real Time Face Recognition using Eigenfaces. Departament of Computer Science and Electrical Engineering - UQ. 1999 MARQUES, J., ORLANS, N. M., PISZCZ, A.T. Effects of Eye Position on Eigenface-Based Face Recognition Scoring. The MITRE Corporation. 2003 LUO, M., PANITCHOB, Y. Eigenfaces for Face Recognition. ECE. 2000