SlideShare a Scribd company logo
1 of 69
Download to read offline
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Detec¸c˜ao de faces em v´ıdeos
Paulo Vitor Mira Fonseca
Orientador: Prof. Dr. Marcos G. Quiles
Co-orientador: Prof. Dr. Ezequiel Roberto Zorzal
{pfonseca, quiles, ezorzal}@unifesp.br
Unifesp - Universidade Federal de S˜ao Paulo
http://www.unifesp.br
4 de dezembro de 2011
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 1/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Sum´ario I
1 Introdu¸c˜ao
2 Vis˜ao Computacional
3 Bibliotecas de Vis˜ao Computacional
4 OpenCV
Biblioteca OpenCV
Algoritmo Viola-Jones
Integra¸c˜ao de imagem
Aprendizado AdaBoost
Classificador em cascata
5 Algoritmo EigenFaces
6 Trabalho Realizado
Descri¸c˜ao
7 Resultados obtidos
8 Conclus˜ao
9 Referˆencias
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 2/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Contextualiza¸c˜ao e Motiva¸c˜ao
Computadores tornaram-se fundamentais em nossas vidas
Melhorar usabilidade
Detec¸c˜ao e reconhecimento de faces humanas
Processo n˜ao-intrusivo em biometria.
M´etodo muito complexo de ser realizado
computacionalmente.
Interferˆencias[17].
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 3/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Objetivos e Motiva¸c˜oes
Aprimorar os conhecimentos de aprendizado de m´aquina e
de processamento de imagens adquiridos ao longo da
gradua¸c˜ao;
Implementar uma ferramenta pr´atica a ser utilizada no
sistema de v´ıdeos da Unifesp-SJC, permitindo o
aprimoramento em nosso sistema de monitoramento de
usu´arios e intrusos no campus.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 4/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Vis˜ao Computacional
Vis˜ao Computacional ´e um dos campos da inteligˆencia
artificial.
Respons´avel pela interpreta¸c˜ao de imagens.
A maneira que um computador ”enxerga”se d´a pelos
atributos de seus pixels.
Amplamente empregados em diversas ´areas da ciˆencia [9]:
Rob´otica.
Processamento de imagens m´edicas.
Detec¸c˜ao/reconhecimento de faces.
etc.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Bibliotecas de Vis˜ao Computacional
Devido a complexidade dos algoritmos de vis˜ao computacional,
existem diversas bibliotecas dispon´ıveis na literatura.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 6/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Bibliotecas de Vis˜ao Computacional
Ferramenta OpenCV[6] LTI-Lib[4] ARToolKit[5] CVD[3] Gpucv[2] pyVysion[7]
Licen¸ca BSD GNU LGPL GNU GPL/AR-
ToolKitCDL
GNU LGPL CeCILL-B BSD
Sistemas
Operacionais
Linux
Windows
MacOSX
Android
IPhone
Linux
Windows
SGI-IRIX
Windows
MacOSX
Linux
Symbian
iPhone
Android
Linux
FreeBSD
OpenBSD
OSX
Solaris
IRIX
Windows
Windows
Linux
Linux
Windows
MacOSX
Linguagens
suportadas
C, C++ C++ C/C++ C++ C++ Python
Tempo real sim n˜ao sim sim sim sim
Criador Intel RWTH Aachen
University
Nara Institute of
Science and Te-
chnology
University of
Cambridge
Yannick Allusse David S. Bolme
Ano de desen-
volvimento
1999 1998 1999 2005 2006 2008
Recebe atua-
liza¸c˜oes
sim n˜ao sim N˜ao sim n˜ao
Restri¸c˜oes do
sistema
n˜ao n˜ao sim N˜ao sim (Processa-
dores gr´aficos)
n˜ao
Facilidade de
uso
sim n˜ao sim sim n˜ao sim
Exemplos en-
contrados
sim n˜ao n˜ao sim sim sim
Tabela: Comparativo de bibliotecas de vis˜ao computacional
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 7/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Bibliotecas de Vis˜ao Computacional
A biblioteca OpenCV apresenta a melhor escolha, pois:
Pode ser executada em diversos sistemas operacionais.
Pode ser executada em tempo real.
Recebe atualiza¸c˜oes
F´acil uso
Existem muitos exemplos de uso
Atendendo todos os requisitos para a realiza¸c˜ao deste projeto.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 8/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
OpenCV
OpenCV [6] ´e uma biblioteca que auxilia o processo de
vis˜ao computacional.
Provendo mais de 2000 fun¸c˜oes utilit´arias
Projeto de c´odigo aberto e distribu´ıdo sobre a licen¸ca
BSD[1]
Escrito em linguagem C++.
Existem interfaces para outras linguagens de
programa¸c˜ao:
Python
Ruby
C
Entre outras.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 9/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
OpenCV
Pode ser executado nos seguintes sistemas operacionais:
Linux
Windows
MacOS X
Projeto teve in´ıcio nos laborat´orios da Intel.
Tendo como foco aplica¸c˜oes que rodam em tempo-real.
IPP (Integrated Performance Primitives).
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 10/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Algoritmo Viola-Jones
Algoritmo de detec¸c˜ao de faces utilizado pelo OpenCV.
Baseado em trˆes ideias[16]:
1 Integra¸c˜ao de imagens
2 Aprendizado AdaBoost
3 Classificador em cascata.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 11/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Integra¸c˜ao de imagem
Processamento de partes intermedi´arias da imagem
A integral da imagem localizada no retˆangulo
representado pelos pontos (X, Y )
Soma dos valores dos pixels, em escala de cinza.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 12/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Integra¸c˜ao de imagem
Figura: Integra¸c˜ao de imagem
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 13/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Integra¸c˜ao de imagem
ii(x, y) =
x ≤x,y ≤y
i(x , y ) (1)
Onde ii(x, y) ´e a integral da imagem contida no retˆangulo
processado e i(x, y) ´e a imagem original.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 14/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Aprendizado AdaBoost
AdaBoost (Adaptive Boosting) ´e um algoritmo de
aprendizado de m´aquina [10].
O objetivo ´e encontrar uma hip´otese final com o menor
erro relativo em rela¸c˜ao `a distribui¸c˜ao de exemplos de
treinamento.
Combina classificadores fracos.
Apresenta tempos de execu¸c˜ao muito baixos.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 15/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Classificador em cascata
Componente mais cr´ıtico algoritmo Viola-Jones.
Sub-janelas negativas s˜ao rejeitas.
Mantendo todas as sub-janelas positivas.
Os primeiros classificadores que entram em execu¸c˜ao s˜ao
os classificadores mais simples.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Classificador em cascata
Componente mais cr´ıtico algoritmo Viola-Jones.
Sub-janelas negativas s˜ao rejeitas.
Mantendo todas as sub-janelas positivas.
Os primeiros classificadores que entram em execu¸c˜ao s˜ao
os classificadores mais simples.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Classificador em cascata
Componente mais cr´ıtico algoritmo Viola-Jones.
Sub-janelas negativas s˜ao rejeitas.
Mantendo todas as sub-janelas positivas.
Os primeiros classificadores que entram em execu¸c˜ao s˜ao
os classificadores mais simples.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Classificador em cascata
Componente mais cr´ıtico algoritmo Viola-Jones.
Sub-janelas negativas s˜ao rejeitas.
Mantendo todas as sub-janelas positivas.
Os primeiros classificadores que entram em execu¸c˜ao s˜ao
os classificadores mais simples.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Classificador em cascata
Figura: Aplica¸c˜ao de classificadores
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 17/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Algoritmo EigenFaces
Implementado na biblioteca OpenCV.
Reconhecimento facial utilizando est´ımulos faciais [15].
An´alise de Componentes Principais (Principal
Components Analysis, ou simplesmente PCA).
Imagens de faces humanas frontais com varia¸c˜ao de pose.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 18/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais(PCA)
Utilizado no reconhecimento de face e compress˜ao de
imagens.
Permite encontrar padr˜oes em dados de alta dimens˜ao.
Uso de autovetores e autovalores.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 19/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
Algoritmo
1 Obten¸c˜ao de dados
2 Subtra¸c˜ao da m´edia
3 Calculando a matriz de covariˆancia
4 Calculando os autovetores e autovalores da matriz de
covariˆancia
5 Escolhendo um componente e o vetor de caracter´ısticas
6 Derivando um novo conjunto de dados
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 20/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
1 - Obten¸c˜ao de dados
Cria¸c˜ao da base de treinamento
Extra¸c˜ao de caracter´ısticas
Caracter´ısticas bem definidas
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 21/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
2 - Subtra¸c˜ao da m´edia
Processamento em todas as dimens˜oes da representa¸c˜ao
dos dados da base de treinamento
Achar uma m´edia de representa¸c˜ao
Subtra¸c˜ao da m´edia
Dados extra´ıdos do artigo ”A tutorial on Principal
Components Analysis” [14]
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 22/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
2 - Subtra¸c˜ao da m´edia
Figura: Dados de exemplos PCA (Dados originais `a esquerda e
dados com m´edia subtra´ıda `a direita)
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 23/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
2 - Subtra¸c˜ao da m´edia
Figura: Distribui¸c˜ao dos dados originais
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 24/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
3 - Calculando a matriz de covariˆancia
cov =
0, 616555556 0, 615444444
0, 615444444 0, 716555556
(2)
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 25/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
4 - Calculando os autovetores e autovalores da matriz de covariˆancia
AV = λV (3)
autovalores = {0, 0490833989; 1, 28402771} (4)
autovetores =
−0, 735178656 −0, 677873399
0, 677873399 −0, 735178656
(5)
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 26/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
4 - Calculando os autovetores e autovalores da matriz de covariˆancia
Figura: Distribui¸c˜ao dos dados normalizados e os autovetores
encontrados.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 27/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
5 - Escolhendo um componente e o vetor de caracter´ısticas
Os autovalores definem a significˆancia do autovetor
Ordenar autovetores de acordo com os respectivos
autovalores
Decidir se um autovetor pode ser ignorado
VetordeCaracter´isticas = (eig1 eig2 eig3 ... eign) (6)
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 28/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
5 - Escolhendo um componente e o vetor de caracter´ısticas
−0, 677873399 −0, 735178656
−0, 735178656 0, 677873399
(7)
−0, 677873399
−0, 735178656
(8)
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 29/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
6 - Derivando um novo conjunto de dados
Multiplica¸c˜ao da transposta da matriz de caracter´ısticas
selecionada na etapa anterior pela esquerda da transposta da
matriz dos dados ajustados obtida no passo 2
VetorDeCaracter´isticasSelecionadas ×VetorDeDadosAjustados
(9)
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 30/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
Treinamento
Conjunto de treinamento ´e projetado no espa¸co de faces.
Autovetores encontrados pelo m´etodo PCA.
Eixos representam os autovetores de maior relevˆancia
selecionados
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 31/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
Treinamento
Figura: Espa¸co de faces (Face Space) em 2D, onde os eixos
representam os autovetores selecionados [15]
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 32/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
An´alise de Componentes Principais
Reconhecimento
Extra¸c˜ao dos autovetores e autovalores da face
Compara¸c˜ao com os autovetores da base de treinamento
Escolha da menor distˆancia
Melhoria: Uso da distˆancia de Mahalanobis [12]
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 33/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Detec¸c˜ao de faces
Uso da biblioteca OpenCV.
“haarcascade frontalface alt2.xml”.
Vers˜ao 2.1 da biblioteca OpenCV.
T´ecnicas de tratamento de imagens [11].
1 Cria¸c˜ao da imagem em escala de cinza.
2 Diminui¸c˜ao da escala da imagem em escala de cinza.
3 Equaliza¸c˜ao de histograma.
Amostragem no processamento das faces obtidas da
cˆamera.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 34/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Detec¸c˜ao de faces
Ap´os uma s´erie de experimentos foi verificado que h´a um
ganho maior quando a busca por faces ´e realizada a cada
quatro frames.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 35/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Reconhecimento de faces
Classificar faces em rela¸c˜ao `a um banco de dados
Ap´os a detec¸c˜ao de faces
Algoritmo Eigenfaces [15]
Distˆancias entre subespa¸cos PCA.
Distˆancia Euclidiana
Distˆancia Mahalanobis [13]
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 36/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Aprendizagem
Leitura de arquivo de treinamento
M´etodo PCA para encontrar um subespa¸co
Projetar as faces de treinamento no espa¸co de faces
EigenFaces
Armazenamento em arquivo xml
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 37/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Arquivo de configura¸c˜ao
50461 treinamento /50461/0. pgm
50461 treinamento /50461/1. pgm
50461 treinamento /50461/2. pgm
50461 treinamento /50461/3. pgm
50461 treinamento /50461/4. pgm
50461 treinamento /50461/5. pgm
50461 treinamento /50461/6. pgm
50461 treinamento /50461/7. pgm
50461 treinamento /50461/8. pgm
50461 treinamento /50461/9. pgm
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 38/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Arquivo de configura¸c˜ao
Figura: Exemplo de arquivo de treinamento
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 39/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Treinamento on-line
Captura de faces para a base de dados
Processamento da imagem capturada
Atualiza¸c˜ao do arquivo de treinamento
Captura de 10 faces
92 pixels de largura por 112 pixels de comprimento
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 40/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Algoritmo de Farneback
Fluxos ´opticos (”optical flow”) em imagens sequenciais [8]
Usado neste desenvolvimento para comparar imagens para
a base de treinamento.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 41/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Algoritmo de Farneback
Figura: Algoritmo de Farneback
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 42/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Aplica¸c˜ao
Figura: Tela do software implementado
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 43/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Tempo de treinamento
Figura: Gr´afico mostrando crescimento do tempo de
processamento de acordo com o n´umero imagens de treinamento
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 44/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Testes realizados
Captura est´atica
Varia¸c˜ao de ilumina¸c˜ao
Uso de acess´orios
Uso de oclus˜oes
Identifica¸c˜ao de imagens durante movimentos
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 45/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Testes realizados
Problema Acerto (%)
Captura est´atica frontal 91,00
Captura est´atica inclinada 5,00
Com pouca ilumina¸c˜ao 94,00
Com muita ilumina¸c˜ao 44,00
Com acess´orio (´oculos) 88,0
Com acess´orio (chap´eu) 80,00
Com oclus˜ao (olho) 81,00
Com movimentos 15,00
Tabela: Taxa de acerto para base de treinamento de 1 imagem
para cada face em diferentes situa¸c˜oes
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 46/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Testes realizados
Problema Acerto (%)
Captura est´atica frontal 99,00
Captura est´atica inclinada 7,00
Com pouca ilumina¸c˜ao 100,00
Com muita ilumina¸c˜ao 82,00
Com acess´orio (´oculos) 100,0
Com acess´orio (chap´eu) 88,00
Com oclus˜ao (olho) 40,00
Com movimentos 59,00
Tabela: Taxa de acerto para base de treinamento de 5 imagens
para cada face em diferentes situa¸c˜oes
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 47/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Testes realizados
Problema Acerto (%)
Captura est´atica frontal 100,00
Captura est´atica inclinada 100,00
Com pouca ilumina¸c˜ao 5,00
Com muita ilumina¸c˜ao 97,00
Com acess´orio (´oculos) 98,0
Com acess´orio (chap´eu) 98,00
Com oclus˜ao (olho) 83,00
Com movimentos 93,00
Tabela: Taxa de acerto para base de treinamento de 10 imagens
para cada face em diferentes situa¸c˜oes
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 48/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Testes realizados
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 49/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Conclus˜oes
Execu¸c˜ao em tempo real.
Algoritmo Viola-Jones ´e muito leve e eficaz para
identifica¸c˜ao de faces frontais.
10 imagens para cada pessoal no banco de treinamento.
Varia¸c˜ao de ilumina¸c˜ao.
Qualidade da cˆamera utilizada.
Base de treinamento para o algoritmo EigenFaces.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Conclus˜oes
Execu¸c˜ao em tempo real.
Algoritmo Viola-Jones ´e muito leve e eficaz para
identifica¸c˜ao de faces frontais.
10 imagens para cada pessoal no banco de treinamento.
Varia¸c˜ao de ilumina¸c˜ao.
Qualidade da cˆamera utilizada.
Base de treinamento para o algoritmo EigenFaces.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Conclus˜oes
Execu¸c˜ao em tempo real.
Algoritmo Viola-Jones ´e muito leve e eficaz para
identifica¸c˜ao de faces frontais.
10 imagens para cada pessoal no banco de treinamento.
Varia¸c˜ao de ilumina¸c˜ao.
Qualidade da cˆamera utilizada.
Base de treinamento para o algoritmo EigenFaces.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Conclus˜oes
Execu¸c˜ao em tempo real.
Algoritmo Viola-Jones ´e muito leve e eficaz para
identifica¸c˜ao de faces frontais.
10 imagens para cada pessoal no banco de treinamento.
Varia¸c˜ao de ilumina¸c˜ao.
Qualidade da cˆamera utilizada.
Base de treinamento para o algoritmo EigenFaces.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Conclus˜oes
Execu¸c˜ao em tempo real.
Algoritmo Viola-Jones ´e muito leve e eficaz para
identifica¸c˜ao de faces frontais.
10 imagens para cada pessoal no banco de treinamento.
Varia¸c˜ao de ilumina¸c˜ao.
Qualidade da cˆamera utilizada.
Base de treinamento para o algoritmo EigenFaces.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Conclus˜oes
Execu¸c˜ao em tempo real.
Algoritmo Viola-Jones ´e muito leve e eficaz para
identifica¸c˜ao de faces frontais.
10 imagens para cada pessoal no banco de treinamento.
Varia¸c˜ao de ilumina¸c˜ao.
Qualidade da cˆamera utilizada.
Base de treinamento para o algoritmo EigenFaces.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Referˆencias I
BSD License, 04 2011.
Gpucv, 04 2011.
libcvd, 04 2011.
LTI-Lib, 04 2011.
LTI-Lib, 04 2011.
Open Source Computer Vision Library, 04 2011.
pyvision, 04 2011.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 51/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Referˆencias II
G. Farneb¨ack.
Polynomial Expansion for Orientation and Motion
Estimation.
PhD thesis, Link¨oping University, Sweden, SE-581 83
Link¨oping, Sweden, 2002.
Dissertation No 790, ISBN 91-7373-475-6.
D. A. Forsyth and J. Ponce.
Computer Vision: A Modern Approach.
Prentice Hall, us ed edition, Aug. 2002.
Y. Freund and R. E. Schapire.
A decision-theoretic generalization of on-line learning and
an application to boosting, 1995.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 52/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Referˆencias III
R. C. Gonzalez and R. E. Woods.
Processamento de imagens digitais.
Blucher, 2010.
S. Magazine.
Implementing eigenface, 2007.
P. C. Mahalanobis.
On The Generalized Distance in Statistics.
1936.
L. I. Smith.
A Tutorial on Principal Component Analysis, 2002.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 53/54
Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res
Referˆencias IV
M. Turk and A. P. Pentland.
Face Recognition Using Eigenfaces.
1991.
P. Viola and M. Jones.
Robust Real-time Object Detection.
SECOND INTERNATIONAL WORKSHOP ON
STATISTICAL AND COMPUTATIONAL THEORIES OF
VISION, 2001.
C. Zhang and Z. Zhang.
A Survey of Recent Advances in Face Detection.
page 17, Junho 2010.
DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 54/54

More Related Content

Similar to Detecção de faces em vídeos com OpenCV e Eigenfaces

Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...Christopher Cerqueira
 
Apresentacao - Visualizacao Cientifica
Apresentacao -  Visualizacao CientificaApresentacao -  Visualizacao Cientifica
Apresentacao - Visualizacao Cientificakibe123
 
Utilizando OpenCV para soluções em visão computacional
Utilizando OpenCV para soluções em visão computacionalUtilizando OpenCV para soluções em visão computacional
Utilizando OpenCV para soluções em visão computacionalGuilherme Spadaccia
 
Seminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaSeminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaRubens Matos Junior
 
C.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoC.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoTiago Barros
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDeviceRicardo Rufino
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Computação Ubiqua e Verde
Computação Ubiqua e VerdeComputação Ubiqua e Verde
Computação Ubiqua e Verdeelliando dias
 
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresAmbiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresEduardo de Lucena Falcão
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel Brandão
 

Similar to Detecção de faces em vídeos com OpenCV e Eigenfaces (20)

Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...Introdução à utilização de openFrameworks para  o desenvolvimento de aplicaçõ...
Introdução à utilização de openFrameworks para o desenvolvimento de aplicaçõ...
 
Apresentacao - Visualizacao Cientifica
Apresentacao -  Visualizacao CientificaApresentacao -  Visualizacao Cientifica
Apresentacao - Visualizacao Cientifica
 
Mdb
MdbMdb
Mdb
 
Cygwin
CygwinCygwin
Cygwin
 
Seminario - Versão Final
Seminario - Versão FinalSeminario - Versão Final
Seminario - Versão Final
 
Utilizando OpenCV para soluções em visão computacional
Utilizando OpenCV para soluções em visão computacionalUtilizando OpenCV para soluções em visão computacional
Utilizando OpenCV para soluções em visão computacional
 
Seminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaSeminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíqua
 
[Ci2015] sim rva
[Ci2015] sim  rva[Ci2015] sim  rva
[Ci2015] sim rva
 
C.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en DiseñoC.E.S.A.R - Prototipación Electronica en Diseño
C.E.S.A.R - Prototipación Electronica en Diseño
 
ArduinoDay 2015 - OpenDevice
ArduinoDay 2015 -  OpenDeviceArduinoDay 2015 -  OpenDevice
ArduinoDay 2015 - OpenDevice
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
ICC-02 Evolução dos Computadores
ICC-02 Evolução dos ComputadoresICC-02 Evolução dos Computadores
ICC-02 Evolução dos Computadores
 
Palestra realidade aumentada
Palestra   realidade aumentadaPalestra   realidade aumentada
Palestra realidade aumentada
 
Computação Ubiqua e Verde
Computação Ubiqua e VerdeComputação Ubiqua e Verde
Computação Ubiqua e Verde
 
Toolbox iac para Scilab
Toolbox iac para Scilab Toolbox iac para Scilab
Toolbox iac para Scilab
 
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de ProcessadoresAmbiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
Ambiente de Simulação Gráfica 3D para Ensino da Arquitetura de Processadores
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Tese de mestrado
Tese de mestradoTese de mestrado
Tese de mestrado
 

Detecção de faces em vídeos com OpenCV e Eigenfaces

  • 1. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Detec¸c˜ao de faces em v´ıdeos Paulo Vitor Mira Fonseca Orientador: Prof. Dr. Marcos G. Quiles Co-orientador: Prof. Dr. Ezequiel Roberto Zorzal {pfonseca, quiles, ezorzal}@unifesp.br Unifesp - Universidade Federal de S˜ao Paulo http://www.unifesp.br 4 de dezembro de 2011 DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 1/54
  • 2. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Sum´ario I 1 Introdu¸c˜ao 2 Vis˜ao Computacional 3 Bibliotecas de Vis˜ao Computacional 4 OpenCV Biblioteca OpenCV Algoritmo Viola-Jones Integra¸c˜ao de imagem Aprendizado AdaBoost Classificador em cascata 5 Algoritmo EigenFaces 6 Trabalho Realizado Descri¸c˜ao 7 Resultados obtidos 8 Conclus˜ao 9 Referˆencias DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 2/54
  • 3. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Contextualiza¸c˜ao e Motiva¸c˜ao Computadores tornaram-se fundamentais em nossas vidas Melhorar usabilidade Detec¸c˜ao e reconhecimento de faces humanas Processo n˜ao-intrusivo em biometria. M´etodo muito complexo de ser realizado computacionalmente. Interferˆencias[17]. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 3/54
  • 4. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Objetivos e Motiva¸c˜oes Aprimorar os conhecimentos de aprendizado de m´aquina e de processamento de imagens adquiridos ao longo da gradua¸c˜ao; Implementar uma ferramenta pr´atica a ser utilizada no sistema de v´ıdeos da Unifesp-SJC, permitindo o aprimoramento em nosso sistema de monitoramento de usu´arios e intrusos no campus. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 4/54
  • 5. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 6. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 7. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 8. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 9. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 10. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 11. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 12. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Vis˜ao Computacional Vis˜ao Computacional ´e um dos campos da inteligˆencia artificial. Respons´avel pela interpreta¸c˜ao de imagens. A maneira que um computador ”enxerga”se d´a pelos atributos de seus pixels. Amplamente empregados em diversas ´areas da ciˆencia [9]: Rob´otica. Processamento de imagens m´edicas. Detec¸c˜ao/reconhecimento de faces. etc. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 5/54
  • 13. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Bibliotecas de Vis˜ao Computacional Devido a complexidade dos algoritmos de vis˜ao computacional, existem diversas bibliotecas dispon´ıveis na literatura. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 6/54
  • 14. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Bibliotecas de Vis˜ao Computacional Ferramenta OpenCV[6] LTI-Lib[4] ARToolKit[5] CVD[3] Gpucv[2] pyVysion[7] Licen¸ca BSD GNU LGPL GNU GPL/AR- ToolKitCDL GNU LGPL CeCILL-B BSD Sistemas Operacionais Linux Windows MacOSX Android IPhone Linux Windows SGI-IRIX Windows MacOSX Linux Symbian iPhone Android Linux FreeBSD OpenBSD OSX Solaris IRIX Windows Windows Linux Linux Windows MacOSX Linguagens suportadas C, C++ C++ C/C++ C++ C++ Python Tempo real sim n˜ao sim sim sim sim Criador Intel RWTH Aachen University Nara Institute of Science and Te- chnology University of Cambridge Yannick Allusse David S. Bolme Ano de desen- volvimento 1999 1998 1999 2005 2006 2008 Recebe atua- liza¸c˜oes sim n˜ao sim N˜ao sim n˜ao Restri¸c˜oes do sistema n˜ao n˜ao sim N˜ao sim (Processa- dores gr´aficos) n˜ao Facilidade de uso sim n˜ao sim sim n˜ao sim Exemplos en- contrados sim n˜ao n˜ao sim sim sim Tabela: Comparativo de bibliotecas de vis˜ao computacional DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 7/54
  • 15. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Bibliotecas de Vis˜ao Computacional A biblioteca OpenCV apresenta a melhor escolha, pois: Pode ser executada em diversos sistemas operacionais. Pode ser executada em tempo real. Recebe atualiza¸c˜oes F´acil uso Existem muitos exemplos de uso Atendendo todos os requisitos para a realiza¸c˜ao deste projeto. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 8/54
  • 16. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res OpenCV OpenCV [6] ´e uma biblioteca que auxilia o processo de vis˜ao computacional. Provendo mais de 2000 fun¸c˜oes utilit´arias Projeto de c´odigo aberto e distribu´ıdo sobre a licen¸ca BSD[1] Escrito em linguagem C++. Existem interfaces para outras linguagens de programa¸c˜ao: Python Ruby C Entre outras. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 9/54
  • 17. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res OpenCV Pode ser executado nos seguintes sistemas operacionais: Linux Windows MacOS X Projeto teve in´ıcio nos laborat´orios da Intel. Tendo como foco aplica¸c˜oes que rodam em tempo-real. IPP (Integrated Performance Primitives). DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 10/54
  • 18. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Algoritmo Viola-Jones Algoritmo de detec¸c˜ao de faces utilizado pelo OpenCV. Baseado em trˆes ideias[16]: 1 Integra¸c˜ao de imagens 2 Aprendizado AdaBoost 3 Classificador em cascata. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 11/54
  • 19. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Integra¸c˜ao de imagem Processamento de partes intermedi´arias da imagem A integral da imagem localizada no retˆangulo representado pelos pontos (X, Y ) Soma dos valores dos pixels, em escala de cinza. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 12/54
  • 20. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Integra¸c˜ao de imagem Figura: Integra¸c˜ao de imagem DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 13/54
  • 21. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Integra¸c˜ao de imagem ii(x, y) = x ≤x,y ≤y i(x , y ) (1) Onde ii(x, y) ´e a integral da imagem contida no retˆangulo processado e i(x, y) ´e a imagem original. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 14/54
  • 22. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Aprendizado AdaBoost AdaBoost (Adaptive Boosting) ´e um algoritmo de aprendizado de m´aquina [10]. O objetivo ´e encontrar uma hip´otese final com o menor erro relativo em rela¸c˜ao `a distribui¸c˜ao de exemplos de treinamento. Combina classificadores fracos. Apresenta tempos de execu¸c˜ao muito baixos. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 15/54
  • 23. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Classificador em cascata Componente mais cr´ıtico algoritmo Viola-Jones. Sub-janelas negativas s˜ao rejeitas. Mantendo todas as sub-janelas positivas. Os primeiros classificadores que entram em execu¸c˜ao s˜ao os classificadores mais simples. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
  • 24. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Classificador em cascata Componente mais cr´ıtico algoritmo Viola-Jones. Sub-janelas negativas s˜ao rejeitas. Mantendo todas as sub-janelas positivas. Os primeiros classificadores que entram em execu¸c˜ao s˜ao os classificadores mais simples. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
  • 25. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Classificador em cascata Componente mais cr´ıtico algoritmo Viola-Jones. Sub-janelas negativas s˜ao rejeitas. Mantendo todas as sub-janelas positivas. Os primeiros classificadores que entram em execu¸c˜ao s˜ao os classificadores mais simples. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
  • 26. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Classificador em cascata Componente mais cr´ıtico algoritmo Viola-Jones. Sub-janelas negativas s˜ao rejeitas. Mantendo todas as sub-janelas positivas. Os primeiros classificadores que entram em execu¸c˜ao s˜ao os classificadores mais simples. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 16/54
  • 27. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Classificador em cascata Figura: Aplica¸c˜ao de classificadores DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 17/54
  • 28. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Algoritmo EigenFaces Implementado na biblioteca OpenCV. Reconhecimento facial utilizando est´ımulos faciais [15]. An´alise de Componentes Principais (Principal Components Analysis, ou simplesmente PCA). Imagens de faces humanas frontais com varia¸c˜ao de pose. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 18/54
  • 29. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais(PCA) Utilizado no reconhecimento de face e compress˜ao de imagens. Permite encontrar padr˜oes em dados de alta dimens˜ao. Uso de autovetores e autovalores. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 19/54
  • 30. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais Algoritmo 1 Obten¸c˜ao de dados 2 Subtra¸c˜ao da m´edia 3 Calculando a matriz de covariˆancia 4 Calculando os autovetores e autovalores da matriz de covariˆancia 5 Escolhendo um componente e o vetor de caracter´ısticas 6 Derivando um novo conjunto de dados DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 20/54
  • 31. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 1 - Obten¸c˜ao de dados Cria¸c˜ao da base de treinamento Extra¸c˜ao de caracter´ısticas Caracter´ısticas bem definidas DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 21/54
  • 32. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 2 - Subtra¸c˜ao da m´edia Processamento em todas as dimens˜oes da representa¸c˜ao dos dados da base de treinamento Achar uma m´edia de representa¸c˜ao Subtra¸c˜ao da m´edia Dados extra´ıdos do artigo ”A tutorial on Principal Components Analysis” [14] DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 22/54
  • 33. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 2 - Subtra¸c˜ao da m´edia Figura: Dados de exemplos PCA (Dados originais `a esquerda e dados com m´edia subtra´ıda `a direita) DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 23/54
  • 34. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 2 - Subtra¸c˜ao da m´edia Figura: Distribui¸c˜ao dos dados originais DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 24/54
  • 35. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 3 - Calculando a matriz de covariˆancia cov = 0, 616555556 0, 615444444 0, 615444444 0, 716555556 (2) DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 25/54
  • 36. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 4 - Calculando os autovetores e autovalores da matriz de covariˆancia AV = λV (3) autovalores = {0, 0490833989; 1, 28402771} (4) autovetores = −0, 735178656 −0, 677873399 0, 677873399 −0, 735178656 (5) DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 26/54
  • 37. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 4 - Calculando os autovetores e autovalores da matriz de covariˆancia Figura: Distribui¸c˜ao dos dados normalizados e os autovetores encontrados. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 27/54
  • 38. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 5 - Escolhendo um componente e o vetor de caracter´ısticas Os autovalores definem a significˆancia do autovetor Ordenar autovetores de acordo com os respectivos autovalores Decidir se um autovetor pode ser ignorado VetordeCaracter´isticas = (eig1 eig2 eig3 ... eign) (6) DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 28/54
  • 39. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 5 - Escolhendo um componente e o vetor de caracter´ısticas −0, 677873399 −0, 735178656 −0, 735178656 0, 677873399 (7) −0, 677873399 −0, 735178656 (8) DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 29/54
  • 40. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais 6 - Derivando um novo conjunto de dados Multiplica¸c˜ao da transposta da matriz de caracter´ısticas selecionada na etapa anterior pela esquerda da transposta da matriz dos dados ajustados obtida no passo 2 VetorDeCaracter´isticasSelecionadas ×VetorDeDadosAjustados (9) DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 30/54
  • 41. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais Treinamento Conjunto de treinamento ´e projetado no espa¸co de faces. Autovetores encontrados pelo m´etodo PCA. Eixos representam os autovetores de maior relevˆancia selecionados DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 31/54
  • 42. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais Treinamento Figura: Espa¸co de faces (Face Space) em 2D, onde os eixos representam os autovetores selecionados [15] DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 32/54
  • 43. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res An´alise de Componentes Principais Reconhecimento Extra¸c˜ao dos autovetores e autovalores da face Compara¸c˜ao com os autovetores da base de treinamento Escolha da menor distˆancia Melhoria: Uso da distˆancia de Mahalanobis [12] DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 33/54
  • 44. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Detec¸c˜ao de faces Uso da biblioteca OpenCV. “haarcascade frontalface alt2.xml”. Vers˜ao 2.1 da biblioteca OpenCV. T´ecnicas de tratamento de imagens [11]. 1 Cria¸c˜ao da imagem em escala de cinza. 2 Diminui¸c˜ao da escala da imagem em escala de cinza. 3 Equaliza¸c˜ao de histograma. Amostragem no processamento das faces obtidas da cˆamera. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 34/54
  • 45. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Detec¸c˜ao de faces Ap´os uma s´erie de experimentos foi verificado que h´a um ganho maior quando a busca por faces ´e realizada a cada quatro frames. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 35/54
  • 46. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Reconhecimento de faces Classificar faces em rela¸c˜ao `a um banco de dados Ap´os a detec¸c˜ao de faces Algoritmo Eigenfaces [15] Distˆancias entre subespa¸cos PCA. Distˆancia Euclidiana Distˆancia Mahalanobis [13] DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 36/54
  • 47. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Aprendizagem Leitura de arquivo de treinamento M´etodo PCA para encontrar um subespa¸co Projetar as faces de treinamento no espa¸co de faces EigenFaces Armazenamento em arquivo xml DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 37/54
  • 48. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Arquivo de configura¸c˜ao 50461 treinamento /50461/0. pgm 50461 treinamento /50461/1. pgm 50461 treinamento /50461/2. pgm 50461 treinamento /50461/3. pgm 50461 treinamento /50461/4. pgm 50461 treinamento /50461/5. pgm 50461 treinamento /50461/6. pgm 50461 treinamento /50461/7. pgm 50461 treinamento /50461/8. pgm 50461 treinamento /50461/9. pgm DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 38/54
  • 49. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Arquivo de configura¸c˜ao Figura: Exemplo de arquivo de treinamento DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 39/54
  • 50. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Treinamento on-line Captura de faces para a base de dados Processamento da imagem capturada Atualiza¸c˜ao do arquivo de treinamento Captura de 10 faces 92 pixels de largura por 112 pixels de comprimento DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 40/54
  • 51. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Algoritmo de Farneback Fluxos ´opticos (”optical flow”) em imagens sequenciais [8] Usado neste desenvolvimento para comparar imagens para a base de treinamento. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 41/54
  • 52. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Algoritmo de Farneback Figura: Algoritmo de Farneback DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 42/54
  • 53. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Aplica¸c˜ao Figura: Tela do software implementado DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 43/54
  • 54. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Tempo de treinamento Figura: Gr´afico mostrando crescimento do tempo de processamento de acordo com o n´umero imagens de treinamento DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 44/54
  • 55. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Testes realizados Captura est´atica Varia¸c˜ao de ilumina¸c˜ao Uso de acess´orios Uso de oclus˜oes Identifica¸c˜ao de imagens durante movimentos DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 45/54
  • 56. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Testes realizados Problema Acerto (%) Captura est´atica frontal 91,00 Captura est´atica inclinada 5,00 Com pouca ilumina¸c˜ao 94,00 Com muita ilumina¸c˜ao 44,00 Com acess´orio (´oculos) 88,0 Com acess´orio (chap´eu) 80,00 Com oclus˜ao (olho) 81,00 Com movimentos 15,00 Tabela: Taxa de acerto para base de treinamento de 1 imagem para cada face em diferentes situa¸c˜oes DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 46/54
  • 57. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Testes realizados Problema Acerto (%) Captura est´atica frontal 99,00 Captura est´atica inclinada 7,00 Com pouca ilumina¸c˜ao 100,00 Com muita ilumina¸c˜ao 82,00 Com acess´orio (´oculos) 100,0 Com acess´orio (chap´eu) 88,00 Com oclus˜ao (olho) 40,00 Com movimentos 59,00 Tabela: Taxa de acerto para base de treinamento de 5 imagens para cada face em diferentes situa¸c˜oes DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 47/54
  • 58. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Testes realizados Problema Acerto (%) Captura est´atica frontal 100,00 Captura est´atica inclinada 100,00 Com pouca ilumina¸c˜ao 5,00 Com muita ilumina¸c˜ao 97,00 Com acess´orio (´oculos) 98,0 Com acess´orio (chap´eu) 98,00 Com oclus˜ao (olho) 83,00 Com movimentos 93,00 Tabela: Taxa de acerto para base de treinamento de 10 imagens para cada face em diferentes situa¸c˜oes DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 48/54
  • 59. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Testes realizados DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 49/54
  • 60. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Conclus˜oes Execu¸c˜ao em tempo real. Algoritmo Viola-Jones ´e muito leve e eficaz para identifica¸c˜ao de faces frontais. 10 imagens para cada pessoal no banco de treinamento. Varia¸c˜ao de ilumina¸c˜ao. Qualidade da cˆamera utilizada. Base de treinamento para o algoritmo EigenFaces. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
  • 61. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Conclus˜oes Execu¸c˜ao em tempo real. Algoritmo Viola-Jones ´e muito leve e eficaz para identifica¸c˜ao de faces frontais. 10 imagens para cada pessoal no banco de treinamento. Varia¸c˜ao de ilumina¸c˜ao. Qualidade da cˆamera utilizada. Base de treinamento para o algoritmo EigenFaces. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
  • 62. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Conclus˜oes Execu¸c˜ao em tempo real. Algoritmo Viola-Jones ´e muito leve e eficaz para identifica¸c˜ao de faces frontais. 10 imagens para cada pessoal no banco de treinamento. Varia¸c˜ao de ilumina¸c˜ao. Qualidade da cˆamera utilizada. Base de treinamento para o algoritmo EigenFaces. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
  • 63. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Conclus˜oes Execu¸c˜ao em tempo real. Algoritmo Viola-Jones ´e muito leve e eficaz para identifica¸c˜ao de faces frontais. 10 imagens para cada pessoal no banco de treinamento. Varia¸c˜ao de ilumina¸c˜ao. Qualidade da cˆamera utilizada. Base de treinamento para o algoritmo EigenFaces. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
  • 64. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Conclus˜oes Execu¸c˜ao em tempo real. Algoritmo Viola-Jones ´e muito leve e eficaz para identifica¸c˜ao de faces frontais. 10 imagens para cada pessoal no banco de treinamento. Varia¸c˜ao de ilumina¸c˜ao. Qualidade da cˆamera utilizada. Base de treinamento para o algoritmo EigenFaces. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
  • 65. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Conclus˜oes Execu¸c˜ao em tempo real. Algoritmo Viola-Jones ´e muito leve e eficaz para identifica¸c˜ao de faces frontais. 10 imagens para cada pessoal no banco de treinamento. Varia¸c˜ao de ilumina¸c˜ao. Qualidade da cˆamera utilizada. Base de treinamento para o algoritmo EigenFaces. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 50/54
  • 66. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Referˆencias I BSD License, 04 2011. Gpucv, 04 2011. libcvd, 04 2011. LTI-Lib, 04 2011. LTI-Lib, 04 2011. Open Source Computer Vision Library, 04 2011. pyvision, 04 2011. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 51/54
  • 67. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Referˆencias II G. Farneb¨ack. Polynomial Expansion for Orientation and Motion Estimation. PhD thesis, Link¨oping University, Sweden, SE-581 83 Link¨oping, Sweden, 2002. Dissertation No 790, ISBN 91-7373-475-6. D. A. Forsyth and J. Ponce. Computer Vision: A Modern Approach. Prentice Hall, us ed edition, Aug. 2002. Y. Freund and R. E. Schapire. A decision-theoretic generalization of on-line learning and an application to boosting, 1995. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 52/54
  • 68. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Referˆencias III R. C. Gonzalez and R. E. Woods. Processamento de imagens digitais. Blucher, 2010. S. Magazine. Implementing eigenface, 2007. P. C. Mahalanobis. On The Generalized Distance in Statistics. 1936. L. I. Smith. A Tutorial on Principal Component Analysis, 2002. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 53/54
  • 69. Introdu¸c˜ao Vis˜ao Computacional Bibliotecas de Vis˜ao Computacional OpenCV Algoritmo EigenFaces Trabalho Realizado Res Referˆencias IV M. Turk and A. P. Pentland. Face Recognition Using Eigenfaces. 1991. P. Viola and M. Jones. Robust Real-time Object Detection. SECOND INTERNATIONAL WORKSHOP ON STATISTICAL AND COMPUTATIONAL THEORIES OF VISION, 2001. C. Zhang and Z. Zhang. A Survey of Recent Advances in Face Detection. page 17, Junho 2010. DCT–UNIFESP — Detec¸c˜ao de faces em v´ıdeos 54/54