logo

Image Segmentation With Deeplab

Image Segmentation using Deeplab v3+

Summary

Experimenting with Quantization of Tensorflow Models on various datasets with the DeepLab v3 Decoder architecture and MobileNet v2 Encoder architecture using using a variety of techniques including

Presentation Slide

DeepLab: Deep Labelling for Semantic Image Segmentation

@inproceedings{deeplabv3plus2018, title={Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation}, author={Liang-Chieh Chen and Yukun Zhu and George Papandreou and Florian Schroff and Hartwig Adam}, booktitle={ECCV}, year={2018} }

Installation

pip install all the following required packages.

Requirement

  • TensorFlow 1.15
  • Jupyter Notebook
  • Python 3.6
  • Numpy
  • Pillow
  • matplotlib
  • conda

Note: For a ready to use envirenment, a deeplearning ami on an EC2 instance would come with all the required packages needed to run this repo immediatly.

Usage on Colab

  • Fine-tuning and Quantization
  • Inference

Usage on AWS

  • clone the repo
  • navigate to ImageSegmentationWithDeeplab (command: cd ImageSegmentationWithDeeplab)
  • run the command "jupyter notebook"
  • use the provided url (default: localhost:8888)
  • open the "inference_deeplab.ipynb" notebook
  • From drop down list Cell > Run All

Results

  • FLOAT32 Segmentation
  • Post-Quantization UINT8 Segmentation (no fine-tuning)
  • Post-Quantization UINT8 Segmentation (10K-iteration fine-tuning)
  • Quantization-Aware-Training UNIT8 Segmentation

Copyright © Sherif Sabri, 2020