Como distinguir um rosto real de um falso no reconhecimento de rosto

imagem



Pequena descrição



A diferença entre o rosto de uma pessoa real e um falso em uma câmera ainda é um dos problemas mais difíceis em sistemas de controle e acesso às instalações. É proposto um algoritmo para detectar o piscar de olhos em tempo real em uma sequência de vídeo de uma câmera padrão, que nos dá o fato de que a pessoa na câmera é real. Os mais recentes detectores de pontos de referência, treinados em conjuntos de dados em campo, exibem excelente resistência à orientação da cabeça em relação à câmera, mudando as condições de iluminação e expressões faciais. Mostramos que os pontos de referência são detectados com precisão suficiente para estimar com segurança o nível de abertura dos olhos. Assim, o algoritmo proposto estima a posição dos pontos de referência, extrai um escalar - relação fundo (EAR) - caracterizando a abertura do olho em cada quadro. Finalmente,o classificador SVM detecta o piscar de olhos como um padrão de valores EAR em uma janela de tempo curto. O algoritmo simples supera os resultados modernos em dois conjuntos de dados padrão.



Biblioteca Dlib



Neste artigo, utilizo os índices faciais para as regiões faciais dlib . O detector de pontos de referência facial implementado dentro da biblioteca dlib produz 68 (x, y) coordenadas que são mapeadas para estruturas faciais específicas. Esses mapeamentos de 68 pontos foram obtidos treinando o preditor de forma no conjunto de dados iBUG 300-W rotulado .



Abaixo, podemos visualizar para que cada uma dessas 68 coordenadas está sendo mapeada: Figura 1 - Renderizando cada um dos 68 pontos de coordenadas faciais do conjunto de dados iBUG 300-W Examinando a imagem, podemos ver que as regiões faciais podem ser acessadas por meio de indexação simples do Python ( assumindo indexação zero com Python, pois a imagem acima é indexada):













  • A boca pode ser acessada através dos pontos [49, 68].
  • Sobrancelha direita passando pelos pontos [18, 22].
  • Sobrancelha esquerda através de pontos [23, 27].
  • O olho direito passa pelos pontos [37, 42].
  • O olho esquerdo passa pelos pontos [43, 48].
  • O nariz através dos pontos [28, 36].
  • E a mandíbula pelos pontos [1,17].


Compreendendo a proporção do olho (EAR). Podemos aplicar a detecção de marcos faciais para localizar áreas importantes do rosto, incluindo olhos, sobrancelhas, nariz, orelhas e boca:





Figura 2 - Detecção em tempo real de marcos faciais na imagem



Isso também implica que podemos extrair certas estruturas faciais, conhecendo os índices de certos partes do rosto:





Figura 3- Aplicação de marcos faciais para localizar diferentes áreas do rosto, ou seja, o olho direito e a boca



Detecção de piscar



Do ponto de vista da detecção de piscar, estamos interessados ​​apenas em dois conjuntos de estruturas faciais - os olhos. Cada olho é representado por 6 (x, y) coordenadas, começando no canto esquerdo do olho (como se você estivesse olhando para um humano) e trabalhando no sentido horário ao redor do resto da área:





Figura 4-6 pontos de referência faciais associados ao olho



Baseado em Nesta imagem, devemos pegar em um ponto chave: há uma relação entre a largura e a altura dessas coordenadas. Com base no trabalho de Soukupova e Cech em seu artigo de 2016 "Detecção de piscar de olhos em tempo real usando marcos faciais", podemos derivar uma equação que reflete essa relação, chamada Eye Aspect Ratio (EAR):





Figura 5 - Equação de proporção do olho



onde p1,…, p6 são pontos de referência 2D na face. O numerador desta equação calcula a distância entre os pontos de referência do olho vertical, enquanto o denominador calcula a distância entre os pontos de referência do olho horizontal, pesando o denominador de acordo, uma vez que há apenas um conjunto de pontos horizontais, mas dois conjuntos de pontos verticais.



Bem, como sabemos, a proporção do olho é aproximadamente constante quando o olho está aberto, mas cai rapidamente para zero quando ocorre o piscar. Usando esta

equação simples , podemos evitar técnicas de processamento de imagem e simplesmente contar com a relação entre a distância e o ponto de vista do olho para determinar se uma pessoa está piscando. Para deixar mais claro, considere a seguinte figura:





Figura 6 - Visualização dos pontos de referência oculares



No canto superior esquerdo, temos um olho totalmente aberto - a proporção aqui será grande ® e relativamente constante ao longo do tempo. No entanto, assim que uma pessoa pisca (canto superior direito), a proporção do olho diminui drasticamente, chegando a zero. A figura superior mostra um gráfico da proporção de aspecto de um olho para um videoclipe. Como podemos ver, a proporção do olho é constante, depois cai rapidamente para perto de zero e aumenta novamente, o que indica uma piscada.





Figura 7 - Detecção de piscar de olhos



Exceções



No entanto, devido ao ruído no fluxo de vídeo, baixas taxas de detecção de pontos de referência faciais ou mudanças rápidas no ângulo de visão, um limite simples da proporção do olho pode levar a uma detecção de falso positivo, indicando que piscou ocorreu quando o assunto não piscou realmente. Como lemos em um artigo médico, uma pessoa pisca em média 20 vezes por minuto, o que nos diz que ela pisca uma vez a cada 3 segundos.



Com base nisso, para deixar nosso detector de piscamento mais resistente a esses problemas, fizemos o intervalo de tempo antes da leitura do piscando, 3 segundos devem passar, e pelo menos 3 frames devem ser feitos quando for detectado o piscar. Os resultados da nossa pesquisa deram resultados muito bons. O detector funcionou exatamente. Dos vinte testes, dezoito deram positivo.



Os problemas desta abordagem



Também existem problemas não resolvidos com esta abordagem. Se você mostrar um vídeo na câmera por meio técnico que mostra o rosto de uma pessoa que está piscando, o sistema pode levar a uma detecção de falso positivo. A solução para este problema pode ser realizada com o auxílio de um steopair de imagem onde, usando duas câmeras, podemos obter um mapa de profundidade e calcular a distância ao objeto.



Solução de problemas



Mostra o funcionamento das câmeras estereopares. Depois que as imagens são retificadas, uma pesquisa é realizada para os pares de pontos correspondentes das duas imagens. A maneira mais fácil é ilustrada na Figura 8 e é a seguinte. Para cada pixel da imagem esquerda com coordenadas (x0, y0), um pixel é procurado na imagem direita. Supõe-se que o pixel da imagem certa deve ter coordenadas (x0 - d, y0), onde d é um valor denominado disparidade. A busca do pixel correspondente é realizada calculando o máximo da função resposta, que pode ser, por exemplo, a correlação das vizinhanças dos pixels.





Figura 8 - Cálculos do mapa de profundidade



All Articles