Comparação de algoritmos de reconhecimento de faces em multidões Anderson Rocha Tavares Eloizio...

Post on 18-Apr-2015

103 views 0 download

Transcript of Comparação de algoritmos de reconhecimento de faces em multidões Anderson Rocha Tavares Eloizio...

Comparação de algoritmos de reconhecimento de faces em

multidões

Anderson Rocha TavaresEloizio César Drummond Salgado

Universidade Federal de Minas GeraisDepartamento de Ciência da Computação

Visão Computacional

Sumário

• O problema

• Motivação

• Revisão bibliográfica • Metodologia

 • Resultados

 • Conclusão

O problema

• Reconhecimento de faces em imagens que possuem diversas faces.

• Enunciado do problema:o Opção 1: Dada uma

imagem de uma única face, encontre em uma multidão esta face.

o Opção 2: Dada a imagem de uma multidão, reconheça as faces presentes no banco de dados da aplicacão.

Motivação• Identificação de criminosos, terroristas,

mafiosos, baderneiros, etc em lugares públicos como Estações de Trem, Aeroportos, Feiras, Estádios.

Pode ajudar a prevenir crimes contra a vida em escala catastrófica como o "11/09".

 • Motivação principal: Segurança!

É um problema simples?

• Há dificuldades com:o Poseo Qualidade da imagemo Oclusãoo Disfarceso Desempenho

Revisão Bibliográfica

• Detecção de Faceso VIOLA, Paul; JONES, Michaelo Robust Real-Time Face Detection (1ª Versão) o Fast Multi-view Face Detection (2ª Versão)

Considerado o estado-da-arte em detecção Detecta faces com rotação dentro e fora do plano de imagem Mantém o bom desempenho da primeira versão  0,12 segundos para uma imagem 320x240 em um P4 2.8 GHz

Revisão Bibliográfica

• Reconhecimento de Face o Há muitas técnicas...

Características faciais (olhos, nariz, boca) Brunelli, R.; Poggio, T.; Trento, I Povo. Face recognition through

geometrical features. 1992 Template Matching Análise da Textura da pele Principal Component Analysis - Eigenfaces

 SIROVICH, L.; KIRBY, M.; Low-dimensional Procedure for the characterization of human faces.1987

M. Turk, A. Pentland, Eigenfaces for Recognition. 1991 (+ citado)¹ ATALAY, Ilker; Face recognition using eigenfaces

1) Face Recognition Homepage - Interesting Papers http://www.face-rec.org/interesting-papers/2) http://electronics.howstuffworks.com/facialrecognition.htm

Revisão Bibliográfica

• Reconhecimento de Faces - Imagens Estáticaso Há muitas técnicas...

Reconhecimento Tridimensional Cartoux, J. Y., J. T. LaPreste, and M. Richetin: 1989, Face

authentication or recognition by profile extraction from range images Bronstein, A. M.; Bronstein, M. M., Kimmel, R. Three-dimensional

face recognition. 2005 Identificou corretamente 2 gêmeos idênticos (autores)  Queirolo, C. C.; Silva, L.; Bellon, O. R.;Segundo, M. P. 3D Face

Recognition using Simulated Annealing and the Surface Interpenetration Measure. 2009

Precisão de identificação maior que 98%.

Revisão Bibliográfica

• Reconhecimento de Faces em Multidões:o Ausência de documentos/artigos específicos sobre o assunto:o No entanto, alguns sistemas conhecidos:

FaceIt from Visionics Can find human faces anywhere in a field of view. It can track up to 10

faces simultaneously in a live video. It can follow that face as it moves through a crowd while also searching for matches against a database at a rate of 60 million/minute, per central processing unit (CPU).

FaceVACS-Alert. http://www.cognitec-systems.de/FaceVACS-Alert.20.0.html

Real time face tracking on multiple video streams Real time probe face comparison against "watch list" Real time alarm notification and recordind

Biometric Systems, Inc. http://www.biometrica.com/  providing advanced identity solutions to the Casino Industry

Metodologia

Testes• Informações gerais dos testes de reconhecimento:

o Máquina: Processador: Intel Core Duo T2350 1.86 GHz 2MB L2 Memória: 2.5 GB de RAM

o Imagens testadas: Total: 120 imagens Formato: .pgm (Portable Graymap) Exemplos:

Algoritmos testados - Segmentação

• LuxandSDK¹o Detecção de faces frontais:

Detecção de múltiplas faces Rotação de 30º no plano e fora dele Tempo de detecção: 0,01 a 0,7 seg

Em um Pentium IV 2,4 GHz  1 GB RAM

1) Luxand - Detect Human Faces and Recognize Facial Features - http://www.luxand.com/facesdk/

o Detecção de características: 40 pontos (olhos, sobrancelhas, boca, nariz e contorno da face) Rotação suportada: 30º no plano, 10º fora Tempo: 0,65 segundos (Pentium IV 2,4 GHZ 1GB RAM)

Algoritmos testados - Reconhecimento

• Principal Component Analysis (PCA)¹o Forma vetores de características (feature vectors) concatenando

valores de pixels da imagemo Inicialmente são gerados muitos valores altamente

correlacionadoso PCA chega a um subespaço pequeno sem covariância entre os

feature vectors transformados (os componentes principais).o A matriz de covariância é sempre diagonal

Isso é explorado para alguns classificadores, como L1, MahCosine e Bayesianos, por exemplo.

1 - M. A. Turk and A. P. Pentland. Face Recognition Using Eigenfaces. In Proc. of IEEE Conference onComputer Vision and Pattern Recognition, pages 586 – 591, June 1991.

Algoritmos testados - Reconhecimento

• PCA - Métricas de Classificação 

o Euclideana:   

o Mahalanobis Distance Imagem é convertida para o espaço de Mahalanobis  A variância da amostra ao longo de cada dimensão é unitária,

contra 0 dos feature vectors Transformação é feita pela divisão dos componentes do vetor

pelos seus respectivos desvios-padrão. 

Transformação: MahCosine:

(covariância entre as imagens no espaço de Mahalanobis)

Algoritmos testados - Reconhecimento

• Bayesian Intra/Extra personal Classifier (BIC)¹o Examina o resultado da diferença entre imagenso As imagens-diferença são originadas de distribuições

Gaussianas dentro do espaço de todas as imagens-diferençao O treinamento é feito através de PCA, determinando as

propriedades estatísticas de 2 subespaços Imagens-diferença da classe Intrapessoal Imagens-diferença da classe Extrapessoal 

o Na fase de teste, o classificador recebe uma imagem de classe desconhecida e usa as estimativas das distribuições de probabilidade para identificação.  Na prática: os feature vectors são projetados nos dois

conjuntos, e a probabilidade dele pertencer a cada subespaço é calculada.

1 - B. Moghaddam, C. Nastar, and A. Pentland. A bayesian similarity measure for direct image matching. ICPR, B:350–358, 1996.

Algoritmos testados - Reconhecimento

• BIC - Métricas de Classificação Os feature vectors são projetados nos dois conjuntos, e a probabilidade dele pertencer a cada subespaço é calculada. 

o MAP - Maximum a posteriori Métrica gerada em relação ao conjunto de imagens intra e

extrapessoais.o ML - Maximum likehood

Gerada em relação apenas ao conjunto de imagens intrapessoais.

Resultados

• Segmentação: o LuxandSDK

Teste de Eficácia Tempo de execução

 • Reconhecimento:

o Comparação: BIC x PCA

o Base da comparação: Matriz de Distância:

Segundo menor valor Desempenho:

Tempo de execução

Resultados -  LuxandSDK

• Tempo de execução: Média = 16,89 s / Desvio Padrão = 0,95

Resultados -  LuxandSDK

• Tempo de execução: Média = 35,41 s / Desvio Padrão = 0,38

Resultados -  LuxandSDK

• Tempo de execução: Média = 14,66 s / Desvio Padrão = 0,02

X

Resultados -  LuxandSDK - Resumo

Resultados -  LuxandSDK - Resumo

• Eficácia: Fotos frontais: 100% / Fotos reais: 65,76% • 2 Detecções 'duplas' • Tempo Médio de detecção por face = 0,69 s 

o Desvio Padrão = 0,02

Resultados -  Algoritmo BIC• Primeiro Resultado

                                    

 Imagem 0 Imagem 33

Resultados - Algoritmo BIC• Segundo Resultado

                                    

 Imagem 0 Imagem 32

Resultados - Algoritmo BIC• Terceiro Resultado

                                    

Imagem 48

Imagem 49

Resultados - Algoritmo BIC• Quarto Resultado

                                    

Imagem 48

Imagem 49

Resultados - Algoritmo BIC• Quinto Resultado

                                    

Imagem 119 Imagem 118

Resultados - Algoritmo BIC• Sexto Resultado

                                    

Imagem 119 Imagem 118

Resultados - Algoritmo PCA• Primeiro Resultado

                                    

Imagem 0 Imagem 22

Resultados - Algoritmo PCA• Segundo Resultado

                                    

Imagem 0 Imagem 8

Resultados - Algoritmo PCA• Terceiro Resultado

                                    

Imagem 48

Imagem 61

Resultados - Algoritmo PCA• Quarto Resultado

                                    

Imagem 48

Imagem 52

Resultados - Algoritmo PCA• Quinto Resultado

                                    

Imagem 119

Imagem 117

Resultados - Algoritmo PCA• Sexto Resultado

                                    

Imagem 119 Imagem 95

Resultados - Algoritmos

• Resumo dos Resultadoso Tempo de Execução:

Resultados - Algoritmos

• Resumo dos Resultadoso Número de Acertos (Amostragem de 10%):

Resultados - Algoritmos• Resultado geral da aplicação (Users Guide¹).

o Imagens: Banco de Dados FERET²

1-http://www.cs.colostate.edu/evalfacerec/algorithms/version5/faceIdUsersGuide.pdf2- http://en.wikipedia.org/wiki/FERET_database

Conclusão• Detecção - LuxandSDK

 o Boa detecção em fotos frontaiso Lida bem com rotação no plano de imagemo Dificuldades com rotação para fora do plano o Dificuldades com oclusão, faces pequenas, cenas reaiso Tempo de detecção consistente com o divulgado

Mas é alto Uso inviável para aplicações de tempo real

Conclusão• Reconhecimento - BIC:

o Pontos positivos: Bom Reconhecimento = ideal para o propósito!

o Pontos negativos: Alto tempo de execução e processamento:

Para reconhecimento de faces em multidões: muitas faces = muita segmentação e

processamento em alguns casos há necessidade de

reconhecimento em tempo real. Ruim para reconhecer faces em imagens iguais. 

Grande dependência de um banco de dados consistente.

Conclusão• Reconhecimento - PCA:

o Pontos Positivos: Bom para identificar faces de imagens idênticas  Rápida Execução.

o Pontos Negativos: Não identifica faces em imagens com variações:

Requisito básico para identificação de faces em multidões

Conclusão• Comentários Finais:

o Abordagem adotada mostrou-se lenta Tanto na segmentação quanto no reconhecimento

o Várias melhorias possíveis Eficácia:

Mudança do segmentador (Viola-Jones?) Implementação de reconhecedor mais sofisticado

Eficiência: Melhor integração com reconhecedor Uso de reconhecedor mais rápido

Conclusão• Comentários Finais:

o Para reconhecimento de faces em multidões é necessário:

o  Boa segmentação de faces: A qualidade da imagem de entrada é muito importante para o

reconhecedor.o Banco de dados de qualidade:

Imagens com variações de iluminação e resolução, oclusão de partes faciais, etc.

o Necessidade de rápido reconhecimento.o Baixo número de falsos positivos!

Dúvidas?

???

FIM

Obrigado!