Pythonbibliotek med neurala nätverk för bildsegmentering baserat på Keras och TensorFlow.
De viktigaste funktionerna i detta bibliotek är:
- Hög nivå API (bara två rader kod för att skapa en modell för segmentering)
- 4 modellarkitekturer för binär och flerklassig bildsegmentering (inklusive legendarisk Unet)
- 25 tillgängliga backbones för varje arkitektur
- Alla backbones har förtränade vikter för snabbare och bättrekonvergens
- Hjälpliga segmenteringsförluster (Jaccard, Dice, Focal) och mått (IoU, F-score)
Viktig anmärkning
Vissa modeller i version
1.*
är inte kompatibla med tidigare tränade modeller.Om du har sådana modeller och vill ladda dem – backa tillbaka med:$ pip install -U segmentation-models==0.2.1
Innehållsförteckning
- Snabbstart
- Simpel tränings-pipeline
- Exempel
- Modeller och backbones
- Installation
- Dokumentation
- Ändra log
- Citat
- Licens
Snabbstart
Biblioteket är byggt för att fungera tillsammans med Keras och TensorFlow Keras-ramverk
import segmentation_models as sm# Segmentation Models: using `keras` framework.
Som standard försöker det importera keras
, Om den inte är installerad försöker den starta med ramverket tensorflow.keras
.Det finns flera sätt att välja ramverk:
Du kan också ange vilken typ av image_data_format
som ska användas, segmentationsmodeller fungerar med båda:
Skapad segmenteringsmodell är bara en instans av Keras Model, som kan byggas så enkelt som:
model = sm.Unet()
Avhängigt av uppgiften kan du ändra nätverksarkitekturen genom att välja backbones med färre eller fler parametrar och använda pretrainded vikter för att initialisera den:
model = sm.Unet('resnet34', encoder_weights='imagenet')
Förändra antalet utgångsklasser i modellen (välj ditt fall):
Förändra modellens ingångsform:
Enkel utbildningspipeline
Samma manipulationer kan göras med Linknet
, PSPNet
och FPN
. Mer detaljerad information om modellernas API och användningsområden finns i dokumentationen.
Exempel
Exempel på utbildning av modeller:
- Binär segmentering (bilar) på CamVid-dataset här.
- Flerklassig segmentering (bilar, fotgängare) på CamVid-dataset här.
Modeller och ryggraden
Modeller
- Unet
- FPN
- Linknet
- PSPNet
Unet | Linknet | |
---|---|---|
![]() |
![]() |
![]() |
PSPNet | FPN |
---|---|
![]() |
![]() |
Backbones
Alla backbones har vikter som tränats på 2012 ILSVRC ImageNet dataset (
encoder_weights='imagenet'
).
Installation
Krav
- python 3
- keras >= 2.2.0 eller tensorflow >= 1.13
- keras-applications >= 1.0.7, <=1.0.8
- image-classifiers == 1.0.*
- efficientnet == 1.0.*
PyPI stable package
$ pip install -U segmentation-models
PyPI latest package
$ pip install -U --pre segmentation-models
Source latest version
$ pip install git+https://github.com/qubvel/segmentation_models
Dokumentation
Den senaste dokumentationen finns på Read theDocs
Change Log
För att se viktiga ändringar mellan versionerna se CHANGELOG.md
Citing
License
Project is distributed under MIT Licence.