La tarea del Segmentador de imágenes de MediaPipe te permite dividir las imágenes en regiones según categorías. Puedes usar esta funcionalidad para identificar objetos o texturas y, luego, aplica efectos visuales, como difuminado del fondo. Esta tarea incluye varios modelos específicamente entrenados para segmentar a las personas y sus dentro de los datos de imágenes, como
- Persona y fondo
- Solo el cabello de la persona
- Pelo, rostro, piel, ropa y accesorios de una persona
Esta tarea opera en datos de imágenes con un modelo de aprendizaje automático (AA) de imágenes o una transmisión continua de video por Internet. Muestra una lista de regiones segmentadas, que representan objetos o áreas en una imagen, según el modelo que elegir.
Comenzar
Comienza a usar esta tarea siguiendo una de estas guías de implementación para tu plataforma de destino. Estas guías específicas para plataformas te guiarán a través de un implementación de esta tarea, incluidos un modelo recomendado y un ejemplo de código con las opciones de configuración recomendadas:
- Android: Código ejemplo: Guía
- Python: Ejemplo de código Guía
- Web: Código ejemplo: Guía
Detalles de la tarea
En esta sección, se describen las capacidades, las entradas, las salidas y la configuración opciones de esta tarea.
Funciones
- Procesamiento de imágenes de entrada: el procesamiento incluye la rotación, el cambio de tamaño y el cambio de tamaño. normalización y conversión de espacio de color.
Entradas de tareas | Resultados de la tarea |
---|---|
La entrada puede ser uno de los siguientes tipos de datos:
|
El segmento de imágenes genera datos de imágenes segmentados, que pueden incluir uno
las siguientes, según las opciones de configuración que establezcas:
|
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 de los fotogramas decodificados de un video. LIVE_STREAM: Es el modo para una transmisión en vivo de entradas. datos, como los de una cámara. En este modo, resultListener debe se llama para configurar un objeto de escucha que reciba resultados de forma asíncrona. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
Si se establece en True , el resultado incluirá una máscara de segmentación.
como una imagen de uint8, en la que cada valor de píxel indica la categoría ganadora
valor. |
{True, False } |
False |
output_confidence_masks |
Si se establece en True , el resultado incluirá una máscara de segmentación.
como una imagen de valor flotante, donde cada valor flotante representa la confianza
mapa de puntuaciones de la categoría. |
{True, False } |
True |
display_names_locale |
Configura el idioma de las etiquetas que se usarán para los nombres visibles que se proporcionan en la
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 segmento de imágenes está en el modo LIVE_STREAM .
Solo se puede usar cuando el modo de ejecución está establecido en LIVE_STREAM |
N/A | N/A |
Modelos
El segmentador de imágenes se puede usar con más de un modelo de AA. La mayoría de las siguientes opciones los modelos de segmentación se crean y entrenan para realizar la segmentación con imágenes de personas. Sin embargo, el modelo de DeepLab-v3 se compiló como un y el segmento de imágenes para propósitos específicos. Selecciona el modelo que mejor se adapte a tu aplicación.
Modelo de segmentación de selfies
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 tiene dos categorías: fondo en el índice 0 y persona en el índice 1. Este modelo tiene versiones con diferentes formas de entrada, incluidas la versión cuadrada y una horizontal puede ser más eficiente para aplicaciones en las que la entrada tiene siempre esa forma como las videollamadas.
Nombre del modelo | Forma de la entrada | Tipo de cuantización | Tarjeta de modelo | Versiones |
---|---|---|---|---|
SelfieSegmenter (cuadrado) | 256 x 256 | número de punto flotante 16 | Información | Más recientes |
SelfieSegmenter (horizontal) | 144 x 256 | número de punto flotante 16 | Información | Más recientes |
Modelo de segmentación del cabello
Este modelo toma la imagen de una persona, ubica el cabello en su cabeza y muestra un mapa de segmentación de imágenes para su cabello. Puedes usar este modelo para decolorar el cabello o aplicar otros efectos. El modelo genera los siguientes resultados: categorías de segmentación:
0 - background
1 - hair
Nombre del modelo | Forma de la entrada | Tipo de cuantización | Tarjeta de modelo | Versiones |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Ninguna (float32) | Información | Más recientes |
Modelo de segmentación de selfies de varias clases
Este modelo toma la imagen de una persona y localiza áreas de distintas áreas, como cabello, piel y ropa, y genera un mapa de segmentación de imágenes para estos artículos. Puedes usar este modelo para aplicar diversos efectos a las personas en imágenes o video. 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 la entrada | Tipo de cuantización | Tarjeta de modelo | Versiones |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | Ninguna (float32) | Información | Más recientes |
Modelo de DeepLab-v3
Este modelo identifica segmentos para varias categorías, incluidos el fondo, persona, gato, perro y planta en maceta. El modelo usa una pirámide espacial para capturar información de mayor alcance. Para obtener más información, consulta DeepLab-v3.
Nombre del modelo | Forma de la entrada | Tipo de cuantización | Versiones |
---|---|---|---|
DeepLab V3 | 257 × 257 | Ninguna (float32) | Más recientes |
Comparativas de tareas
Estas son las comparativas de tareas para toda la canalización según los modelos previamente entrenados e implementar modelos automáticamente. El resultado de la latencia es la latencia promedio en Pixel 6 con CPU / GPU.
Nombre del modelo | Latencia de CPU | Latencia de GPU |
---|---|---|
SelfieSegmenter (cuadrado) | 33.46ms | 35.15ms |
SelfieSegmenter (horizontal) | 34.19ms | 33.55ms |
HairSegmenter | 57.90ms | 52.14ms |
SelfieMulticlass (256 x 256) | 217.76ms | 71.24ms |
DeepLab V3 | 123.93ms | 103.30ms |