fabíola alvares rodrigues de souza maffra detecção de...
TRANSCRIPT
Fabíola Alvares Rodrigues de Souza Maffra
Detecção de características faciais utilizando FERNS
Dissertação de Mestrado
Dissertação apresentada como requisito parcial para obtenção do título de Mestre pelo Programa de Pós-Graduação em Informática da PUC-Rio.
Orientador: Marcelo Gattass
Rio de Janeiro, 20 de agosto de 2009
2
Fabíola Alvares Rodrigues de Souza Maffra
Detecção de características faciais utilizando FERNS
Dissertação apresentada como requisito parcial para obtenção do título de Mestre pelo Programa de Pós-Graduação em Informática da PUC-Rio. Aprovada pela Comissão Examinadora abaixo assinada.
Marcelo Gattass Orientador
PUC-Rio
Prof. Alberto Barbosa Raposo PUC-Rio
Dra. Cristina Nader Vasconcelos PUC-Rio
Prof. Raul Queiroz Feitosa PUC-Rio
Prof. Waldemar Celes Filho PUC-Rio
Prof. José Eugenio Leal Coordenador(a) Setorial do Centro Técnico Científico - PUC-Rio
Rio de Janeiro, 20 de agosto de 2009
3
Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, da autora e do orientador.
Fabíola Alvares Rodrigues de Souza Maffra
Graduou-se em Engenharia de Computação na Pontifícia Universidade Católica do Rio de Janeiro, onde deu continuidade a seus estudos no curso de mestrado do departamento de Informática.
Ficha Catalográfica
Maffra, Fabíola Alvares Rodrigues de Souza Maffra
Detecção de características faciais utilizando FERNS/Fabíola Alvares Rodrigues de Souza Maffra; orientador: Marcelo Gattass. – Rio de Janeiro : PUC, Departamento de Informática, 2009.
66 f; 29,7cm.
Dissertação (mestrado) – Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática.
Incluí referências bibliográficas.
1. Informática – Teses. 2. Detecção de características faciais. 3. Ferns. 4. Treinamento. 5. Detecção e reconhecimento de pontos característicos. 6. Rastreamento. 7. Clusterização.
4
Para os meus pais.
5
Agradecimentos
Ao meu orientador, pelo apoio, pelos conselhos e pela confiança em mim
depositada.
Ao CNPq e à PUC-Rio, pelo apoio financeiro, sem o qual este trabalho não seria
possível.
Aos amigos, companheiros desde o começo da graduação. Os momentos de
diversão e estudo jamais serão esquecidos.
Às amigas Fernanda Iacia, Luana Padilha e Paula Leite por estarem sempre
comigo, prontas para me ouvir e ajudar.
Ao Lucas, pela compreensão, incentivo, ajuda e amor em todos os momentos.
Aos meus irmãos, Sérgio e Rebeca, por estarem sempre presentes, me ajudando
em todos os momentos.
Aos meus pais, pelo carinho, amor e apoio incondicional em tudo.
6
Resumo
Maffra, Fabíola Alvares Rodrigues de Souza Maffra. Detecção de características faciais utilizando FERNS. Rio de Janeiro, 2009. 66p. Dissertação de Mestrado - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro.
Nas últimas décadas, a área de detecção da face e suas características tem
recebido bastante atenção da comunidade cientifica dada sua importância em
diversas aplicações, tais como, reconhecimento de faces, interação humano-
computador, reconhecimento de expressões faciais, segurança, etc. Esta
dissertação propõe a utilização de um classificador baseado em ferns no
treinamento e reconhecimento de pontos característicos a fim de possibilitar a
detecção das características da face. São revistas, brevemente, as principais
abordagens utilizadas na detecção de características faciais e a teoria de
reconhecimento de pontos característicos utilizando os ferns. Também é
apresentada uma implementação de um detector de características da face baseado
nos ferns e os resultados obtidos. O método proposto conta com uma fase de
treinamento offline durante a qual diversas vistas dos pontos característicos
extraídos de uma imagem de treinamento são sintetizadas e utilizadas no
treinamento dos ferns. A detecção das características da face é realizada nas
imagens obtidas, em tempo real, de diversos pontos de vista e sob diferentes
condições de iluminação.
Palavras-chave
Detecção de características faciais; ferns; treinamento; detecção e
reconhecimento de pontos característicos; segmentação; rastreamento;
clusterização;
7
Abstract
Alvares Rodrigues de Souza Maffra, Fabíola; Gattass, Marcelo. Facial features detection based on FERNS. Rio de Janeiro, 2009. 66p. MSc. Dissertation - Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro.
Over the last decades, face detection and facial features detection have
received a great deal of attention from the scientific community, since these
tasks are essential for a number of important applications, such as face
recognition, face tracking, human-computer interaction, face expression
recognition, security, etc. This work proposes the use of a classifier based on
FERNS to recognize interest points across images and then detect and track the
facial features. We begin with a brief review of the most common approaches
used in facial features detection and also the theory around the FERNS. In
addition, an implementation of the facial features detection based on FERNS is
present to provide results and conclusions. The method proposed here relies on
an offline training phase during which multiple views of the keypoints to be
matched are synthesized and used to train the FERNS. The facial features
detection is performed on images acquired in real-time from many different
viewpoints and under different lighting conditions.
Keywords
Facial features detection, FERNS, training, keypoints detection and
recognition, segmentation, tracking, clustering.
8
Sumário
1 Introdução 13
2 Trabalhos relacionados 16
2.1. Detecção de características faciais 16
2.1.1. Método baseado na geometria das características 17
2.1.2. Métodos Baseados em Templates 18
2.1.3. Métodos baseados na segmentação por cor 19
2.1.4. Métodos baseados na aparência 19
3 FERNS 21
3.1. O problema de matching visto como um problema de classificação 22
3.2. Classificação Naïve Bayesian 23
3.3. Fase de Treinamento 25
3.4. Construindo o conjunto de vistas 26
3.5. Detecção de pontos característicos 27
3.6. Selecionando os keypoints 29
4 Método Proposto 31
4.1. Descrição geral do método 31
4.2. Fase de Treinamento 31
4.3. Segmentação da face 34
4.4. Reconhecimento de keypoints 37
4.5. Clusterização e detecção das regiões das características faciais 37
4.6. Rastreamento baseado nos clusters e reinicialização do sistema 39
4.7. Detecção das características faciais 40
4.7.1. Detecção das narinas 40
4.7.2. Detecção das pupilas 41
5 Análise Experimental 43
9
5.1. Base de dados para testes 43
5.2. Análise do FERNS original 44
5.2.1. Influência da textura na detecção pelo FERNS 44
5.2.2. Influência do tamanho da região de interesse na detecção pelo
FERNS 47
5.2.3. Testando a planaridade para faces 50
5.3. Clusterização dos keypoints reconhecidos 52
5.4. Rastreamento 56
5.5. Testes com pessoas diferentes 58
5.6. Desempenho 61
6 Conclusão 62
7 Referências 64
10
Lista de figuras
Figura 1: Matching de um objeto planar utilizando FERNS. Imagem
retirada de Özuysal et al. [18]. 21
Figura 2: (a) Problema de classificação de um patch adquirido em tempo
real. (b) Conjunto de possíveis aparências de uma classe. 22
Figura 3: (a) Princípio da detecção de keypoints: se Im, Im + dR, Im-dR
são semelhantes, m não é um keypoint. (b) Como lidamos com
imagens discretizadas, é necessário comparar os pixels opostos
diametralmente e seus vizinhos para evitar respostas positivas
próximas de arestas. Imagem retirada de Lepetit e Fua 2004 [16]. 29
Figura 4: Linhas de cima: A imagem da esquerda corresponde a um
keypoint extraído da imagem de treinamento. As próximas três
imagens mostram o mesmo keypoint em diferentes vistas geradas
com escalas diferentes e sob o efeito de blur. O mesmo para a linha
de baixo. Imagem retirada de Lepetit e Fua [17]. 30
Figura 5: Correspondência de imagens de faces usando FERNS. Apesar
da não planaridade das faces, o FERNS continua apresentando bons
resultados. Imagem retirada de Özuysal et al. [18]. 32
Figura 6: (a) Imagem de treinamento. (b) Seleção das áreas de interesse.
(c) Pontos característicos extraídos da imagem de treinamento. 33
Figura 7: (a) Imagem de treinamento. (b) imagem segmentada pela cor da
pele. (c) Contornos detectados. (d) Extração do maior contorno e
detecção da face. 35
Figura 8: Região do olho se une ao fundo e não pode ser detectada
corretamente. 36
Figura 9: (a) Face segmentada pela cor de pele. (b) Fecho convexo da
face segmentada. (c) Face segmentada usando o fecho convexo. 36
Figura 10: Processo de classificação de um keypoint. 37
Figura 11: Representação do olho mostrando que a maior quantidade de
pixels por coluna passa pelo centro da pupila. 41
Figura 12: Ângulos de Tait-Bryan (Fonte: www.pittpatt.com). 44
11
Figura 13: (a) Imagem da face. (b) Imagem da face com adição de
texturas. 45
Figura 14: Movimentos simulados nos vídeos sintéticos: (a) escala, (b)
rotação em relação ao eixo longitudinal (roll), (c) rotação em relação
ao eixo vertical (yaw) e (d) translação. 45
Figura 15: Imagem da face com textura sobre as características faciais. 46
Figura 16: Áreas de interesse do exemplo 1. 48
Figura 17: Áreas de interesse do exemplo 2. 49
Figura 18: Exemplo 1 - Imagem de treinamento e exemplos de quadros
detectados: a primeira coluna representa os quadros detectados no
vídeo da face projetada no plano e a segunda coluna representa
quadros detectados no vídeo da face. 51
Figura 19: Imagem de treinamento utilizada no exemplo 2. 52
Figura 20: Imagem de treinamento dos vídeos: (a) escala, (b) translação,
(c) rotação em torno do eixo vetical e (d) rotação em torno do eixo
longitudinal. 53
Figura 21: Valores de erro encontrados. A imagem superior apresenta
erros iguais a: ND = 1.0, ND = 2.0, OD = 4.2 e OE = 2.2. A imagem
inferior apresenta erros iguais a: ND = 1.0, NE = 2.0, OD = 5.0 e OE =
5.0. 55
Figura 22: Gráfico de erro do olho direito com e sem rastreamento para o
vídeo de escala. 57
Figura 23: Gráfico de erro do olho direito com e sem rastreamento para o
vídeo de rotação sobre o eixo do pescoço. 58
Figura 24: Imagem de treinamento utilizada no exemplo 1. 59
Figura 25: Imagem de treinamento utilizada no exemplo 2. 60
12
Lista de tabelas
Tabela 1: Taxas de detecções corretas 47
Tabela 2: Taxas de detecção obtidas para cada Roi. 48
Tabela 3: Taxas de detecção obtidas para cada ROI. 49
Tabela 4: Taxas de detecção corretas obtidas para cada vídeo, utilizando
o FERNS original. 52
Tabela 5: Taxas de detecções corretas. 54
Tabela 6: Taxas de detecção com e sem rastreamento. 56
Tabela 7: Taxas de detecção com erro < 6 pixels. 59
Tabela 8: Erro médio em pixels 59
Tabela 9: Taxas de detecção com erro < 6 pixels. 60
Tabela 10: Erro médio em pixels para cada característica facial. 60
Tabela 11: Tempo médio necessário para o processamento de cada
quadro. 61
13
1 Introdução
Para uma pessoa, a detecção de faces e suas características, assim como o
seu reconhecimento, é uma tarefa trivial. Desde muito cedo o ser humano é capaz
de identificar e reconhecer outras pessoas ao seu redor. Ao olhar para uma
imagem, uma pessoa é capaz de identificar, quase instantaneamente, se nela tem
ou não uma face e onde estão suas características, e isto sob as mais adversas
condições. No entanto, uma tarefa tão simples e rápida para o ser humano mostra-
se bastante complexa para ser resolvida por um computador. A grande variedade
de formas e cores das características faciais acaba dificultando o procedimento e a
maior parte dos algoritmos de detecção de características da face não consegue
lidar nem com um simples movimento da cabeça. Além disso, a grande maioria
dos algoritmos é computacionalmente cara, o que torna inviáveis aplicações em
tempo real.
A localização das características faciais desempenha um papel importante
em diversas aplicações que vêm ganhando cada vez mais destaque na área de
Visão Computacional. Um exemplo da utilização das características faciais é o
reconhecimento de faces, onde uma fase de extração das características da face é
necessária antes de se realizar o reconhecimento. Características faciais como
olhos, boca e nariz ocupam uma posição fundamental nesse processo, uma vez
que são peças fundamentais para o reconhecimento de uma pessoa. Esse
procedimento é muito utilizado em sistemas de segurança, que ganham cada vez
mais espaço no mundo atual e com isso ajudam a impulsionar as pesquisas na
área.
Além do ramo de reconhecimento de faces, a análise de expressões faciais
em vídeos e imagens também apresenta grande crescimento na área de Visão
Computacional. Através das expressões da face podemos saber o estado de ânimo
de uma pessoa e a reação dela às nossas palavras, por exemplo. Mais uma vez,
esse processo conta com uma fase de pré-processamento para detecção das
14
características da face a fim de tornar possível a análise das expressões faciais de
uma pessoa.
Outra área importante que vem se destacando é a de interação humano-
computador. Através da detecção de características faciais é possível criar
interfaces onde, com ajuda de webcams, o usuário consiga interagir com algum
modelo 3D na tela do computador, por exemplo. Interfaces desse tipo fornecem ao
usuário uma imersão ao ambiente ou objeto virtual mostrado na tela do
computador, o que contribui para aumentar o grau de realismo da cena. Outra
aplicação importante se dá no caso de deficientes físicos, onde esses podem
utilizar movimentos da face para interagir com o computador, possibilitando uma
melhor qualidade de vida.
Esta dissertação apresenta um estudo sobre detecção de características da
face utilizando um método de aprendizado de máquina para reconhecimento de
retalhos de uma imagem. O objetivo do trabalho consiste em avaliar a utilização
desse método na extração de características da face. Para isso, propõe-se uma
nova abordagem para a detecção de características faciais. A escolha do método
de aprendizado de máquina utilizado se deve ao fato dele ser desenvolvido para
aplicações que exijam o tempo real. Esse método é apresentado em detalhes no
capítulo 3 e nas seções de testes e conclusões é feita uma avaliação do seu
potencial para a detecção de características da face. Neste trabalho são avaliados,
para a abordagem proposta, tanto a qualidade da detecção quanto a rapidez com
que isso é realizado. Dentre os principais componentes que constituem as faces
temos olhos, sobrancelhas, nariz, lábios e queixo. Este trabalho se concentra na
detecção dos olhos e das narinas em uma seqüência de imagens obtidas através de
um vídeo adquirido de uma webcam comum.
O restante desta dissertação está organizando da seguinte maneira. No
capítulo 2 são apresentados, brevemente, alguns trabalhos relacionados que
servem de base tanto para esta dissertação, como também para futuras pesquisas
na área. Passamos então, no capítulo 3, para uma explicação detalhada da técnica
de classificação de patches baseada na utilização dos FERNS, a fim de facilitar o
entendimento do trabalho desenvolvido nesta dissertação. O capítulo 4 apresenta
uma descrição do método proposto para detecção de características faciais e
detalhes do programa implementado, seguidos, no capítulo 5, dos experimentos
realizados e os resultados obtidos. No capítulo 5 também é apresentada a base de
15
dados utilizada para os testes. Finalizando, no capítulo 6, são apresentadas as
conclusões obtidas ao longo desta dissertação e algumas sugestões para trabalhos
futuros.
16
2 Trabalhos relacionados
2.1. Detecção de características faciais
A localização das características faciais desempenha um papel importante
em diversas aplicações, tais como, reconhecimento de faces, sistemas de
segurança, análise de expressões faciais, interação humano-computador,
rastreamento de faces, etc. Um dos trabalhos pioneiros nessa área foi publicado
em 1977 por Kanade [21] e nas últimas três décadas houve grandes avanços na
detecção de faces e suas características. Como descrito no artigo de Ding, L. e
Martinez, A. [11], muitos algoritmos mostram-se bastante confiáveis na detecção
de faces em imagens com grande quantidade de pessoas e apresentando
desempenho em tempo real ou perto disso. No entanto, muito ainda precisa ser
feito para fornecer uma detecção precisa e detalhada da face e de suas
características. Embora existam muitos métodos para localização de
características faciais, a maior parte deles é computacionalmente cara, tornando
inviáveis aplicações em tempo real [12].
A extração de características da face apresenta diversos desafios devido à
grande variação na fisionomia das faces de um indivíduo para outro. Como
descrito em [13] e [14], dentre os principais desafios podemos citar:
- Pose: A imagem da face depende da posição da face em relação à
câmera (frontal, inclinada, perfil, cabeça pra baixo, etc.).
- Presença ou não de componentes estruturais: Características faciais tais
como barba, bigode, cabelo e óculos podem ou não estar presentes.
Além disso, a variedade entre esses componentes é bem grande,
podendo ter formas, cores e tamanhos diferentes.
- Expressões faciais: A aparência da face é diretamente afetada pelas
expressões faciais e emoções presentes na face da pessoa.
- Oclusão: As faces podem estar parcialmente oclusas por objetos ou por
outra face.
17
- Condições da imagem: As condições de aquisição da imagem podem
provocar problemas com a iluminação, podem fornecer imagens
tremidas, com pouca resolução, etc.
Duas abordagens podem ser utilizadas para detecção das características
faciais [2]:
- Na primeira abordagem, uma etapa de detecção da face é realizada
anteriormente a detecção das características faciais a fim de determinar a
região na qual a detecção das características será realizada. Diversos
trabalhos apresentam uma revisão sobre as principais técnicas de
detecção de faces em imagens. Em vídeos a detecção da face pode ser
obtida através da detecção do movimento, facilitando o processo.
- Na segunda abordagem, a procura pelas características faciais é
realizada na imagem inteira. Nesse caso, a geometria da face e o
tamanho das características da face são normalmente levados em
consideração, o que torna esse tipo de método mais propenso a erros e
limita sua aplicação a imagens dentro de certo limite de tamanho.
As técnicas de detecção de características faciais são normalmente
relacionadas à detecção dos olhos, boca, nariz, sobrancelha e alguma outra
componente facial importante. As características faciais podem ser de três tipos
diferentes: região, contorno ou ponto chave. Várias técnicas foram propostas com
esse propósito e podem ser classificadas em quatro grupos de acordo com [10]:
métodos baseados na geometria das características (geometric feature-based),
métodos baseados em templates (template-based), métodos baseados na
segmentação de cor (color segmentation techniques) e métodos baseados na
aparência (appearence based approaches). Diversos trabalhos utilizam mais de um
dos métodos a fim de melhorar a detecção das características faciais [4, 22].
2.1.1. Método baseado na geometria das características
Os métodos baseados na geometria das características utilizam o tamanho e
a posição dos componentes da face e a relação entre eles para detecção das
características faciais. Esses métodos normalmente utilizam um banco de dados
com um modelo para cada face e têm como objetivo fazer a correspondência entre
18
a face a ser detectada e alguma face presente no banco de dados. Para cada face
presente no banco de dados, um vetor de características é calculado e a detecção é
feita utilizando-se um classificador baseado no vizinho mais próximo.
Nesse tipo de abordagem, filtros de detecção de vales e análise horizontal e
vertical das integrais de borda são muito utilizados. O gradiente vertical mostra-se
bastante útil na detecção do topo da cabeça, olho, base do nariz e boca, enquanto o
gradiente horizontal é utilizado na detecção das bordas esquerda e direita da face e
do nariz.
Um exemplo dessa técnica pode ser encontrado em [6], onde Brunelli, R. e
Poggio T. fazem uma comparação desse método com o método baseado em
templates.
2.1.2. Métodos Baseados em Templates
Esses métodos têm como objetivo encontrar a melhor correspondência, dada
por uma função de energia, entre um objeto da imagem e um modelo previamente
determinado [5]. No caso da detecção de características faciais o objeto em
questão poderia ser um olho, a boca ou alguma outra característica desejada.
Existem diversos trabalhos que utilizam métodos baseados em templates
para detectar tanto a face como suas características [7]. Nesses casos, a
abordagem mais simples é utilizar um modelo que representa a face como um
todo e compará-lo a imagem utilizando uma métrica adequada (normalmente
distância euclidiana) [6]. Normalmente, os modelos utilizados são frontais e a face
é tida como sendo uma elipse. Como explicado em [9] o problema dessa
abordagem é que ela não lida efetivamente com variações na escala, pose e forma.
Em trabalhos que consideram apenas as características da face esses problemas
também estão presentes. Como podemos ver em [6] diversas técnicas foram
propostas para contornar esses problemas, dentre elas: sub-templates (ou
templates baseados em componentes), multi-resolução, multi-escala e templates
deformáveis [1].
19
2.1.3. Métodos baseados na segmentação por cor
A técnica de segmentação por cor leva em consideração o tom da pele para
isolar a face. Qualquer região, no domínio da face localizada, que não é pele, é
vista como uma possível candidata a alguma característica facial, tal como,
narinas, olhos, sobrancelhas e boca. Nesse tipo de abordagem, há uma grande
utilização de diversos espaços de cor para se construir um modelo da pele e tornar
possível a sua localização. Para a segmentação de pele muitos trabalhos utilizam
algum threshlod. Após encontrar regiões candidatas, características locais são
utilizadas para verificar essas regiões. Normalmente, faz-se um agrupamento dos
pixels de uma região utilizando uma análise de componentes conectados ou
algoritmos de agrupamento e após isso, a forma ou outras características locais
são utilizadas para verificação da característica.
A eficiência desse tipo de técnica em bancos de dados de imagens é bastante
limitada devido à grande diferença existente entre as etnias. No entanto, é possível
detectar faces não frontais e parcialmente oclusas com barba, óculos, etc.
Um exemplo desse tipo de abordagem pode ser encontrado em [22], onde
Hongliang et al. Utilizam a segmentação por cor para encontrar regiões de pele e
após isso são realizados outros processamentos para decidir se a região encontrada
é ou não uma face.
2.1.4. Métodos baseados na aparência
Os métodos baseados na aparência não necessitam de nenhum
conhecimento prévio sobre o objeto ou característica a ser detectada. Geralmente,
as técnicas que pertencem a este grupo necessitam de várias imagens para fazer o
aprendizado. Esses métodos são normalmente baseados em técnicas de análise
estatística e aprendizado de máquina. Exemplos dessa abordagem são as redes
neurais, análise de componentes principais (PCA), Eigenfaces, Support Vector
Machines (SVM), Linear discriminant analysis (LDA) e modelos de Markov
ocultos.
Neste trabalho é feito uma mistura de duas abordagens apresentadas acima.
A face é detectada usando o método baseado na segmentação por cor. Para
20
reconhecimento das características faciais é utilizado um método baseado em
aparência, onde certas características são extraídas de uma imagem de treinamento
e são usados no treinamento de um classificador baseado em um algoritmo
conhecido como ferns. O método proposto é apresentado no capítulo 4.
21
3 FERNS
Os FERNS são estruturas não-hierárquicas usadas na classificação de
patches. Os patches são pequenos pedaços da imagem. Cada fern se baseia em um
pequeno conjunto de testes binários para calcular a probabilidade de um patch
pertencer a cada uma das classes existentes. Özuysal et al descrevem no artigo
[18] um classificador baseado nos FERNS com o objetivo de fazer a
correspondência (matching) entre os pontos característicos (keypoints) extraídos
de uma imagem de treinamento e aqueles extraídos a partir de imagens obtidas,
em tempo real, de diversos pontos de vista e sob diferentes condições de
iluminação. A abordagem descrita no artigo [18] conta com uma fase de
treinamento offline. Um exemplo, utilizando FERNS, da correspondência entre
keypoints extraídos de duas imagens diferentes pode ser visto na figura 1. Este
capítulo foi baseado principalmente nos trabalhos [17] e [18].
Figura 1: Matching de um objeto planar utilizando FERNS. Imagem retirada
de Özuysal et al. [18].
Como mostrado em [17], modelar o problema de matching como um
problema de classificação Naïve Bayesian produz algoritmos simples, robustos e
com uma demanda computacional muito menor do que métodos estudados
anteriormente. Uma descrição do problema de matching modelado como um
22
problema de classificação é apresentado nas seções 3.1 e 3.2. O restante do
capítulo é organizado da seguinte maneira: a seção 3.3 apresenta uma explicação
geral da fase de treinamento do processo, enquanto as seções seguintes
apresentam detalhes da implementação desenvolvida por Lepetit e Fua [17]. Na
seção 3.4 é descrito o processo de obtenção do conjunto de treinamento, seguido,
na seção 3.5, pela detecção dos pontos característicos e finalizando, na seção 3.6,
com o método de seleção desses keypoints.
3.1. O problema de matching visto como um problema de classificação
Essa abordagem conta com uma fase de treinamento offline durante a qual,
diversas vistas dos “image patches” centrados nos keypoints, extraídos de uma
imagem de treinamento, são sintetizadas e utilizadas no treinamento do
classificador. Considera-se o conjunto de todas as possíveis aparências de um
patch centrado em um keypoint como uma classe. Dessa forma, o objetivo é: dado
um patch associado a um keypoint, detectado em uma imagem em tempo real,
deve-se definir a classe mais provável a qual esse keypoint pertence. Com isso, é
possível fazer o matching entre os keypoints extraídos da imagem de treinamento
e os keypoints detectados nas imagens obtidas em tempo real baseando-se na
classificação de patches. As figuras 2 (a) e 2 (b) ilustram, respectivamente, o
problema descrito acima e o conjunto de possíveis aparências de uma classe.
Detalhes do método utilizado para construção das vistas de um patch centrado em
um keypoint é descrito na seção 3.4
Figura 2: (a) Problema de classificação de um patch adquirido em tempo
real. (b) Conjunto de possíveis aparências de uma classe.
23
Para a classificação dos patches são utilizadas estruturas não-hierárquicas
denominadas FERNS. Cada fern é formado por um conjunto de testes binários e
retorna a probabilidade de um patch pertencer a cada uma das classes aprendidas
durante o treinamento. Na prática, um fern sozinho não é suficiente para fazer essa
discriminação quando há um grande número de classes envolvido. No entanto,
usando-se diversos FERNS e combinando suas respostas é possível obter bons
resultados na classificação. O conjunto desses FERNS treinados gera um
classificador rápido e robusto, como mostrado em [18].
3.2. Classificação Naïve Bayesian
Como mencionado anteriormente, considera-se o conjunto de todas as
possíveis aparências de um patch centrado em um keypoint como uma classe.
Dado o patch associado a um keypoint detectado em uma imagem, deseja-se
definir a classe mais provável a qual esse keypoint pertence. Considerando ci, i =
1, ... , H o conjunto de classes, deseja-se encontrar
ĉ� =�� ����� ��� = ��|����ℎ�,
onde C é uma variável aleatória que representa a classe.
Sendo fj, j = 1, ... , N o conjunto de características binárias que serão
calculadas sobre o patch a ser classificado, temos:
ĉ� =�� ����� ��� = �����,� , … , �"#. (1)
O teorema de Bayes fornece
��� = �����,� , … , �"# = ����,� , … , �"|� = ��)�(� = ��)�(��,� , … , �") .
24
Uma vez que o denominador pode ser visto como sendo simplesmente um
fator de escala, pois independe da classe e assumindo a probabilidade a priori
P(C) como sendo uniforme, o problema se reduz a encontrar
ĉ� =�� ����� �(��,� , … , �"|� = ��).
O valor de cada característica binária fj depende apenas das intensidades das
posições dj,1 e dj,2 de dois pixels localizados no patch a ser classificado. Isto é,
�% = &1()*�+%,�# < *(+%, )0��(.�./��á�1. ,
onde I representa o patch. Uma vez que essas características são
extremamente simples, é necessário uma grande quantidade destas para uma
classificação correta. Por conseguinte, torna-se inviável a representação completa
da probabilidade conjunta dada pela equação (1), pois seria necessário calcular e
armazenar 2N entradas para cada classe. Uma maneira de comprimir essa
representação seria assumir completa independência entre as características, isto é,
�(��,� , … , �"|� = ��) = 2���%�� = �� #."
%3�
No entanto, essa representação ignora completamente a relação entre as
características. Para tornar o problema tratável levando em conta essas
dependências, o conjunto de características é particionado em M grupos de
tamanho 4 = 5 67 . Esses grupos são denominados FERNS e para cada fern
calcula-se a probabilidade conjunta para as características. Dessa forma, a
probabilidade condicional pode ser escrita por
�(��,� , … , �"|� = ��) = 2�(89|� = ��),:
93�
25
onde F< = =f?(<,�), f?(<, ), … , f?(<,@)A, k = 1, ..., M representa O k-éssimo
fern e σ(k, j) é uma função de permutação aleatória variando de 1 a N. Desta
forma, segue-se uma abordagem Semi-Naïve Bayesian para modelar apenas
algumas das dependências entre as caracterticas [19]. Desta maneira, o problema
pode ser facilmente tratável, uma vez que o número de parametros é M x 2S e uma
boa taxa de reconhecimento é alcançada com M entre 30 e 50 e S em torno de 10,
como mostrado em [18].
3.3. Fase de Treinamento
O processo de treinamento começa pela construção de um conjunto de H
keypoints extraídos da imagem de treinamento (veja seções 3.5 e 3.6). Cada ponto
característico detectado nessa imagem corresponde a uma classe diferente. As
características dos FERNS, dadas pelas posições dj,1 e dj,2 de dois pixels
localizados no patch são escolhidas aleatoriamente.
Os termos
�(89|� = ���, B = 1,… ,6
são estimados calculando-se as features binárias usando diversos exemplos
para cada classe. Para ter um grande conjunto de treinamento, diversas vistas são
sintetizadas a partir de uma única imagem usando técnicas de renderização como
transformações afins e extraindo patches de treinamento para cada uma das
classes. Nas imagens geradas automaticamente também são adicionados ruídos e
filtros de suavizaçao de maneira a obter um maior realismo. Para cada keypoint da
imagem de treinamento, esse processo fornece um bom conjunto de amostras das
possíveis aparências tomadas de diversos pontos de vista.
No entanto, apesar de ��89|� = ��� ser apenas uma parte da probabilidade
conjunta dada pela equação (1), o seu cálculo continua envolvendo um grande
número de parâmetros e a probabilidade empírica não pode ser estimada
confiavelmente como acontece na prática.
26
A fim de explicar como é calculado ��89|� = �� � considere o evento θ(Fk)
que significa “A probabilidade empírica para Fk é confiável”. Dessa forma,
��89|� = ��� pode ser expressa da seguite maneira:
��89�� = ��, C�89�#��C�89�# + ��89�� = ��, C�89�DDDDDDD#��C�89�DDDDDDD#.
��89�� = ��, C�89�# nada mais é do que a probabilidade empírica de
��89|� = ���, e ��89�� = ��, C�89�DDDDDDD# pode ser tomada como uma constante e é
portanto igual a �E.
Considere ��C�89�# sendo:
��C�89�# = ∑ /9,��∑ �/9,� + G��
.
onde /9,� representa o número de amostras do treinamento que verificam o
conjunto de características Fk. Quando o conjunto de treinamento é realmente
representativo das variações que existem dentro de cada classe, esse modelo faz
sentido uma vez que tende a 1 quando o número de amostras de treinamento
cresce e fornece uma maneira simples de estimar ��89�� = ��, C�89�# . É fácil
verificar que temos então:
��89|� = ��� = /9,�∑ �/9,� + G#9
.
Na prática, o valor de u não influência nos resultados logo que u é maior que
zero. Em [18] usa-se u = 1. Esse fator é interpretado pelos autores como Dirichlet
prior, uma vez que as probabilidades condicionais das classes são modeladas
como multinomiais.
3.4. Construindo o conjunto de vistas
Uma abordagem simples para a construção do conjunto de vistas é extrair
keypoints da imagem de treinamento e processar cada keypoint
27
independentemente de forma a encontrar as possíveis aparências desse keypoint.
No entanto, uma abordagem mais efetiva foi usada em [17], onde, primeiramente,
são geradas vistas do objeto inteiro e os keypoints são extraídos dessas vistas.
Dessa forma, é mais fácil selecionar keypoints mais estáveis na presença de ruídos
e sob mudanças de perspectivas, tornando o método mais robusto sem acréscimo
de custo computacional. Isso é possível, pois apenas os keypoints identificados
nas diferentes imagens geradas serão considerados e aqueles que aparecem poucas
vezes são descartados.
As vistas são sintetizadas utilizando-se transformações afins. Uma
transformação afim pode ser decomposta em H = IJI∅L�4I∅, onde IJe I∅ são
matrizes de rotação parametrizadas pelos ângulos θ e ∅, respectivamente e
4 = +1� [N�, N ] é a matriz de escala. θ e ∅ pertencem ao intervalo [−Q, +Q] e N�
e N pertencem ao intervalo [0.6; 1.5]. De acordo com Lepetit e Fua [17] , essa
faixa de valores é suficiente para tratar variações dentro de uma octave, enquanto
variações maiores de escala são tratadas tomando-se pontos característicos
detectados em diversas escalas (mais de uma octave), como mostrado na próxima
seção.
3.5. Detecção de pontos característicos
Como definido em [15], uma característica local nada mais é do que uma
amostra da imagem que difere da sua vizinhança imediata. Essa característica
local está normalmente associada com a variação de uma ou mais propriedades da
imagem simultaneamente. As propriedades da imagem que são normalmente
consideradas são intensidade, cor e textura. Características locais podem ser
pontos, mas também podem ser arestas ou pequenos pedaços da imagem (image
patches). Tipicamente, medições são tomadas em uma região centrada em uma
característica local e convertidas em descritores. Esses descritores são então
utilizados em diversas aplicações como base para o reconhecimento.
Diversos métodos eficientes já foram propostos para detecção de pontos
característicos em uma imagem. Com foco em aplicações em tempo real, Lepetit e
Fua [16] propuseram um método rápido e estável para realização dessa tarefa.
Como os próprios autores afirmam, apesar de métodos mais robustos já terem sido
28
propostos, a baixa complexidade dessa abordagem a torna uma alternativa atrativa
quando se deseja trabalhar com aplicações em tempo real. Esse método será
brevemente descrito nesta seção.
Como mostrado na figura 3 (a), a idéia básica do método consiste em
considerar as intensidades ao longo de um círculo centrado em cada candidato à
keypoint. Inicialmente, todos os pixels são candidatos à pontos característicos. Se
dois pixels diametralmente opostos nesse círculo tiverem aproximadamente a
mesma intensidade que o candidato à keypoint do centro, esse ponto não é
considerado um ponto característico. Em áreas uniformes ou ao longo de arestas,
sempre é possível encontrar um par de pontos diametralmente opostos com
intensidades semelhantes ao ponto candidato à keypoint. Por esse motivo, o
círculo é examinado realizando-se testes do tipo:
4)�*R��� − *R�� + +IS�� ≤ +U e
4)�*R��� − *R�� − +IS�� ≤ +U então m não é um keypoint,
onde +IS = �I�.(V; I(1/V�, I sendo o raio escolhido e V variando entre [0;
π]. Na prática, como as imagens são discretizadas, é necessário comparar não
apenas os pixels diametralmente oposto, mas também seus vizinhos, de modo a
evitar respostas próximas de arestas, como mostrado na figura 3 (b). Geralmente,
pontos que não são característicos são rejeitados rapidamente, sem necessidade de
percorrer o círculo completo. Para os pontos em que se atribui uma resposta
posistiva, isto é, foram considerados como sendo pontos característicos, calcula-se
um score e são selecionados como keypoints os ótimos locais. O laplaciano da
gaussiana é utilizado para cálculo do score e é aproximado por um fator de escala
da seguinte maneira:
X.Y��� ≈ [ *R�� − +IS� −S∈[];^]
*R��� + *R�� + +IS�.
Essa expressão pode ser calculada à medida que o círculo é percorrido e
usando apenas um número limitado de pixels, tornado o método mais rápido e
mantendo sua eficácia.
29
Uma orientação é também atribuída ao keypoints. A orientação αm é dada
por:
V_ = |*R��� − *R�� + +IS�|S∈[]; ^]`ab_`c .
De acordo com os autores, essa orientação é estável o suficiente para
normalizar a vizinhança do keypoint no que diz respeito às rotações 2D. O cálculo
da orientação também pode ser feito à medida que o círculo é percorrido.
(a) (b)
Figura 3: (a) Princípio da detecção de keypoints: se de�f�, de�f + gh�, de�f − gh� são semelhantes, m não é um keypoint. (b) Como lidamos com
imagens discretizadas, é necessário comparar os pixels opostos
diametralmente e seus vizinhos para evitar respostas positivas próximas de
arestas. Imagem retirada de Lepetit e Fua 2004 [16].
O algoritmo é aplicado nas primeiras octaves da imagem e os pontos
característicos detectados em cada uma das octaves são utilizados para treinar o
classificador. Cada octave representa a imagem em escalas diferentes, o que torna
o algoritmo mais robusto em relação às variações de escala (zoom).
3.6. Selecionando os keypoints
Idealmente, um keypoint Ki em K deve possuir uma alta probabilidade P(Ki)
de ser encontrado quando está visível, mesmo apresentando distorções de
perspectiva e ruídos.
30
Considere U uma transformação geométrica utilizada para sintetizar uma
nova vista como descrito na seção 3.2.2, e Be um ponto característico extraído
dessa vista usando o procedimento descrito na seção 3.2.1. U é também uma
transformação afim ou projeção e aplicando UL� a Be pode-se encontrar o keypoint
k correspondente no sistema de referência. No entanto, nem todos os keypoints
vão ter um correspondente na nova imagem gerada. Dessa forma, dado um
conjunto de vistas sintetizadas automaticamente, P(k) pode ser estimada
contando-se quantas vezes o keypoint correspondente é encontrado. Dessa forma,
o conjunto K pode ser construído pegando-se os n keypoints com maior
probabilidade P(k). Para cada keypoint ki i K, constrói-se o conjunto de vistas
correspondentes pegando-se a vizinhança correspondente à Be nas imagens
geradas, como mostrado na figura 4. Quando um keypoint é detectado em duas
imagens diferentes, tanto a mudança de perspectiva quanto a existência de ruídos
podem ocasionar pequenos deslocamentos em relação à sua localização exata.
Para resolver esse problema, um ruído branco é atribuído nas vistas sintetizadas
antes de se fazer a extração dos keypoints, o que força o classificador a aprender a
lidar com esses pequenos deslocamentos.
Figura 4: Linhas de cima: A imagem da esquerda corresponde a um keypoint
extraído da imagem de treinamento. As próximas três imagens mostram o
mesmo keypoint em diferentes vistas geradas com escalas diferentes e sob o
efeito de blur. O mesmo para a linha de baixo. Imagem retirada de Lepetit e
Fua [17].
31
4 Método Proposto
4.1. Descrição geral do método
O objetivo do método proposto consiste em avaliar o potencial dos FERNS
para detecção das características faciais, em tempo real, em uma seqüência de
imagens adquiridas a partir de uma webcam comum.
A primeira parte do algoritmo consta de uma fase de treinamento offline, na
qual, primeiramente, são detectados pontos característicos em uma imagem frontal
da face e geradas vistas das possíveis aparências de cada um dos keypoints
extraídos. Os keypoints são detectados dentro das áreas de interesse (olho direito,
olho esquerdo e narinas) delimitadas, manualmente, pelo usuário na imagem de
treinamento. Após isso, é realizado o treinamento dos FERNS de forma a
possibilitar o reconhecimento dos keypoints adquiridos, em tempo real, de
diferentes pontos de vista. Na fase em tempo real, para cada frame do vídeo, o
reconhecimento dos keypoints é realizado utilizando-se o classificador
previamente treinado. Uma etapa de segmentação da face é realizada a fim de
melhorar a fase de reconhecimento desses pontos característicos, reduzindo o
número de outliers provenientes desse processo. Os keypoints reconhecidos são
agrupados, de acordo com a sua proximidade, de forma a possibilitar a detecção
das regiões das características faciais. As regiões estimadas são utilizadas como
espaço de busca para as características da face.
Detalhes do método proposto e da sua implementação são descritos nas
seções abaixo.
4.2. Fase de Treinamento
Como descrito em [17], se o objeto possui uma pequena curvatura uniforme,
os patches ao redor de um keypoint podem ser tratados como localmente planares
e suas distorções em relação às mudanças de perspectivas podem ser vistas como
32
homografias. A fim de testar os efeitos da não-planaridade, Özuysal et al. [18]
aplicaram os FERNS em imagens de face assumindo sua planaridade para geração
das vistas sintéticas e, de acordo com os autores, bons resultados foram
alcançados, como pode ser visto na figura 5. Dessa forma, uma única imagem
frontal do rosto é suficiente para gerar um conjunto de amostras de possíveis
aparências da face tomadas de diversos pontos de vista.
Figura 5: Correspondência de imagens de faces usando FERNS. Apesar da
não planaridade das faces, o FERNS continua apresentando bons resultados.
Imagem retirada de Özuysal et al. [18].
Como já mencionado no capítulo 3, a fase de treinamento começa pela
detecção de pontos característicos (keypoints) na imagem de treinamento. A
imagem de treinamento consta de uma foto frontal da face. O usuário delimita,
manualmente, as áreas de interesse para o treinamento. As áreas de interesse
utilizadas neste trabalho foram as regiões dos olhos e das narinas. Um exemplo de
imagem de treinamento e algumas regiões delimitadas podem ser vistos na figura
6 (a) e 6 (b), respectivamente. A figura 6 (c) mostra os keypoints detectados nessa
imagem. A detecção dos pontos característicos na imagem de treinamento é feito
calculando-se o laplaciano da gaussiana da mesma maneira como foi explicada na
seção 3.5. O número de keypoints extraídos pode ser escolhido pelo usuário.
Nesta dissertação foram usados 400 keypoints.
Cada ponto característico extraído nessa imagem corresponde a uma classe
diferente. As amostras de cada classe são dadas por um conjunto de pequenos
retalhos da imagem (image patches) que representam as possíveis aparências do
33
keypoint. Esse conjunto de treinamento é construído como descrito na seção 3.4
do capítulo 3. Essas amostras são utilizada no treinamento dos FERNS que
retornam a probabilidade a posteriori de um patch pertencer a cada uma das
classes aprendidas durante a fase de treinamento. Diferentemente do que acontece
com um objeto planar como o da figura 1, a face possui movimentos de rotação
restritos. Dessa forma, os ângulos utilizados para o cálculo das vistas sintéticas
foram restritos ao intervalo de [−45,+45] e não ao intervalo [−Q,+Q] como
proposto na seção 3.4. Dessa maneira, o conjunto de treinamento criado
automaticamente através de homografias representa melhor as características que
devem ser reconhecidas ao longo do vídeo adquirido em tempo real.
Figura 6: (a) Imagem de treinamento. (b) Seleção das áreas de interesse. (c)
Pontos característicos extraídos da imagem de treinamento.
Como mencionado anteriormente, na seção 3.1, um único fern não é
suficiente para classificar todos os keypoints aprendidos. Dessa forma, diversos
ferns são utilizados com esse propósito. Nesta dissertação foram utilizados 30
ferns com 12 testes binários por fern. Com isso, as respostas de cada ferns são
(a) (b)
(c)
34
combinadas de forma a possibilitar a classificação. Além disso, são utilizadas
quatro octaves, a fim de aumentar a robustez do classificador. Quanto maior o
número de ferns e de testes binários associados a cada um deles, maior é a
confiabilidade do classificador. No entanto, a fase de treinamento acaba
consumindo muito tempo, prejudicando a aplicabilidade do sistema.
4.3. Segmentação da face
A segmentação de face é uma tarefa importante e essencial em diversas
aplicações, tais como reconhecimento de faces, rastreamento de pessoas e
segurança. Nesse trabalho a segmentação da face é um pré-processamento
necessário para eliminação dos outliers provenientes da fase de reconhecimento
dos keypoints obtidos durante a fase de treinamento das características faciais.
Diversos métodos de detecção de face já foram propostos na literatura e
muitos dos algoritmos desenvolvidos são baseados na cor da pele e exploram essa
informação de forma a localizar e extrair a região da face.
Nesse trabalho a localização e segmentação da face ao longo do vídeo é
feita com base nas amostras de cor da pele extraídas da imagem de treinamento
pelo usuário. Após a delimitação de algumas regiões da pele, calcula-se, para cada
um dos canais R, G e B, a média e o desvio padrão do total de pixels obtidos pelo
usuário. Considere mR, mG, mB as médias e σR, σG, σB os desvios padrões da
amostra de pixels de cada componente R, G e B, respectivamente. Um pixel i da
imagem com componentes RGB iguais a Ri, Gi e Bi é classificado como
pertencente à face se as condições (1), (2) e (3) forem satisfeitas. Caso contrário, o
pixel é classificado como não pertencente à face.
I1 ∈ [�I − lI,�I + lI] (1)
Y1 ∈ [�Y − lY,�Y + lY] (2)
m1 ∈ [�m − lm,�m + lm] (3)
Essa abordagem fornece uma primeira segmentação da região da face. No
entanto, como qualquer algoritmo que leva em consideração a cor da pele, outras
regiões da imagem que possuem a mesma cor também serão classificadas como
35
pele, gerando detecções erradas. Considerando que a face a ser segmentada
representa a parte mais significativa da imagem, encontra-se os contornos de cada
região detectada como face e atribui a face correta à maior área interna dentre os
contornos obtidos. Um exemplo dessa abordagem pode ser vista na figura 7.
Figura 7: (a) Imagem de treinamento. (b) imagem segmentada pela cor da
pele. (c) Contornos detectados. (d) Extração do maior contorno e detecção da
face.
Um dos problemas da abordagem por cor pode ser vista na figura 8. A
sobrancelha se funde com a região do olho e ambos se unem ao fundo. Dessa
forma, quando o interior do maior contorno é preenchido, a região do olho é
cortada e com isso a detecção do olho não será possível ou será erroneamente
detectada.
36
Figura 8: Região do olho se une ao fundo e não pode ser detectada
corretamente.
Uma solução para esse problema é encontrar o fecho convexo da região da
face (em branco). No entanto, mais outliers serão provenientes da fase de
reconhecimento, uma vez que parte do fundo está sendo levada em consideração.
Um exemplo da segmentação da face e do fecho convexo correspondente pode ser
visto na figura 9.
Figura 9: (a) Face segmentada pela cor de pele. (b) Fecho convexo da face
segmentada. (c) Face segmentada usando o fecho convexo.
(a) (b)
(c)
37
4.4. Reconhecimento de keypoints
Uma vez que o classificador tenha sido previamente treinado, é possível
utilizá-lo para o reconhecimento de patches em imagens obtidas em tempo real
por uma webcam. Para cada frame do vídeo é feita a segmentação da face como
descrito na seção 4.2. Após isso, pontos característicos são extraídos da imagem
da face segmentada (em tons de cinza). Para cada keypoint extraído é feito o
seguinte procedimento: pega-se o patch associado ao keypoint e passa por cada
um dos FERNS do classificador. Cada fern retorna a probabilidade desse patch
pertencer a cada uma das classes aprendidas durante a fase de treinamento, como
explicado nas seções 3.2 e 3.3. As respostas de cada fern são combinadas e
retornam o keypoint correspondente na imagem de treinamento. Esse
processamento pode ser visto na figura 10.
Figura 10: Processo de classificação de um keypoint.
4.5. Clusterização e detecção das regiões das características faciais
A simetria da face e a homogeneidade que apresenta em determinadas
regiões pode acabar gerando outliers no processo de reconhecimento dos
keypoints. Um keypoint pertencente à íris, por exemplo, pode ser reconhecido
erradamente como sendo outro ponto na mesma íris. Além disso, um outro erro
bastante comum é um keypoint do olho esquerdo ser reconhecido como estando
38
no olho direito. Se considerarmos que a maior parte dos keypoints reconhecidos se
encontra mais concentrada nas áreas de interesse em questão (olho direito, olho
esquerdo ou narinas), esses problemas podem ser contornados e não afetam
significativamente o sistema. Dessa maneira, basta agruparmos keypoints
próximos e decidirmos qual dos grupos melhor representa a característica em
questão.
Os keypoints de cada característica facial são agrupados de forma
independente. Isso é possível, pois durante a fase de treinamento atribui-se a cada
keypoint detectado um marcador dizendo se aquela característica pertence ao olho
esquerdo, ao direito ou às narinas. Dessa forma, quando é feito o reconhecimento,
o keypoint carrega esse marcador e é possível saber à qual característica esse
keypoint pertence. Duas abordagens diferentes foram utilizadas nesta dissertação
para detectar as regiões onde estão localizadas as características faciais.
O primeiro método utilizado na detecção das regiões das características da
face baseia-se no fato de que a maior parte dos keypoints reconhecidos deve estar
localizada na região da característica treinada. Dessa forma, basta agrupar os
keypoints próximos e pegar o maior cluster como sendo a região desejada, ou seja,
a região que corresponde à característica em questão. Isso é feito, de maneira
independente, para cada uma das características tratadas, isto é, olho esquerdo,
olho direito e narinas.
A segunda abordagem, além de considerar a organização no espaço, leva em
conta a probabilidade que os FERNS retornam quando um keypoint é
reconhecido. Se a probabilidade retornada pelos FERNS for muito pequena,
provavelmente aquele keypoint foi reconhecido de forma errada. Após realizar o
agrupamento dos keypoints pela sua proximidade, soma-se as probabilidades de
todos os keypoints pertencentes à um cluster (agrupamento). Isso é feito para cada
um dos clusters obtidos e aquele que obtiver a maior soma é considerado o
candidato mais forte, pois possui a maior probabilidade. Isso implica que existe
uma probabilidade maior dos keypoints daquele cluster terem sido reconhecidos
de forma correta. Esse procedimento também é realizado de forma independente
para cada uma das características treinadas.
39
4.6. Rastreamento baseado nos clusters e reinicialização do sistema
Os dez primeiros frames do vídeo são utilizados para inicializar o processo
de detecção das características faciais. Os FERNS são bastante confiáveis na
detecção das características em imagens frontais, pois essas são muito
semelhantes à imagem utilizada para o treinamento do classificador. Por isso,
considerando que nos primeiros frames do vídeo a face se encontra na posição
frontal, o sistema pode ser inicializado automaticamente. Após o processo de
reconhecimento de keypoints em um frame, para cada uma das características
faciais em questão faz-se: aplica a clusterização e utiliza um dos métodos
descritos na seção anterior para determinar a região onde se encontra uma
determinada característica. Após isso, calcula-se o centro da região detectada e
atribui-se essa posição à característica em questão. Esse procedimento é realizado
nos dez primeiros frames. Com isso é possível calcular a posição média onde a
característica foi detectada. Esse procedimento é realizado para cada uma das
características e os valores obtidos são utilizados para inicialização do sistema.
Para melhorar a eficiência do sistema, um frame pode considerar as
detecções das regiões das características faciais encontradas no frame anterior
para determinação se a detecção foi ou não correta. Assume-se que não existem
mudanças muito grandes entre dois frames consecutivos. Com isso, se a distância
entre o ponto encontrado em dois frames consecutivos for muito grande, então um
erro aconteceu e a posição encontrada no frame anterior é mantida. Caso
contrário, considera-se que a detecção foi correta. No entanto, se a detecção se
mantiver errada por muitos frames consecutivos o sistema se perde e precisa ser
reinicializado. Isso é possível garantindo-se que a inicialização do sistema foi
correta, caso contrário poderia gerar problemas na detecção das regiões das
características faciais.
A reinicialização do sistema é feita da mesma maneira que a inicialização,
isto é, consideram-se os dez frames seguintes e calcula a posição média para cada
uma das características. Para garantir a corretude na reinicialização, o ideal é que
o usuário retorne à posição de frente para a câmera, onde a detecção utilizando os
FERNS é mais confiável. Caso contrário, a reinicialização pode apresentar
resultados errados.
40
4.7. Detecção das características faciais
4.7.1. Detecção das narinas
A região de busca pelas narinas é realizada no interior da região detectada
anteriormente, como explicado nas seções 4.5 e 4.6. Uma maneira simples de
encontrar as narinas é buscar pelas duas regiões mais escuras dentro da região
onde a busca esta sendo realizada. Para isso é feito um threshold que separa as
partes mais escuras do histograma. Como as narinas se encontram mais ou menos
no centro do rosto, a região ao redor dessa característica é bem homogênea.
Apesar disso, não pode-se considerar que apenas as duas regiões da narina serão
encontradas, pois dependendo do valor do threshold utilizado essas regiões podem
ficar divididas. Além disso, a região de busca pode ter outros resíduos, como por
exemplo, um pedaço do olho, o que pode acontecer dependendo da movimentação
feita pela pessoa. Para solucionar o problema da região da narina estar dividida, é
utilizado um filtro de dilatação com o objetivo de unir regiões disjuntas que se
encontram próximas. No entanto, resíduos que estão longe dessa região e
realmente não fazem parte das narinas não desaparecem com esse processo, muito
pelo contrário, eles ficam mais destacados ainda. Se o número de regiões
detectadas após a dilatação for igual a dois, então encontra-se os contornos dessas
regiões e pega a posição central de cada um para representar o centro das narinas.
No entanto, se o número de regiões detectadas após a operação de dilatação for
maior do que dois, significa que ruídos não pertencentes às narinas foram
detectados. Nesse caso, para localizar as narinas considera-se que essas
representam as duas maiores regiões detectadas. Logo, basta aplicar um filtro de
erosão até que restem apenas duas regiões escuras na imagem. No entanto, o
elemento estuturante utilizado para a operação morfológica de erosão não pode ser
o mesmo utilizado para a dilatação, caso contrário as regiões poderiam acabar
desaparecendo e a detecção não seria possível. Após o processo de erosão, quando
existirem apenas duas regiões, o mesmo procedimento explicado anteriormente é
utilizado para detectar o centro das narinas.
41
4.7.2. Detecção das pupilas
A detecção das pupilas é um pouco mais complicada do que a detecção das
narinas, pois quando é realizado o threshold grande quantidade de ruído ainda é
encontrada. Além disso, a região dos cílios e sobrancelhas atrapalham a detecção
exata das pupilas. Duas abordagens foram utilizadas com o propósito de detectar
as pupilas da maneira mais correta possível.
A primeira, e mais simples das abordagens, consiste em detectar a região
mais escura dentro da região de busca. Mais uma vez, o procedimento utilizado é
a aplicação de um threshold. Após isso calcula-se a elipse que se ajusta melhor à
região mais escura detectada. Considera-se então, o centro da elipse como sendo o
centro da pupila. Isso é feito para os dois olhos independentemente.
A segunda abordagem, visa melhorar ainda mais a detecção das pupilas. A
primeira parte desse método consta de aplicar o threshold e encontrar a região
mais escura. Após isso, da mesma maneira que na primeira abordagem, é
realizado o ajuste da elipse à região mais escura detectada. No entanto, a diferença
se deve ao processamento realizado no interior da elipse encontrada. Como pode
ser visto na figura 11, a região da pupila tem uma concentração maior de pixels
pretos na vertical depois de realizado o threshold.
Figura 11: Representação do olho mostrando que a maior quantidade de
pixels por coluna passa pelo centro da pupila.
42
Dessa maneira, percorre-se a região de busca contando quantos pixels pretos
existem em cada uma das colunas. Dessa forma, a posição x é dada pela coluna
que contém a maior concentração de pixels pretos, enquanto a posição y é dada
pela posição y do centro da elipse.
43
5 Análise Experimental
5.1. Base de dados para testes
Foram gravados diversos vídeos que serviram para realizar os testes
realizados nesta dissertação. Cada um dos vídeos gerados para medir qualidade da
detecção das características da face foi separado em uma seqüencia de imagens e
cada um dos frames teve suas características faciais marcadas manualmente.
Dessa forma, é possível estimar o erro calculando a diferença entre a posição das
características faciais detectadas ao longo do vídeo pelo programa implementado
e sua posição real.
Além disso, foram gerados vídeos sintéticos a fim de realizar testes com a
implementação original do FERNS. Esses vídeos constam de uma imagem de
treinamento projetada no plano e foi implementada uma rotina para gerar,
automaticamente, uma seqüência de movimentos idênticos para cada uma das
imagens utilizadas. Com isso é possível comparar melhor os resultados, uma vez
que a única diferença entre os vídeos é a imagem de treinamento.
Para uma melhor avaliação dos vídeos testados esses foram divididos em
quatro tipos de movimento. Considerando o sistema de coordenadas Tait-Bryan
angles (figura 12) temos os movimentos divididos em: escala, translação, rotação
em torno do eixo longitudinal (roll) e rotação em torno do eixo vertical (yaw). Os
movimentos utilizados representam uma simplificação para os movimentos
normais do rosto.
Os vídeos utilizados nos testes foram gerados utilizando-se uma Quickcam
Pro 9000 da Logitech. Os vídeos foram capturados a uma taxa de 30 frames por
segundo, utilizando uma resolução de 640 x 480.
44
Figura 12: Ângulos de Tait-Bryan (Fonte: www.pittpatt.com).
5.2. Análise do FERNS original
Com o objetivo de avaliar a utilização dos FERNS em imagens de face, três
tipos de testes foram realizados. O primeiro teste examina a importância da
textura para uma correta detecção usando o FERNS. Além disso, verifica se a
textura das faces é suficiente para se obter bons resultados. O segundo conjunto de
testes estuda a influência dos tamanhos das regiões a serem detectadas.
Finalizando, o terceiro tipo de teste analisa o uso da planaridade para geração das
vistas sintéticas no caso das faces.
5.2.1. Influência da textura na detecção pelo FERNS
Para analisar a influência das texturas na detecção pelo FERNS foram
gerados dois vídeos sintéticos. O primeiro vídeo utiliza a imagem da face sem
modificações, enquanto no segundo vídeo foram adicionados retalhos de textura à
face, como mostrado na figura 13. Nessa figura, o quadrado desenhado ao redor
da face representa a área a ser detectada pelo classificador.
Projetando cada uma das imagens em um plano, foram simulados
movimentos de translação, escala, rotação em torno do eixo longitudinal (roll) e
rotação em torno do eixo vertical (yaw). Exemplos desses movimentos podem ser
visto na figura 14. Os movimentos realizados em ambos os vídeos são idênticos,
de forma a possibilitar uma comparação entre eles.
45
Figura 13: (a) Imagem da face. (b) Imagem da face com adição de texturas.
Figura 14: Movimentos simulados nos vídeos sintéticos: (a) escala, (b)
rotação em relação ao eixo longitudinal (roll), (c) rotação em relação ao eixo
vertical (yaw) e (d) translação.
46
O classificador obtido através do treinamento da imagem da face sem
modificações é utilizado para a detecção da face no vídeo construído a partir dessa
imagem. Da mesma forma, o classificador gerado a partir a imagem com retalhos
é utilizado na detecção da face no vídeo construído a partir da imagem com
retalhos de textura. Com isso é possível calcular a taxa de detecção correta em
cada um dos vídeos. Para o vídeo sintético sem textura a taxa de detecção foi de
57,7%, enquanto para o vídeo com textura esse valor é de 97,7%. Isso demonstra
a importância de se ter uma imagem bem texturizada para o bom funcionamento
do FERNS.
Para verificar se a textura das características da face é suficiente para se
obter bons resultados foram colocados retalhos de textura em cima da região dos
olhos e das narinas, como mostrado na figura 15.
Figura 15: Imagem da face com textura sobre as características faciais.
A taxa de reconhecimento obtida com a imagem com retalhos de textura
sobre os olhos e narinas foi de 94.1%. Com isso é possível afirmar que, utilizando
os FERNS, as características faciais não são suficientes para garantir uma alta taxa
de detecção, já que quando essas foram substituídas por texturas melhores houve
um grande aumento na quantidade de quadros reconhecidos corretamente. O que
não aconteceu quando a imagem não possuía as texturas colocadas artificialmente
e obteve apena 57,7% de detecções corretas. Os resultados obtidos nos testes desta
seção estão sintetizados na tabela
47
Face 57.7%
Face com textura e características faciais 97.7%
Face com textura sobre as características faciais 94.1%
Tabela 1: Taxas de detecções corretas
5.2.2. Influência do tamanho da região de interesse na detecção pelo FERNS
Para analisar a relação do tamanho das regiões a serem detectadas com a
taxa de detecção correta, dois vídeos foram gerados utilizando duas imagens de
treinamento diferentes.
EXEMPLO 1:
As regiões de interesse (ROI) utilizadas para os testes com o primeiro vídeo
podem ser vistas na figura 16. A tabela 1 mostra as taxas de detecção obtidas para
cada região de interesse desse exemplo.
48
Figura 16: Áreas de interesse do exemplo 1.
Vídeo 1 Tamanho (w x h) Área (pixels) Taxa de detecção (%)
ROI 1 255 x 200 51000 86.6
ROI 2 102 x 136 13872 39.0
ROI 3 122 x 101 12322 26.8
ROI 4 48 x 147 7056 0.0
ROI 5 60 x 43 2580 0.0
ROI 6 35 x 73 255 0.0
Tabela 2: Taxas de detecção obtidas para cada Roi.
EXEMPLO 2:
As regiões de interesse (ROI) utilizadas para os testes com o segundo vídeo
podem ser vistas na figura 17. A tabela 2 mostra as taxas de detecção obtidas para
esse exemplo.
49
Figura 17: Áreas de interesse do exemplo 2.
Vídeo 1 Tamanho (w x h) Área (pixels) Taxa de detecção (%)
ROI 1 337 x 260 87620 96.8
ROI 2 159 x 96 15264 26.6
ROI 3 82 x 57 4674 0.6
ROI 4 32 x 124 3968 0.0
ROI 5 82 x 35 2870 0.0
ROI 6 46 x 43 1978 0.0
Tabela 3: Taxas de detecção obtidas para cada ROI.
Observando os resultados obtidos nos exemplos 1 e 2 acima, podemos
perceber que quanto menor a área de interesse menor é a taxa de detecção. Isso
acontece mesmo em imagens muito texturizadas, como é o caso da imagem
utilizada no exemplo 2. Com isso podemos concluir que a detecção de
características faciais fica afetada por possuírem uma área de interesse pequena.
50
5.2.3. Testando a planaridade para faces
Como descrito em [17] e já menciado na seção 4.2, se o objeto possui uma
pequena curvatura uniforme, como no caso da face, é possível assumir que os
keypoints são localmente planares e suas distorções podem ser vistas como
homografias. Özuysal et al. [18] testaram o FERNS em imagens de face
assumindo sua planaridade para geração das vistas sintéticas e, de acordo com os
autores, bons resultados foram encontrados.
Para testar o uso da planaridade para geração das vistas sintéticas no caso de
faces foram criados, primeiramente, dois vídeos. Um dos vídeos consiste da
imagem de treinamento projetada em um plano, onde os movimentos do plano
simulam os movimentos de escala, translação, rotação em torno do eixo
longitudinal e rotação em torno do eixo vertical da mesma forma que explicado na
seção 5.2.2. Dessa maneira, a imagem não sofre deformações mesmo com
mudanças de perspectiva. O segundo vídeo consiste de uma sequência de imagens
da face e com isso ocorrem variaçoes da imagem devido às mudanças de
perspectiva e também devido a oclusões. Neste trabalho considera-se que não
ocorram grandes oclusões, tais como, desaparecimento completo de uma das
características faciais. Utilizando a mesma imagem de treinamento para ambos os
vídeos e a mesma região de interesse, foi realizado o treinamento dos FERNS e
após isso o classificador treinado foi utilizado para detecção da região de interesse
nos demais quadros de cada um dos vídeos. A imagem de treinamento utilizada no
teste e alguns quadros detectados, em cada um dos casos podem ser vistos na
figura 18.
Além dos dois vídeos utilizados no teste acima, mais dois outros vídeos
foram gerados da mesma forma que explicado no parágrafo anterior. Uma nova
imagem de treinamento foi utilizada e foram medidas as taxas de detecção para o
caso do vídeo com o plano e para o vídeo da face. A figura 19 mostra a imagem
de treinamento utilizada. As taxas de detecção para o primeiro e segundo
exemplos podem ser vistos na tabela 3.
Os resultados obtidos nos dois exemplos foram semelhantes tanto para o
vídeo da face quanto para o vídeo da imagem de treinamento projetada no plano.
No entanto, ao contrário do que foi falado no trabalho [18], não foram obtidos
51
resultados satisfatórios para o caso das faces utilizando-se a implementação
original do FERNS.
Figura 18: Exemplo 1 - Imagem de treinamento e exemplos de quadros
detectados: a primeira coluna representa os quadros detectados no vídeo da
face projetada no plano e a segunda coluna representa quadros detectados no
vídeo da face.
52
Figura 19: Imagem de treinamento utilizada no exemplo 2.
Vídeo Taxa de detecção (%)
Exemplo 1 – face 15.9
Exemplo 1 – face no plano 14.4
Exemplo 2 – face 35.1
Exemplo 2 – face no plano 27.5
Tabela 4: Taxas de detecção corretas obtidas para cada vídeo, utilizando o
FERNS original.
5.3. Clusterização dos keypoints reconhecidos
Como mostrado na seção 5.2, a face não é suficientemente texturizada de
forma a obter altas taxas de detecção utilizando os FERNS. A solução para
resolver o problema foi utilizar grupos de keypoints próximos. Como explicado
anteriormente (seção 4.5), duas abordagens foram implementadas para encontrar
as regiões das características da face. Na primeira abordagem implementada, para
cada uma das características da face, considera-se o maior grupo como sendo a
região onde essa se encontra. No segundo método considera-se o cluster mais
forte, isto é, o cluster cuja soma das probabilidades é a maior. Nesta seção é
realizada uma comparação entre esses dois métodos. Para isso, quatro vídeos com
imagens de faces foram gerados. Para analisar melhor os resultados esse vídeos
foram separados em movimentos de escala, translação rotação em torno do eixo
longitudinal e rotação em torno do eixo vertical. O primeiro quadro de cada vídeo
foi utilizado como imagem de treinamento e podem ser vistos na figura 20.
53
Também foi considerada nos testes a distância entre os keypoints de um
cluster (agrupamento). As tolerâncias para as distâncias entre os pontos dos
clusters considerados foram de 10 e 15 pixels.
Figura 20: Imagem de treinamento dos vídeos: (a) escala, (b) translação, (c)
rotação em torno do eixo vetical e (d) rotação em torno do eixo longitudinal.
As características faciais levadas em consideração nos testes foram: narina
direita (ND), narina esquerda (NE), olho direito e esquerdo representados pelo
centro da elipse ajustada à região do olho (ODC e OEC, respectivamente) e olho
direito e esquerdo representados pela coluna de pixels pretos no interior da elipse
ajustada à região do olho (ODM, OEM). Ambos os métodos para detecção da
pupila foram explicados na seção 4.7.2.
A tabela 4 apresenta as taxas de detecções corretas para cada característica
da face, onde primeiramente considera-se correto erros menores que 6 pixels e
após isso, consideram-se a porcentagem de detecções onde o erro é menor do que
10 pixels. A figura 21 mostra exemplos de quadros detectados dentro de cada uma
dessas faixas de valores, deixando claro que erros dessa magnitude ainda são
considerados aceitáveis. Isso se deve também ao fato de que as marcações
54
manuais para cálculo de erros não tão precisas, podendo apresentar certos
deslocamentos em relação a área exata do centro da pupila.
Cluster
mais forte
Erro < 6 pixels (%) Erro < 10 pixels (%)
Escala Transl. Yaw Roll Escala Transl. Yaw Roll
Tol
erân
cia
= 10
ND 100.0 87.5 100.0 94.0 100.0 88.1 100.0 94.0
NE 100.0 87.5 100.0 94.0 100.0 88.1 100.0 94.0
ODC 57.4 81.9 71.9 76.4 99.2 99.4 90.2 84.7
ODM 14.0 10.0 52.2 42.5 73.4 33.1 72.3 53.5
OEC 89.0 57.5 77.7 76.4 99.0 95.6 79.9 85.7
OEM 8.6 11.3 37.1 22.3 69.6 56.3 70.5 39.2
Tol
erân
cia
= 15
ND 100.0 87.5 99.1 94.0 100.0 88.1 99.1 94.0
NE 100.0 87.5 99.1 94.0 100.0 88.1 99.1 94.0
ODC 56.6 81.9 65.6 77.1 99.4 99.4 83.9 84.7
ODM 12.6 11.9 51.3 46.2 76.4 30.6 71.9 55.8
OEC 90.6 60.0 78.6 79.7 100.0 95.6 80.8 90.4
OEM 12.2 15.0 40.6 23.6 72.6 67.5 70.1 40.5
Maior
Cluster
Erro < 6 pixels (%) Erro < 10 pixels (%)
Escala Transl. Yaw Roll Escala Transl. Yaw Roll
Tol
erân
cia
= 10
ND 100.0 87.5 100.0 91.0 100.0 88.1 100.0 91.0
NE 100.0 87.5 100.0 91.0 100.0 88.1 100.0 91.0
ODC 54.0 83.1 72.8 75.7 97.2 100.0 91.1 83.1
ODM 13.2 10.6 52.7 42.5 75.8 34.4 72.8 52.8
OEC 86.4 58.8 76.3 78.4 96 96.9 77.2 88.4
OEM 7.6 11.3 35.7 22.9 67.2 60.0 68.8 40.5
Tol
erân
cia
= 15
ND 100.0 87.5 99.1 91.7 100.0 88.1 99.1 91.7
NE 100.0 87.5 99.1 91.7 100.0 88.1 99.1 91.7
ODC 55.0 81.9 67.0 77.4 97.2 100.0 85.3 83.7
ODM 12.4 11.9 51.3 44.2 75.8 32.5 71.9 53.8
OEC 90.0 60.6 75.4 80.4 99.0 96.9 76.8 93.0
OEM 12.2 15.0 39.3 24.6 72.2 67.5 67.0 41.7
Tabela 5: Taxas de detecções corretas.
55
Figura 21: Valores de erro encontrados. A imagem superior apresenta erros
iguais a: ND = 1.0, ND = 2.0, OD = 4.2 e OE = 2.2. A imagem inferior
apresenta erros iguais a: ND = 1.0, NE = 2.0, OD = 5.0 e OE = 5.0.
56
5.4. Rastreamento
Para testar o rastreamento o programa implementado foi rodado usando,
para comparação, a abordagem de cluster mais forte sem levar em consideração a
detecção do frame e anterior. Em seguida, na execução do programa considerou-
se a detecção obtida nos frame anterior, isto é, foi usado o rastreamento. A
distância utilizada para se ativar o rastreamento foi de 40 pixels, ou seja, se o
centro da região de busca do frame atual se encontrar a uma distância de 40 ou
mais pixels do centro da região de busca do frame anterior, então a região de
busca do quadro anterior é mantida. Os resultados obtidos com e sem o
rastreamento podem ser vistos na tabela 5.
Rastreamento Erro < 6 pixels (%) � Tolerância = 15
Escala Transl. Yaw Roll
ND 100.0 87.5 100.0 100.0
NE 100.0 87.5 100.0 99.7
ODC 55.8 83.1 79.5 88.4
ODM 12.4 12.5 54.5 47.5
OEC 91.0 61.3 86.6 81.4
OEM 12.2 15.0 47.3 25.3
Cluster mais
forte
Erro < 6 pixels (%) � Tolerância = 15
Escala Transl. Yaw Roll
ND 100.0 87.5 99.1 94.0
NE 100.0 87.5 99.1 94.0
ODC 56.6 81.9 65.6 77.1
ODM 12.6 11.9 51.3 46.2
OEC 90.6 60.0 78.6 79.7
OEM 12.2 15.0 40.6 23.6
Tabela 6: Taxas de detecção com e sem rastreamento.
57
Em alguns casos os resultados com e sem rastreamento não apresentaram
grande diferença, como no caso do vídeo da escala. Isso acontece por que, na
grande maioria dos quadros, a distância entre o centro das regiões de busca de
dois frames consecutivos não foi superior a 40 pixels. O gráfico da figura 22
mostra que no caso do vídeo da escala ocorre apenas um pico de erro e esse pico
desaparece quando o rastreamento está ativo.
Figura 22: Gráfico de erro do olho direito com e sem rastreamento para
o vídeo de escala.
No caso do vídeo da rotação sobre o eixo vertical (yaw), quando o
rastreamento está ativo a melhora na taxa de detecção é visível. Isso acontece por
que sem o rastreamento muitos erros aconteciam, como pode ser visto na figura
23. Com o rastreamento esses picos de erro diminuíram, pois foi mantida a região
de busca do frame anterior. Quando a região de busca é mantida ela ainda se
encontra próxima a característica a ser detectada, pois a diferença entre dois
quadros consecutivos é muito pequena. Dessa maneira, a característica ainda pode
ser reconhecida de forma correta.
0
20
40
60
80
100
1
29
57
85
11
3
14
1
16
9
19
7
22
5
25
3
28
1
30
9
33
7
36
5
39
3
42
1
44
9
47
7
Erro
Frame
Rastreamento OD - Escala
Sem Rastreamento
Com rastreamento
58
Figura 23: Gráfico de erro do olho direito com e sem rastreamento para o
vídeo de rotação sobre o eixo do pescoço.
5.5. Testes com pessoas diferentes
Com o objetivo de garantir uma melhor qualidade dos resultados obtidos
foram realizados testes com pessoas diferentes, apresentando variação na cor da
pele e dos olhos. Nesses testes foram medidas as taxas de detecção corretas (erros
menores que seis pixels), além da média do erro obtido ao longo dos vídeos para
cada uma das características faciais.
EXEMPLO 1:
No primeiro exemplo foram gerados quatro vídeos, cada um representando
um tipo diferente de movimento (escala. Translação, rotação sobre o eixo
longitudinal e rotação sobre o eixo vertical). A imagem de treinamento utilizada
para os testes do exemplo 1 pode ser vista na figura 24. A tabela 6 apresenta as
taxas de detecção corretas, seguida pela tabela 7 que apresenta o erro médio de
cada característica ao longo de cada vídeo testado.
0
50
100
150
1
15
29
43
57
71
85
99
11
3
12
7
14
1
15
5
16
9
18
3
19
7
21
1
Erro
Frame
Rastreamento OD - Yaw
Sem Rastreamento
Com Rastreamento
59
Figura 24: Imagem de treinamento utilizada no exemplo 1.
Vídeo 1 Escala Translação Yaw Roll
ND 93.9 98.4 95.2 93.9
NE 93.1 88.0 89.6 91.2
ODC 86.7 82.5 61.0 95.7
ODM 80.1 64.9 80.1 89.0
OEC 85.9 87.3 96.0 98.8
OEM 67.9 76.9 93.6 86.9
Tabela 7: Taxas de detecção com erro < 6 pixels.
Vídeo 1 Escala Translação Yaw Roll
ND 3.6 2.6 3.8 3.8
NE 3.5 3.9 3.8 3.1
ODC 3.9 3.6 4.6 3.6
ODM 5.7 10.0 5.2 4.2
OEC 4.2 3.5 3.3 3.6
OEM 4.5 4.2 3.5 3.6
Tabela 8: Erro médio em pixels
EXEMPLO 2:
Assim como no exemplo 1, no segundo exemplo foram gerados quatro vídeos,
cada um representando um tipo diferente de movimento (escala. Translação,
rotação sobre o eixo longitudinal e rotação sobre o eixo vertical). A imagem de
60
treinamento utilizada para os testes do exemplo 2 pode ser vista na figura 25. A
tabela 8 apresenta as taxas de detecção corretas, seguida pela tabela 9 que
apresenta o erro médio de cada característica ao longo de cada vídeo testado.
Figura 25: Imagem de treinamento utilizada no exemplo 2.
Vídeo 1 Escala Translação Yaw Roll
ND 100.0 99.4 99.0 100.0
NE 100.0 100.0 100.0 100.0
ODC 93.3 79.6 76.0 83.4
ODM 86.3 56.9 50.3 72.4
OEC 100.0 93.4 99.0 97.8
OEM 82.1 76.8 83.4 77.3
Tabela 9: Taxas de detecção com erro < 6 pixels.
Vídeo 1 Escala Translação Yaw Roll
ND 1.4 1.3 1.4 1.4
NE 0.9 1.1 0.8 0.9
ODC 4.2 3.8 4.6 4.9
ODM 4.5 5.3 5.6 5.2
OEC 1.4 2.8 2.0 3.1
OEM 3.5 4.8 3.7 5.3
Tabela 10: Erro médio em pixels para cada característica facial.
61
5.6. Desempenho
Para os testes de performance do método proposto, a linguagem de
programação utilizada foi C++. A configuração do computador utilizado nos
testes é: Intel Core 2 Quad CPU Q6600, 2.4GHz com 3 GB de RAM. A resolução
dos vídeos utilizados é 640x480.
O tempo necessário para cada frame foi, em média, de 30 ms. Nesse tempo
está incluso abertura da imagem e a detecção das características faciais. Como o
tempo máximo para considerar uma aplicação tempo real são 33 ms, ou seja, a
uma taxa de 30 fps, podemos considerar que o método proposto funciona em
tempo real. O tempo médio de processamento dos quadros para cada um dos
vídeos da seção anterior pode ser vista na tabela abaixo.
Vídeo ms
Escala 29.14
Translação 28.36
Yaw 29.03
Roll 29.98
Tabela 11: Tempo médio necessário para o processamento de cada quadro.
62
6 Conclusão
Este trabalho avaliou o potencial de um método de aprendizado de máquina
baseado nos FERNS para a detecção de características faciais. A avaliação
experimental realizada demonstrou que a detecção utilizando a implementação do
FERNS puro apresenta problemas no caso das faces. A falta de textura em uma
imagem pode fazer a taxa de detecções corretas cair drasticamente. O estudo
demonstrou que as características faciais não são suficientes para se obter bons
resultados na detecção. Com isso, pode-se concluir que, no caso de imagens de
faces, os resultados utilizando a implementação original do FERNS não
apresentam bons resultados.
Além do problema da falta de textura das faces, foi observado que o
tamanho das regiões de interesse a serem detectadas influência no resultado final
da classificação. Nos testes foi demonstrado que quanto menor a área a ser
detectada, menor é a taxa de detecções corretas obtida. Desse jeito, o tamanho das
características faciais acaba sendo também um problema quando se utiliza a
implementação do FERNS puro.
Verificou-se também, que assumir a planaridade para geração das vistas
sintéticas no caso da face, que possui uma pequena curvatura, não se mostrou um
problema. Os resultados obtidos com o vídeo da face e com a face projetada no
plano, onde não ocorrem variações na perspectiva, foram equivalentes. No
entanto, os resultados não atenderam às expectativas, pois ambos os vídeos não
apresentavam texturização suficiente.
A abordagem utilizando clusterização para detectar as regiões de interesse
apresentaram resultados superiores à abordagem com o FERNS em seu estado
natural. No entanto, com o uso do rastreamento a taxa de detecções corretas
aumentaram e bons resultados foram encontrados. Os métodos de clusterização
utilizados, cluster mais forte e maior cluster, não apresentaram resultados
semelhantes para as características faciais detectadas.
63
No método de detecção de pupilas a abordagem que pega o centro da elipse
ajustada ao olho como sendo o centro da pupila apresentou resultados
satisfatórios. O método que pega a pupila utilizando a maior coluna de pixels
pretos apresentou resultados ruins para olho azul, no entanto para olho preto os
resultados melhoram bastante. Os resultados obtidos com olhos escuros
mostraram-se melhores do que os resultados com olhos azuis.
A abordagem utilizada para detecção do centro nas narinas obteve
resultados excelentes, levando a taxas de detecções maiores do que 90% para
quase todos os exemplos testados.
Os testes de desempenho do método proposto mostraram que o programa
apresenta resultados em tempo real.
Futuramente, a posição das características faciais pode ser utilizada para
restringir em que ponto da face cada característica pode ser encontrada, um
exemplo é obrigar que o olho direito seja sempre detectado à direta do olho
esquerdo e não permitir que os olhos sejam trocados.
64
7 Referências
[1] Yuille, A. L., Hallinan, P. W., and Cohen, D. S. 1992. Feature extraction from
faces using deformable templates. Int. J. Comput. Vision 8, 2 (Aug. 1992),
99-111. DOI= http://dx.doi.org/10.1007/BF00127169.
[2] A steriadis, S., Nikolaidis, N., and Pitas, I. 2009. Facial feature detection using
distance vector fields. Pattern Recogn. 42, 7 (Jul. 2009), 1388-1398. DOI=
http://dx.doi.org/10.1016/j.patcog.2009.01.009.
[3] W ang, J. and Tan, T. 2000. A new face detection method based on shape
information. Pattern Recogn. Lett. 21, 6-7 (Jun. 2000), 463-471. DOI=
http://dx.doi.org/10.1016/S0167-8655(00)00008-8.
[4] J in, Z., Lou, Z., Yang, J., and Sun, Q. 2007. Face detection using template
matching and skin-color information. Neurocomput. 70, 4-6 (Jan. 2007), 794-
800. DOI= http://dx.doi.org/10.1016/j.neucom.2006.10.043.
[5] Bagherian, E., Rahmat, Rahmita Wirza O.K. 2008. Facial feature extraction
for face recognition: a review. Information Technology, 2008. ITSIM 2008.
International Symposium on Volume 2, 26-28 Aug. 2008 Page(s):1 – 9. DOI
10.1109/ITSIM.2008.4631649.
[6] Brunelli, R. and Poggio, T. 1993. Face Recognition: Features Versus
Templates. IEEE Trans. Pattern Anal. Mach. Intell. 15, 10 (Oct. 1993), 1042-
1052. DOI= http://dx.doi.org/10.1109/34.254061.
[7] Alattar, A. M. and Rajala, S. A. 1999. Facial features localization in front
view head and shoulders images. In Proceedings of the Acoustics, Speech, and
Signal Processing, 1999. on 1999 IEEE international Conference - Volume 06
(March 15 - 19, 1999). ICASSP. IEEE Computer Society, Washington, DC,
3557-3560. DOI= http://dx.doi.org/10.1109/ICASSP.1999.757611.
[8] Y uen, C. T., Rizon, M., San, W. S., and Sugisaka, M. 2008. Automatic
detection of face and facial features. In Proceedings of the 7th WSEAS
international Conference on Signal Processing, Robotics and Automation
(Cambridge, UK, February 20 - 22, 2008). L. Kazovsky, P. Borne, N.
65
Mastorakis, A. Kuri-Morales, and I. Sakellaris, Eds. Mathematics And
Computers In Science And Engineering. World Scientific and Engineering
Academy and Society (WSEAS), Stevens Point, Wisconsin, 230-234.
[9] H eiseley, B., Serre, T., Pontil, M., Poggio, T. 2001. Component-based Face
Detection, cvpr, vol. 1, pp.657, 2001 IEEE Computer Society Conference on
Computer Vision and Pattern Recognition (CVPR'01) - Volume 1, 2001.
[10] G unduz, A., Krim, H. Facial feature extraction using topological methods
Image Processing, 2003. ICIP 2003. Proceedings. 2003 International
Volume 1, 14-17 Sept. 2003 Page(s): I - 673-6 vol.1
DOI = 10.1109/ICIP.2003.1247051.
[11] Liya Ding, Aleix M. Martinez, "Precise detailed detection of faces and
facial features," cvpr, pp.1-7, 2008 IEEE Conference on Computer Vision and
Pattern Recognition, 2008.
[12] Zhihui Jiao, Weize Zhang, Ruofeng Tong, "A Method for Accurate
Localization of Facial Features," etcs, vol. 3, pp.261-264, 2009 First
International Workshop on Education Technology and Computer Science,
2009.
[13] Automatic facial expression analysis: a survey. B. Fasel (a), Juergen
Luettin (b). (a) IDIAP – Dalle Molle Institute for Perceptual Artificial
Intelligence, Switzerland. (b) Ascom SystecAG, Applicable Research and
Technology, Switzerland. 2002.
[14] Ref. Kela, N., Rattani, A., and Gupta, P. 2006. Illumination Invariant
Elastic Bunch Graph Matching for Efficient Face Recognition. In Proceedings
of the 2006 Conference on Computer Vision and Pattern Recognition
Workshop (June 17 - 22, 2006). CVPRW. IEEE Computer Society,
Washington, DC, 42. DOI= http://dx.doi.org/10.1109/CVPRW.2006.97
[15] Tuytelaars, T. and Mikolajczyk, K. 2008. Local invariant feature detectors:
a survey. Found. Trends. Comput. Graph. Vis. 3, 3 (Jan. 2008), 177-280.
DOI= http://dx.doi.org/10.1561/0600000017.
[16] V. Lepetit and P. Fua, “Towards Recognizing Feature Points Using
Classification Trees,” Technical Report IC/2004/74, EPFL, 2004.
[17] V. Lepetit and P. Fua. Keypoint recognition using randomized trees. IEEE
Transactions on Pattern Analysis and Machine Intelligence, 28(9):1465–1479,
Sept. 2006.
66
[18] M. Ozuysal, P. Fua, and V. Lepetit. Fast Keypoint Recognition in Ten
Lines of Code. In Conference on Computer Vision and Pattern Recognition,
Minneapolis, MI, June 2007.
[19] F. Zheng and G. Webb. A comparative study of seminaive bayes methods
in classification learning. In Proceedings of the Fourth Australasian
DataMining Conference (AusDM05), pages 141–156, Sydney, 2005.
[20] D. Lowe. Distinctive Image Features from scale-invariant keypoints.
International Journal of Computer Vision, 20(2):91-110, 2004.
[21] Kanade, T. 1977. Computer Recognition of Human Faces.
Interdisciplinary Systems Research, Vol. 47 1977, Birkhauser Verlag, Basel,
Switzerland.
[22] H. Li, K.N. Ngan and Q. Liu. FaceSeg: Automatic Face Segmentation for
Real-time Video. IEEE Transactions on Multimedia, U.S.A., vol. 11, no. 1,
January 2009, pp. 77-88.