Guía de detección de rostro

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

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. Esta tarea usa un modelo de aprendizaje automático (AA) que funciona con imágenes individuales o un flujo continuo de imágenes. La tarea genera las ubicaciones del rostro, 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ébalo

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 para cada plataforma, se explica cómo implementar esta tarea de forma básica, incluido un modelo recomendado y un ejemplo de código con 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, el cambio de tamaño, la normalización y la conversión del espacio de color de la imagen.
  • Umbral de puntuación: Filtra los resultados según las puntuaciones de predicción.
Entradas de la tarea 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:
  • Son los cuadros delimitadores de los rostros detectados en un fotograma 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 las 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 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 de no máximos para que se considere que la detección de rostros se superpone. Float [0,1] 0.3
result_callback Establece el objeto de escucha de resultados para recibir los resultados de la 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 se establece en 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 realizan 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 en GPU de 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 (corto alcance)

Es un modelo ligero para detectar uno o varios rostros en imágenes similares a selfies tomadas con la cámara de un smartphone 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 utiliza una técnica de red convolucional Single Shot Detector (SSD) con un codificador personalizado. Para obtener más información, consulta el documento de investigación sobre Single Shot MultiBox Detector.

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

BlazeFace (rango completo)

Es un modelo relativamente ligero para detectar uno o varios rostros en imágenes de 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 la cámara trasera 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 Flotante de 16 info Más reciente

BlazeFace Sparse (rango completo)

Es una versión más liviana del modelo BlazeFace normal de rango completo, aproximadamente un 60% más pequeña. El modelo está optimizado para imágenes de rango completo, como las que se toman con la cámara trasera 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 Sparse (rango completo) 128 x 128 Flotante de 16 info Más reciente

Comparativas de tareas

Aquí se encuentran las comparativas de tareas para toda la canalización basadas en los modelos preentrenados anteriores. El resultado de latencia es la latencia promedio en el Pixel 6 con CPU o GPU.

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