Librería Python con Redes Neuronales para Segmentación de Imágenes basada en Keras y TensorFlow.

Las principales características de esta librería son:

  • API de alto nivel (sólo dos líneas de código para crear un modelo para la segmentación)
  • 4 arquitecturas de modelos para la segmentación de imágenes binarias y multiclase(incluyendo el legendario Unet)
  • 25 backbones disponibles para cada arquitectura
  • Todos los backbones tienen pesos pre-entrenados para una mayor y mejorconvergencia
  • Pérdidas de segmentación útiles (Jaccard, Dice, Focal) y métricas (IoU, F-score)

Nota importante

Algunos modelos de la versión 1.* no son compatibles con los modelos previamente entrenados,si tiene dichos modelos y quiere cargarlos – retroceda con:

$ pip install -U segmentation-models==0.2.1

Tabla de contenidos

  • Inicio rápido
  • Simple pipeline de entrenamiento
  • Ejemplos
  • Modelos y Backbones
  • Instalación
  • Documentación
  • Cambio log
  • Citando
  • Licencia

Inicio rápido

La biblioteca está construida para trabajar junto con los frameworks Keras y TensorFlow Keras

import segmentation_models as sm# Segmentation Models: using `keras` framework.

Por defecto intenta importar keras, si no está instalado, intentará empezar con el framework tensorflow.keras.Hay varias formas de elegir el framework:

También puedes especificar qué tipo de image_data_format usar, segmentation-models funciona con ambos: channels_last y channels_first.Esto puede ser útil para la posterior conversión del modelo al formato Nvidia TensorRT o la optimización del modelo para los cálculos de la cpu/gpu.

El modelo de segmentación creado es sólo una instancia de Keras Model, que puede construirse tan fácilmente como:

model = sm.Unet()

Dependiendo de la tarea, puedes cambiar la arquitectura de la red eligiendo backbones con menos o más parámetros y usar pesos pretrazados para inicializarla:

model = sm.Unet('resnet34', encoder_weights='imagenet')

Cambiar el número de clases de salida en el modelo (elija su caso):

Cambiar la forma de entrada del modelo:

Propaganda de entrenamiento simple

Las mismas manipulaciones se pueden hacer con Linknet, PSPNet y FPN. Para obtener información más detallada sobre la API de los modelos y los casos de uso Lea los Docs.

Ejemplos

Ejemplos de entrenamiento de modelos:

  • Segmentación binaria (coches) en el conjunto de datos CamVid aquí.
  • Segmentación multiclase (coches, peatones) en el conjunto de datos CamVid aquí.

Modelos y Backbones

Modelos

  • Unet
  • FPN
  • Linknet
  • PSPNet
Unet Linknet
PSPNet FPN

Backbones

Todos los backbones tienen pesos entrenados en el conjunto de datos ILSVRC ImageNet 2012 (encoder_weights='imagenet').

Instalación

Requerimientos

  1. python 3
  2. keras >= 2.2.0 o tensorflow >= 1.13
  3. keras-aplicaciones >= 1.0.7, <=1.0.8
  4. clasificadores de imágenes == 1.0.*
  5. efficientnet == 1.0.*

Paquete estable de PyPI

$ pip install -U segmentation-models

Último paquete de PyPI

$ pip install -U --pre segmentation-models

Última versión de la fuente

$ pip install git+https://github.com/qubvel/segmentation_models

Documentación

La última documentación está disponible en Read theDocs

Change Log

Para ver los cambios importantes entre versiones mira el CHANGELOG.md

Citas

Licencia

El proyecto se distribuye bajo licencia MIT.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *