• Nenhum resultado encontrado

Rastreamento Facial Utilizando Descritores

3.5 TÉCNICAS DE RECONHECIMENTO DE FACES

4.1.2 Rastreamento Facial Utilizando Descritores

A primeira etapa deste método consiste em gerar modelos 3D das faces dos usuários a partir de uma câmera RGB-D Intel RealSense F200, capaz de reconstruir os detalhes faciais e gerar malhas 3D estáticas, como as da Figura 23. Tais modelos são armazenados, formando uma base de dados de malhas. Adicionalmente, são geradas imagens frontais 2D dos modelos para a tarefa de reconhecimento. Então, dada a sequência de imagens providas

por uma câmera de vídeo RGB, as regiões faciais são localizadas usando o SeetaFace Detection. O mesmo detector facial é utilizado para localizar as faces nas projeções 2D de cada modelo 3D específico.

De posse da face de entrada e das faces de treino, o método executa um algoritmo de reconhecimento facial, com o objetivo de selecionar a malha 3D correspondente à face de entrada. Apesar de obter uma acurácia inferior à do FaceNet, para esta tarefa foi utili- zado o SeetaFace. A escolha foi feita devido à simplicidade de instalação e configuração do arcabouço e devido ao fato de a implementação original estar na linguagem C++, a qual apresenta mais rapidez em relação à linguagem Python. Como explanado em seções prévias, em primeira instância as imagens com faces detectadas a serem verificadas são alinhadas usando o SeetaFace Alignment. A partir dos pontos de interesse localizados, as faces são normalizadas para a dimensão 256 × 256 × 3. Finalmente, o SeetaFace Identifi- cation é aplicado para gerar um vetor contendo os graus de similaridade entre a face de entrada e todas as faces da base de dados. Logo, o modelo 3D da face 2D é conhecido pela seleção do modelo com o maior valor de similaridade (como visto na Figura 19). Figura 23 – Malha 3D gerada por uma câmera Intel RealSense F200. À esquerda tem-

se um modelo facial renderizado usando OpenSceneGraph e MATLAB. À direita o modelo exibido foi renderizado usando o Paint3D.

Fonte: Elaborado pelo autor, 2017.

Posteriormente, é realizado o casamento de características entre a face de entrada e a malha pré-selecionada. Para isso, inicialmente foram aplicados extratores e descritores de características. Os extratores (ou detectores) de características buscam localizar partes de uma imagem que se destacam em relação as outras, como cantos, arestas e outras formas, consideradas “boas características”. Já os descritores são usados para descrever a região em volta de uma boa característica. Tendo as características e suas descrições, é possível realizar o casamento de características (feature matching) pelas correspondências entre os pontos similares em imagens distintas. Nesta etapa foram analisados quatro descritores da ferramenta OpenCV: AKAZE (ALCANTARILLA; SOLUTIONS, 2011), BRISK (Binary Robust Invariant Scalable Keypoints) (LEUTENEGGER; CHLI; SIEGWART, 2011), KAZE

(ALCANTARILLA; BARTOLI; DAVISON, 2012) e ORB (Oriented FAST and Rotated BRIEF)

(RUBLEE et al., 2011).

A ilustração da Figura 24 exibe os resultados das características extraídas das faces de entrada 2D e das projeções do modelo 3D. Como se pode notar, o KAZE captura uma maior quantidade de características, mas muitas delas localizadas fora do rosto (no plano de fundo da imagem), apresentando assim baixa qualidade no contexto de carac- terísticas faciais. Em contrapartida, os outros três (AKAZE, BRISK e ORB) apresentam resultados semelhantes, capturando características de interesse em regiões fundamentais, principalmente na regão central do rosto, como nos olhos, boca, nariz e sobrancelhas, po- rém com algumas variações em seus aspectos, como por exemplo o custo computacional. O AKAZE, BRISK e KAZE são algoritmos mais lentos que o ORB. A Tabela 3 mostra o tempo médio aproximado para extrair e descrever as características para uma imagem 320 × 458 aleatória usando um computador Intel Corei7-6700HQ CPU @ 2.60GHz, com memória RAM de 16 GB e SSD LITEONCV1-8B128 de 128 GB.

Figura 24 – Características faciais detectadas pelos descritores do OpenCV: a) AKAZE, b) BRISK, c) KAZE e d)ORB. Em cada par de imagens, a figura à esquerda representa a face 2D de entrada. As imagens à direita representam a projeção do modelo 3D da face.

Fonte: Elaborado pelo autor, 2019.

Tabela 3 – Comparação de custo computacional dos descritores avaliados. Descritor Tempo médio de execução

(segundos)

AKAZE 0,0275

BRISK 0,008

KAZE 0,283

Para o casamento de descritores o KAZE foi descartado, devido ao seu resultado na etapa prévia de detecção. Foram utilizados os métodos de força bruta (Brute-Force Matcher - BFM) e baseado em FLANN (Fast Library for Approximate Nearest Neighbors) (MUJA; LOWE, 2009). No método BFM, dado um ponto de coordenada p = (𝑥, 𝑦′) na imagem de consulta I, representando um característica detectada em I, e conjunto de pontos C = (𝑥′′

1...𝑛, 𝑦

′′

1...𝑛) da imagem de treino T, onde 𝑛 é a quantidade de pontos de

interesse encontrados em T, a distância D entre p e todos os pontos em C é calculada, para então ser retornado o ponto p𝑚 = (𝑥

′′

, 𝑦′′) de menor distância p, sendo p e p𝑚 correspondentes. A distância de Hamming (HAMMING, 1950) foi usada com os descritores

ORB e BRISK. Já para o AKAZE foi usada a distância euclidiana (Equação 4.2) (Norm L2 do OpenCV). Para filtragem, visando capturar as melhores correspondências, o método dos k vizinhos mais próximos (k-NN) (COVER; HART et al., 1967) foi aplicado. Os resultados

para o casamento utilizando o BFM podem ser vistos na Figura 25.

O FLANN contém uma coleção de algoritmos otimizados para buscas rápidas, baseado em k-NN, sendo menos custoso computacionalmente para bases de dados maiores. Os resultados para o casamento utilizando o FLANN podem ser vistos na Figura 26.

Figura 25 – Casamento de características para cada descritor usando BFM e OpenCV: a) AKAZE, b) BRISK e c) ORB.

Fonte: Elaborado pelo autor, 2019.

Figura 26 – Casamento de características para cada descritor usando FLANN e OpenCV: a) AKAZE, b) BRISK e c) ORB.

Fonte: Elaborado pelo autor, 2019.

O tempo médio aproximado de processamento para o BFM e o FLANN foi de 0,00174 e 0,00626 segundos, respectivamente. A avaliação também foi realizada usando as mesmas

configurações do dispositivo usado para avaliação dos descritores (citado na Tabela 3), para correspondência de duas imagens aleatórias de mesma dimensão (320 × 458).

Como é possível observar nas Figuras 25 e 26, as correspondências computadas apre- sentam dois principais problemas (considere a imagem 2D arbitrária de entrada como sendo a imagem de consulta, e a imagem do modelo facial 3D como imagem de treino):

• Existem pontos na imagem de treino que correspondem a mais de um ponto na imagem de consulta;

• Existem casamentos de características inconsistentes, como por exemplo um ponto característico da sobrancelha na imagem de consulta correspondendo a um ponto na barba, na imagem de treino.

Os problemas citados acima representam correspondências discrepantes, incoerentes ou incomuns, caracterizados como outliers. Para tentar remover ou diminuir esses outliers foi implementado um algoritmo de refinamento que calcula a razão das distâncias dos 𝑘 vizinhos mais próximos, sendo 𝑘 = 2, e verifica se o valor é menor/igual a um limiar pré-definido. Os resultados deste refinamento são apresentados nas Figuras 27 e 28. Figura 27 – Refinamento do casamento de características para cada descritor usando BFM

e OpenCV: a) AKAZE, b) BRISK e c) ORB.

Fonte: Elaborado pelo autor, 2019.

Figura 28 – Refinamento do casamento de características para cada descritor usando FLANN e OpenCV: a) AKAZE, b) BRISK e c) ORB.

Fonte: Elaborado pelo autor, 2019.

Após o refinamento, observa-se que uma grande quantidade de outliers foi devida- mente removida. Mesmo assim, uma quantidade considerável de inconsistências persistem

em ocorrer, afetando o que seria a próxima etapa: calcular a pose da cabeça. Para essa tarefa foi utilizado um método Perspective-n-Point (PnP), o qual — dados os parâmetros intrínsecos e coeficientes de distorção da câmera — computa a matriz de parâmetros ex- trínsecos (rotação + translação) da orientação da cabeça usando os pontos 2D da imagem de entrada e os pontos 3D correspondentes. Conhecendo também a matriz de parâme- tros intrínsecos da nuvem de pontos facial 3D, os pontos bidimensionais extraídos da projeção do modelo 3D, usados para calcular as correspondências, podem ser convertidos para coordenadas 3D e usados como entrada no PnP. O método leva aproximadamente 0,000763 segundos para calcular a pose do objeto com no mínimo 4 correspondências. Para recuperar os pontos 3D do objeto foi utilizado um script em MATLAB.

A Figura 29 mostra uma comparação entre a projeção dos pontos 3D, com as poses estimadas pelo PnP, no plano de imagem 2D, nos casos em que houve falha no casamento de pontos usando os descritores (imagens mais à esquerda) e o ground truth (imagens mais à direita). O ground truth é calculado manualmente, pela seleção dos pontos 2D da imagem de entrada e dos pontos 3D do modelo facial 3D, e posteriormente pela correspondência de tais pontos. As retas vermelhas traçadas nas imagens representam a direção do ponto 2D de origem após o cálculo da pose daquele ponto específico, onde o início da reta se encontra no círculo colorido, o qual representa as coordenadas do ponto de origem, e o fim da reta representa o ponto 3D projetado no plano 2D. Tais retas mostram a direção dos pontos 3D projetados na imagem usando as matrizes de rotação e translação providas pela técnica PnP. Nota-se que a influência dos outliers afeta substancialmente a etapa de estimativa de orientação da cabeça.

Pelo uso de descritores como forma de alinhar faces, foi constatado que utilizando apenas técnicas clássicas de Visão Computacional a tarefa de rastrear faces 3D para RA torna-se mais difícil. Os descritores são extremamente sensíveis a variações de caracterís- ticas dos objetos de uma imagem, como é o caso da face. O custo computacional também é uma desvantagem para a tarefa de rastreamento, visto que seria necessário realizar todo o processo de detecção facial, detecção das características, casamento de descritores, refi- namento das correspondências, cálculo da pose e refinamento da pose a cada quadro da sequência de imagens.

Figura 29 – Projeção da orientação de alguns pontos característicos da face usando o PnP. As duas imagens da esquerda mostram os erros de estimativa da pose usando casamento de descritores contendo outliers. Já nas imagens a direita, são exibidos os ground truths em relação ao cálculo das poses dos pontos 3D projetados.

Fonte: Elaborado pelo autor, 2019.

Visando contornar os problemas encontrados na técnica de rastreamento baseado em descritores e faces específicas, houve a necessidade de buscar métodos mais avançados do estado da arte com o objetivo de utilizá-los como base para esta dissertação. Logo, foram avaliados alguns métodos baseados em CNNs e um deles foi selecionado, sendo este detalhado na próxima Subseção.