DGERT   APCER
Relações de compromisso

Reconhecimento de padrões através de Eigenfaces


Este método consiste na extracção de toda a informação relevante da imagem facial analisada, codificação dessa informação o mais eficientemente possível e posterior comparação da face codificada com toda uma base de dados composta por faces codificadas de forma semelhante. Na realidade, é uma das formas mais intuitivas de classificar uma face.

Contrariamente a técnicas mais antigas, que se baseavam nas características particulares das faces, este método utiliza uma maior quantidade de informação, devido a classificar as faces com base em padrões faciais gerais. Esta técnica é semelhante à transformada de Fourier (FT), utilizada muito frequentemente em aplicações relacionadas com processamento de sinais (Figura 1), esta operação matemática consiste na decomposição de uma função (sinal adquirido) em várias funções oscilatórias com parâmetros bem conhecidos (por exemplo, amplitude e frequência).

ReconhecimentoFacial2-1
Figura 1. No lado esquerdo da figura encontra-se a representação de um sinal eléctrico (adquirido num osciloscópio), à direita encontram-se representadas as várias funções (do tipo seno) obtidas através da aplicação da transformada de Fourier ao sinal adquirido.

Este método de comparação facial consiste numa aproximação semelhante à FT. Cada face é decomposta numa série de componentes principais, ou vectores próprios da matriz covariância, definidos por um conjunto de faces de referência. Esta técnica foi desenvolvida por Sirovich e Kirby (1987) com o objectivo de representar, de forma eficiente, imagens de faces através da análise de componentes principais (PCA - Principal Component Analysis). Basicamente, cada face pode ser representada como a combinação linear de diversas Eigenfaces.

Assuma-se uma determinada imagem facial I(x,y) num espaço bidimensional N×N. Essa imagem pode ser encarada como um vector de dimensão N2. Nesse caso uma imagem com 256×256 pixéis passa a ser considerada um vector de dimensão 65,536, ou então um ponto num espaço com 65,536 dimensões. Como resultado, um conjunto de imagens pode mapear um grupo de pontos neste espaço gigantesco.

Todas as faces são semelhantes de uma forma geral (dois olhos, nariz, boca, ...). Como tal, não se vão distribuir de forma aleatória neste espaço enorme. Devido a essa similaridade, podem ser descritas por um subespaço relativamente pequeno. O objectivo deste método consiste em encontrar os vectores que melhor representam a distribuição das faces estudadas em todo o espaço da imagem. Esses vectores vão definir o subespaço das imagens faciais, designado por espaço facial.

Cada um desses vectores tem dimensão N2, descreve uma imagem N×N e consiste na combinação linear das imagens faciais originais. Uma vez que esses vectores são os vectores próprios (eigenvectors) da matriz covariância correspondente às imagens faciais originais, e uma vez que se assemelham a faces, são designados eigenfaces.

A Figura 2 inclui algumas imagens pertencentes a um conjunto de treino. Idealmente todas as imagens devem ter as mesmas dimensões (em pixéis) e estar representadas em gradiente cinza com valores entre 0 e 255. Cada imagem desse conjunto com M elementos representa um vector Γi12,...,ΓM). A utilização de imagens diferentes para a mesma pessoa melhora a exactidão do processo (aumento de informação disponível para cada indivíduo).

ReconhecimentoFacial2-2
Figura 2. Exemplos de imagens faciais pertencentes a um conjunto de treino.

Em seguida, a face média (ψ) do conjunto é determinada através da expressão (1). Um exemplo do tipo de resultado obtido pode ser observado na Figura 3.

ReconhecimentoFacial2-7
Ver Fórmula (1)

Cada uma das faces do conjunto de treino difere da média num vector ϕii-ψ. Este conjunto de vectores é posteriormente sujeito a uma análise de componentes principais, com o objectivo de determinar um conjunto com M vectores ortonormais (un) que melhor representem a distribuição dos dados. O vector de ordem k, uk, é escolhido de tal forma que (2) seja máximo:

Ver Fórmula (2)

tendo em conta que:

Ver Fórmula (3)

Os vectores uk e os valores λk representam respectivamente os vectores e valores próprios da matriz covariância:

Ver Fórmula (4)

Onde a matriz A=ϕ1 ϕ2 ... ϕM. O facto da matriz C ser de dimensão N2×N2, torna extremamente difícil determinar os seus N2 vectores próprios. Contudo, de acordo com a PCA, é possível reduzir o número de vectores próprios de N2 (dimensão do espaço das faces) para M (número de imagens do conjunto de treino). Uma vez que M≪N2, os cálculos ficam consideravelmente simplificados.

ReconhecimentoFacial2-3
Figura 3. Face média (ψ) do conjunto de treino.

Torna-se então possível determinar a solução da matriz C, resolvendo primeiro uma matriz M×M e aplicando combinações lineares apropriadas das imagens faciais ϕi. Considerem-se os vectores próprios vi de AT A tais que:

ReconhecimentoFacial2-8

Ver Fórmula (5)

Pré-multiplicando ambos os lados de (5) por A:

Ver Fórmula (6)

Ficando demonstrado que Avi são os vectores próprios de C=AAT. Com base nesta manipulação matemática é possível construir uma matriz L=AT A, onde

Ver Fórmula 7

e determinar os M vectores próprios (vi) de L. Estes vectores determinam as combinações lineares das M imagens do conjunto de treino que dão origem às eigenfaces (ui).

Ver Fórmula (8)

A Figura 4 representa as dez imagens (eigenfaces) com maior valor próprio associado. Ou seja, as que representam a maior variância no espaço das faces. Na prática é possível reconstruir qualquer imagem pertencente ao conjunto com apenas M' vectores próprios (M'≈0.25M).

ReconhecimentoFacial2-4
Figura 4. As dez eigenfaces com maior variância no espaço das faces definido pelo conjunto de treino,
do qual as imagens apresentadas na Figura 2 fazem parte.

As eigenfaces determinadas a partir dos vectores próprios de L que apresentem maiores valores próprios podem então ser utilizadas para a classificação/identificação de faces. Para tal, a face a testar (Γ) é transformada nas suas componentes eigenface. Ou seja, é projectada no espaço das faces, através de:

ReconhecimentoFacial2-9

Ver Fórmula (9)

Para k=1,2,...,M'. Os pesos (ωk) descrevem a contribuição de cada eigenface para a representação da imagem sob teste. O vector ΩT1 ω2 ... ωM' pode então ser utilizado como algoritmo de reconhecimento de padrões para determinar qual a classe facial, caso exista alguma, que melhor descreve a face testada. Para tal, basta calcular a classe k que minimiza a distância euclidiana:

Ver Fórmula (10)

Onde Ωk representa o vector que descreve a classe facial k. Cada classe facial Ωi é calculada através da média dos resultados da representação por eigenfaces de um pequeno número de faces (#faces=1 para maior precisão). Para além da distância a cada classe facial k (εk), é também possível calcular a distância entre a imagem testada e o espaço das faces:

Ver Fórmula (11)

com:

Ver Fórmula  (12)

Existem então quatro resultados possíveis para qualquer imagem submetida:

  • Próxima do espaço facial e de alguma classe facial - indivíduo reconhecido e identificado;
  • Próxima do espaço facial mas não de uma classe facial - reconhecimento de um indivíduo desconhecido;
  • Distante do espaço facial e perto de uma classe facial - não é uma face (falso positivo);
  • Distante do espaço facial e de qualquer classe facial - não é uma face.

Um dos maiores problemas nos processos biométricos que envolvem reconhecimento facial é a pose facial. Basicamente, a posição da cabeça é um problema 3D para o reconhecimento facial de imagens 2D. Uma das propostas para solucionar este problema consiste em utilizar a técnica descrita anteriormente (eigenfaces) para determinar a posição da cabeça. Contrariamente à Figura 3, onde a posição das cabeças testadas deve ser mantida constante, a Figura 5 representa o tipo de conjunto de treino que deve ser utilizado.

ReconhecimentoFacial2-5
Figura 5. Amostra do conjunto de treino utilizado para reconhecimento da posição da cabeça.

Da mesma forma que no exemplo 2D, apenas uma parte dos elementos do conjunto de treino são necessários devido à variância das eigenfaces. Na Figura 6 encontram-se representadas as primeiras oito eigenfaces, das quais as primeiras três são suficientes para determinar uma boa estimativa da posição da cabeça.

ReconhecimentoFacial2-6
Figura 6. Eigenfaces com valor próprios mais elevados.

Resumindo, a abordagem por reconhecimento de eigenfaces pode ser dividida nos seguintes passos:

  • Criação de uma biblioteca com imagens das faces de indivíduos característicos. Idealmente devem ser incluídas imagens diferentes para cada indivíduo, com variações na expressão facial e nas condições de iluminação.
  • Cálculo da matriz L, determinação dos seus vectores e valores próprios, e determinação dos M' vectores próprios e respectivos valores próprios.
  • Combinação do conjunto de imagens de treino normalizadas para determinação das M' eigenfaces uk.
  • Cálculo e armazenamento do vector característico para cada indivíduo armazenado na biblioteca.
  • Determinação da margem de erro (ϵk) que define a distância máxima permitida a qualquer classe facial. Opcionalmente, também pode ser escolhido um limite (ϵ) máximo para a distância ao espaço das faces.
  • Para cada face identificada, o seu vector característico é calculado e comparado com os vectores característicos armazenados. Caso a comparação satisfaça as condições definidas no ponto anterior, para um membro no mínimo, a imagem é classificada como "conhecida". Caso contrário, a face analisada não é reconhecida. Logo, é classificada como "desconhecida", podendo optar-se pela sua adição à biblioteca (criação de uma nova classe facial).


Texto compilado por J. M. Almeida e H. Bento, recursos humanos da Sinfic especializados em biometria.

Topo
Pesquisa
Agenda
Destaques