libreria Python con reti neurali per la segmentazione delle immagini basata su Keras e TensorFlow.

Le caratteristiche principali di questa libreria sono:

  • API di alto livello (solo due righe di codice per creare un modello per la segmentazione)
  • 4 architetture di modelli per la segmentazione di immagini binarie e multiclasse (incluso il leggendario Unet)
  • 25 dorsali disponibili per ogni architettura
  • Tutte le dorsali hanno pesi pre-addestrati per una migliore e più veloce convergenza
  • Utili perdite di segmentazione (Jaccard, Dice, Focal) e metriche (IoU, F-score)

Nota importante

Alcuni modelli della versione 1.* non sono compatibili con i modelli precedentemente allenati, se hai tali modelli e vuoi caricarli – torna indietro con:

$ pip install -U segmentation-models==0.2.1

Indice

  • Avvio rapido
  • Podeline di allenamento semplice
  • Esempi
  • Modelli e Backbone
  • Installazione
  • Documentazione
  • Cambio log
  • Citare
  • Licenza

Avvio rapido

La libreria è costruita per lavorare insieme ai framework Keras e TensorFlow Keras

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

Di default cerca di importare keras, se non è installato, cercherà di iniziare con il framework tensorflow.keras.Ci sono diversi modi per scegliere il framework:

Puoi anche specificare che tipo di image_data_format usare, segmentation-models funziona con entrambi: channels_last e channels_first.Questo può essere utile per un’ulteriore conversione del modello in formato Nvidia TensorRT o per ottimizzare il modello per calcoli cpu/gpu.

Il modello di segmentazione creato è solo un’istanza di Keras Model, che può essere costruito facilmente come:

model = sm.Unet()

A seconda del compito, è possibile modificare l’architettura di rete scegliendo dorsali con meno o più parametri e utilizzare pesi pretrainded per inizializzarlo:

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

Cambiare il numero di classi di output nel modello (scegliete il vostro caso):

Cambiare la forma di input del modello:

Semplice pipeline di training

Le stesse manipolazioni possono essere fatte con Linknet, PSPNet e FPN. Per informazioni più dettagliate sulle API dei modelli e sui casi d’uso, leggere i documenti.

Esempi

Esempi di formazione dei modelli:

  • Segmentazione binaria (auto) su CamVid dataset qui.
  • Segmentazione multiclasse (auto, pedoni) su CamVid dataset qui.

Modelli e dorsali

Modelli

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

Backbones

Tutti i backbones hanno pesi allenati sul dataset 2012 ILSVRC ImageNet (encoder_weights='imagenet').

Installazione

Requisiti

  1. python 3
  2. keras >= 2.2.0 o tensorflow >= 1.13
  3. keras-applicazioni >= 1.0.7, <=1.0.8
  4. image-classifiers == 1.0.*
  5. efficientnet == 1.0.*

PyPI pacchetto stabile

$ pip install -U segmentation-models

PyPI ultimo pacchetto

$ pip install -U --pre segmentation-models

Source ultima versione

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

Documentazione

L’ultima documentazione è disponibile su Read theDocs

Change Log

Per vedere i cambiamenti importanti tra le versioni guarda CHANGELOG.md

Citazione

Licenza

Il progetto è distribuito sotto licenza MIT.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *