All Projects → sthalles → Deeplab_v3

sthalles / Deeplab_v3

Licence: mit
Tensorflow Implementation of the Semantic Segmentation DeepLab_V3 CNN

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Deeplab v3

Kili Playground
Simplest and fastest image and text annotation tool.
Stars: ✭ 166 (-78.39%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Cascaded Fcn
Source code for the MICCAI 2016 Paper "Automatic Liver and Lesion Segmentation in CT Using Cascaded Fully Convolutional NeuralNetworks and 3D Conditional Random Fields"
Stars: ✭ 296 (-61.46%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Deep Learning In Production
Develop production ready deep learning code, deploy it and scale it
Stars: ✭ 216 (-71.87%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Multi Task Refinenet
Multi-Task (Joint Segmentation / Depth / Surface Normas) Real-Time Light-Weight RefineNet
Stars: ✭ 139 (-81.9%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Steal
STEAL - Learning Semantic Boundaries from Noisy Annotations (CVPR 2019)
Stars: ✭ 424 (-44.79%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Fcn For Semantic Segmentation
Implemention of FCN-8 and FCN-16 with Keras and uses CRF as post processing
Stars: ✭ 155 (-79.82%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Human Segmentation Pytorch
Human segmentation models, training/inference code, and trained weights, implemented in PyTorch
Stars: ✭ 289 (-62.37%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Spacenet building detection
Project to train/test convolutional neural networks to extract buildings from SpaceNet satellite imageries.
Stars: ✭ 83 (-89.19%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Icnet Tensorflow
TensorFlow-based implementation of "ICNet for Real-Time Semantic Segmentation on High-Resolution Images".
Stars: ✭ 396 (-48.44%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Vpgnet
VPGNet: Vanishing Point Guided Network for Lane and Road Marking Detection and Recognition (ICCV 2017)
Stars: ✭ 382 (-50.26%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Unet
Generic U-Net Tensorflow 2 implementation for semantic segmentation
Stars: ✭ 100 (-86.98%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Pytorch Unet
Simple PyTorch implementations of U-Net/FullyConvNet (FCN) for image segmentation
Stars: ✭ 470 (-38.8%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Deep Residual Unet
ResUNet, a semantic segmentation model inspired by the deep residual learning and UNet. An architecture that take advantages from both(Residual and UNet) models.
Stars: ✭ 97 (-87.37%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Keras Segmentation Deeplab V3.1
An awesome semantic segmentation model that runs in real time
Stars: ✭ 156 (-79.69%)
Mutual labels:  jupyter-notebook, semantic-segmentation
3dunet abdomen cascade
Stars: ✭ 91 (-88.15%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Pytorch tiramisu
FC-DenseNet in PyTorch for Semantic Segmentation
Stars: ✭ 267 (-65.23%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Multiclass Semantic Segmentation Camvid
Tensorflow 2 implementation of complete pipeline for multiclass image semantic segmentation using UNet, SegNet and FCN32 architectures on Cambridge-driving Labeled Video Database (CamVid) dataset.
Stars: ✭ 67 (-91.28%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Unet Tgs
Applying UNET Model on TGS Salt Identification Challenge hosted on Kaggle
Stars: ✭ 81 (-89.45%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Self Correction Human Parsing
An out-of-box human parsing representation extractor.
Stars: ✭ 319 (-58.46%)
Mutual labels:  jupyter-notebook, semantic-segmentation
Probabilistic unet
A U-Net combined with a variational auto-encoder that is able to learn conditional distributions over semantic segmentations.
Stars: ✭ 427 (-44.4%)
Mutual labels:  jupyter-notebook, semantic-segmentation

DOI

DeepLab_V3 Image Semantic Segmentation Network

Implementation of the Semantic Segmentation DeepLab_V3 CNN as described at Rethinking Atrous Convolution for Semantic Image Segmentation.

For a complete documentation of this implementation, check out the blog post.

Dependencies

  • Python 3.x
  • Numpy
  • Tensorflow 1.10.1

Downloads

Evaluation

Pre-trained model.

Place the checkpoints folder inside ./tboard_logs. If the folder does not exist, create it.

Retraining

Original datasets used for training.

Place the tfrecords files inside ./dataset/tfrecords. Create the folder if it does not exist.

Training and Eval

Once you have the training and validation TfRefords files, just run the command bellow. Before running Deeplab_v3, the code will look for the proper ResNets checkpoints inside ./resnet/checkpoints, if the folder does not exist, it will first be downloaded.

python train.py --starting_learning_rate=0.00001 --batch_norm_decay=0.997 --crop_size=513 --gpu_id=0 --resnet_model=resnet_v2_50

Check out the train.py file for more input argument options. Each run produces a folder inside the tboard_logs directory (create it if not there).

To evaluate the model, run the test.py file passing to it the model_id parameter (the name of the folder created inside tboard_logs during training).

Note: Make sure the test.tfrecords is downloaded and placed inside ./dataset/tfrecords.

python test.py --model_id=16645

Retraining

To use a different dataset, you just need to modify the CreateTfRecord.ipynb notebook inside the dataset/ folder, to suit your needs.

Also, be aware that originally Deeplab_v3 performs random crops of size 513x513 on the input images. This crop_size parameter can be configured by changing the crop_size hyper-parameter in train.py.

Datasets

To create the dataset, first make sure you have the Pascal VOC 2012 and/or the Semantic Boundaries Dataset and Benchmark datasets downloaded.

Note: You do not need both datasets.

  • If you just want to test the code with one of the datasets (say the SBD), run the notebook normally, and it should work.

After, head to dataset/ and run the CreateTfRecord.ipynb notebook.

The custom_train.txt file contains the name of the images selected for training. This file is designed to use the Pascal VOC 2012 set as a TESTING set. Therefore, it doesn't contain any images from the VOC 2012 val dataset. For more info, see the Training section of Deeplab Image Semantic Segmentation Network.

Obs. You can skip that part and direct download the datasets used in this experiment - See the Downloads section

Serving

For full documentation on serving this Semantic Segmentation CNN, refer to How to deploy TensorFlow models to production using TF Serving.

All the serving scripts are placed inside: ./serving/.

To export the model and to perform client requests do the following:

  1. Create a python3 virtual environment and install the dependencies from the serving_requirements.txt file;

  2. Using the python3 env, run deeplab_saved_model.py. The exported model should reside into ./serving/model/;

  3. Create a python2 virtual environment and install the dependencies from the client_requirements.txt file;

  4. From the python2 env, run the deeplab_client.ipynb notebook;

Results

  • Pixel accuracy: ~91%
  • Mean Accuracy: ~82%
  • Mean Intersection over Union (mIoU): ~74%
  • Frequency weighed Intersection over Union: ~86

Results

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].