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

  1. python 3
  2. keras >= 2.2.0 lub tensorflow >= 1.13
  3. keras-applications >= 1.0.7, <=1.0.8
  4. image-classifiers == 1.0.*
  5. 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.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *