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
- python 3
- keras >= 2.2.0 o tensorflow >= 1.13
- keras-applicazioni >= 1.0.7, <=1.0.8
- image-classifiers == 1.0.*
- 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.