Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Segmentación

La segmentación de imágenes es el proceso de dividir una imagen digital en múltiples segmentos (conjuntos de píxeles, también conocidos como objetos de imagen). El objetivo de la segmentación es simplificar y / o cambiar la representación de una imagen en algo más significativo y más fácil de analizar.

La siguiente imagen muestra el resultado del modelo de segmentación de imágenes en Android. El modelo creará una máscara sobre los objetos de destino con alta precisión.

Empezar

Si es nuevo en TensorFlow Lite y está trabajando con Android o iOS, se recomienda que explore las siguientes aplicaciones de ejemplo que pueden ayudarlo a comenzar.

Puede aprovechar la API lista para usar de la biblioteca de tareas de TensorFlow Lite para integrar modelos de segmentación de imágenes en solo unas pocas líneas de código. También puede integrar el modelo mediante la API Java de intérprete de TensorFlow Lite .

El siguiente ejemplo de Android demuestra la implementación de ambos métodos como lib_task_api y lib_interpreter , respectivamente.

Ver ejemplo de Android

Ver ejemplo de iOS

Si está utilizando una plataforma que no sea Android o iOS, o si ya está familiarizado con las API de TensorFlow Lite , puede descargar nuestro modelo de segmentación de imágenes de inicio.

Descargar modelo de inicio

Descripcion del modelo

DeepLab es un modelo de aprendizaje profundo de última generación para la segmentación de imágenes semánticas, donde el objetivo es asignar etiquetas semánticas (por ejemplo, persona, perro, gato) a cada píxel de la imagen de entrada.

Cómo funciona

La segmentación semántica de imágenes predice si cada píxel de una imagen está asociado con una determinada clase. Esto contrasta con la detección de objetos , que detecta objetos en regiones rectangulares, y la clasificación de imágenes , que clasifica la imagen en general.

La implementación actual incluye las siguientes características:

  1. DeepLabv1: utilizamos una convolución atroz para controlar explícitamente la resolución a la que se calculan las respuestas de las funciones dentro de las redes neuronales convolucionales profundas.
  2. DeepLabv2: utilizamos una combinación de pirámides espaciales (ASPP) para segmentar objetos de manera robusta a múltiples escalas con filtros a múltiples tasas de muestreo y campos de visión efectivos.
  3. DeepLabv3: aumentamos el módulo ASPP con una función de nivel de imagen [5, 6] para capturar información de mayor alcance. También incluimos parámetros de normalización por lotes [7] para facilitar el entrenamiento. En particular, aplicamos una convolución atroz para extraer características de salida en diferentes pasos de salida durante el entrenamiento y la evaluación, lo que permite entrenar de manera eficiente el BN en el paso de salida = 16 y alcanza un alto rendimiento en el paso de salida = 8 durante la evaluación.
  4. DeepLabv3 +: ampliamos DeepLabv3 para incluir un módulo decodificador simple pero efectivo para refinar los resultados de la segmentación, especialmente a lo largo de los límites de los objetos. Además, en esta estructura de codificador-decodificador, se puede controlar arbitrariamente la resolución de las características extraídas del codificador mediante una convolución atroz para compensar la precisión y el tiempo de ejecución.

Benchmarks de desempeño

Los números de referencia de rendimiento se generan con la herramienta que se describe aquí .

Nombre del modelo Tamaño del modelo Dispositivo GPU UPC
Deeplab v3 2,7 Mb Pixel 3 (Android 10) 16 ms 37 ms *
Pixel 4 (Android 10) 20ms 23 ms *
iPhone XS (iOS 12.4.1) 16 ms 25 ms **

* 4 hilos utilizados.

** 2 subprocesos utilizados en iPhone para obtener el mejor resultado de rendimiento.

Más lecturas y recursos