Conceitos de detecção facial

A detecção facial encontra rostos humanos em mídias visuais, como imagens digitais ou vídeos. Quando um rosto é detectado, ele tem uma posição, tamanho e orientação associados e pode ser pesquisado para pontos de referência, como os olhos e o nariz.

Veja alguns dos termos que usamos em relação ao recurso de detecção facial do Kit de ML:

  • O rastreamento facial estende a detecção facial para sequências de vídeo. Qualquer rosto que aparecer em um vídeo por qualquer período pode ser rastreado a cada frame. Isso significa que um rosto detectado em frames de vídeo consecutivos pode ser identificado como sendo a mesma pessoa. Observe que esta não é uma forma de reconhecimento facial. O rastreamento facial faz apenas inferências com base na posição e no movimento dos rostos em uma sequência de vídeos.

  • Um ponto de referência é um ponto de interesse dentro de um rosto. O olho esquerdo, o direito e a base do nariz são exemplos de pontos de referência. Com o Kit de ML, é possível encontrar pontos de referência em um rosto detectado.

  • Um continuo é um conjunto de pontos que seguem a forma de um atributo facial. O Kit de ML permite encontrar os contornos de um rosto.

  • A classificação determina se uma determinada característica facial está presente. Por exemplo, um rosto pode ser classificado se os olhos estiverem abertos ou fechados ou se o rosto está sorrindo ou não.

Orientação facial

Os termos a seguir descrevem o ângulo de um rosto em relação à câmera:

  • Euler X: um rosto com um ângulo de Euler X positivo está voltado para cima.
  • Euler Y: um rosto com um ângulo de Euler Y positivo está olhando para a direita da câmera ou olhando para a esquerda, se negativo.
  • Euler Z: um rosto com um ângulo de Euler Z positivo está girado em sentido anti-horário em relação à câmera.

O Kit de ML não informa o ângulo de Euler X, Euler Y ou Euler Z de um rosto detectado quando LANDMARK_MODE_NONE, CONTOUR_MODE_ALL, CLASSIFICATION_MODE_NONE e PERFORMANCE_MODE_FAST estão definidos juntos.

Pontos de referência

Um ponto de referência é um ponto de interesse dentro de um rosto. O olho esquerdo, o olho direito e a base do nariz são exemplos de pontos de referência.

O Kit de ML detecta rostos sem procurar pontos de referência. A detecção de pontos de referência é uma etapa opcional desativada por padrão.

A tabela a seguir resume todos os pontos de referência que podem ser detectados pelo ângulo de Euler Y de um rosto associado:

Ângulo de Euler Y Pontos turísticos detectáveis
< -36 graus olho esquerdo, boca esquerda, orelha esquerdo, base do nariz, bochecha esquerda
De -36 a -12 graus boca esquerda, base do nariz, boca inferior, olho direito, olho esquerdo, bochecha esquerda, ponta da orelha esquerda
-12 a 12 graus olho direito, olho esquerdo, base do nariz, bochecha esquerda, bochecha direita, boca esquerda, boca direita, parte inferior da boca
12 a 36 graus boca direita, base do nariz, boca inferior, olho esquerdo, olho direito, bochecha direita, ponta da orelha direita
> 36 graus olho direito, boca direita, orelha direita, base do nariz, bochecha direita

Cada ponto de referência detectado inclui a posição associada na imagem.

Contornos

Um contorno é um conjunto de pontos que representam a forma de um atributo facial. A imagem abaixo ilustra como esses pontos mapeiam um rosto. Clique na imagem para ampliá-la:

Cada contorno de recurso detectado pelo Kit de ML é representado por um número fixo de pontos:

Rosto oval 36 pontos Lábio superior (parte superior) 11 pontos
Sobrancelha esquerda (parte superior) 5 pontos Lábio superior (inferior) 9 pontos
Sobrancelha esquerda (inferior) 5 pontos Lábio inferior (parte superior) 9 pontos
Sobrancelha direita (superior) 5 pontos Lábio inferior (inferior) 9 pontos
Sobrancelha direita (inferior) 5 pontos Ponte do nariz Dois pontos
Olho esquerdo 16 pontos Nariz inferior 3 pontos
Olho direito 16 pontos
Bochecha esquerda (no centro) Um ponto
Bochecha direita (no centro) 1 ponto

Ao receber todos os contornos de um rosto de uma só vez, você tem uma matriz de 133 pontos, que são mapeados para apresentar contornos conforme mostrado abaixo:

Índices de contornos de atributos
0-35 Rosto oval
36-40 Sobrancelha esquerda (parte superior)
41-45 Sobrancelha esquerda (inferior)
46-50 Sobrancelha direita (superior)
51-55 Sobrancelha direita (inferior)
56-71 Olho esquerdo
72-87 Olho direito
88-96 Lábio superior (inferior)
97-105 Lábio inferior (parte superior)
106-116 Lábio superior (parte superior)
117-125 Lábio inferior (inferior)
126.127 Ponte do nariz
128-130 Nariz inferior (o ponto central está no índice 128)
131 Bochecha esquerda (no centro)
132 Bochecha direita (no centro)

Classificação

A classificação determina se uma determinada característica facial está presente. No momento, o Kit de ML é compatível com duas classificações: olhos abertos e sorriso.

A classificação é um valor específico. Indica a confiança de uma característica facial. Por exemplo, um valor de 0,7 ou mais para a classificação de sorriso indica que é provável que uma pessoa esteja sorrindo.

Essas duas classificações dependem da detecção de pontos de referência.

As classificações "olhos abertos" e "sorrindo" só funcionam para rostos frontais, ou seja, rostos com um pequeno ângulo de Euler Y (entre -18 e 18 graus).

Tamanho mínimo do rosto

O tamanho mínimo do rosto é o tamanho desejado, expresso como a proporção entre a largura da cabeça e a largura da imagem. Por exemplo, o valor de 0,1 significa que o menor rosto a ser pesquisado é aproximadamente 10% da largura da imagem que está sendo pesquisada.

O tamanho mínimo do rosto é uma compensação entre desempenho e precisão: definir o tamanho mínimo permite que o detector encontre rostos menores, mas a detecção leva mais tempo. Definir um tamanho maior pode excluir rostos menores, mas será mais rápida.

O tamanho mínimo do rosto não é um limite absoluto; o detector pode encontrar rostos um pouco menores que o especificado.

Próximas etapas

Use a detecção facial no seu app iOS ou Android: