Guia de detecção facial

Três pessoas com os rostos destacados com caixas delimitadoras

A tarefa do MediaPipe Face Detector permite detectar rostos em uma imagem ou vídeo. Você pode usar essa tarefa para localizar rostos e características faciais em um frame. Esta 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 do rosto, além dos seguintes pontos-chave faciais: olho esquerdo, olho direito, ponta do nariz, boca, trágus do olho esquerdo e trágus do olho direito.

Teste!

Começar

Para começar a usar essa tarefa, siga um destes guias de implementação para sua plataforma de destino. Estes guias específicos para plataformas orientam você em uma implementação básica desta 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 desta tarefa.

Recursos

  • Processamento de imagem de entrada: o processamento 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 rosto 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 Face Detector gera os seguintes resultados:
  • Caixas delimitadoras para rostos detectados em um frame de imagem.
  • Coordenadas de seis pontos de referência do rosto para cada rosto detectado.

Opções de configuração

Esta 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 quadros decodificados de um vídeo.

LIVE_STREAM: o modo de uma transmissão ao vivo de dados de entrada, como de uma câmera. Nesse modo, o resultListener precisa ser chamado para configurar um listener para receber resultados de forma assíncrona.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence A pontuação de confiança mínima 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 de detecção de forma assíncrona quando o detector de rosto 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 rosto podem variar dependendo dos casos de uso pretendidos, como detecção de curto e longo alcance. Os modelos também costumam fazer trocas 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 rosto leve e preciso otimizado para inferência de GPU para dispositivos móveis. Os modelos BlazeFace são adequados para aplicativos como estimativa de pontos-chave faciais em 3D, classificação de expressões e segmentação de regiões do rosto. O BlazeFace usa uma rede de extração de recursos leve semelhante à 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âmera frontal do smartphone em curta distância. A arquitetura do modelo usa uma técnica de rede convolucional de detector único (SSD, na sigla em inglês) com um codificador personalizado. Para mais informações, consulte o artigo de pesquisa sobre o detector de caixas múltiplas de disparo único.

Nome do modelo Forma de entrada Tipo de quantização Card de modelo Versões
BlazeFace (curto alcance) 128 x 128 float 16 Informações Mais recente

BlazeFace (período inteiro)

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 toda a faixa, como as tiradas com a câmera traseira do smartphone. A arquitetura do modelo usa uma técnica semelhante à rede convolucional CenterNet com um codificador personalizado.

Nome do modelo Forma de entrada Tipo de quantização Card de modelo Versões
BlazeFace (período inteiro) 128 x 128 float 16 informações Em breve

BlazeFace Sparse (full-range)

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

Nome do modelo Forma de entrada Tipo de quantização Card de modelo Versões
BlazeFace Sparse (full-range) 128 x 128 float 16 informações Em breve

Comparações de mercado de tarefas

Confira os comparativos de mercado da tarefa para todo o pipeline com base nos modelos pré-treinados acima. O resultado da 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