Skip to content

numediart/InstanceSegmentation

Repository files navigation

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.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages