Python könyvtár neurális hálózatokkal képszegmentáláshoz Keras és TensorFlow alapokon.
A könyvtár fő jellemzői a következők:
- magas szintű API (mindössze két sornyi kód a szegmentációs modell létrehozásához)
- 4 modell architektúra bináris és többosztályos képszegmentációhoz (beleértve a legendás Unet-et)
- 25 elérhető gerinchálózat minden architektúrához
- Minden gerinchálózat előre betanított súlyokkal rendelkezik a gyorsabb és jobb konvergencia érdekében
- Segítő szegmentációs veszteségek (Jaccard, Dice, Focal) és metrikák (IoU, F-score)
Fontos megjegyzés
A
1.*
verzió egyes modelljei nem kompatibilisek a korábban betanított modellekkel,ha ilyen modellekkel rendelkezik és be szeretné tölteni őket – roll back with:$ pip install -U segmentation-models==0.2.1
Tartalomjegyzék
- Gyors indítás
- Egyszerű képzési csővezeték
- Példák
- Modellek és gerincek
- Telepítés
- Dokumentáció
- Változás. log
- Citing
- License
Gyorsindítás
A könyvtár úgy van felépítve, hogy együtt működjön a Keras és TensorFlow Keras keretrendszerekkel
import segmentation_models as sm# Segmentation Models: using `keras` framework.
Egyértelmezés szerint megpróbálja importálni keras
, ha nincs telepítve, akkor a tensorflow.keras
keretrendszerrel próbál elindulni.A keretrendszer kiválasztásának több módja is van:
Megadhatod azt is, hogy milyen image_data_format
-t használjon, a segmentation-models mindkettővel működik: channels_last
és channels_first
.Ez hasznos lehet a modell további Nvidia TensorRT formátumba való konvertálásához vagy a modell optimalizálásához a cpu/gpu számításokhoz.
A létrehozott szegmentációs modell nem más, mint a Keras Model egy példánya, amelyet olyan egyszerűen lehet felépíteni, mint:
model = sm.Unet()
A feladattól függően megváltoztathatjuk a hálózati architektúrát, kevesebb vagy több paraméterrel rendelkező gerinchálózatot választva, és pretrainded súlyokat használva inicializálhatjuk azt:
model = sm.Unet('resnet34', encoder_weights='imagenet')
Változtassa a kimeneti osztályok számát a modellben (válassza ki az esetet):
Változtassa a modell bemeneti alakját:
Egyszerű képzési csővezeték
Az Linknet
, PSPNet
és FPN
segítségével ugyanezek a manipulációk elvégezhetők. A modellek API-jával és a felhasználási esetekkel kapcsolatos részletesebb információkért olvassa el a Docs-t.
Példák
Modellek képzési példái:
- Bináris szegmentálás (autók) a CamVid adathalmazon itt.
- Többosztályos szegmentálás (autók, gyalogosok) a CamVid adathalmazon itt.
Modellek és gerincek
Modellek
- Unet
- FPN
- Linknet
- PSPNet
.
Unet | Linknet |
---|---|
![]() |
![]() |
PSPNet | FPN |
---|---|
![]() |
![]() |
Backbones
Minden backbone-nak a 2012 ILSVRC ImageNet adathalmazon (
encoder_weights='imagenet'
) betanított súlyai vannak.
Telepítés
Követelmények
- python 3
- keras >= 2.2.0 vagy tensorflow >= 1.13
- keras-applications >= 1.0.7, <=1.0.8
- image-classifiers == 1.0.*
- efficientnet == 1.0.*
PyPI stabil csomag
$ pip install -U segmentation-models
PyPI legújabb csomag
$ pip install -U --pre segmentation-models
Source legújabb verzió
$ pip install git+https://github.com/qubvel/segmentation_models
Dokumentáció
A legfrissebb dokumentáció elérhető a Read theDocs
Change Log
A verziók közötti fontos változások megtekintéséhez nézze meg a CHANGELOG-ot.md
Citing
License
Project is distributed under MIT Licence.