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!