La tarea Segmentador de imágenes de MediaPipe te permite dividir las imágenes en regiones según categorías predefinidas. Puedes usar esta funcionalidad para identificar texturas o objetos específicos y, luego, aplicar efectos visuales, como el desenfoque del fondo. Esta tarea incluye varios modelos entrenados de forma específica para la segmentación de personas y sus funciones en los datos de imágenes, incluidos los siguientes:
- Persona y antecedentes
- Solo cabello de la persona
- Cabello, rostro, piel, ropa y accesorios de la persona
Esta tarea opera en datos de imagen con un modelo de aprendizaje automático (AA) con imágenes únicas o una transmisión de video continua. Genera una lista de regiones segmentadas, que representan objetos o áreas en una imagen, según el model que elijas.
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:
- Android - Ejemplo de código - Guía
- Python - Ejemplo de código Guía
- Web - Ejemplo de código - Guía
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.
Entradas de tareas | Resultados de la tarea |
---|---|
La entrada puede ser uno de los siguientes tipos de datos:
|
El Segmentador de imágenes genera datos de imágenes segmentados, que pueden incluir una de las siguientes opciones o ambas, según las opciones de configuración que definas:
|
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 |
output_category_mask |
Si se configura en True , el resultado incluye una máscara de segmentación como una imagen uint8, en la que cada valor de píxel indica el valor de la categoría ganadora. |
{True, False } |
False |
output_confidence_masks |
Si se configura como True , el resultado incluye una máscara de segmentación como una imagen de valor flotante, en la que cada valor flotante representa el mapa de puntuación de confianza de la categoría. |
{True, False } |
True |
display_names_locale |
Configura el idioma de las etiquetas que se usarán para los nombres visibles proporcionados en los metadatos del modelo de la tarea, si están disponibles. El valor predeterminado es en para inglés. Puedes agregar etiquetas localizadas a los metadatos de un modelo personalizado
con la API de Metadata Writer de TensorFlow Lite
| Código de configuración regional | en |
result_callback |
Configura el objeto de escucha de resultados para recibir los resultados de la segmentación de forma asíncrona cuando el segmentador de imágenes está en modo de transmisión en vivo.
Solo se puede usar cuando el modo de ejecución está configurado en LIVE_STREAM |
N/A | N/A |
ajustables
El Segmentador de imágenes se puede usar con más de un modelo de AA. La mayoría de los siguientes modelos de segmentación están compilados y entrenados para realizar la segmentación con imágenes de personas. Sin embargo, el modelo DeepLab-v3 se compila como un segmentador de imágenes de uso general. Selecciona el modelo que mejor se adapte a tu aplicación.
Modelo de segmentación de selfie
Este modelo puede segmentar el retrato de una persona y se puede usar para reemplazar o modificar el fondo de una imagen. El resultado del modelo es de dos categorías: el segundo plano en el índice 0 y la persona en el índice 1. Este modelo tiene versiones con diferentes formas de entrada, incluida la versión cuadrada y una horizontal, que puede ser más eficiente para las aplicaciones en las que la entrada siempre tiene esa forma, como las videollamadas.
Nombre del modelo | Forma de entrada | Tipo de cuantización | Tarjeta de modelo | Versiones |
---|---|---|---|---|
Segmentador de selfies (cuadrado) | 256 x 256 | número de punto flotante 16 | info | Más reciente |
SelfieSegmenter (horizontal) | 144 × 256 | número de punto flotante 16 | info | Más reciente |
Modelo de segmentación de cabello
Este modelo toma una imagen de una persona, localiza el cabello en su cabeza y muestra un mapa de segmentación de imágenes para su cabello. Puedes usar este modelo para recolorear el cabello o aplicar otros efectos para el cabello. El modelo genera las siguientes categorías de segmentación:
0 - background
1 - hair
Nombre del modelo | Forma de entrada | Tipo de cuantización | Tarjeta de modelo | Versiones |
---|---|---|---|---|
HairSegmenter | 512 × 512 | Ninguna (float32) | info | Más reciente |
Modelo de segmentación de selfies de varias clases
En este modelo, se toma una imagen de una persona, se localizan áreas de diferentes áreas, como el cabello, la piel y la ropa, y se genera un mapa de segmentación de imágenes para estos artículos. Puedes usar este modelo para aplicar varios efectos a las personas en imágenes o videos. El modelo genera las siguientes categorías de segmentación:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Nombre del modelo | Forma de entrada | Tipo de cuantización | Tarjeta de modelo | Versiones |
---|---|---|---|---|
SelfieMulticlass (256 × 256) | 256 x 256 | Ninguna (float32) | info | Más reciente |
Modelo de DeepLab v3
Este modelo identifica segmentos para varias categorías, como fondo, persona, gato, perro y planta en maceta. El modelo usa la reducción de pirámides espaciales atros para capturar información de mayor Para obtener más información, consulta DeepLab-v3.
Nombre del modelo | Forma de entrada | Tipo de cuantización | Versiones |
---|---|---|---|
DeepLab-V3 | 257 × 257 | Ninguna (float32) | Más reciente |
Comparativas de tareas
Estas son las comparativas de tareas para toda la canalización según los modelos previamente entrenados anteriores. El resultado de latencia es la latencia promedio del Pixel 6 usando CPU / GPU.
Nombre del modelo | Latencia de la CPU | Latencia de GPU |
---|---|---|
Segmentador de selfies (cuadrado) | 33.46ms | 35.15ms |
Segmentador de selfies (horizontal) | 34.19ms | 33.55ms |
HairSegmenter | 57.90ms | 52.14ms |
SelfieMulticlass (256 x 256) | 217.76ms | 71.24ms |
DeepLab V3 | 123.93ms | 103.30ms |