Python-Bibliothek mit Neuronalen Netzen für die Bildsegmentierung auf Basis von Keras und TensorFlow.

Die Hauptmerkmale dieser Bibliothek sind:

  • High-Level-API (nur zwei Zeilen Code, um ein Modell für die Segmentierung zu erstellen)
  • 4 Modellarchitekturen für die binäre und Mehrklassen-Bildsegmentierung (einschließlich des legendären Unet)
  • 25 verfügbare Backbones für jede Architektur
  • Alle Backbones haben vortrainierte Gewichte für eine schnellere und bessere Konvergenz
  • Hilfreiche Segmentierungsverluste (Jaccard, Dice, Focal) und Metriken (IoU, F-score)

Wichtiger Hinweis

Einige Modelle der Version 1.* sind nicht kompatibel mit zuvor trainierten Modellen, wenn Sie solche Modelle haben und sie laden wollen – rollen Sie zurück mit:

$ pip install -U segmentation-models==0.2.1

Inhaltsverzeichnis

  • Schnellstart
  • Einfache Trainingspipeline
  • Beispiele
  • Modelle und Backbones
  • Installation
  • Dokumentation
  • Ändern log
  • Zitieren
  • Lizenz

Schnellstart

Die Bibliothek ist so gebaut, dass sie mit den Keras und TensorFlow Keras Frameworks zusammenarbeitet

import segmentation_models as sm# Segmentation Models: using `keras` framework.

Standardmäßig versucht sie zu importieren keras, wenn es nicht installiert ist, wird versucht, mit dem tensorflow.keras Framework zu starten.Es gibt mehrere Möglichkeiten, das Framework auszuwählen:

Sie können auch angeben, welche Art von image_data_format verwendet werden soll, Segmentation-Models arbeitet mit beiden: channels_last und channels_firstDies kann für die weitere Modellkonvertierung in das Nvidia TensorRT-Format oder die Optimierung des Modells für CPU/GPU-Berechnungen nützlich sein.

Das erstellte Segmentierungsmodell ist nur eine Instanz des Keras-Modells, das so einfach aufgebaut werden kann wie:

model = sm.Unet()

Abhängig von der Aufgabe kann man die Netzwerkarchitektur ändern, indem man Backbones mit weniger oder mehr Parametern wählt und vorgefertigte Gewichte zur Initialisierung verwendet:

model = sm.Unet('resnet34', encoder_weights='imagenet')

Anzahl der Ausgangsklassen im Modell ändern (wählen Sie Ihren Fall):

Eingangsform des Modells ändern:

Einfache Trainingspipeline

Gleiche Manipulationen können mit Linknet, PSPNet und FPN vorgenommen werden. Für detailliertere Informationen über Modelle API und Anwendungsfälle lesen Sie die Docs.

Beispiele

Modelle Trainingsbeispiele:

  • Binäre Segmentierung (Autos) auf CamVid-Datensatz hier.
  • Mehrklassen-Segmentierung (Autos, Fußgänger) auf CamVid-Datensatz hier.

Modelle und Grundgerüste

Modelle

  • Unet
  • FPN
  • Linknet
  • PSPNet
Unet Linknet
PSPNet FPN

Backbones

Alle Backbones haben Gewichte, die auf dem 2012 ILSVRC ImageNet-Datensatz (encoder_weights='imagenet') trainiert wurden.

Installation

Anforderungen

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

Die neueste Dokumentation ist verfügbar unter Read theDocs

Change Log

Um wichtige Änderungen zwischen den Versionen zu sehen, siehe CHANGELOG.md

Zitate

Lizenz

Das Projekt wird unter der MIT-Lizenz vertrieben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.