Guía de segmentación de imágenes

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.

Pruébalo.

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:

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:
  • Imágenes fijas
  • Fotogramas de video decodificados
  • Feed de video en vivo
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:
  • CATEGORY_MASK: Una lista que contiene una máscara segmentada como una imagen de formato uint8. Cada valor de píxel indica si forma parte de una categoría de segmento específica admitida por el modelo.
  • CONFIDENCE_MASK: Una lista de canales que contienen un máscara segmentada con valores de píxeles en formato float32. Cada valor de píxel indica el nivel de confianza de que forma parte de una categoría específica. compatibles con el modelo.

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