Guia de detecção facial

A tarefa Detector de rostos do MediaPipe permite detectar rostos em uma imagem ou um vídeo. Você pode usar essa tarefa para localizar rostos e características faciais em um frame. Essa tarefa usa um modelo de machine learning (ML) que funciona com imagens únicas ou um fluxo contínuo de imagens. A tarefa mostra localizações de rostos, com os seguintes pontos-chave faciais: olho esquerdo, olho direito, ponta do nariz, boca, tradição do olho esquerdo e trágico do olho direito.

Faça um teste.

Comece já

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

Detalhes da tarefa

Nesta seção, descrevemos os recursos, as entradas, as saídas e as opções de configuração desta tarefa.

Recursos

  • Processamento de imagem de entrada: o processamento inclui rotação, redimensionamento, normalização e conversão do espaço de cor da imagem.
  • Limite de pontuação: filtre os resultados com base nas pontuações de previsão.
Entradas de tarefas Saídas de tarefas
O detector facial 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 para 6 pontos de referência de rostos 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.

VIDEO: 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, 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 facial 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 facial 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 Face Detector está no modo de transmissão ao vivo. Só pode ser usado quando o modo de corrida está definido como LIVE_STREAM. N/A Not set

Modelos

Os modelos de detecção facial podem variar dependendo dos casos de uso pretendidos, como detecção de curto e longo alcance. Os modelos também costumam fazer compensações entre desempenho, acurácia, resolução e requisitos de recursos e, em alguns casos, incluem outros atributos.

Os modelos listados nesta seção são variantes do BlazeFace, um detector facial 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ão e segmentação de região facial. O BlazeFace usa uma rede de extração de atributos leve semelhante à MobileNetV1/V2 (link em inglês).

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 da câmera frontal do smartphone em curto alcance. A arquitetura de modelo usa uma técnica de rede convolucional de detector de imagem única (SSD) com um codificador personalizado. Para mais informações, consulte o artigo de pesquisa sobre o Detector de caixa múltipla de disparo único.

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

BlazeFace (full-range)

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 amplo escopo, como aquelas tiradas com imagens da câmera traseira do smartphone. A arquitetura de modelo usa uma técnica semelhante a uma rede convolucional CenterNet (em inglês) com um codificador personalizado.

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

BlazeFace esparsa (intervalo total)

Uma versão mais leve do modelo normal de BlazeFace normal, aproximadamente 60% menor em tamanho. O modelo é otimizado para imagens de amplo alcance, como aquelas tiradas com imagens de uma câmera de smartphone voltada para trás. A arquitetura do modelo usa uma técnica semelhante a uma rede convolucional CenterNet (em inglês) com um codificador personalizado.

Nome do modelo Forma de entrada Tipo de quantização Card de modelo Versions
BlazeFace esparsa (intervalo total) 128 x 128 ponto flutuante 16 informações Em breve

Comparativos de mercado de tarefas

Aqui estão os comparativos de mercado de tarefas 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