Guía de detección de rostro

Tres personas con sus rostros destacados con cuadros de límite

La tarea del detector de rostros de MediaPipe te permite detectar rostros en una imagen o un video. Puedes usar esta tarea para ubicar rostros y rasgos faciales dentro de un marco. Esta tarea usa un modelo de aprendizaje automático (AA) que funciona con imágenes individuales o un flujo contínuo de imágenes. La tarea genera ubicaciones de 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.

Pruébala.

Comenzar

Para comenzar a usar esta tarea, sigue una de estas guías de implementación para tu plataforma de destino. En estas guías específicas de la plataforma, se explica una implementación básica de esta tarea, incluido 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, las entradas, las salidas y las 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 de espacios de color.
  • Umbral de puntuación: Filtra los resultados según las puntuaciones de predicción.
Entradas de tareas Resultados de las tareas
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 muestra los siguientes resultados:
  • Cuadros delimitadores para los rostros detectados en un marco de imagen.
  • Coordenadas de 6 puntos de referencia del rostro para cada rostro detectado.

Opciones de configuración

Esta tarea tiene 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 de la tarea. Existen tres modos:

IMAGE: Es el modo para entradas de una sola imagen.

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

LIVE_STREAM: Es el modo de transmisión en vivo de datos de entrada, como los de una cámara. En este modo, se debe llamar a resultListener para configurar un objeto de escucha que reciba resultados de forma asíncrona.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
min_detection_confidence Es la puntuación de confianza mínima para que la detección de rostros se considere exitosa. Float [0,1] 0.5
min_suppression_threshold Es el umbral mínimo de supresión no máxima para que la detección de rostros se considere superpuesta. Float [0,1] 0.3
result_callback Establece el objeto de escucha de resultados para que reciba 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 como LIVE_STREAM. N/A Not set

Modelos

Los modelos de detección de rostros pueden variar según los casos de uso previstos, como la detección de corto y largo alcance. Por lo general, los modelos también establecen compensaciones entre el rendimiento, la precisión, la resolución y los requisitos de recursos, y, en algunos casos, incluyen funciones 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 regiones faciales. BlazeFace usa una red de extracción de características liviana similar a MobileNetV1/V2.

BlazeFace (de corto alcance)

Un modelo ligero para detectar uno o varios rostros en imágenes similares a selfies desde una cámara de teléfono inteligente o una cámara web. El modelo está optimizado para imágenes de cámaras frontales de teléfonos a corta distancia. La arquitectura del modelo usa una técnica de red convolucional de detector de imágenes únicas (SSD) con un codificador personalizado. Para obtener más información, consulta el artículo de investigación sobre el detector de MultiBox de una sola toma.

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

BlazeFace (rango completo)

Es un modelo relativamente ligero para detectar uno o varios rostros en las imágenes de una cámara de smartphone o una cámara web. El modelo está optimizado para imágenes de rango completo, como las que se toman con 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 (rango completo) 128 x 128 Número de punto flotante 16 información Próximamente

BlazeFace Sparse (rango completo)

Es una versión más liviana del modelo BlazeFace de rango completo normal, aproximadamente un 60% más pequeño. El modelo está optimizado para imágenes de rango completo, como las que se toman con una 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 Sparse (rango completo) 128 x 128 Número de punto flotante 16 información Próximamente

Comparativas de tareas

Estas son las comparativas de tareas de toda la canalización según los modelos previamente entrenados anteriores. El resultado de la latencia es la latencia promedio en el Pixel 6 con CPU o GPU.

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