viola jones face detector

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

Upload: others

Post on 15-Jan-2022

3 views

Category:

Documents


0 download

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