Python-bibliotek med neurale netværk til billedsegmentering baseret på Keras og TensorFlow.
De vigtigste funktioner i dette bibliotek er:
- High level API (kun to linjer kode til at oprette model til segmentering)
- 4 modeller arkitekturer til binær og multi-klasse billedsegmentering (herunder legendarisk Unet)
- 25 tilgængelige backbones for hver arkitektur
- Alle backbones har præ-trænede vægte til hurtigere og bedre konvergens
- Hjælpsomme segmenteringstab (Jaccard, Dice, Focal) og metrikker (IoU, F-score)
Vigtig bemærkning
Nogle modeller i version
1.*
er ikke kompatible med tidligere trænede modeller, hvis du har sådanne modeller og ønsker at indlæse dem – roll back med:$ pip install -U segmentation-models==0.2.1
Indholdsfortegnelse
- Snakkestart
- Simpel trænings-pipeline
- Eksempler
- Modeller og backbones
- Installation
- Dokumentation
- Ændre log
- Citering
- Licens
Hurtigstart
Biblioteket er bygget til at arbejde sammen med Keras- og TensorFlow Keras-rammerne
import segmentation_models as sm# Segmentation Models: using `keras` framework.
Som standard forsøger det at importere keras
, hvis det ikke er installeret, vil den forsøge at starte med tensorflow.keras
-rammen.Der er flere måder at vælge ramme på:
Du kan også angive hvilken type image_data_format
der skal bruges, segmenteringsmodeller fungerer med begge: channels_last
og channels_first
.Dette kan være nyttigt til yderligere modelkonvertering til Nvidia TensorRT-format eller optimering af modellen til cpu/gpu-beregninger.
Skabt segmenteringsmodel er blot en instans af Keras-model, som kan opbygges så nemt som:
model = sm.Unet()
Afhængigt af opgaven kan du ændre netværksarkitekturen ved at vælge backbones med færre eller flere parametre og bruge pretrainded vægte til at initialisere den:
model = sm.Unet('resnet34', encoder_weights='imagenet')
Ændre antallet af udgangsklasser i modellen (vælg din sag):
Ændre modellens indgangsform:
Simpel træningspipeline
Samme manipulationer kan foretages med Linknet
, PSPNet
og FPN
. For mere detaljerede oplysninger om modeller API og anvendelsestilfælde Læs Docs.
Eksempler
Modeller træningseksempler:
- Binær segmentering (biler) på CamVid-datasæt her.
- Multi-klasses segmentering (biler, fodgængere) på CamVid-datasæt her.
Modeller og backbones
Modeller
- Unet
- FPN
- Linknet
- PSPNet
Unet | Linknet | |
---|---|---|
![]() |
![]() |
![]() |
PSPNet | FPN | |
---|---|---|
![]() |
![]() |
![]() |
Backbones
Alle backbones har vægte, der er trænet på 2012 ILSVRC ImageNet-datasæt (
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.*
- 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 nyeste dokumentation er tilgængelig på Read theDocs
Change Log
For at se vigtige ændringer mellem versioner se på CHANGELOG.md
Citing
License
Projektet er distribueret under MIT Licence.