La tarea de MediaPipe Image Segmenter te permite dividir imágenes en regiones según categorías predefinidas. Puedes usar esta funcionalidad para identificar objetos o texturas específicos y, luego, aplicar efectos visuales, como desenfoque de fondo. Esta tarea incluye varios modelos entrenados específicamente para segmentar a las personas y sus características dentro de los datos de imágenes, incluidos los siguientes:
- Persona y fondo
- Solo el cabello de la persona
- Cabello, rostro, piel, ropa y accesorios de una persona
Esta tarea opera en datos de imágenes con un modelo de aprendizaje automático (AA) con imágenes únicas o un flujo de video continuo. Genera una lista de regiones segmentadas que representan objetos o áreas en una imagen, según el modelo que elijas.
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: Guía de ejemplo de código
- Web: 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.
Entradas de tareas | Resultados de las tareas |
---|---|
La entrada puede ser uno de los siguientes tipos de datos:
|
Image Segmenter genera datos de imágenes segmentadas, que pueden incluir uno o ambos de los 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 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 |
output_category_mask |
Si se establece 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 establece en True , el resultado incluye una máscara de segmentación como una imagen de valor de punto flotante, en la que cada valor de punto flotante representa el mapa de puntuación de confianza de la categoría. |
{True, False } |
True |
display_names_locale |
Establece 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 el 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 |
Establece el objeto de escucha de resultados para que reciba los resultados de la segmentación de forma asíncrona cuando el segmentador de imágenes esté en el modo LIVE_STREAM .
Solo se puede usar cuando el modo de ejecución está configurado como 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 los siguientes modelos de segmentación se compilan y entrenan 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 selfies
Este modelo puede segmentar el retrato de una persona y se puede usar para reemplazar o modificar el fondo de una imagen. El modelo genera dos categorías: fondo en el índice 0 y persona en el índice 1. Este modelo tiene versiones con diferentes formas de entrada, incluida una versión cuadrada y una versión horizontal, que pueden ser más eficientes 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 |
---|---|---|---|---|
SelfieSegmenter (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 genera un mapa de segmentación de imágenes para su cabello. Puedes usar este modelo para cambiar el color del cabello o aplicar otros efectos. 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 x 512 | Ninguno (float32) | info | Más reciente |
Modelo de segmentación de selfies de varias clases
Este modelo toma una imagen de una persona, localiza áreas para diferentes áreas, como el cabello, la piel y la ropa, y genera un mapa de segmentación de imágenes para estos elementos. 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 x 256) | 256 x 256 | Ninguno (float32) | info | Más reciente |
Modelo DeepLab-v3
Este modelo identifica segmentos para varias categorías, como fondo, persona, gato, perro y planta en maceta. El modelo usa la agregación de pirámides espaciales atrous para capturar información de mayor alcance. Para obtener más información, consulta DeepLab-v3.
Nombre del modelo | Forma de entrada | Tipo de cuantización | Versiones |
---|---|---|---|
DeepLab-V3 | 257 × 257 | Ninguno (float32) | Más reciente |
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 |
---|---|---|
SelfieSegmenter (cuadrado) | 33.46 ms | 35.15 ms |
SelfieSegmenter (horizontal) | 34.19 ms | 33.55 ms |
HairSegmenter | 57.90 ms | 52.14 ms |
SelfieMulticlass (256 x 256) | 217.76 ms | 71.24 ms |
DeepLab-V3 | 123.93 ms | 103.30 ms |