Você está na página 1de 41

KEYLLY EYGLYS ARAUJO DOS SANTOS

o do algoritmo Haar-Cascade para localizac o facial Uma implementac a a

NATAL DEZEMBRO DE 2008

KEYLLY EYGLYS ARAUJO DOS SANTOS

o do algoritmo Haar-Cascade para localizac o facial Uma implementac a a

Monograa apresentada como requisito par` obtenc o do grau de Graduando em cial a a o, Departamento de Engenharia de Computac a o e Automac o, Universidade FedeComputac a a ral do Rio Grande do Norte. Orientador: Prof. Dr. Adri ao Duarte D oria Neto Co-Orientador: Prof. Dr. Allan de Medeiros Martins

NATAL DEZEMBRO DE 2008

o Termo de Aprovac a

KEYLLY EYGLYS ARAUJO DOS SANTOS

o do algoritmo Haar-Cascade para localizac o facial Uma implementac a a

o do grau de Graduando em EngenhaMonograa aprovada como requisito parcial para obtenc a o, Departamento de Computac o e Automac o, Universidade Federal do Rio ria de Computac a a a Grande do Norte, pela seguinte banca examinadora:

Prof. Dr. Adri ao Duarte D oria Neto Universidade Federal do Rio Grande do Norte

Prof. Dr. Allan de Medeiros Martins Universidade Federal do Rio Grande do Norte

Prof. Dr. Agostinho de Medeiros Brito Junior Universidade Federal do Rio Grande do Norte

Natal, 15 de Dezembro de 2008

Dedicat oria

A quem eu dedico, Aos meus pais por me apoiarem integralmente nos meus estudos.

ii

Agradecimentos

Aos meus orientadores que me guiaram nesta dif cil busca por um algoritmo eciente, aos meus amigos que me incentivaram a continuar mesmo nos momentos em que achei que o trabalho n ao teria conclus ao e a minha noiva pelos momentos que deixei de estar ao seu lado para desenvolver este trabalho.

iii

Sum ario

Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lista de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 1.2 1.3 1.4 2 2.1 2.2 3 3.1 3.2 3.3 3.4 3.4.1 3.4.2 4 o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduc a O problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Motivac a Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organizac a o facial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outras t ecnicas de localizac a Template Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Face Blob Localization e Face Contour Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o de face com o Boosted Cascade of Simple Features . . . . . . . . . . . . . . . . Localizac a Vis ao geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o de Caracter Extrac a sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integral da imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vi ix x 1 1 1 1 2 3 3 3 8 8 9 9

Classicador AdaBoost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 A varredura da imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

o facial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Algoritmo Haar-Cascade para localizac a

iv

4.1 4.1.1 4.2 4.3 4.4 4.5 4.5.1 5 6 6.1 6.2 6.3

O MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 MEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 O arquivo MEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 O OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Sa da de dados para o MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Ferramentas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 o das ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Instalac a

Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Conclus oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 o facial . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Diferencial para outras t ecnicas de localizac a es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Contribuic o Perspectivas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Refer encias Bibliogr acas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Lista de Figuras

o da pele Figura 2.1 Segmentac a

..................................................

Figura 2.2 Pir amide de imagens

..................................................

Figura 2.3 Mapa de arestas obtida com o ltro de Sobel

............................

Figura 2.4 Regi oes de interesse selecionadas

......................................

Figura 2.5 Busca pelo contorno da face

...........................................

Figura 2.6 Contorno da face

.....................................................

es do casamento de padr Figura 2.7 Iterac o ao

......................................

Figura 2.8 Padr ao reconhecido

...................................................

Figura 3.1 Exemplo de ret angulos de caracter sticas. 2 ret angulos de caracter sticas s ao exibidos em A e B, 3 ret angulos de caracter sticas s ao exibidos em C e 4 ret angulos em D ..................................................... 9

Figura 3.2 C alculo de uma regi ao retangular

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Figura 3.3 C alculo de um elemento de caracter stica

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Figura 3.4 Caracter sticas selecionadas pelo AdaBoost vi

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

rvore de decis Figura 3.5 Figura esquem atica da a ao em cascata

. . . . . . . . . . . . . . . . . . . . . . 14

Figura 4.1 Entradas dos dados atrav es do MEX

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

o da func o cvHaarDetectObjects do OpenCV Figura 4.2 Utilizac a a

. . . . . . . . . . . . . . . . . . . 18

o do classicador no XML Figura 4.3 Exemplo da representac a

. . . . . . . . . . . . . . . . . . . . . . 18

o do retorno dos dados para o MATLAB Figura 4.4 Implementac a

. . . . . . . . . . . . . . . . . . . 19

o da func o Figura 5.1 Exemplo de Utilizac a a

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

o de face em uma imagem com mais de um rosto Figura 5.2 Detecc a

. . . . . . . . . . . . . . . . . 22

o de face frontal Figura 5.3 Detecc a

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

o de face com pequena rotac o Figura 5.4 Detecc a a

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

o de face de uma jovem, com deslocamento para a direita Figura 5.5 Detec a

. . . . . . . . . . 23

o de face de uma crianc Figura 5.6 Detec a a

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

o de face de uma crianc Figura 5.7 Detec a a

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

o de face de afro-descendente e sem cabelo vis Figura 5.8 Detec a vel

. . . . . . . . . . . . . . . . . 24

o de faces Figura 5.9 Exemplo da n ao localizac a

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

o de faces humanas e a n o de duas supostas faces Figura 5.10 Detecc a ao detecc a vii

. . . . . . . 25

o de faces com oclus culos Figura 5.11 Detecc a ao parcial do rosto com o

. . . . . . . . . . . . . . . 25

viii

Lista de Tabelas

Tabela 2.1 Tabela de raios dos agrupamentos

......................................

ix

Resumo

o facial em imagens em escala de O trabalho aqui descrito tratar a sobre o problema de localizac a utilizada a t implementada cinza. E ecnica descrita por (VIOLA; JONES, 2001) e sua t ecnica e o. para ser utilizada no MATLAB como uma simples chamada de func a o da aplicac o da transformada de Haar em uma cascata de clasA t ecnica consiste na utilizac a a sicadores treinados utilizando o pseudo-algoritimo Adaptative Boosting. O conjunto entre a o de caracter extrac a stica da imagem atrav es da transformada de Haar e a cascata de classica o, permitindo uma taxa de 22 frames por segundo em uma dores agilizam o processo de detecc a o de 384x288 pixels. resoluc a utilizada a informac o da cor do pixel, uma vez que a entrada para o algoritmo e apenas N ao e a a imagem em escala de cinza (n veis entre 0 e 255 por pixel). o e realizada utilizando a interface de comunicac o externa do MATLAB chaA implementac a a mada de MEX, utilizando o compilador MinGW. o Facial; Face Localization; Matlab; Haar-cascade; Boosted CascaPalavras-chave: Localizac a ded; Integral Image; MEX.

o Introduc a

1.1

O problema
o de face e semelhante ao problema de localizac o de qualO problema de localizac a a

o. quer objeto em uma imagem. Este problema possui uma alta complexidade em sua soluc a Trata-se de solucionar o problema em que temos como entrada uma matriz bidimensional e em cada elemento (pixel) da matriz um n vel em escala em de cinza (entre 0 e 255). A per Quais conjuntos de pixels representam uma face?. Existem gunta que deve ser respondida e o tais como: tamanho da face na imagem (escala), v arios fatores que dicultam esta localizac a o nos tr o do problema ser rotac a es eixos, oclus ao parcial e v arios outros. Para simplicac a ao o e a maior oclus culos transparente. consideradas apenas faces sem rotac a ao parcial sendo um o

1.2

o Motivac a
o para o desenvolvimento deste trabalho e realizar a implementac o A grande motivac a a

o facial. Com uma t poss de uma t ecnica existente para a localizac a ecnica implementada e vel o facial, existem diversos estudos pelo mundo solucionar diversos problemas como a identicac a necess para criar uma t ecnica eciente de biometria facial mas antes e ario encontrar a face na imagem, como descrito em (WISKOTT JEAN-MARC FELLOUS; MALSBURG, 1999), (TURK; PENTLAND, 1991) e (COSTA, 2003), compress ao seletiva de imagens apresentado es. por (GOMES, 2005), entre in umeras outras aplicac o

1.3

Objetivos
o de uma t o facial para imagens O objetivo ser a a implementac a ecnica de localizac a

em escala de cinza em C como uma extens ao MEX para o MATLAB. O algoritmo ter a como entrada uma imagem em escala de cinza, um par ametro de escala da menor face existente na o (X1,Y1) e (X2,Y2) correspondendo imagem e dever a retornar uma matriz contendo a posic a

ao ret angulo onde se encontra a face. A matriz de retorno ter a uma dimens ao de m x 4, onde m a quantidade de faces localizadas e as 4 colunas s e ao consecultivamentes X1, Y1, X2, Y2.

1.4

o do texto Organizac a
O texto est a organizado de forma a descrever a t ecnica utilizada, demonstrando todo

realizado para a localizac o (um detalhamento), teremos um cap o processo que e a tulo ape o realizada em C e como foi realizado a compilac o nas para abordar sobre a implementac a a o no MATLAB atrav para utilizac a es das extens oes em MEX e um cap tulo para apresentar os resultados obtidos e uma conclus ao sobre o projeto desenvolvido.

o facial Outras t ecnicas de localizac a

o facial, a primeira delas Neste cap tulo ser ao apresentadas duas t ecnicas de localizac a a mais conhecida e intuitiva a segunda e pouco conhecida mas apresenta (Template Matching) e o. pouca sensibilidade a ruido, escala e iluminac a

2.1

Template Matching
A t ecnica do Template Matching consiste em segmentar as imagens colorida obtendo

o destes pixels pode ser realizada com uma transformac o os pixels que representam a pele, a obtenc a a poss do espac o de cor RGB para YUV, onde e vel denir uma regi ao de poss vel peleno canal o de densidade de probabilidade como U e V, essa regi ao pode ser denida como uma func a relatado por (CARVALHO; TAVARES, 2005) ou simplemente denindo um limiar superior e poss inferior para cada canal como sugerido por (GOMES, 2005). Na gura 2.1 e vel visualizar o da pele. como a imagem ca ap os a segmentac a o a t Ap os a segmentac a ecnica busca aplicar um Moldede uma face em toda a ima percept es necess gem, aplicando as rotac o arias no molde de forma a casar o padr ao. E vel que esta t ecnica utiliza uma complexidade computacional bastante alta, n ao permitindo que seja es que necessitem de um bom desempenho ou aplicac es de tempo real, utilizada em aplicac o o dado que o Template Matching ser a aplicado a todos agrupamentos de pixels de pele.

2.2

Face Blob Localization e Face Contour Estimation


Bem parecida com a t ecnica que apresentaremos aqui, trabalha com imagens em escala

de cinza. Consiste em criar uma pir amide de imagens como mostrado na Figura 2.2 e extrai um mapa de arestas como na 2.3. As regi oes de interesse ser ao selecionadas de acordo com a tabela 2.1, para cada ima aplicado um raio valor de raio. Todos os agrupamentos em que o raio esteja gem na pir amide e

o da pele Figura 2.1: Segmentac a

Fonte: (GOMES, 2005)

dentro do estipulado ser a considerada regi ao de interesse, veja Figura 2.4 Tabela 2.1: Tabela de raios dos agrupamentos N umero da regi ao 1 2 3 4 5 6 Tamanho do raio 0.75 < r < 2.25 pixels 1.75 < r < 3.25 pixels 2.75 < r < 4.25 pixels 3.75 < r < 5.25 pixels 4.75 < r < 7.25 pixels 6.75 < r < 9.25 pixels

Fonte: (JEBARA, 1995)

O conceito de Bolha pode ser observado na Figura 2.3, as bolhas s ao aglomerados de pixels fechados, que n ao possuem um caminho direto do centro da bolha at e a regi ao de fora. o (Blob Localization), a estimativa de contorno Ap os a estimativa de Bolhas localizac a realizada em uma regi da face limita a regi ao de busca do contorno. A busca e ao de vizinhanc a de 5x5 pixels com o objetivo de localizar o contorno da face, como mostrado na Figura 2.5. utilizado uma t Ap os localizar o contorno e ecnica de Template Matching para comparar o contorno encontrado com um padr ao previamente reconhecido (Figura 2.6 e 2.8), o Template es pois o campo de busca e reduzido a algumas Matching neste caso necessita de menos iterac o poss o da face. arestas. Com o casamento do padr ao e vel estimar a escala e rotac a

Figura 2.2: Pir amide de imagens

Fonte: (JEBARA, 1995)

Figura 2.3: Mapa de arestas obtida com o ltro de Sobel

Fonte: (JEBARA, 1995)

Figura 2.4: Regi oes de interesse selecionadas

Fonte: (JEBARA, 1995)

Figura 2.5: Busca pelo contorno da face

Fonte: (JEBARA, 1995)

Figura 2.6: Contorno da face

Fonte: (JEBARA, 1995)

es do casamento de padr Figura 2.7: Iterac o ao

Fonte: (JEBARA, 1995)

Figura 2.8: Padr ao reconhecido

Fonte: (JEBARA, 1995)

o de face com o Boosted Cascade of Simple Localizac a Features

o da Localizac o de faces foi utilizado o algor Para a implementac a a timo Boosted Cascade of Simples Featuresdescrito em (VIOLA; JONES, 2001). O algoritmo manipula imagens em escala de cinza e por ter sido projetado em forma de estruturas de aprendizadopode ser utilizado para detectar qualquer objeto bastando apenas carregar os pesos (como ser a descrito no decorrer deste cap tulo).

3.1

Vis ao geral
O algor tmo foi proposto inicialmente por Paul Viola e Michael Jones com o objetivo

o de objetos, em sua proposta inicial eles treinaram seu algoritmo para detectar de realizar detec a o da face com uma taxa de falso faces. Em testes realizados eles conseguiram realizar a detecc a positivo (Quantidade de vezes que o algoritmo informou que existia uma face em um local onde n ao existia) bastante equivalente a resultados divulgados em (AMIT; WILDER, 1997), (ROTH; AHUJA, 2000), (ROWLEY; KANADE, 1998), (SCHNEIDERMAN; KANADE, 2000) o de 384x288 pixels e poss e (SUNG; POGGIO, 1998). Com uma resoluc a vel obter uma taxa de aproximadamente 22 frames por segundo em um Pentium 4 de 2GHz. Esta t ecnica n ao utiliza do movimento de um v deo nem da cor do pixel para acele utilizado a id rar o processamento da imagem. E eia de Janela de Processamentoque extrai rvore de decis caracter sticas da imagem, aplica-a a uma a ao que iterativamente ir a informar a exist encia ou n ao de uma face nesta janela. o do algor Existem 3 pontos importantes na concretizac a timo, que seriam a Integral o da caracter da Imagemo que permite uma r apida avaliac a stica de cada janela esquecendo a id eia de trabalhar diretamente com a luminosidade do pixel, o m etodo com que o classicador e o construido selecionando o m nimo de caracter sticas a serem treinados com uma implementac a ltimo e a combinac o sucessiva entre classicadores complexos em uma do AdaBoost e por u a estrutura em cascata.

3.2

o de Caracter Extrac a sticas


o de caracter baseada em uma id A extrac a sticas e eia simples, que n ao utiliza a inten-

um dos motivos para a sidade do pixel, o que torna a tarefa de aprendizagem mais f acil, o que e grande velocidade da t ecnica. a transformada de Haar (HORTA, 2007) para segmentar A caracter stica utilizada e regi oes da imagem como mostrado na Figura 3.1. como descrito em (PAPAGEORGIOU; POGGIO, 1998). Figura 3.1: Exemplo de ret angulos de caracter sticas. 2 ret angulos de caracter sticas s ao exibidos em A e B, 3 ret angulos de caracter sticas s ao exibidos em C e 4 ret angulos em D

Fonte: (VIOLA; JONES, 2001)

do que a soma de todos os pixels da regi A caracter stica nada mais e ao branca subtraido da soma dos pixels da regi ao hachurada.

3.3

Integral da imagem
Um algor tmo convencional para calcular a caracter stica descrita em 3.2. seria a

o de 2 lac utilizac a os aninhados para realizar a soma de cada uma das regi oes de cada ret angulo o de cada um, como demonstrado abaixo: e em seguida realizar a subtrac a soma1 0

Para x de 1 at e a Largura da regi ao Branca

10

Para y de 1 at e a Altura da regi ao Branca

soma1 soma1 + I (x, y)

soma2 0

Para x de 1 at e a Largura da regi ao Hachurada

Para y de 1 at e a Altura da regi ao Hachurada

soma2 soma2 + I (x, y)

caracteristica soma1 soma2 a lumin onde I(x,y) e ancia da imagem A Integral da Imagem acelera esse c alculo realizando apenas uma vez, fazendo com es aritm que o c alculo da caracter stica seja realizado com pouqu ssimas operac o eticas. A o 3.1 representa como a obtemos. equac a

ii(x, y) =

x x,y y

i(x , y )

(3.1)

a Integral da Imagem e i(x,y) e o valor do pixel da imagem original. Com esta Onde ii(x,y) e o e poss representac a vel calcular a soma de qualquer ret angulo realizando apenas 4 acessos a matriz da Integral da Imagem. A image 3.2 ilustra como a Integral da imagem funciona. No ponto 1 teremos a soma de todas os valores dos pixels da imagem a partir do ponto (0,0). rea D e calculada realizando 4 acessos a ii(x,y) como A soma de todos os pixels da a o 3.2. demonstrado na equac a

AD = V4 V3 (V2 V1 )

(3.2)

Na gura 3.3 um exemplo de uma das carater sticas explicadas em 3.2. Para calcu necess lar esta caracter stica e ario realizar apenas seis acessos a Integral da Imagem como e

11

Figura 3.2: C alculo de uma regi ao retangular

o 3.3. demonstrado na equac a Figura 3.3: C alculo de um elemento de caracter stica

Areabranca = V6 V5 (V4 V3 ) Areahachurada = V4 V3 (V2 V 1) Caracteristica = Areabranca Areahachurada (3.3)

3.4

Classicador AdaBoost
Com a id eia da Integral da Imagem formada podemos partir para o classicador. Uma

o do Adaptative Boosting (KUNCHEVA, 2004) e utilizado tanto para selecionar um pevariac a queno conjunto de caracter sticas como para treinar o classicador. Na sua forma original, o utilizado para auxiliar o treinamento de classicadores simples, estes classicaAdaBoost e

12

denido por: dores s ao simples separadores lineares. O classicador linear simples e


c

S = W [i]xIntegralImagem[F.Index[i]]
i=1

(3.4)

F.score = abs(S F.media f ace) < abs(S F.media nao f ace)

(3.5)

FaceL ocalizada =

j=1

F [ j].score > limiar

(3.6)

o n Onde c e umero de caracter sticas, o i representa cada caracter stica do utilizada o vetor de pesos para as caracter pelo classicador, W e sticas, IntegralImagem[F.Index[i]] re o da transformada de Haar na imagem. S e o somat presenta o resultado da operac a orio das a m caracter sticas para cada classicador, F.media face e edia para S que o classicador encon a m trou durante o treinamento de amostras positivas, F.media nao face e edia para S durante a separac o para o somat o treinamento de amostras negativas, limiar e a orio de todas as caracter sticas do classicador. Se o somat orio ultrapassar o limiar, o classicador simples considera como face. utilizada uma janela de 24x24 pixels para extrair as caracter E sticas discutidas em 3.2, poss o de aproximadamente 180.000 caracter nesta janela e vel formar uma combinac a sticas. o e absurdamente elevada, qualquer classicador que tivesse que analizar todas Esta combinac a es estaria fadado a lentid o. estas combinac o ao na classicac a projetado para uma u nica caracter Para solucionar este problema, o classicador e stica que melhor separe um exemplo positivo de um exemplo negativo de face. Para cada caraco o timo para a func o de ter stica, um classicador simples determina um limiar de separac a a o. classicac a Um classicador simples h j (x) consiste de uma caracter stica f j , um limiar j e uma o do sinal da inequac o: paridade p j que indica a direc a a 1 sep j f j (x) < p j j 0 c.c.

h(x) =

suciente para realizar uma detecc o com Na pr atica, apenas uma caracter stca n ao e a poucos erros. As caracter sticas s ao selecionadas em v arios passos como ilustrado pelo Algor tmo.

13

Obter amostras das imagens (x1 ,y1 ), ..., (xn ,yn ), onde yi = 0, 1 para exemplos positivos e negativos da imagem

Inicializar os pesos u1,i =

1 1 2m , 2l

para yi = 0, 1 respectivamente, onde m e l s ao o n umero

de amostras negativas e positivas respectivamente

Para t = 1, ..., T:

1. Normalize os pesos, ut ,i

ut ,i , n j=1 ut , j

uma distribuic o de probabilidade. onde ut e a

2. Para cada caracter stica, j, treinar o classicador h j , que deve ser treinado apenas avaliado observando ut , j = i ui |h j (xi ) yi | com esta caracter stica. O erro e 3. Escolher o classicador ht , com o menor erro t . 4. Atualize os pesos: ut +1,i = ut ,i t1i classicado corretamente, i = 1 caso contr onde i = 0 se o exemplo xi e ario, e t =
t 1t .

O melhor classicador e
1 T 1 tT=1 t ht (x) 2 t =1 t

h(x) =

0
1 onde t = log t

c.c.

o do algoritmo para a selec o de um conjunto reduzido de O resultado da utilizac a a poss caracter sticas pode ser demonstrado na Figura 3.4. E vel perceber que as caracter sticas selecionadas foram a de dois ret angulos na altura dos olhos com o nariz e a outra foi entre os olhos e a testa. No primeiro caso o algor tmo percebeu a diferenc a de luminosidade entre o nariz e a regi ao dos olhos, no segundo caso percebeu a semelhanc a de luminosidade entre os olhos e a diferenc a para a regi ao superior do nariz. o r ter uma sequ O segredo para ter uma detec a apida e encia de classicadores. O primeiro classicador descarta a maioria das sub-janelas da imagem com falso-positivo com pouqu ssimo processamento pois realiza o c alculo de apenas 2 caracter sticas (Figura 3.4),

14

Figura 3.4: Caracter sticas selecionadas pelo AdaBoost

o e realizada com aproximadamente 60 instruc es (VIOLA; JONES, 2001) estima que essa operac a o de um microprocessador, os classicadores seguintes realizam a mesmo procedimento mas utilizam um n umero maior de caracter sticas, a medida que a sub-janela passa pelos classicadores aplicada a outro classicador mais complexo e que utiliza mais processamento. Se a subela e reconhecida como uma face. A Figura 3.5 ilustra esta a rvore janela passar em todas as etapas e poss de decis ao. Nesta gura e vel observar que existe um n vel hier arquico entre os classica aplicado a todas as imagens, caso ele classique como face, o dores, o primeiro classicador e aplicado e assim por diante. As sub-janelas rejeitadas s segundo classicador e ao descartadas como faces e o processamento adicional s ao os outros classicadores existentes (acima de 100 classicadores). rvore de decis Figura 3.5: Figura esquem atica da a ao em cascata

Pelo fato dos classicadores serem treinados com a meta heur stica AdaBoost, os classicadores subsequentes s ao treinados com as amostras que os primeiros classicadores possuem maior diculdade, ou seja os falso-positivo que passam pelos primeiros classicadores dicilmente ir ao passar pelos classicadores subsequentes.

15

3.4.1

A varredura da imagem
realizada a partir do pixel (0,0) com uma subjanela de 24x24 A varredura da imagem e

pixels. A busca segue crescendo no eixo X seguido pelo eixo Y (linha a linha) ao t ermino aumentada por um fator de escala (que ser da busca de 24x24 pixels a janela e a explicado na o) e o processo recomec implementac a a com a subjanela de um tamanho aumentado, isto se repete at e que a subjanela esteja do tamanho da janela original.

3.4.2

Treinamento
Classicadores com mais caracter sticas possuem uma taxa falso-positivo menor e uma

o, em contrapartida necessitam de mais processamento. A t alta taxa de detecc a ecnica ideal seria o entre as amostras positivo e negatipara cada classicador, selecionar um limiar de separac a vamente classicadas de forma que minimize o n umero de caracter sticas que ser ao utilizadas. simples. Solucionar este problema n ao e utilizada para o treinamento. Em cada est Na pr atica uma t ecnica simples e agio de selecionado um limite m treinamento e nimo de reconhecimento e um limiar m aximo de falsopositivo, o treinamento consiste em acrescentar ret angulos de caracter sticas como descrito na Sess ao (3.2) at e que esses par ametros sejam respeitados. Terminado este procedimento o treinamento est a conclu do.

16

o facial Algoritmo Haar-Cascade para localizac a

o da t Neste cap tulo ser a abordado como foi realizada a implementac a ecnica, quais es realizadas. Tamb ferramentas foram utilizadas, como foram instaladas, as modicac o em en o. contrar a trechos do c odigo fonte da implementac a

4.1

O MATLAB
a ferramenta para c O MATLAB e alculos matem aticos mais utilizada no meio acad emico,

o facial motivou o desenvolvimento deste proa falta de um toolbox que realizasse a localizac a jeto a m de facilizar o estudo de t ecnicas que de alguma forma s ao aplicadas a faces humanas. o tornar a tarefa de localizar faces muitos simples uma vez que ser Esta implementac a a o, passando os par necess ario chamar apenas uma func a ametros adequados e ter como retorno uma matriz com as coordenadas das faces.

4.1.1

MEX
uma interface externa de comunicac o do MATLAB, com ele e poss O MEX e a vel

criar c odigos em C ou FORTRAN e roda-los como se fossem c odigo nativo no MATLAB. o. Esta vis ao simples do problema esconde o poder e a robustez desta interface de comunicac a N ao se pode negar que executar um c odigo em C, compilado para a m aquina em quest ao e extremamente mais r apido do que executar o c odigo nativo do MATLAB. Al em disto, qualquer recurso implement avel em C implementado em uma estrutura do MEX e executado a partir do MATLAB. Os arquivos MEX s ao ligados dinamicamente as subrotinas produzidas em C ou Fortran, que quando compiladas podem ser utilizadas em subrotinas do MATLAB como uma o nativa totalmente transparente para quem est func a a utilizando.

17

4.2

O arquivo MEX
Para implementar o algoritmo de Paul Viola e Michael Jones foi utilizada uma bi-

blioteca de vis ao computacional desenvolvida pela Intel chamada de OpenCV (Open Source es otimizadas para detecc o de objetos, Computer Vision). Esta biblioteca diponibiliza func o a o 3D, aplicac o de ltros, etc. an alise de imagens, an alise de v deo, reconstruc a a poss o MEX. Na gura 4.1 e vel visualizar o formato de entrada dos dados para a func a o mxGetPr e poss Os dados s ao recebidos atrav es de ponteiros, atrav es da func a vel obter uma enviada pelo MATLAB). refer encia para uma matriz do tipo double ( e como a matriz e Figura 4.1: Entradas dos dados atrav es do MEX

o mxGetDimensions e As dimens oes da matriz de entrada pode ser obtida com a func a muito importante as macros P1, P2 e OP1 s ao denidas para facilitar o acesso a a matriz. E lembrar que no C os ndices da matriz comec am em zero, diferente do MATLAB que comec am em um.

4.3

O OpenCV
uma biblioteca de processamento de imagens O OpenCV como citado anteriormente e

Open Source. Esta biblioteca foi escolhida desenvolvida pela INTEL, atualmente a biblioteca e por ser refer encia no alto desempenho e por implementar o m etodo Paul Viola e Michael Jones. A equipe do OpenCV se preocupou em preparar o m etodo para localizar qualquer objeto em a imagem que ser uma imagem, bastando apenas informar qual e a trabalhada, a dimens ao da janela de busca, os pesosdos classicadores e a escala em que a face que ser a procurada est a o a janela de busca em que os classicadores foram treinados. em relac a

18

o da func o cvHaarDetectObjects do OpenCV Figura 4.2: Utilizac a a

poss Como e vel vericar na Figura 4.2, os par ametros citados acima s ao passados o, os pesos (limiar de separac o, quantidade de ret para a func a a angulos que ser ao utilizados a estrutura da arvore de decis ao) dos classicadores s ao armazenados em um XML, onde o XML o de faces possui aproximadamente 212 a rvores de decis padr ao para localizac a ao. o de localizac o possui um par A func a a ametro muito importante de escala, que serve como um calibrador de tamanho de face. Este par ametro informa o quanto a imagem original dever a ser reduzida a ponto da menor face existente na mesma se encaixe em uma janela muito importante, pois ele ir de 24x24 pixels. Este par ametro e a reetir no desempenho da o e na eci aplicac a encia. Quanto menor o par ametro de escala mais lento ser a a busca, mas o ser em compensac a a poss vel localizar faces muito pequenas, quanto maior o par ametro mais r apido ser a a busca e faces pequenas ser ao ignoradas. o do classicador no XML Figura 4.3: Exemplo da representac a

rvore de classicadores, nele e armazenado as O Arquivo XML possui os pesos da a es dos ret informac o angulos de caracter sticas utilizadas em cada classicador, o peso de cada o para cada classicador. O arquivo XML utilizado neste caracter stica e o limiar de separac a o fornecido junto com a biblioteca OpenCV, o treinamento e gerac o de um arquivo trabalho e a XML destes pode levar at e meses para ser concluido em um computador convencional. A

19

que para fazer o algoritmo vantagem de armazenamento dos pesos neste formato de arquivo e reconhecer outro padr ao basta apenas trocar o arquivo XML e manter o restante do c odigo exatamente igual. A Figura 4.3 comparada com a Figura 3.5 da p agina 14 representa um dos classicadores, A Figura 4.3 representa o classicador de n umero 19 nesta sequencia de classicadores. poss Nesta mesma gura e vel perceber a quantidade de ret angulos de caracter sticas que este o limiar de separac o entre Face e N classicador utiliza (tr es) e qual e a ao Face.

4.4

Sa da de dados para o MATLAB


O OpenCV retorna uma lista de faces que foram encontradas na imagem (lembrando

que a imagem deve estar em escala de cinza). Ser a retornada como total de faces para uma poss imagem em que n ao foi poss vel localizar nenhuma o valor zero. Na gura 4.4 e vel ver o da sa necess a implementac a da dos dados. Observe que e ario criar a matriz de retorno com o mxCreateDoubleMatrix que e mais uma das func es do MEX e novamente utilizar a func a o mxGetPr para obter um ponteiro de refer encia para a matriz. o do retorno dos dados para o MATLAB Figura 4.4: Implementac a

4.5

Ferramentas utilizadas
utilizado como padr O MATLAB possui o compilador LCC que e ao para compilar os

um pouco antigo e apresentou erros de compilac o com arquivos MEX, este compilador n ao e a o do OpenCV. Para solucionar o problema foi necess a utilizac a ario utilizar um compilador C

20

mais con avel e bem testado, a escolha foi o GCC (GNU C Compiler) (http://gcc.gnu.org/), o do MinGW como o sistema operacional utilizado foi o Windows se fez necess ario a instalac a (Minimalist GNU for Windows) vers ao 3.1.0 para dispor de cabec alhos e ferramentas Unix, tanto o GCC quanto o MinGW s ao projetos Open Source. o e Para utilizar o MinGW no MATLAB (vers ao 2007b) foi necess ario a instalac a o do GNUMEX (http://sourceforge.net/projects/gnumex) vers congurac a ao 2.01. O GNUMEX permite congurar o MATLAB para utilizar outro compilador al em do LCC. O OpenCv (http://sourceforge.net/projects/opencvlibrary/), principal biblioteca para o desenvolvimento deste trabalho foi instalado a partir da vers ao 1.1pre1 (a vers ao 1.0 apresen o de interface gr tava instabilidade na utilizac a aca). Esta vers ao disp oe de ferramentas para o de objetos, rastreamento em imagens, aplicac o de ltros, captura de c localizac a a amera entre diversas outras funcionalidades.

4.5.1

o das ferramentas Instalac a


Todas as ferramentas foram instaladas em seu modo padr ao. O GNUMEX necessitou

o em seu c o de c de uma alterac a odigo fonte para realizar a compilac a odigos em C++, foi ne o de GCC para G++ para realizar testes de c cess ario alterar o compilador de sua utilizac a odigo o. em C++. Para c odigo fonte totalmente em C o GNUMEX n ao necessita de nenhuma alterac a

21

Resultados

o de localizac o facial Este cap tulo mostrar a os resultados obtidos utilizando a func a a implementada em MEX e utilizada pelo matlab. Todas as imagens fornecida ao algoritmo est ao em escala de cinza, foi utilizado um fator de escala de 1.3. Tentou-se obter um n umero variado de imagens para explorar a robustez e velocidade. Todas as imagens seguintes foram geradas utilizando o software implementado neste trabalho. o e de f o e memorizac o. Pode ser utilizada com qualquer imagem A func a acil utilizac a a lida pelo matlab, desde que seja convertida para uma imagem em escala de cinza do tipo double. poss o. Na gura 5.1 e vel ver um exemplo de sua utilizac a o da func o Figura 5.1: Exemplo de Utilizac a a

realizada a leitura e convers Nas primeiras duas linhas e ao da imagem, em apenas uma realiza a localizac o facial e no lac o trecho de c linha e a o e odigo que cria um ret angulo nas faces ltima linha de c o visual do resultado. encontradas. A u odigo exibe a imagem para apurac a o de face de 2 pessoas em uma u nica imagem, demonsA Figura 5.2 realiza a detecc a trando a possibilidade de encontrar o diversas faces em qualquer regi ao da imagem. A Figura 5.3 demonstra uma face frontal focada, tipicamente utilizada para sistema biom etrico de o facial. identicac a

22

o de face em uma imagem com mais de um rosto Figura 5.2: Detecc a

o de face frontal Figura 5.3: Detecc a

Fonte: Imagem original extraida de (JEBARA, 1995)

o de uma face com oclus A Figura 5.4 demonstra o sucesso na localizac a ao parcial do o. J o de um rosto rosto devido a uma rotac a a a Figura 5.5 exibe o resultado de uma localizac a com um deslocamento para a direita. o de faces de crianc As Figuras 5.6 e 5.7 mostram a detecc a as em idades diferentes. o da face de uma senhora Afro-descendente, isso e poss A Figura 5.8 mostra a localizac a vel grac as a transformada de Haar e a Arvore de decis ao que tomam as decis oes de face/n ao face baseado na diferenc a entre regi oes da imagem. um exemplo de que o m Na Figura 5.9 e etodo n ao retorna faces mesmo em imagens poss onde e vel localizar olhos e trac os que lembram uma boca humana. A Figura 5.10 mostra uma moc a em que sua face possui um deslocamento para a direita e em sua esquerda existem dua ab oboras com trac os de faces que n ao foram detectadas por n ao serem humanas. um exemplo t o de A Figura 5.11 e pico de oclus ao parcial do rosto com a utilizac a culos transparente. Mesmo com a oclus poss o da face. o ao e vel realizar a localizac a

23

o de face com pequena rotac o Figura 5.4: Detecc a a

Fonte: www.sxc.hu

o de face de uma jovem, com deslocamento para a direita Figura 5.5: Detec a

Fonte: www.sxc.hu

No cap tulo seguinte ser ao feitas conclus oes sobre este trabalho, mencionando os pontos fortes e fracos e os tipos de imagens utilizadas.

24

o de face de uma crianc Figura 5.6: Detec a a

Fonte: www.sxc.hu

o de face de uma crianc Figura 5.7: Detec a a

Fonte: www.sxc.hu

o de face de afro-descendente e sem cabelo vis Figura 5.8: Detec a vel

Fonte: www.sxc.hu

25

o de faces Figura 5.9: Exemplo da n ao localizac a

Fonte: www.sxc.hu

o de faces humanas e a n o de duas supostas faces Figura 5.10: Detecc a ao detecc a

Fonte: www.sxc.hu

o de faces com oclus culos Figura 5.11: Detecc a ao parcial do rosto com o

26

Conclus oes

o facial em imagens em esFoi utilizada a biblioteca OpenCV para realizar a localizac a o cala de cinza para que pudesse ser utilizada pelo MATLAB atrav es da interface de comunicac a externa MEX. A t ecnica funciona muito bem em imagens com faces maiores que 24x24 pixels, rea o praticamente instantaneamente, com uma velocidade de at lizando a detecc a e 22 quadros por segundo. Notou-se que o algoritmo n ao funciona adequadamente em imagens com muito ruido como por exemplo uma imagem de televis ao com os famosos chuviscos.

6.1

o facial Diferencial para outras t ecnicas de localizac a


o do Haar-Cascade para o Template Matching (GOMES, 2005) e que o TemA distinc a

bastante sens muito dependente do plate Matching e vel a escala da imagem, ele tamb em e pr e-processamento da imagem al em de necessitar de muito esforc o computacional. J a o Face Blob Localization e Face Contour Estimation (JEBARA, 1995) apesar de diminuir o esforc o computacional realizado pelo Template Matching est a sujeito a localizar qualquer imagem que parec a a uma face humana, como por exemplo a face de um macaco. O Haar-Cascade baseia sua decis ao em t ecnicas de aprendizado de m aquina com o intuito de tornar a tarefa mais parecida com o que n os seres humanos realizamos.

6.2

es Contribuic o
o para a a rea de compactac o seletiva de A t ecnica aqui apresentada tr as contribuic a a

imagens apresentada por (GOMES, 2005), que poderia ser utilizada para armazenar as imagens gravadas em caixa eletr onico, onde as faces que se aproximam da c amera podem ser guardadas sem compress ao e o restante com uma compress ao bastante alta. T ecnicas de reconhecimento facial necessitam localizar a face antes do reconhecimento como descrito por (DELAC; GF-

27

GIC, 2007), (WISKOTT JEAN-MARC FELLOUS; MALSBURG, 1999), (WISKOTT JEANMARC FELLOUS; MALSBURG, 1999) tamb em se beneciam. O rastreamento facial (DAR outra a rea que se benecia do trabalho aqui apresentado, al REL; PENTLAND, 1996) e em de reas n outras a ao citadas aqui.

6.3

Perspectivas futuras
o para a continuidade deste trabalho seria tornar o m Uma outra opc a etodo mais robusto

es nas faces, realizar o rastreamento e identicac o facial utilizando ao ponto de localizar rotac o a es tornat ecnicas descritas por (DELAC; GFGIC, 2007) e (COSTA, 2003). Estas implementac o es de ensino e pequenas empresas auxiliando ou riam a biometria facial acess veis as instituic o reas restritas. substituindo a j a utilizada biometria de impress ao digital para acesso a a

28

Refer encias Bibliogr acas

AMIT, D. G. Y.; WILDER, K. Joint induction of shape features and tree classiers. 1997. o de faces em CARVALHO, F. J. S.; TAVARES, J. M. R. S. Metodologia para identicac a o e exemplo de resultados. Congreso de M imagens: introduc a etodos Num ericos en Ingenier a, 2005. o (Mestrado) COSTA, G. H. Detecc a a o Facial: Autofaces versus Antifaces. Dissertac Universidade Federal de Santa Catarina, 2003. DARREL, B. M. T.; PENTLAND, A. P. Active Face Tracking and Pose Estimation in an Interactive Room. [S.l.], 1996. DELAC, K.; GFGIC, M. Face Recognition. [S.l.]: I-TECH Education and Publishing, 2007. GOMES, D. de M. Compress ao Seletiva de Imagens Coloridas com Detecc a atica o Autom o (Mestrado) Universidade Federal do Rio Grande do de Regi oes de Interesse. Dissertac a Norte, 2005. HORTA, T. C. de O. Um estudo das Transformadas Wavelets de Haar e Gabor para Detecc a o o (Mestrado) Universidade de Bras de Objetos. Dissertac a lia, 2007. o JEBARA, T. S. 3D Pose Estimation and Normalization for Face Recognition. Dissertac a (Mestrado) McGill University, 1995. KUNCHEVA, L. I. Combining Pattern Classiers, Methods and Algorithms. [S.l.]: Wiley-Interscience, 2004. PAPAGEORGIOU, M. O. C.; POGGIO, T. A general framework for object detection. International Conference on Computer Vision, 1998. ROTH, M. Y. D.; AHUJA, N. A snowbased face detector. Neural Information Processing 12, 2000. ROWLEY, S. B. H.; KANADE, T. Neural network-based face detection. IEEE Patt. Anal. Mach. Intell., 1998. SCHNEIDERMAN, H.; KANADE, T. A statistical method for 3d object detection applied to faces and cars. International Conference on Computer Vision, 2000. SUNG, K.; POGGIO, T. Example-based learning for view-based face detection. IEEE Patt. Anal. Mach. Intell., 1998. TURK, M. A.; PENTLAND, A. P. Face recognition using eigenfaces. 1991. VIOLA, P.; JONES, M. Rapid object detection using a boosted cascade of simple features. Conference on Computer Vision and Pattern Recognition, 2001.

29

WISKOTT JEAN-MARC FELLOUS, N. K. L.; MALSBURG, C. von der. Face recognition by elastic bunch graph matching. Intelligent Biometric Techniques in Fingerprint and Face Recognition, 1999.