Guía de detección de rostro

La tarea MediaPipe Face Detector te permite detectar rostros en una imagen o un video. Puedes usar esta tarea para ubicar rostros y rasgos faciales dentro de un fotograma. En esta tarea, se usa un modelo de aprendizaje automático (AA) que funciona con imágenes individuales o una transmisión continua de imágenes. La tarea muestra las ubicaciones de los rostros, junto con los siguientes puntos clave faciales: ojo izquierdo, ojo derecho, punta de la nariz, boca, tragión del ojo izquierdo y tragión del ojo derecho.

Probar

Comenzar

Comienza a utilizar esta tarea siguiendo una de estas guías de implementación para la plataforma de destino. En estas guías específicas de la plataforma, se explica la implementación básica de esta tarea, incluidos un modelo recomendado y un ejemplo de código con las opciones de configuración recomendadas:

Detalles de la tarea

En esta sección, se describen las capacidades, entradas, salidas y opciones de configuración de esta tarea.

Funciones

  • Procesamiento de imágenes de entrada: El procesamiento incluye la rotación de imágenes, el cambio de tamaño, la normalización y la conversión del espacio de color.
  • Umbral de puntuación: Filtra los resultados en función de las puntuaciones de predicción.
Entradas de tareas Resultados de la tarea
El detector de rostros acepta una entrada de uno de los siguientes tipos de datos:
  • Imágenes fijas
  • Fotogramas de video decodificados
  • Feed de video en vivo
El detector de rostros genera los siguientes resultados:
  • Cuadros de límite para los rostros detectados en un marco de imagen.
  • Coordenadas de 6 puntos de referencia faciales para cada rostro detectado.

Opciones de configuración

Esta tarea incluye las siguientes opciones de configuración:

Nombre de la opción Descripción Rango de valores Valor predeterminado
running_mode Establece el modo de ejecución para la tarea. Existen tres modos:

IMAGE: El modo para entradas de una sola imagen.

VIDEO: Es el modo para los fotogramas decodificados de un video.

LIVE_STREAM: Es el modo para una transmisión en vivo de datos de entrada, como los que provienen de una cámara. En este modo, se debe llamar a resultListener para configurar un objeto de escucha a fin de recibir resultados de forma asíncrona.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence Puntuación de confianza mínima para que se considere exitosa la detección de rostro. Float [0,1] 0.5
min_suppression_threshold El umbral mínimo de no supresión máxima para que la detección de rostro se considere superpuesto. Float [0,1] 0.3
result_callback Configura el objeto de escucha de resultados para recibir los resultados de detección de forma asíncrona cuando el detector de rostros está en el modo de transmisión en vivo. Solo se puede usar cuando el modo de ejecución está configurado en LIVE_STREAM. N/A Not set

ajustables

Los modelos de detección de rostro pueden variar según los casos prácticos previstos, como la detección de corto y largo alcance. Por lo general, los modelos también sacrifican el rendimiento, la exactitud, la resolución y los requisitos de recursos y, en algunos casos, incluyen características adicionales.

Los modelos que se enumeran en esta sección son variantes de BlazeFace, un detector de rostros ligero y preciso optimizado para la inferencia de GPU para dispositivos móviles. Los modelos de BlazeFace son adecuados para aplicaciones como la estimación de puntos clave faciales en 3D, la clasificación de expresiones y la segmentación de región del rostro. BlazeFace usa una red de extracción de funciones liviana similar a MobileNetV1/V2.

BlazeFace (corto alcance)

Modelo ligero que detecta uno o varios rostros en imágenes similares a una selfie desde la cámara de un smartphone o una cámara web. El modelo está optimizado para imágenes de la cámara frontal del teléfono a corto alcance. La arquitectura del modelo usa una técnica de red convolucional del detector de corte único (SSD) con un codificador personalizado. Para obtener más información, consulta el artículo de investigación sobre el detector de cuadro múltiple de un solo disparo.

Nombre del modelo Forma de entrada Tipo de cuantización Tarjeta de modelo Versiones
BlazeFace (corto alcance) 128 x 128 número de punto flotante 16 info Más reciente

BlazeFace (rango completo)

Modelo relativamente ligero para detectar uno o varios rostros en imágenes desde la cámara de un smartphone o una cámara web. El modelo está optimizado para imágenes de rango completo, como las que se toman con imágenes de la cámara posterior de un teléfono. La arquitectura del modelo usa una técnica similar a una red convolucional CenterNet con un codificador personalizado.

Nombre del modelo Forma de entrada Tipo de cuantización Tarjeta de modelo Versiones
BlazeFace (rango completo) 128 x 128 número de punto flotante 16 info Disponible dentro de poco tiempo

BlazeFace disperso (rango completo)

Es una versión más liviana del modelo normal de BlazeFace, de aproximadamente un 60% más pequeño. El modelo está optimizado para imágenes de rango completo, como las que se toman con imágenes de la cámara posterior del teléfono. La arquitectura del modelo usa una técnica similar a una red convolucional CenterNet con un codificador personalizado.

Nombre del modelo Forma de entrada Tipo de cuantización Tarjeta de modelo Versiones
BlazeFace disperso (rango completo) 128 x 128 número de punto flotante 16 info Disponible dentro de poco tiempo

Comparativas de tareas

Estas son las comparativas de tareas para toda la canalización basadas en los modelos previamente entrenados anteriores. El resultado de latencia es la latencia promedio en el Pixel 6 usando CPU / GPU.

Nombre del modelo Latencia de la CPU Latencia de GPU
BlazeFace (corto alcance) 2.94ms 7.41ms