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.
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:
- Android: exemplo de código - guia
- Python: exemplo de código - guia
- Web: exemplo de código: guia
- iOS: exemplo de código - guia
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:
|
O Face Detector gera os seguintes resultados:
|
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 |