Skip to main content

Semantic Segmentation Architectures implemented in PyTorch

Project description

pytorch-semseg
==============

|license|

Semantic Segmentation Algorithms Implemented in PyTorch
-------------------------------------------------------

This repository aims at mirroring popular semantic segmentation
architectures in PyTorch.

.. raw:: html

<p align="center">

.. raw:: html

</p>

Networks implemented
~~~~~~~~~~~~~~~~~~~~

- `PSPNet <https://arxiv.org/abs/1612.01105>`__ - With support for
loading pretrained models w/o caffe dependency
- `FRRN <https://arxiv.org/abs/1611.08323>`__ - Model A and B
- `FCN <https://arxiv.org/abs/1411.4038>`__ - All 1 (FCN32s), 2
(FCN16s) and 3 (FCN8s) stream variants
- `U-Net <https://arxiv.org/abs/1505.04597>`__ - With optional
deconvolution and batchnorm
- `Link-Net <https://codeac29.github.io/projects/linknet/>`__ - With
multiple resnet backends
- `Segnet <https://arxiv.org/abs/1511.00561>`__ - With Unpooling using
Maxpool indices

Upcoming
^^^^^^^^

- `E-Net <https://arxiv.org/abs/1606.02147>`__
- `RefineNet <https://arxiv.org/abs/1611.06612>`__

DataLoaders implemented
~~~~~~~~~~~~~~~~~~~~~~~

- `CamVid <http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/>`__
- `Pascal
VOC <http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/index.html>`__
- `ADE20K <http://groups.csail.mit.edu/vision/datasets/ADE20K/>`__
- `MIT Scene Parsing
Benchmark <http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip>`__
- `Cityscapes <https://www.cityscapes-dataset.com/>`__

Upcoming
^^^^^^^^

- `NYUDv2 <http://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html>`__
- `Sun-RGBD <http://rgbd.cs.princeton.edu/>`__
- `MS COCO <http://mscoco.org/>`__

Requirements
~~~~~~~~~~~~

- pytorch >=0.3.0
- torchvision ==0.2.0
- visdom >=1.0.1 (for loss and results visualization)
- scipy
- tqdm

One-line installation
^^^^^^^^^^^^^^^^^^^^^

``pip install -r requirements.txt``

Data
~~~~

- Download data for desired dataset(s) from list of URLs
`here <https://meetshah1995.github.io/semantic-segmentation/deep-learning/pytorch/visdom/2017/06/01/semantic-segmentation-over-the-years.html#sec_datasets>`__.
- Extract the zip / tar and modify the path appropriately in
``config.json``

Usage
~~~~~

Launch `visdom <https://github.com/facebookresearch/visdom#launch>`__ by
running (in a separate terminal window)

::

python -m visdom.server

**To train the model :**

::

python train.py [-h] [--arch [ARCH]] [--dataset [DATASET]]
[--img_rows [IMG_ROWS]] [--img_cols [IMG_COLS]]
[--n_epoch [N_EPOCH]] [--batch_size [BATCH_SIZE]]
[--l_rate [L_RATE]] [--feature_scale [FEATURE_SCALE]]
[--visdom [VISDOM]]

--arch Architecture to use ['fcn8s, unet, segnet etc']
--dataset Dataset to use ['pascal, camvid, ade20k etc']
--img_rows Height of the input image
--img_cols Width of the input image
--n_epoch # of the epochs
--batch_size Batch Size
--l_rate Learning Rate
--feature_scale Divider for # of features to use
--visdom Show visualization(s) on visdom | False by default

**To validate the model :**

::

python validate.py [-h] [--model_path [MODEL_PATH]] [--dataset [DATASET]]
[--img_rows [IMG_ROWS]] [--img_cols [IMG_COLS]]
[--batch_size [BATCH_SIZE]] [--split [SPLIT]]

--model_path Path to the saved model
--dataset Dataset to use ['pascal, camvid, ade20k etc']
--img_rows Height of the input image
--img_cols Width of the input image
--batch_size Batch Size
--split Split of dataset to validate on

**To test the model w.r.t. a dataset on custom images(s):**

::

python test.py [-h] [--model_path [MODEL_PATH]] [--dataset [DATASET]]
[--dcrf [DCRF]] [--img_path [IMG_PATH]] [--out_path [OUT_PATH]]

--model_path Path to the saved model
--dataset Dataset to use ['pascal, camvid, ade20k etc']
--dcrf Enable DenseCRF based post-processing
--img_path Path of the input image
--out_path Path of the output segmap

.. |license| image:: https://img.shields.io/github/license/mashape/apistatus.svg
:target: https://github.com/meetshah1995/pytorch-semseg/blob/master/LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytorch-semseg, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size pytorch-semseg-0.1.2.tar.gz (32.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page