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.
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:
- Android: Ejemplo de código: Guía
- Python: ejemplo de código: Guía
- Web: Ejemplo de código: Guía
- iOS: Ejemplo de código: Guía
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:
|
El detector de rostros muestra los siguientes resultados:
|
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 |