Sei sulla pagina 1di 44

UNIVERSIDADE FEDERAL DO PARN CURSO DE ENGENHARIA ELTRICA

TRABALHO DE CONCLUSO DE CURSO

AVALIAO DE ALGORITMOS DE RECONHECIMENTO FACIAL EM SISTEMAS EMBARCADOS BASEADOS EM UNIX

RICARDO BRESSAN TASCA

CURITIBA 2012

RICARDO BRESSAN TASCA GRR20075412

AVALIAO DE ALGORITMOS DE RECONHECIMENTO FACIAL EM SISTEMAS EMBARCADOS BASEADOS EM UNIX

Trabalho de concluso de curso do curso de Engenharia Eltrica da Universidade Federal do Paran Campus Politcnico. Orientador: Prof. Dr. Alessandro Zimmer

CURITIBA 2012

RICARDO BRESSAN TASCA

AVALIAO DE ALGORITMOS DE RECONHECIMENTO FACIAL EM SISTEMAS EMBARCADOS BASEADOS EM UNIX

Trabalho apresentado ao curso de Engenharia Eltrica da Universidade Federal do Paran, como requisito obteno do ttulo de graduao.

COMISSO EXAMINADORA

________________________________________________ PROF. DR. ALESSANDRO ZIMMER UFPR ________________________________________________ PROF. DR. OSCAR DA C. GOUVEIA FILHO UFPR ________________________________________________ PROF. PH.D. ANDR AUGUSTO MARIANO UFPR

Curitiba 2012

RESUMO

Esse trabalho apresenta uma avaliao de cinco algoritmos de reconhecimento facial que trabalham com a abordagem holstica do problema: IPCA, ILDA, IPCA-LDA, I2DPCA e INMF. A avaliao foi realizada sobre uma plataforma ARM/Linux e considerou o uso de memria do sistema, tempo de processamento, uso de CPU e taxa de acerto de cada algoritmo. Para os testes foram usadas imagens da base de dados FERET Colorida e a implementao dos algoritmos foi feita em C++ utilizando a biblioteca OpenCV. O classificador usado para todos os algoritmos foi o KNN. Palavras-chave: Reconhecimento Facial, IPCA, ILDA, IPCA-LDA, I2DPCA, INMF.

ABSTRACT

This paper presents an evaluation of five facial recognition algorithms that work with the holistic approach to the problem: IPCA, ILDA, IPCA-LDA, I2DPCA and INMF. The evaluation was performed on an ARM / Linux platform and considered the use of system memory, processing time, CPU usage and accuracy of each algorithm. For testing were used images from the FERET data base and the implementation of the algorithms was made in C++ with OpenCV. The classifier used for all algorithms was KNN. Keywords: Face Recognition, IPCA, ILDA, IPCA-LDA, I2DPCA, INMF

SUMRIO

1. 2.

INTRODUO ........................................................................................................................ 6 EMBASAMENTO TERICO ..................................................................................................... 8 2.1. ALGORITMOS DE RECONHECIMENTO FACIAL ............................................................... 9 Anlise de Componentes Principais PCA ............................................................ 9 Anlise De Componentes Principais Incremental IPCA .................................... 10 Anlise de Componentes Principais 2D 2DPCA ................................................ 12 Anlise de Componentes Principais 2D Incremental I2DPCA........................... 13 Anlise de Discriminante Linear LDA ................................................................ 14 GSVD-LDA ............................................................................................................ 15 Anlise De Discriminante Linear Incremental ILDA .......................................... 17 PCA-LDA............................................................................................................... 19 IPCA-LDA.............................................................................................................. 19 Fatorao em Matrizes no-negativas NMF .................................................... 21 Fatorao em Matrizes no-negativas em Blocos BNMF ................................. 22 Fatorao em Matrizes no-negativas Incremental INMF ............................... 23

2.1.1. 2.1.2. 2.1.3. 2.1.4. 2.1.5. 2.1.6. 2.1.7. 2.1.8. 2.1.9. 2.1.10. 2.1.11. 2.1.12. 2.2. 2.3. 3.

CLASSIFICADOR KNN ................................................................................................... 24 PERFORMANCE DE ALGORITMOS ............................................................................... 25

IMPLEMENTAO ............................................................................................................... 26 3.1. 3.2. 3.3. 3.4. OPENCV ....................................................................................................................... 26 FERET COLOR ............................................................................................................... 27 VALIDAO.................................................................................................................. 29 ESCOLHA DE LIMIARES ................................................................................................ 30

4.

TESTES E RESULTADOS ........................................................................................................ 34 4.1. 4.2. 4.3. GRUPOS DE TESTE ....................................................................................................... 35 METODOLOGIA DE TESTES .......................................................................................... 36 RESULTADOS ............................................................................................................... 36

5.

CONCLUSO ........................................................................................................................ 38

REFERNCIAS ............................................................................................................................... 40 APNDICE .................................................................................................................................... 41

1. INTRODUO

A aplicao de diferentes tipos de biometria em produtos uma tendncia principalmente em sistemas de controle de acesso e segurana. O reconhecimento de pessoas pode ser feito por diferentes caractersticas fsicas ou comportamentais como a impresso digital, voz, escrita, ris e face, sendo que cada uma tem suas peculiaridades. A empresa em que o autor trabalha produz equipamentos de controle de acesso e pontos eletrnicos nos quais j se utiliza a impresso digital para reconhecimento de pessoas, porm de interesse da prpria a ampliao desses mtodos de forma a criar produtos diferenciados. Nesse sentido esse projeto teve como intuito unificar a necessidade da empresa com a rea de interesse do autor analisando os algoritmos de reconhecimento facial j existentes, de forma a indicar a viabilidade da implementao desses algoritmos nos produtos. Produtos de controle de acesso normalmente necessitam da adio de usurios em tempo real, o que vale tambm para as identificaes biomtricas do usurio. Em geral, os algoritmos de reconhecimento facial necessitam de uma quantidade grande de fotos de cada indivduo para obter resultados bons e no caso de se adicionar uma nova imagem no grupo de treinamento preciso fazer todo o processo de aprendizado novamente. Na prtica isso se torna invivel, j que novos usurios podem chegar a qualquer momento e o nmero de fotos que podem ser coletadas por indivduo reduzido, alm de o treinamento demorar. Para contornar esse problema existem os algoritmos incrementais, que aprendem constantemente, conforme novos usurios so adicionados. Isso facilita a insero de usurios mesmo com que apenas exista uma foto disponvel, j que o sistema pode utilizar as bases j existentes para classificar o novo rosto. Dentre os algoritmos incrementais existentes foram escolhidos o IPCA[1], ILDA[2], IPCALDA[3], Incremental 2DPCA[4] e INMF[5]. Todos derivam dos mtodos tradicionais, adicionando-se a atualizao dos vetores base do sistema. A base de dados de imagem escolhida para os testes dos algoritmos foi a FERET que est disponvel de

forma gratuita para pesquisas alm de conter mais de 10 mil imagens e ser utilizada em vrios artigos sobre o tema. A implementao e teste dos algoritmos foi realizada sobre uma plataforma UNIX/ARM, avaliando o tempo necessrio para a execuo, requisitos do sistema para seu funcionamento (memria, processamento) e eficcia do algoritmo em reconhecer as faces. Os testes utilizaram trs grupos de imagens, o primeiro contendo o grupo de treino, o segundo contendo imagens diferentes das pessoas do primeiro grupo e o terceiro contendo imagens de pessoas que no fazem parte dos primeiros dois grupos. Com isso pode ser feito a contagem de falsos-negativos e falsos-positivos, verificando a efetividade do algoritmo tanto para pessoas que estariam dentro do grupo de acesso, como fora.

2. EMBASAMENTO TERICO

O reconhecimento facial vem sendo foco de muitos estudos, principalmente a partir da dcada de 90, aps a utilizao do mtodo eigenface, o qual focou na abordagem holstica (a face como um todo) para soluo do problema, em contraste com trabalhos anteriores que utilizavam caractersticas especficas, como distncia entre olhos, posio relativa de nariz e boca, para diferenciao entre indivduos. Em geral os algoritmos que utilizam a abordagem holstica mostram um desempenho melhor, porm algoritmos hbridos se mostraram efetivos, juntando as vantagens de cada abordagem. O desafio desses algoritmos hbridos definir o peso que deve-se dar a cada componente, quais caractersticas utilizar e quando melhor favorecer uma abordagem ou outra. Os algoritmos holsticos, por trabalharem com a imagem inteira, usam ferramentas matemticas como PCA e LDA que reduzem a dimenso do problema sem retirar informao das imagens de entrada. Essa reduo de dimenso se traduz em uma menor quantidade de dados para o algoritmo tratar, tornando-se vivel sua implementao e ao mesmo tempo reduzindo as redundncias das imagens. Essas ferramentas projetam as imagens em um espao de menor dimenso, onde cada imagem convertida em um vetor de pesos, o qual multiplicado pelos vetores base desse espao, reconstroem a imagem o original. Acima dos vetores base e dos vetores de peso so aplicados classificadores como rede neurais, SVM ou distncia euclidiana. Esses classificadores tem a funo de identificar usurios estabelecidos os limiares do sistema.

2.1.

ALGORITMOS DE RECONHECIMENTO FACIAL A seguir apresentada a base terica dos algoritmos implementados neste

trabalho assim como as suas verses no incrementais, de forma a mostrar suas diferenas.

2.1.1. Anlise de Componentes Principais PCA Anlise de Componentes Principais, ou em ingls Principal Component Analysis (PCA), um mtodo que usa a correlao entre as variveis de um espao visando achar os componentes, ou eixos, de forma que o componente principal tenha a maior varincia, porm mantendo sua ortogonalidade com os outros componentes. O resultado so eixos que projetam o espao de dados sem perda de informao, porm com reduo da dimenso e com os primeiros componentes contendo a maior parte da informao do espao. Essas caractersticas so teis para o reconhecimento facial visto que normalmente os dados de entrada, imagens, possuem uma dimenso alta e ao mesmo tempo compartilham informaes muito parecidas, j que as faces das pessoas possuem estruturas e formatos similares. Assim possvel truncar-se o nmero de componentes utilizadas sem que a maior parte da informao seja perdida, formando uma base de faces padro, tambm chamadas eigenfaces. PCA pode ser calculado a partir da decomposio por autovalores de uma matriz de covarincia ou pela decomposio em valores singulares (SVD) de uma matriz de dados. Normalmente os dados so centralizados pela mdia antes do clculo. Abaixo so indicados os passos utilizando SVD: 1. A partir de colunas e linhas, onde imagens de treinamento, cria-se uma matriz com o nmero de linhas da imagem e o nmero de

colunas da imagem, com os valores de cada pixel. importante ressaltar que as imagens devem ser de mesmo tamanho e conterem pixels na mesma faixa de valores. Ao contrrio, preciso redimensionar e/ou escalonar a imagem. 2. O segundo passo composto pelo clculo da mdia das imagens, gerando um vetor com elementos, que ser subtrado de cada imagem (coluna)

10

da matriz gerada no passo 1, obtendo-se uma matriz centralizados na origem. 3. Com a matriz

cujos valores esto

calcula-se a matriz de covarincia

na qual .

aplicada a decomposio em valores singulares (SVD), obtendo

4. A matriz U nos d os autovetores ordenados da maior varincia para menor, sendo os componentes desejados. Vale ressaltar que eles correspondem aos autovalores de maior valor para o menor, respectivamente. O clculo do SVD no passo 3 pode ser substitudo pela decomposio por autovalores, tomando seus autovetores para o passo 4.

2.1.2. Anlise De Componentes Principais Incremental IPCA Ozawa [1] apresenta uma abordagem incremental do mtodo PCA, no qual o espao PCA atualizado atravs da rotao dos eixos e aumento da dimenso do espao. Basicamente cada nova imagem inserida modifica o espao original de acordo com a informao adicional que ela carrega. Considerando um espao ( cujas colunas so os autovetores, ), onde a mdia, o nmero de amostras e uma matriz cuja

uma matriz

diagonal composta dos autovalores, quando uma nova amostra y adicionada no espao, a matriz de covarincia e a mdia mudam, sendo necessrio o reclculo dos autovetores e autovalores. A nova mdia pode ser facilmente calculada com a equao abaixo: ( )

J para o clculo dos novos autovetores e autovalores necessrio verificar a necessidade do aumento da dimenso do espao ou no, de acordo com a quantidade de energia que a nova amostra tem no espao. Isso pode ser verificado de duas maneiras, calculando a taxa de acumulao que pode ser representada como:

11

() ou pelo vetor residual: ( O novo vetor parmetro, ou se ( ) so os limiares escolhidos. )

( (

) )

onde

) , usando o vetor residual como e

inserido se

, quando se usa a taxa de acumulao. Os valores

Sabendo-se se necessria a insero de um novo eixo, a rotao feita da seguinte maneira: 1. Se foi adicionado um eixo: [ 2. Seno ]

onde

pode ser encontrado resolvendo o problema de autovalor abaixo: 1. Se foi adicionado um eixo: ( 2. [ ] [ ])

Seno: ( )

onde

) e

so os novos autovalores.

12

2.1.3. Anlise de Componentes Principais 2D 2DPCA Esse mtodo se diferencia do PCA comum pela possibilidade de se construir a matriz de covarincias diretamente das imagens de entrada, sem a necessidade de transform-las em vetores de pixel, o que deixa o processo mais rpido e, como apontado em [4], produz melhores desempenhos na tarefa de reconhecimento. A matriz de covarincia definida da seguinte forma: )( )

onde projeo

so as imagens de entrada de um total de calculada encontrando os autovetores de

. A matriz de

e escolhendo aqueles com

maiores autovalores assim como feito no PCA, porm o problema tem dimenso reduzida.

13

2.1.4. Anlise de Componentes Principais 2D Incremental I2DPCA Chon Lu et al. [4] apresentam uma implementao incremental parecida com o IPCA explicado anteriormente, com a diferena que os vetores passam a ser matrizes. A mdia atualizada da seguinte forma:
( )

onde

a nova amostra. O parmetro escolhido a matriz residual (equivalente ao

vetor residual do IPCA), que calculado de maneira similar: ( lembrando que colunas de ( ) e que e ) so matrizes. Como possvel a insero obtido pela mdia das o limiar escolhido.

de apenas uma dimenso na matriz , escolhido um vetor o qual inserido se , onde

Sabendo-se se necessria a insero de um novo eixo, a rotao feita da seguinte maneira: 3. Se foi adicionado um eixo: [ 4. Seno ]

onde

pode ser encontrado resolvendo o problema de autovalor abaixo: 3. Se foi adicionado um eixo: ( 4. [ ] [ ])

Seno: ( )

onde

so os novos autovalores.

14

2.1.5. Anlise de Discriminante Linear LDA Esse mtodo caracterizado por buscar um conjunto de caractersticas que linearmente combinados melhor separem duas ou mais classes distintas e assim como o PCA, pode ser usado para reduo da dimenso dos dados. A principal diferena entre o PCA e o LDA o fato deste ltimo considerar, alm das diferenas entre os objetos (interclasse), as similaridades dos objetos dentro de uma mesma classe (intraclasse). Dessa caracterstica temos que esse mtodo supervisionado, pois h a necessidade de se saber quais dados pertencem a cada classe, ao contrrio do PCA que apenas depende dos dados de entrada. A obteno do conjunto esperado se faz atravs da maximizao da funo abaixo: ( ) onde a matriz de disperso interclasse e a matriz de disperso intraclasse.

As matrizes de disperso podem ser calculadas pelas equaes abaixo: ( )( )

( onde a mdia geral de todas as classes, amostra da classe.

)(

a mdia da classe

a i-sima

A maximizao da funo ( ) pode ser obtida pela soluo do problema de autovalores abaixo:

onde as solues

so os autovalores e autovetores desejados. singular, pelo fato de sua dimenso ser maior

Normalmente a matriz

que o numero de amostras, se tornando um problema na soluo dos autovalores. Uma soluo simples para essa situao a adio da matriz identidade vezes uma pequena constante, o que a torna no-singular. Conforme Teorema de Gerschgorin,

15

citado em [7], podemos calcular o intervalo onde esto todos os seus autovalores e fazer um shift, autovalores da matriz , obtendo, assim, uma matriz no-singular. Ao obtermos os basta removermos o shift dos autovalores.

2.1.6. GSVD-LDA Esse algoritmo se baseia na decomposio em valores singulares generalizada (GSVD), a partir da qual o LDA deixa de requerer a no singularidade de onde . O problema substitudo pela decomposio de autovalores de

a pseudo-inversa de:

)(

onde: a j-sima amostra da classe ; a mdia de todas as amostras; o numero de classes; o numero de amostras da classe .

Zhao et al [2] apresentam um algoritmo para o clculo da decomposio, definindo: [ [ ( ) [ onde: a matriz de dados da i-sima classe; a mdia da i-sima classe; ( ] ] )]

16

um vetor de comprimento

com valores iguais a 1. , obtendo:

Calcula-se a decomposio em valores singulares de [ sendo ( ) { } onde ]

o posto de

. Aplica-se novamente a SVD

agora na matriz formada pelas

primeiras linhas e as colunas de , obtendo: ( )

Por ltimo calcula-se as [ onde o posto de e

primeiras colunas de ] ( )

a matriz de projeo.

A grande vantagem desses algoritmo a no necessidade do clculo da inversa , que muitas vezes no possvel, necessitando-se do uso de artifcios

como a soma de uma matriz identidade, conforme citado anteriormente. No lugar necessita-se de apenas de decomposies em valores singulares e o clculo da inversa de uma matriz diagonal .

17

2.1.7. Anlise De Discriminante Linear Incremental ILDA A implementao de algoritmos incrementais de LDA uma tarefa difcil principalmente pelo fato da matriz facilmente ser singular. Zhao e Yuen [2]

apresentam uma abordagem que contorna esse problema implementando um algoritmo incremental baseado no GSVD-LDA apresentando resultados muito parecidos com o mtodo de referencia. O algoritmo tem como entrada a matriz , cujas colunas so compostas das imagens, juntamente com o nmero de imagens de cada classe e suas mdias e a matriz com as novas imagens de entrada , onde o numero de imagens

adicionais. possvel a insero das novas imagens tanto em grupo como uma por uma. Tomando o caso da insero de uma imagem por vez o algoritmo se resume aos seguintes passos: 1) aplicar SVD a matriz , sendo , ou seja a matriz de

entrada com a mdia das imagens subtrada 2) definir para as aproximaes subsequentes. A escolha da constante

indicar quanto da energia original dos vetores ser guardada na sada, para 100% da energia deve-se escolher menos um. 3) definir [ ( )] ) , onde composta igual ao numero de imagens

4) calcular a decomposio QR de ( das primeiras colunas de ]

5) aplicar SVD em [

, onde

composto das k

primeiras linhas e colunas de 6) calcular 7) calcular nova imagem ([ ] ) [ ( ) ( )], com atualizado com a

18

8) definir

novamente, igual ao posto de e ) ( ) ) ] ] ) ( )

igual ao posto de

9) calcular (

10) aplicar SVD em ( 11) calcular 12) concatenar [ ( [

A matriz de projeo final basta multiplicar a transposta de

, lembrando que para calcular as projees

pela matriz de imagens .

19

2.1.8. PCA-LDA Esse mtodo agrega dois mtodos discutidos anteriormente, o PCA e o LDA. Primeiramente aplicado o PCA nos dados de entrada matriz de projeo maiores autovalores. Os dados de entrada para o LDA so calculados projetando os dados de entrada sobre , produzindo ,onde , sendo a mdia de composta de , produzindo como sada a

autovetores escolhidos de acordo com os

todas as imagens. A partir de projeo.

aplicado o LDA obtendo ao final os eixos de

2.1.9. IPCA-LDA Dagher [3] apresenta uma derivao do algoritmo convencional PCA-LDA adicionando a atualizao incremental dos autovetores e sem precisar calcular a inversa da matriz de disperso interna do LDA. O resultado foi um algoritmo recursivo em que os vetores so atualizados dinamicamente conforme os dados so adicionados no sistema. O conceito empregado por Dagher o clculo direto dos vetores de projeo do PCA de forma iterativa a cada imagem inserida, sendo eles aproximados pela equao a seguir: ( ) onde ( ) ( ) ( ) ( ( ) )

( ) a n-sima estimativa do i-simo autovetor depois da n-sima imagem calculados deve ser previamente

( ) ser inserida. O nmero de vetores

estabelecido, o que pode ocasionar o clculo de vetores que depois sero descartados. Uma possvel estimativa escolher ponto a ser destacado o clculo de ( ) ( ) , o nmero de classes. Outro

que feito com a seguinte frmula: ( ) ( ) ( ) ( ) ( )

20

onde

( )

( ). O objetivo tornar ( ) retirando a projeo de

( ) pertencente a um espao ( ) sobre o vetor ( ). Isso fora a

complementar a

ortogonalizao dos vetores

( ) conforme as imagens so inseridas.

A atualizao das projees LDA tambm feita de forma recursiva atravs de matrizes auxiliares ( e ( ( ( onde e = : )) ( ( ( ( )) ( )) )) ( ( ( )) )) a mdia da classe

a matriz de dados na k-sima iterao,

a mdia das imagens. Ao final das iteraes as matrizes encontrados: e so obtidas atravs da matriz

formada pelos vetores

)(

A projeo final ento obtida de maneira usual resolvendo o problema de autovalores do produto .

21

2.1.10.

Fatorao em Matrizes no-negativas NMF O objetivo desse algoritmo utilizar a decomposio em matriz no-negativa

de tal forma que a matriz de imagem de entrada base do sistema, na matriz e a matriz de coeficientes,

onde

a matriz

o nmero de imagens inseridas contm em suas

nmero de bases do sistema. A matriz base

colunas as caractersticas locais extradas das imagens de treinamento. A decomposio obtida atravs da minimizao da divergncia entre : ( ( ) ) e

De forma iterativa esse problema pode ser resolvido com a seguinte sequncia: 1. 2.
( )

3.

4. Repete passos 1 ao 3. Deve ser escolhido um critrio de parada, o qual pode ser um valor de , a diferena entre dois subsequentes ou ainda uma quantidade fixa de iteraes.

22

2.1.11.

Fatorao em Matrizes no-negativas em Blocos BNMF Uma verso alternativa do algoritmo NMF chamada BNMF [5] divide a matriz

de entrada

em matrizes de tamanhos iguais

, cada uma contendo imagens de

uma mesma classe. A partir dessas matrizes aplicado o algoritmo NMF e as matrizes e e resultantes de cada classe so agregadas gerando as matrizes

finais. A grande vantagem dessa verso o fato da decomposio das matrizes

ser mais rpida, j que a dimenso reduzida drasticamente. Abaixo so mostradas as relaes entre as matrizes: [ [
( ) ( ) ( )

] ] )

( )

( )

( )

( onde o nmero de classes.

( )

( )

( )

23

2.1.12.

Fatorao em Matrizes no-negativas Incremental INMF Wen-Sheng Chen et al. [5] apresentam uma abordagem incremental

supervisionada do algoritmo NMF visando aproximar objetos de uma classe e separar as classes ao mesmo tempo. Isso obtido com o uso de um critrio diferenciado para minimizao de forma que as informaes das classes sejam

consideradas. Para isso calculada para cada classe uma matriz de disperso:
() () () () ()

)(

onde

o nmero de amostras da classe e


()

()

a mdia das matrizes de

coeficiente

de cada classe. Essa matriz inserida no clculo da divergncia

juntamente com a mdia dos coeficientes de cada classe:


( )

( )

( )

( e (
( )

( )

( )

( )

( )

( )

onde

) o trao da k-sima matriz de disperso.

Baseado nesse novo calculo de divergncia Wen-Sheng Chen et al. obtiveram os novos critrios de iterao: 1.
( ) ( )

( )

) ( )

( )

2.

( )

( ) ( )

3.

( )

onde,
( ) ( ) ( ) (
( ) ( ) ( ))

)
( )

, e

( )

a i-sima entrada do vetor

. Os vetores

finais so calculados do mesmo

modo que feito no algoritmo BNMF.

24

2.2.

CLASSIFICADOR KNN Esse mtodo utiliza a distncia entre pontos de um espao como parmetro

de comparao e classificao e um dos algoritmos mais simples de classificao em sistemas de reconhecimento de padres. O conceito desse classificador classificar o novo ponto a partir dos kvizinhos mais prximos, definindo sua classe como a classe que mais aparece entre esses k-vizinhos. No caso em que k = 1, a classe escolhida simplesmente pelo vizinho mais prximo. A distncia normalmente utilizada a Euclidiana que pode ser definida pela funo abaixo:

onde

so pontos pertencentes a um espao de dimenso

. Com a definio

de limiares de distncia possvel determinar se o novo ponto faz parte de uma classe existente ou no.

25

2.3.

PERFORMANCE DE ALGORITMOS A anlise de algoritmos de reconhecimento recai inevitavelmente na

necessidade da mensurao de suas eficcias. Essa avaliao deve estabelecer critrios no subjetivos e especificar o contexto ao qual os resultados so aplicveis. Nesse sentido existem mtricas, como a FAR (taxa de falsos positivos) e FRR (taxa de falsos negativos) os quais mostram como o algoritmo se comporta para um determinado conjunto de teste, variando-se os limiares do sistema. A varivel na anlise pode ser o limiar do classificador, o qual indica se um objeto faz parte da coleo ou se no pertence. Basicamente essas duas mtricas mapeiam as probabilidades de um objeto externo ser reconhecido como pertencente (FAR) e de um objeto interno ser considerado estrangeiro ao grupo (FRR) para diferentes valores de limiar escolhidos. Essa anlise pode ser usada para escolha do limiar timo estabelecendo-se os nveis de erro que o sistema pode conter. Uma escolha possvel o ponto onde a FAR e a FRR se cruzam (EER Equal Error Rate), obtendo-se um ponto timo entre de falsos positivos e falsos negativos. A figura 1 mostra um exemplo desse tipo de anlise.

Figura 1. Exemplo de anlise FAR / FRR [9]

26

3. IMPLEMENTAO

O desenvolvimento dos algoritmos utilizaram as rotinas de lgebra linear e manipulao de imagens presentes na biblioteca OpenCV e os testes foram baseados na base de imagens FERET.

3.1.

OPENCV OpenCV uma biblioteca aberta multiplataforma de viso computacional e

possui mdulos de processamento de imagem e vdeo, lgebra linear e interface com perifricos entre outros. Existem outras bibliotecas similares como a VXL e a LTI, porm atualmente a biblioteca OpenCV a mais documentada e com maior nmero de exemplos de uso na comunidade, alm de apresentar um desempenho melhor em relao as outras [6]. Possui funes prontas para leitura de arquivos de imagens, o que facilita o uso de qualquer formato sem se preocupar em decodific-los alm de fornecer uma base confivel para os clculos necessrios.

27

3.2.

FERET COLOR A base de dados FERET colorida (Color FERET) contm 11338 imagens de

faces, de diferentes ngulos, de 994 indivduos obtidas durante 15 sesses entre 1993 e 1996. As imagens so de 512x768 pixels e esto no formato ppm. A aquisio da base de dados grtis e necessita apenas do envio de uma requisio por e-mail, cuja resposta informa o usurio e senha que so criados temporariamente para o download da base de dados. O download contm os arquivos dos dois dvd's da base de dados, cujo segundo dvd contm tambm a primeira verso da base FERET (Gray FERET) liberada em 2001 que era composta por 14051 imagens em escala de cinza. Existem 13 diferentes poses em que as imagens foram registradas, sendo que o total de imagens de cada pose pode ser vista na tabela 2.
Tabela 1. Prefixos dos arquivos das diferentes posies das faces da base FERET

Prefixo da Imagem fa fb pl hl ql pr hr qr ra rb rc rd re

Disposio da face em relao a camera Frontal Frontal alternativa (registrada pouco depois da imagem fa) Perfil Esquerdo 67,5o para esquerda (metade para esquerda) 22,5o pra esquerda (um quarto para esquerda) Perfil Direito 67,5o para direita (metade para direita) 22,5o pra direita (um quarto para direita) 45o para esquerda 15o pra esquerda 15o para direita 45o para direita 75o pra direita

Em relao a Gray FERET a base de dados Color FERET possui imagens com o dobro do tamanho, alm de ter sido revisada, corrigindo erros como imagens duplicadas. Um detalhe importante que as imagens no foram processadas ou comprimidas como no caso da Gray FERET. Adicionalmente, para cada imagem coletada existem 2 verses de resoluo reduzida: smaller (256x484) e thumbnail (128x192), alm de um arquivo texto

28

indicando o sexo, ano de nascimento, raa, formato, data de aquisio, existncia de culos, barba, localizao da boca, olhos entre outras informaes sobre a imagem.
Tabela 2. Quantidades de imagens de cada posio da base FERET

Prefixo da Imagem fa fb pl hl ql pr hr qr ra rb rc rd re

Imagens 1364 1358 1267 1320 1312 1363 761 761 321 321 610 290 290

Indivduos 994 993 917 953 960 994 501 501 261 261 423 236 236

Dentro dos dvd's existem quatro arquivos os quais so indicados para anlise dos algoritmos de reconhecimento facial. Um dos arquivos deve ser usado como referencia e contm a lista das imagens frontais ('fa') mais antigas. Os outros arquivos contm os conjuntos de imagens de teste, sendo um com imagens frontais mas com expresses faciais diferentes ('fb'), e os outros dois arquivos voltados a anlise da influncia do envelhecimento contendo as demais imagens frontais dos indivduos. Alm desses quatro conjuntos de teste indicados, existem outros arquivos que renem as imagens das diferentes poses e que podem ser usadas para avaliar os algoritmos quanto a variao da pose em diferentes ngulos, e montagens separando imagens com/sem culos, por raa, gnero entre outros.

29

3.3.

VALIDAO A validao dos algoritmos foi obtida comparando os resultados obtidos com

implementaes em MATLAB, sendo que o grupo de teste foi constitudo de 4 imagens frontais (fa) que no possussem caractersticas diferentes, como uso de culos ou mudana de penteado, de 20 indivduos, formando um total de 80 imagens. A lista completa pode ser vista no apndice A. As lista foi escolhida considerando os indivduos que possussem uma quantidade mnima de 4 imagens fa at que se obtivesse as 80. Posteriormente foram extradas as faces alinhando os olhos, sendo a informao da posio dos olhos retirada dos groud_truths (arquivos que contm informaes sobre cada imagem) com exceo das seguintes imagens que no continham tal informao e foram obtidas manualmente: '00002_931230_fa.ppm' '00029_931230_fa.ppm' '00070_931230_fa.ppm' '00093_931230_fa.ppm' '00108_931230_fa.ppm' As faces foram redimensionadas para 40x30 pixels e convertidas para escala de cinza utilizando a funo rgb2gray() do MATLAB, sendo salvas no formato bitmap de 8-bit com a funo imwrite().

30

3.4.

ESCOLHA DE LIMIARES Para efeito de comparao dos algoritmos foi escolhido o classificador KNN

com

, usando a distncia euclidiana como parmetro do classificador. Para

cada algoritmo foram traadas as curvas de FRR e FAR e escolhido o ponto EER como limiar. Para esses clculos foi usado o grupo de imagens listada no apndice A. As figuras 2 a 6 mostram as simulaes em MATLAB e os limiares escolhidos. No caso do IPCA alm do limiar do classificador tambm existe o limiar interno do algoritmo, o qual indica se um novo vetor deve ser adicionado ou no. Nos testes o limiar interno que obteve o melhor desempenho foi de 1100. O resultado pode ser visto na figura 2.

Figura 2. Curvas FAR, FRR e limiares escolhidos para o algoritmo IPCA

O algoritmo INMF tambm possui limiares adicionais a serem escolhidos: as constantes e , que indicam o quanto da informao das classes considerado no

clculo da funo de divergncia. Durante simulaes percebeu-se que para alguns valores os resultados comeavam a apresentar partes imaginrias ou nmeros

31

invlidos. Isso ocorria pelo fato do termo

do calculo de

( )

retornar valores negativos. A soluo encontrada para esse problema foi tornar o termo sempre positivo, visto que era maior que sempre negativo. o erro voltava a

Adicionalmente notou-se que quando acontecer. Assim estipulando de e

e fazendo simulaes para diferentes valores

chegou-se aos valores mostrados na figura 3.

Figura 3. Curvas FAR, FRR e limiar escolhido para o algoritmo INMF

32

Figura 4. Curvas FAR, FRR e limiar escolhido para o algoritmo ILDA

Figura 5. Curvas FAR, FRR e limiar escolhido para o algoritmo IPCA-LDA

33

Figura 6. Curvas FAR, FRR e limiar escolhido para o algoritmo I2DPCA

Durante os testes para a escolha dos limiares notou-se que fazendo tratamentos nas imagens, como alterao de brilho, equalizao, etc. os limiares se alteravam e o desempenho tambm mudava. O desempenho mudava de forma desigual entre os algoritmos, assim optou-se por utilizar as imagens sem tratamento, apenas centralizando os olhos e redimensionando para 40x30 pixels, obtendo os resultados indicados nas figuras anteriores. O segundo ponto a ser destacado o fato dos valores de FAR e FRR obtidos, principalmente para o I2DPCA foram totalmente fora do que se espera de um sistema de reconhecimento, porm considerou-se que esses valores se devem ao conjunto das imagens usadas, visto que com tratamentos nas imagens alguns algoritmos alteravam o seu desempenho.

34

4. TESTES E RESULTADOS

Os testes foram realizados sobre uma plataforma ARM/Linux em uma placa de desenvolvimento da FriendlyArm. O sistema operacional continha apenas o bsico para o funcionamento: um kernel verso 2.6.32.2 fornecido pelo fabricante da placa de desenvolvimento, busybox (para funes padres do Linux), um servidor de telnet para acessar a placa remotamente e um servidor ftp para transferncia de arquivos. Adicionalmente a esses componentes foi instalada a biblioteca OpenCV e o programa de teste dos algoritmos. Um programa em separado foi montado para monitorar o uso de memria e processador, sendo os tempos e acurcia dos algoritmos calculados dentro do prprio programa de teste.

35

4.1.

GRUPOS DE TESTE Foram utilizados dois grupos de teste: Grupo 1: formado pelo grupo de validao que pode ser visto no apndice A. Grupo 2: formado por 100 indivduos das parties fa e fb do banco de imagens FERET. As parties que formam o grupo 2 so indicadas na documentao do

FERET para avaliaes de reconhecimento facial e apresentam imagens frontais. Cada partio fornece uma imagem de cada usurio sendo que deve-se usar a partio fa como referncia, ou seja, recebendo uma imagem fb deve -se identificar qual a imagem correspondente na partio fa. Tanto o grupo 1 como o grupo 2 foram divididos em quatro sub-grupos para os testes: Grupo de treinamento: formado por metade das imagens de 50% dos indivduos. Esse grupo usado para criar a base inicial de cada algoritmo. Grupo de treinamento incremental: formado por metade das imagens de 30% dos indivduos. Grupo usado para testar algoritmos incrementais, adicionando novos usurios a base inicial. Grupo de teste interno: formado pela outra metade das imagens dos 80% dos indivduos. Contm imagens distintas dos usurios pertencentes aos grupos de treinamento. Grupo de teste externo: formado pelas imagens dos 20% restantes dos indivduos. Grupo usado para verificar o nmero de falsospositivos.

36

4.2.

METODOLOGIA DE TESTES Os testes foram realizados para cada algoritmo separadamente atravs de

dois programas: um principal que implementa o algoritmo e um auxiliar que monitora o uso de memria e processador do programa principal. Cada algoritmo possui o seu programa principal e as imagens dos grupos de teste foram armazenadas em um pendrive conectado a placa de desenvolvimento, sendo acessadas conforme o programa principal processa os dados.

4.3.

RESULTADOS A tabela 3 mostra a utilizao da memria em porcentagem, os tempos

mdios por imagem e a utilizao de CPU de cada algoritmo:


Tabela 3. Utilizao de memria, tempo de processamento e utilizao de CPU dos algoritmos

Algoritmo IPCA ILDA IPCA-LDA INMF I2DPCA

Utilizao da memria 42 % 52 % 62 % 14 % 13 %

Tempo de processamento mdio por imagem 40 s 60 s 50 s 5s 100 ms

Utilizao de CPU 97% 97% 97% 97% 93%

Como era de se esperar o I2DPCA foi o algoritmo mais rpido e no sobrecarregou o sistema ocupando apenas 13% da memria. Vale lembrar que a percentagem de uso da CPU depende de quantos processos esto ativos no sistema, qual a prioridade da tarefa e a atividade dos perifricos de E/S. O uso da CPU serve como parmetro para sabermos se um processo que executa por um perodo maior no vai interferir no desempenho dos outros processos. A demora dos algoritmos IPCA, ILDA e IPCA-LDA se deve principalmente pela dimenso das matrizes com que trabalham, o que atrasa o clculo de problemas como a decomposio em valores singulares.

37

A tabela 4 mostra o desempenho dos algoritmos em termos de taxa de acerto, FAR e FRR. A FRR foi calculada a partir do grupo de teste externo e a FAR pelo grupo de teste interno, j a taxa de acerto foi global, considerando os dois grupos de teste.
Tabela 4. Desempenho dos algoritmos

Grupo Teste 1 Algoritmo IPCA ILDA IPCA-LDA INMF I2DPCA FAR 0,675000 0,625000 0,550000 0,375000 0,937500 FRR 0,50000 0,527500 0,415000 0,281250 0,062500

Grupo Teste 2 FAR 0,554000 0,500000 0,351000 0,410200 0,800000 FRR 0,350000 0,378400 0,275100 0,200000 0,175000

Taxa de acerto Grupo Grupo Teste1 Teste2 0,300000 0,43000 0,340000 0,40000 0,280000 0,35000 0,250000 0,40000 0,250000 0,55000

O desempenho foi ruim porm pode-se notar que o grupo de teste 2 obteve resultados ligeiramente melhores que do grupo 1, provavelmente pelo nmero maior de amostras e pelas amostras serem mais similares.

38

5. CONCLUSO

Os testes mostraram que as implementaes utilizadas no obtiveram um resultado satisfatrio tanto em nvel de acertos como de falsos-positivos e negativos. Durante a escolha dos limiares notou-se que aplicando-se efeitos, filtros nas imagens, as respostas dos algoritmos tambm se alteravam sendo cabvel de investigar com mais aprofundamento a influncia das caractersticas das imagens sobre os algoritmos, frisando que apesar do mau desempenho todos os algoritmos tiveram resultados similares, indicando que talvez os grupos de teste estejam influenciando significativamente nos resultados. Outro fator que pode influenciar os resultados o classificador usado, o qual poderia ser trocado por outros como o SVM e Redes neurais. Com relao aos requisitos do sistema, os algoritmos INMF e ILDA necessitam que as imagens de treinamento sejam guardadas, pois so usadas na insero de novas imagens. O que lhes diferem das verses no incrementais o modo como as novas amostras so inseridas, que no caso do INMF se torna muito mais rpido e no caso do ILDA pode-se trocar rapidez por preciso e vice-versa. O fato desses dois algoritmos necessitarem desse armazenamento impe um limite a mais em implementaes prticas, sabendo que alm das imagens tero de ser guardadas a matriz de projeo e as projees dos usurios. J o IPCA-LDA necessita que sejam guardadas as mdias das classes e como no oferece uma maneira direta de atualizar as projees necessrio guardar as imagens ou utilizar a mdia como parmetro de projeo. Nesse ponto os outros algoritmos IPCA e I2DPCA possuem uma grande vantagem j que preciso guardar apenas a matriz de projeo e as projees dos usurios, sendo as projees atualizadas durante o processo de insero das novas faces, porm o processo de atualizao considera aproximaes o que pode levar a erros depois que muitas faces novas so cadastradas. Numa soluo prtica seria interessante o reclculo a partir das verses no incrementais de tempos em tempos.

39

Um ponto negativo do I2DPCA o tamanho das projees que devem ser guardadas, que acabam muitas vezes sendo do mesmo tamanho que a imagem original, ou maior. Em contrapartida pelo fato dele operar com matrizes de dimenso reduzida, ele se torna muito rpido na insero de novos usurios. Na opinio do autor desse trabalho os algoritmos que melhor se adaptariam em produtos comerciais, entre os escolhidos, seriam o I2DPCA pela rapidez e o IPCA por possuir projees com tamanhos reduzidos e no precisar manter as imagens originais no banco dados.

40

REFERNCIAS [1] SEIICHI OZAWA, SOON LEE TOH, SHIGEO ABE, SHAONING PANG, NIKOLA KASABOV: Incremental learning of feature space and classifier for face recognition. Neural Networks 18(5-6): 575-584 (2005) [2] ZHAO, HAITAO & YUEN, PONG CHI, Incremental Linear Discriminant Analysis for Face Recognition, IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICSPART B: CYBERNETICS, VOL. 38, NO. 1, FEBRUARY 2008 [3] DAGHER, ISSAM: Incremental PCA-LDA Algorithm. International Journal of Biometrics and Bioinformatics (IJBB), Volume 4: Issue 2, 2010 [4] CHONG LU ,WANQUAN LIU ,SVETHA VENKATESH, SENJIAN NA: Face Recognition via Incremental 2DPCA. [5] WEN-SHENG CHEN, BINBIN PAN, BIN FANG, MING LI, AND JIANLIANG TANG: Incremental Nonnegative Matrix Factorization for Face Recognition. Mathematical Problems in Engineering Volume 2008 (2008), Article ID 410674, 2008 [6] SINHA, UTKARSH, OpenCV vs VXL vs LTI: Performance Test. Disponvel em: <http://www.aishack.in/2010/07/opencv-vs-vxl-vs-lti-performance-test/>. em: 03/04/2012. [7] OLIVEIRA, DANILO ELIAS DE, Sobre Um Mtodo Assemelhado Ao De Francis Para A Determinao De Autovalores De Matrizes. Dissertao de Mestrado PsGraduao em Matemtica Aplicada - Departamento De Cincias De Computao e Estatstica, Universidade Estadual Paulista, So Jos do Rio Preto, 2006. [8] SHAONING PANG, SEIICHI OZAWA, NIKOLA KASABOV: Incremental Linear Discriminant Analysis for Face Recognition. IEEE Transactions on Systems, Man, and Cybernetics, Part B 38(1), 2008 [9] FAQ, BIOIDENTIFICATION. Disponvel em: < http://www.bromba.com/faq/biofaqe.htm >. Acesso em: 05/05/2012. Acessado

41

APNDICE APNDICE A Lista de imagens do grupo de validao Indivduo 2 imagens '00002_930831_fa.ppm' '00002_931230_fa.ppm' '00002_940128_fa.ppm' '00002_940422_fa.ppm' 19 '00019_930831_fa.ppm' '00019_940128_fa.ppm' '00019_940307_fa.ppm' '00019_940422_fa.ppm' 29 '00029_930831_fa.ppm' '00029_931230_fa.ppm' '00029_940128_fa.ppm' '00029_940307_fa.ppm' 70 '00070_931230_fa.ppm' '00070_940307_fa.ppm' '00070_940422_fa.ppm' '00070_940928_fa.ppm' 93 '00093_931230_fa.ppm' '00093_940128_fa.ppm' '00093_941031_fa.ppm' '00093_941121_fa.ppm' 108 '00108_931230_fa.ppm' '00108_940128_fa.ppm' '00108_941031_fa.ppm' '00108_960530_fa.ppm' 146 '00146_941121_fa.ppm' '00146_941201_fa.ppm' '00146_941205_fa.ppm' '00146_960530_fa.ppm'

42

268

'00268_940307_fa.ppm' '00268_940422_fa.ppm' '00268_940519_fa.ppm' '00268_960530_fa.ppm'

468

'00468_940519_fa.ppm' '00468_941201_fa.ppm' '00468_960530_fa.ppm' '00468_960620_fa.ppm'

469

'00469_940519_fa.ppm' '00469_941201_fa.ppm' '00469_960530_fa.ppm' '00469_960620_fa.ppm'

588

'00588_940307_fa.ppm' '00588_940928_fa.ppm' '00588_941031_fa.ppm' '00588_941121_fa.ppm'

660

'00660_941121_fa.ppm' '00660_941201_fa.ppm' '00660_960530_fa.ppm' '00660_960620_fa.ppm'

705

'00705_941201_fa.ppm' '00705_941205_fa.ppm' '00705_960530_fa.ppm' '00705_960620_fa.ppm'

706

'00706_941201_fa.ppm' '00706_941205_fa.ppm' '00706_960530_fa.ppm' '00706_960620_fa.ppm'

708

'00708_941201_fa.ppm' '00708_941205_fa.ppm' '00708_960530_fa.ppm' '00708_960620_fa.ppm'

43

711

'00711_941201_fa.ppm' '00711_941205_fa.ppm' '00711_960530_fa.ppm' '00711_960620_fa.ppm'

717

'00717_941201_fa.ppm' '00717_941205_fa.ppm' '00717_960530_fa.ppm' '00717_960620_fa.ppm'

722

'00722_941201_fa.ppm' '00722_941205_fa.ppm' '00722_960530_fa.ppm' '00722_960627_fa.ppm'

732

'00732_941201_fa.ppm' '00732_941205_fa.ppm' '00732_960530_fa.ppm' '00732_960620_fa.ppm'

744

'00744_941201_fa.ppm' '00744_941205_fa.ppm' '00744_960530_fa.ppm' '00744_960620_fa.ppm'

Potrebbero piacerti anche