Biblioteka Pythona z sieciami neuronowymi do segmentacji obrazów oparta na Keras i TensorFlow.
Główne cechy tej biblioteki to:
- High level API (just two lines of code to create model for segmentation)
- 4 architektury modeli dla binarnej i wieloklasowej segmentacji obrazu(including legendary Unet)
- 25 dostępnych backbones dla każdej architektury
- All backbones have pre-trained weights for faster and betterconvergence
- Helpful segmentation losses (Jaccard, Dice, Focal) i metryki (IoU, F-score)
Important note
Some models of version
1.*
are not compatible with previously trained models,if you have such models and want to load them – roll back with:$ pip install -U segmentation-models==0.2.1
Spis treści
- Szybki start
- Przykładowy potok szkoleniowy
- Przykłady
- Modele i szkielety
- Instalacja
- Dokumentacja
- Zmiana log
- Cytowanie
- Licencja
Szybki start
Biblioteka jest zbudowana do współpracy z frameworkami Keras i TensorFlow Keras
import segmentation_models as sm# Segmentation Models: using `keras` framework.
Domyślnie próbuje zaimportować keras
, jeśli nie jest on zainstalowany, spróbuje zacząć od frameworka tensorflow.keras
.Istnieje kilka sposobów wyboru frameworka:
Możesz również określić, jakiego rodzaju image_data_format
użyć, segmentation-models działa z obydwoma: channels_last
i channels_first
.Może to być przydatne przy dalszej konwersji modelu do formatu Nvidia TensorRT lub optymalizacji modelu pod kątem obliczeń na cpu/gpu.
Stworzony model segmentacji jest po prostu instancją Keras Model, którą można zbudować tak łatwo jak:
model = sm.Unet()
W zależności od zadania można zmienić architekturę sieci, wybierając szkielety z mniejszą lub większą liczbą parametrów i użyć pretraindowanych wag do jej inicjalizacji:
model = sm.Unet('resnet34', encoder_weights='imagenet')
Zmienić liczbę klas wyjściowych w modelu (wybierz swój przypadek):
Zmienić kształt danych wejściowych modelu:
Prosty potok treningowy
Te same manipulacje można wykonać za pomocą Linknet
, PSPNet
i FPN
. Aby uzyskać więcej szczegółowych informacji na temat API modeli i przypadków użycia, przeczytaj Docs.
Przykłady
Przykłady szkolenia modeli:
- Binary segmentation (cars) on CamVid dataset here.
- Multi-class segmentation (cars, pedestrians) on CamVid dataset here.
Modele i szkielety
Modele
- Unet
- FPN
- Linknet
- PSPNet
.
Unet | Linknet |
---|---|
![]() |
![]() |
PSPNet | FPN |
---|---|
![]() |
![]() |
Kręgosłupy
Wszystkie kręgosłupy mają wagi wytrenowane na zbiorze danych 2012 ILSVRC ImageNet (
encoder_weights='imagenet'
).
Instalacja
Wymagania
- python 3
- keras >= 2.2.0 lub tensorflow >= 1.13
- keras-applications >= 1.0.7, <=1.0.8
- image-classifiers == 1.0.*
- efficientnet == 1.0.*
Pakiet stabilny PyPI
$ pip install -U segmentation-models
Pakiet najnowszy PyPI
$ pip install -U --pre segmentation-models
Source latest version
$ pip install git+https://github.com/qubvel/segmentation_models
. Dokumentacja
Najnowsza dokumentacja jest dostępna na stronie Read theDocs
Dziennik zmian
Aby zobaczyć ważne zmiany pomiędzy wersjami zajrzyj do CHANGELOG.md
Citing
License
Projekt jest rozpowszechniany na licencji MIT.
.