Top Banner
Viola Jones Face Detector Viola Jones Face Detector Túlio Ligneul Santos Túlio Ligneul Santos
20

Viola Jones Face Detector

Jan 15, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Viola Jones Face Detector

Viola Jones Face DetectorViola Jones Face DetectorTúlio Ligneul SantosTúlio Ligneul Santos

Page 2: Viola Jones Face Detector

Agenda

● Objetivo● Fundamentos● Treinamento● Detecção● Exemplos● Conclusões● Trabalho Futuro● Referências

Page 3: Viola Jones Face Detector

Objetivo

● Criar detector de faces:– Método Viola-Jones [1];– Razoável taxa de verdadeiro-positivos.

Page 4: Viola Jones Face Detector

Fundamentos

● Método Viola-Jones– Utiliza features retangulares:

● À principio, podem ter dimensões e posições arbitrárias dentro de uma sub-janela w;

● Possuem valores calculados sobre a imagem;● f (w)=∑

w

p preto−∑w

pbranco

f (w): valor do feature na janela w ;

∑w

p preto : somatório dos pixels na região preta ;

∑w

pbranco : somatório dos pixels na região branca.

Page 5: Viola Jones Face Detector

Fundamentos

● Método Viola-Jones– Utiliza representação da integral da imagem.

● Definida por:

● Cálculo do valor de um feature em O(1).

ii( x , y)= ∑x⩽x ' , y⩽ y '

i( x ' , y ' )

A B

C D

1 2

3 4

∑D

pixels=ii(4)+ii (1)−(ii(2)+ii(3))

Page 6: Viola Jones Face Detector

w : 24x24 pixelsf : feature ;p : polaridade ;θ : theshold.

h(w , p , f ,θ)={1, se pf (w)< pθ0, caso contrário}

Fundamentos

● Método Viola-Jones:

– Classificador Fraco:

– Classificador Forte:

sub-janela de

C (w)={1, se∑t=1

T

αt h t (w)⩽12 ∑

t=1

T

ht (w)

0, caso contrário }T: número de classificadores fracos;h

t(w):valor do t-ésimo classificador fraco;

αt: constante calculada durante o treinamento.

Page 7: Viola Jones Face Detector

Fundamentos

● Método Viola-Jones:

– Cascata de Classificadores(Fortes):● Procura detectar negativos rapidamente

– Positivos passam por toda a cascata

Nível 1A entrada é uma face?

Entrada Nível 2A entrada é uma face?

Talvez

Não

Não

Descartar entrada Descartar entrada

Talvez

Page 8: Viola Jones Face Detector

Treinamento● Classificador Forte: Treinamento pelo algoritmo AdaBoost:

– Dadas as imagens exemplo (x1,y

1), ..., (xn,yn) de 24x24 pixels:

● yi = 0,1 para imagens negativas e positivas respectivamente.

– Inicializar pesos ωi = 1/2m, 1/2l para yi = 0,1 respectivamente.

● m = número de exemplos negativos;● l = número de exemplos positivos.

– Para t = 1,...,T:● Normalizar os pesos:

● Selecionar o melhor classificador fraco em relação ao erro:

● Definir ht(x) = h(x, ft , pt, θt) onde ft, pt, e θt são os minimizadores de ϵt.;

● Atualizar os pesos: , com

– ei = 0 se o i-ésimo exemplo foi classificado corretamente e 1, caso contrário.

● Calcular:

ωt+1, i=ωt ,i βt1−e i βt=

ϵt

1−ϵt

αt=log( 1βt

)

ωt , i=ωt , i

∑j=1

n

ωt , j

ϵt=min f , p ,θ(∑i

n

ωi∣h( xi , f , p ,θ)−y i∣)

Page 9: Viola Jones Face Detector

Treinamento● Cascata de Classificadores:

– Sejam:● Fi: taxa de falso-positivos até o i-ésimo nível da cascata;

● Di: taxa de detecção (verdadeiro-positivos) até o i-ésimo nível da cascata;

● i : número de níveis na cascata.

– Definir:● Ftarget: taxa alvo de falso-positivos;

● f: taxa máxima de falso-positivos por camada;● d: taxa minima de detecção por camada.

– Iniciar treinamento com:● P: conjunto dos exemplos positivos;● N: conjunto dos exemplos negativos;● F0 = 1; D0 = 1;

● i = 0.

Page 10: Viola Jones Face Detector

Treinamento● Cascata de Classificadores:

– Enquanto Fi > Ftarget:

● i+=1; ni= 0; Fi = Fi-1;

● Enquanto Fi > f * Fi-1:

– ni+=1;

– Usar N e P para treinar 1 classificador com ni features;● Inserir classificador no final da cascata;

– Avaliar cascata no conjunto de validação e determinar Di;

– Enquanto Di < d * Di-1 :● Reduzir o threshold do i-ésimo classificador ;

– Avaliar cascata no conjunto de validação e determinar Fi

– Se Fi ≤ f * Fi-1:● Remover o i-ésimo classificador da cascata.

● N = Ø;● Se Fi > Ftarget:

– Avaliar o detector no conjunto de imagens negativas;● Colocar todos os falso-positivos em N;

Page 11: Viola Jones Face Detector

Treinamento● Geração de exemplos:

– Negativos:● Sub-janelas aleatórias de 24x24 pixels retiradas de imagens

negativas:– 1192 imagens obtidas por navegação no google imagens.

– Positivos:● Imagens positivas obtidas no Face Detection Data Set and

Benchmark (FDDB) [2]● Utilizou-se o detector de faces do OpenCv para detectar faces

nas imagens;● Removeu-se manualmente falso-positivos;

– Processamento adicional:● Conversão para escala de cinza;● Escala para 24x24 pixels;● Normalização:

– Média nula e variância unitária.

Page 12: Viola Jones Face Detector

Treinamento● Parâmetros:

– Imagens:● Treinamento:

– 4916 Positivas– 6000 Negativas

● Validação– 5000 Positivas– 10000 Negativas

– Para cada classificador fraco treinado são analisados 400 features;

– 10 camadas● Taxa máxima de falso-positivos f = 0.39 por camada:

– Ftotal ≤ (0.39)10 ≈ 6.2 * 10-5;● Taxa mínima de detecção (verdadeiro-positivos) d = 0.93

por camada:– Dtotal ≥ (0.93)10 ≈ 0.48;

Page 13: Viola Jones Face Detector

Detecção● Carregar detector treinado:

– De um aquivo .xml● Tamanho inicial da sub-janela: t = 24x24 pixels;● Fator de escala s = 1;● Enquanto tamanho da sub-janela < tamanho da imagem:

– Varrer a imagem com a sub-janela:● Realizar deslocamentos de s pixels;● Avaliando a sub-janela com a cascata;● Se uma face for detectada:

– Salvar sub-janela.– Escalar a sub-janela:

● t = t * 1.25;● s = s * 1.25;

Page 14: Viola Jones Face Detector

Detecção

● Agrupar sub-janelas em conjuntos disjuntos;● Descartar conjuntos com menos de 10 sub-janelas;● Fundir as sub-janelas em cada conjunto;● Marcar detecções na imagem original.

Page 15: Viola Jones Face Detector

Detecção

Video retirado de OpenCV Face Detection: Visualized [3]

Page 16: Viola Jones Face Detector

Exemplos

Page 17: Viola Jones Face Detector

Exemplos

Page 18: Viola Jones Face Detector

Conclusões● Dificuldades:

– Dimensionamento do detector:● Definir taxas de detecção e falso-positivos;● Definir número de níveis da cascata

– Geração de imagens negativas para o treino:● A cada nível se torna mais difícil encontrar falso-positivos.

● Viola-Jones:– Imagens positivas selecionadas à mão:

● Seguindo um procedimento definido.– 6060 features:

● 38 camadas/níveis:

● Resultados:– Pouco eficiente

● Alta taxa de falso-positivos;● Baixa taxa de detecção.

– Prova a validade do método

Page 19: Viola Jones Face Detector

Trabalho Futuro● Selecionar novas imagens positivas:

– Usar procedimento sugerido por Viola e Jones [1].● Validação cruzada:

– Utilizar conjuntos de treino e teste independentes.● Retreino do detector:

– Maior cuidado:● Taxas máximas e mínimas de detecção e falso-positivos

podem ser variadas de camada à camada.● Avaliar diferentes classificadores para a mesma camada.

– Ex: com números de features diferentes.– Buscar maior velocidade de detecção.

● Paralelização do treinamento:– Aumento da velocidade de treino.

Page 20: Viola Jones Face Detector

Referências

[1] Viola, P., e Jones, M. - “Robust Real-Time Face Detection”, International Journal of Computer Vision 57(2), 137-154, 2004.

[2] University of Massachusetts - “Face Detection Data Set and Benchmark (FDDB)”, http://vis-www.cs.umass.edu/fddb/, último acesso em 27/06/2011.

[3] Harvey, A. - “OpenCV Face Detection: Visualized”, http://vimeo.com/12774628, último acesso em 28/06/2011.

● Repositório do projeto em servidor Git:– [email protected]:tulio/imageprocessing.git