Giter Site home page Giter Site logo

instancesegmentation's Introduction

Instance Segmentation

Ce dépôt présente le modèle Mask R-CNN destiné à la ségmentation d'instances dans des images RGB. L'implémentation est reprise de ce dépôt.

La segmentation d'instance vise à grouper l'ensemble des pixels qui appartiennent à un seul et même objet. Elle est plus complexe que la segmentation sémantique qui groupe l'ensemble des pixels qui appartiennent à une catégorie d'objets (e.g voitures, personnes,...)

Requirements

Dans un environnement virtuel créé à l'aide d'Anaconda, les outils nécessaires peuvent être installés grâce aux commandes suivantes:

pip install -r requirements.txt
python setup.py install

Training

Plusieurs exemples d'entraînement sont disponibles dans le dépôt de base. Ce dépôt propose un nouvel exemple de segmentation sur le dataset Cityscapes. Les archives "gtFine_trainvaltest.zip" et "leftImg8bit_trainvaltest.zip" sont nécessaires pour l'entraînement.

Dans le cas de Cityscapes, le modèle apprend à segmenter 9 types d'objets:

  • Background
  • Person
  • Rider
  • Car
  • Truck
  • Bus
  • Train
  • Motorcycle
  • Bike

La commande suivante permet de lancer une procédure de fine-tuning d'un modèle pré-entraîné sur coco:

python cityscapes.py train --dataset /media/ambroise/cvdatasets/cityscapes/ --model coco --log /path/to/log

Les paramètres du modèle pré-entraîné peuvent être téléchargés à cette adresse. Le fichier doit être placé à la racine du projet (i.e dans le dossier "InstanceSegmentation").

Prediction

Le script prediction_example.py permet de tester le modèle sur une image. Les poids du modèle sont disponibles ici:

python prediction_example.py --weights path/to/weights/file --image_path path/to/test/image/file

Si les dimensions de l'image test ne correspondent pas à celles du dataset Cityscapes (1024x2048), alors, le script modifie la taille de l'image et la sauve sous le nom "testimage"_resized.png. La sortie est une image 16-bit avec les différents objets identifiés par le modèle. Les valeurs attribuées aux pixels des instances sont de la forme "xxyyy" dans laquelle "xx" correspond à l'identifiant de la classe (selon la logique définie ici) et "yyy" correspond au numéro de l'instance. Par exemple, pour une image contenant deux voitures, les valeurs possibles des pixels dans le masque seront: "26000" et "26001". L'ordre des voitures est choisi arbitrairement.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.