• Nenhum resultado encontrado

Em seus primórdios, as abordagens de detecção de faces eram baseadas principalmente em operadores de processamento de imagem simples (YANG; HUANG, 1994) (JESORSKY; KIRCHBERG; FRISCHHOLZ, 2001). Yang e Huang (YANG; HUANG, 1994) segmentam a ima-

gem baseando-se nas suas arestas para obter as regiões candidatas a face. Em (JESORSKY; KIRCHBERG; FRISCHHOLZ, 2001), os autores usam a distância de Hausdorff como medida

de similaridade entre um modelo facial genérico e possíveis instâncias de faces. Simi- larmente, Hsu et al. (HSU; ABDEL-MOTTALEB; JAIN, 2002) propõem a detecção de faces

candidatas usando a informação de tons de pele. Contudo, tais métodos são extrema- mente sensíveis à influência de iluminação e variação de cor, além de oclusões e variações de poses.

Em contrapartida, métodos baseados em aprendizagem de máquina apresentam atu- almente alguns dos melhores resultados (FARFADE; SABERIAN; LI, 2015) (ZHANG et al.,

2016) (VIOLA; JONES et al., 2001) (ZHANG; ZHANG, 2014). Em (OSUNA et al., 1997) é im-

plementado um classificador baseado em máquina de vetores de suporte (Support Vector Machine - SVM) para o problema de detecção facial frontal e com diferentes escalas. Em

outra técnica, a SVM é treinada com imagens de modelos 3D de faces, alcançando me- lhores resultados quanto à variação de rotação (HEISELET et al., 2001). Alguns métodos

usam como base a análise de componentes principais (Principal Component Analysis - PCA) (WOLD; ESBENSEN; GELADI, 1987), uma técnica robusta para redução de dados e

extração de características. O método PCA pode ser usado tanto em técnicas que se ba- seiam apenas nas características da imagem (LEE et al., 1999) quanto combinado a técnicas

de aprendizado, como as abordagens de Kernel Principal Component Analysis (KPCA) (SCHÖLKOPF; SMOLA; MÜLLER, 1997), uma extensão do PCA (YANG; AHUJA; KRIEGMAN,

2000) (LI et al., 2001). Todavia, as técnicas baseadas em SVM e PCA ainda apresentam

certo grau de sensibilidade em imagens com cenários inconstantes.

Viola e Jones propõem a combinação de três etapas para endereçar o problema de falsos positivos e desempenho na tarefa de detecção facial: primeiro, eles fazem uso de uma estrutura de dados chamada imagem integral, que diminui o tempo de detecção da face; em seguida, é implementado um classificador baseado no AdaBoost (FREUND; SCHAPIRE,

1997), o qual consegue selecionar as características de Haar mais críticas para identificar possíveis regiões com face (Figura 10); e por fim, eles combinam vários classificadores em cascata para descartar as regiões de plano de fundo da imagem, enquanto que o algoritmo aloca mais recurso para detectar candidatos a face (VIOLA; JONES et al., 2001) (VIOLA; JONES, 2004).

Figura 10 – Características selecionadas pelo AdaBoost. As duas características são exi- bidas na linha acima e sobrepostas numa imagem de treino típica na linha abaixo. A primeira característica mede a diferença de intensidade entre as regiões dos olhos e uma região transversal das bochechas. A segunda caracte- rística compara a intensidade nas regiões dos olhos com a intensidade através da ponte do nariz.

Fonte: (VIOLA; JONES, 2004).

Este método consegue alcançar bons resultados no quesito de variação de escala, vari- ação da pose da cabeça e oclusão da boca, além de atingir um nível de desempenho ade- quado para aplicações em tempo real. Uma extensão do trabalho proposta pelos mesmos autores consegue melhorar a detecção facial em relação à invariância quanto a rotações na própria imagem e outras perspectivas de visualização da face, além de melhorar a robustez quanto a mudanças de pose (JONES; VIOLA, 2003) (VIOLA; JONES, 2004).

Ainda no contexto de algoritmos baseados em aprendizagem de máquina, as redes neurais apresentam abordagens ainda mais eficientes. Rowley et al. descreve a construção de uma rede neural invariante a rotações e movimentos de flexão e extensão, com alto grau de complexidade (ROWLEY; BALUJA; KANADE, 1997). O Modelo Generativo Res-

trito (Constrained Generative Model - CGM) executa a tarefa de detecção de faces para planos de fundo complexos, contendo variação de cores e iluminação (FERAUND et al.,

2001). A técnica funciona combinando vários modelos de rede neural para reduzir a taxa de falsos positivos usando um pequeno conjunto de contraexemplos na base de dados. O custo computacional é reduzido pelo uso de um algoritmo de busca (multilayer percep- tron). Seow et al. apresenta uma rede baseada no tom de pele usando retropropagação (backpropagation) para extrair as regiões de pele do plano e interpolá-las por meio de um valor limite ótimo. A rede é treinada usando uma distribuição de cores RGB de pele em diferentes cenários, com variação de iluminação por exemplo (SEOW; VALAPARLA; ASARI,

2003). Outra abordagem baseia-se na combinação de filtros no espaço de cor YCbCr e redes neurais multicamadas (LIN, 2007).

Abordagens mais recentes tiram proveito de CNNs para melhorar a acurácia na tarefa de detecção facial (NASSE; THURAU; FINK, 2009) (FARFADE; SABERIAN; LI, 2015). No

estudo de (NASSE; THURAU; FINK, 2009) é implementada uma CNN de quatro camadas

para suprir os erros em relação à detecção em poses oblíquas. Usando um processador gráfico (GPU) para executar o classificador gerado, o custo computacional de execução é bastante baixo (entre 200 à 500 milissegundos por quadro) . Já o Deep Dense Face Detector (DDFD) simplifica a complexidade de modelagem de sua rede para o propósito de detecção facial em diferentes perspectivas de visualização (FARFADE; SABERIAN; LI, 2015), usando

como base um refinamento da AlexNet (KRIZHEVSKY; SUTSKEVER; HINTON, 2012). Esse

método não necessita de imagens de faces rotuladas quanto a pose e pontos de referência facial, sendo capaz de detectar faces usando um único modelo baseado em CNN, sem requerer o uso de técnicas de segmentação, regressão ou classificadores SVM.

CNNs podem gerar modelos de classificação que pecam em relação ao tempo de exe- cução. Alguns métodos que apresentam resultados expressivos quanto a acurácia para detecção em cenários de grandes variações visuais, como por exemplo a pose, expressões faciais e iluminação, tendem a ser mais custosos computacionalmente. Existem métodos que buscam amenizar esse compromisso. Li et al. propõe uma CNN em cascata que realiza um rápido descarte das regiões de plano de fundo nas suas primeiras camadas e cuidado- samente avalia um pequeno número de candidatos a face nas suas últimas camadas (LI et al., 2015). Adicionalmente, para reduzir o número de candidatos nas camadas posteriores

e melhorar a eficácia no cálculo de localização, uma etapa de calibração é introduzida após cada etapa de detecção. Tal técnica alcança um desempenho de 14 quadros por segundo em uma simples CPU. O VIPLFaceNet (ou SeetaFace SDK) (LIU et al., 2017)

baseada em Haar (WILSON; FERNANDEZ, 2006) e padrão binário local (Local Binary Pat- tern - LBP) (OJALA; PIETIKÄINEN; HARWOOD, 1996), chamada Locally Assembled Binary

(LAB). Atualmente, essa técnica consegue atingir um dos melhores resultados em precisão e desempenho, detectando faces em aproximadamente 150 milisegundos usando CPU.

Também existem métodos que exploram aprendizagem multitarefa para realizar a detecção tanto de faces como de pontos de referência (ZHANG; ZHANG, 2014) (ZHANG et al., 2016). Cha e Zhengyou apresentam uma CNN multitarefa baseada em post filters

capaz de aprender simultaneamente e decidir o que é face e não-face, a pose, e pontos de referência da face, alcançado ótimos resultados no estado na arte (ZHANG; ZHANG, 2014)

(Figura 11). A Rede Neural Convolucional em Cascata Multitarefa (Multi-Task Cascaded Convolutional Neural Network - MTCNN) (ZHANG et al., 2016) é composta de três CNNs

pequenas, em que as correlações entre as regiões de faces detectadas e seus pontos de interesse são exploradas para melhorar seu desempenho.

Figura 11 – Resultados qualitativos do detector de Cha e Zhengyou na base de dados FDDB.

Fonte: (ZHANG; ZHANG, 2014).