Guia de detecção facial

Três pessoas com os rostos destacados por caixas delimitadoras

A tarefa MediaPipe Face Detector permite detectar rostos em uma imagem ou vídeo. Use essa tarefa para localizar rostos e características faciais em um frame. Essa tarefa usa um modelo de aprendizado de máquina (ML) que funciona com imagens únicas ou um fluxo contínuo de imagens. A tarefa gera locais de rostos, além dos seguintes pontos principais faciais: olho esquerdo, olho direito, ponta do nariz, boca, trago do olho esquerdo e trago do olho direito.

Faça um teste!

Começar

Comece a usar essa tarefa seguindo um destes guias de implementação para sua plataforma segmentada. Esses guias específicos da plataforma mostram uma implementação básica dessa tarefa, incluindo um modelo recomendado e um exemplo de código com opções de configuração recomendadas:

Detalhes da tarefa

Esta seção descreve os recursos, entradas, saídas e opções de configuração dessa tarefa.

Recursos

  • Processamento de imagens de entrada: inclui rotação, redimensionamento, normalização e conversão de espaço de cores.
  • Limite de pontuação: filtre os resultados com base nas pontuações de previsão.
Entradas da tarefa Saídas de tarefas
O detector de rostos aceita uma entrada de um dos seguintes tipos de dados:
  • Imagens estáticas
  • Frames de vídeo decodificados
  • Feed de vídeo ao vivo
O detector facial gera os seguintes resultados:
  • Caixas delimitadoras para rostos detectados em um frame de imagem.
  • Coordenadas de seis pontos de referência para cada rosto detectado.

Opções de configuração

Essa tarefa tem as seguintes opções de configuração:

Nome da opção Descrição Intervalo de valor Valor padrão
running_mode Define o modo de execução da tarefa. Há três modos:

IMAGE: o modo para entradas de imagem única.

VÍDEO: o modo para frames decodificados de um vídeo.

LIVE_STREAM: o modo para uma transmissão ao vivo de dados de entrada, como de uma câmera. Nesse modo, "resultListener" precisa ser chamado para configurar um listener que receba resultados de forma assíncrona.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence A pontuação mínima de confiança para que a detecção de rosto seja considerada bem-sucedida. Float [0,1] 0.5
min_suppression_threshold O limite mínimo de supressão não máxima para que a detecção de rostos seja considerada sobreposta. Float [0,1] 0.3
result_callback Define o listener de resultados para receber os resultados da detecção de forma assíncrona quando o detector facial está no modo de transmissão ao vivo. Só pode ser usado quando o modo de execução está definido como LIVE_STREAM. N/A Not set

Modelos

Os modelos de detecção de rostos podem variar dependendo dos casos de uso pretendidos, como detecção de curto e longo alcance. Os modelos também costumam fazer concessões entre desempenho, precisão, resolução e requisitos de recursos e, em alguns casos, incluem recursos adicionais.

Os modelos listados nesta seção são variantes do BlazeFace, um detector de rostos leve e preciso otimizado para inferência de GPU móvel. Os modelos BlazeFace são adequados para aplicativos como estimativa de pontos principais faciais 3D, classificação de expressões e segmentação de regiões faciais. O BlazeFace usa uma rede de extração de recursos leve semelhante ao MobileNetV1/V2.

BlazeFace (curto alcance)

Um modelo leve para detectar um ou vários rostos em imagens semelhantes a selfies de uma câmera de smartphone ou webcam. O modelo é otimizado para imagens de câmeras frontais de smartphones a curta distância. A arquitetura do modelo usa uma técnica de rede convolucional Single Shot Detector (SSD) com um codificador personalizado. Para mais informações, consulte o artigo de pesquisa sobre o Single Shot MultiBox Detector.

Nome do modelo Dimensão de entrada Tipo de quantização Card de modelo Versões
BlazeFace (curto alcance) 128 x 128 ponto flutuante de 16 bits informações Mais recente

BlazeFace (intervalo completo)

Um modelo relativamente leve para detectar um ou vários rostos em imagens de uma câmera de smartphone ou webcam. O modelo é otimizado para imagens de faixa completa, como as tiradas com uma câmera traseira de smartphone. A arquitetura do modelo usa uma técnica semelhante a uma rede convolucional CenterNet com um codificador personalizado.

Nome do modelo Dimensão de entrada Tipo de quantização Card de modelo Versões
BlazeFace (intervalo completo) 128 x 128 ponto flutuante de 16 bits informações Mais recente

BlazeFace Sparse (intervalo completo)

Uma versão mais leve do modelo BlazeFace normal de faixa completa, aproximadamente 60% menor em tamanho. O modelo é otimizado para imagens de faixa completa, como as tiradas com uma câmera traseira de smartphone. A arquitetura do modelo usa uma técnica semelhante a uma rede convolucional CenterNet com um codificador personalizado.

Nome do modelo Dimensão de entrada Tipo de quantização Card de modelo Versões
BlazeFace Sparse (intervalo completo) 128 x 128 ponto flutuante de 16 bits informações Mais recente

Comparativos de mercado sobre tarefas

Confira os comparativos de tarefas para todo o pipeline com base nos modelos pré-treinados acima. O resultado de latência é a latência média no Pixel 6 usando CPU / GPU.

Nome do modelo Latência da CPU Latência da GPU
BlazeFace (curto alcance) 2,94 ms 7,41 ms