Bibliothèque Python avec des réseaux neuronaux pour la segmentation d’images basée sur Keras et TensorFlow.

Les principales caractéristiques de cette bibliothèque sont :

  • Application de haut niveau (seulement deux lignes de code pour créer un modèle de segmentation)
  • 4 architectures de modèles pour la segmentation d’images binaires et multi-classes(y compris le légendaire Unet)
  • 25 backbones disponibles pour chaque architecture
  • Tous les backbones ont des poids pré-entraînés pour une convergence plus rapide et meilleure
  • Des pertes de segmentation utiles (Jaccard, Dice, Focal) et des métriques (IoU, F-score)

Note importante

Certains modèles de la version 1.* ne sont pas compatibles avec les modèles précédemment formés,si vous avez de tels modèles et que vous voulez les charger – revenez en arrière avec :

$ pip install -U segmentation-models==0.2.1

Table des matières

  • Démarrage rapide
  • Pipeline d’entraînement simple
  • Exemples
  • Modèles et Backbones
  • Installation
  • Documentation
  • Modifications. log
  • Citation
  • License

Démarrage rapide

La bibliothèque est construite pour travailler ensemble avec les frameworks Keras et TensorFlow Keras

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

Par défaut, elle essaie d’importer keras, s’il n’est pas installé, il essaiera de démarrer avec le framework tensorflow.keras.Il y a plusieurs façons de choisir le framework:

Vous pouvez aussi spécifier quel type de image_data_format utiliser, segmentation-models fonctionne avec les deux : channels_last et channels_first.Cela peut être utile pour une conversion ultérieure du modèle au format Nvidia TensorRT ou pour optimiser le modèle pour les calculs cpu/gpu.

Le modèle de segmentation créé est juste une instance de Keras Model, qui peut être construit aussi facilement que :

model = sm.Unet()

Selon la tâche, vous pouvez changer l’architecture du réseau en choisissant des dorsales avec moins ou plus de paramètres et utiliser des poids prétraités pour l’initialiser :

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

Changer le nombre de classes de sortie dans le modèle (choisissez votre cas):

Changer la forme d’entrée du modèle:

Pipeline de formation simple

Les mêmes manipulations peuvent être faites avec Linknet, PSPNet et FPN. Pour des informations plus détaillées sur l’API des modèles et les cas d’utilisation, lisez les Docs.

Exemples

Exemples de formation de modèles :

  • Segmentation binaire (voitures) sur le jeu de données CamVid ici.
  • Segmentation multi-classes (voitures, piétons) sur le jeu de données CamVid ici.

Modèles et Backbones

Modèles

  • Unet
  • FPN
  • Linknet
  • .

  • PSPNet

.

Unet Linknet

.

PSPNet FPN

Backbones

Tous les backbones ont des poids entraînés sur le jeu de données 2012 ILSVRC ImageNet (encoder_weights='imagenet').

Installation

Requirements

  1. python 3
  2. keras >= 2.2.0 ou tensorflow >= 1.13
  3. keras-applications >= 1.0.7, <=1.0.8
  4. image-classifieurs == 1.0.*
  5. efficientnet == 1.0.*

PyPI package stable

$ 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

. Documentation

La dernière documentation est disponible sur Read theDocs

Journal des changements

Pour voir les changements importants entre les versions, regardez le CHANGELOG.md

Citation

Licence

Le projet est distribué sous la licence MIT.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *