All Projects → uvipen → Deeplab-pytorch

uvipen / Deeplab-pytorch

Licence: MIT license
Deeplab for semantic segmentation tasks

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Deeplab-pytorch

etos-deepcut
Deep Extreme Cut http://www.vision.ee.ethz.ch/~cvlsegmentation/dextr . a tool to do automatically object segmentation from extreme points.
Stars: ✭ 24 (-60.66%)
Mutual labels:  deeplab, object-segmentation
rt-mrcnn
Real time instance segmentation with Mask R-CNN, live from webcam feed.
Stars: ✭ 47 (-22.95%)
Mutual labels:  image-segmentation, object-segmentation
TensorFlow-Advanced-Segmentation-Models
A Python Library for High-Level Semantic Segmentation Models based on TensorFlow and Keras with pretrained backbones.
Stars: ✭ 64 (+4.92%)
Mutual labels:  image-segmentation, deeplab
Kaggle dstl submission
Code for a winning model (3 out of 419) in a Dstl Satellite Imagery Feature Detection challenge
Stars: ✭ 159 (+160.66%)
Mutual labels:  image-segmentation
Osmdeepod
OSMDeepOD - OpenStreetMap (OSM) and Machine Learning (Deep Learning) based Object Detection from Aerial Imagery (Formerly also known as "OSM-Crosswalk-Detection").
Stars: ✭ 174 (+185.25%)
Mutual labels:  image-segmentation
Signature extractor
A super lightweight image processing algorithm for detection and extraction of overlapped handwritten signatures on scanned documents using OpenCV and scikit-image.
Stars: ✭ 205 (+236.07%)
Mutual labels:  image-segmentation
Pottslab
Unsupervised multilabel image segmentation (color/gray/multichannel) based on the Potts model (aka piecewise constant Mumford-Shah model)
Stars: ✭ 97 (+59.02%)
Mutual labels:  image-segmentation
Super Bpd
Super-BPD: Super Boundary-to-Pixel Direction for Fast Image Segmentation (CVPR 2020)
Stars: ✭ 153 (+150.82%)
Mutual labels:  image-segmentation
Catalyst
Accelerated deep learning R&D
Stars: ✭ 2,804 (+4496.72%)
Mutual labels:  image-segmentation
Keras Unet
Helper package with multiple U-Net implementations in Keras as well as useful utility tools helpful when working with image semantic segmentation tasks. This library and underlying tools come from multiple projects I performed working on semantic segmentation tasks
Stars: ✭ 196 (+221.31%)
Mutual labels:  image-segmentation
End To End For Chinese Plate Recognition
基于u-net,cv2以及cnn的中文车牌定位,矫正和端到端识别软件,其中unet和cv2用于车牌定位和矫正,cnn进行车牌识别,unet和cnn都是基于tensorflow的keras实现
Stars: ✭ 197 (+222.95%)
Mutual labels:  image-segmentation
Hms Ml Demo
HMS ML Demo provides an example of integrating Huawei ML Kit service into applications. This example demonstrates how to integrate services provided by ML Kit, such as face detection, text recognition, image segmentation, asr, and tts.
Stars: ✭ 187 (+206.56%)
Mutual labels:  image-segmentation
Pyimsegm
Image segmentation - general superpixel segmentation & center detection & region growing
Stars: ✭ 213 (+249.18%)
Mutual labels:  image-segmentation
Keras unet plus plus
keras implementation of unet plus plus
Stars: ✭ 166 (+172.13%)
Mutual labels:  image-segmentation
Deep Unet For Satellite Image Segmentation
Satellite Imagery Feature Detection with SpaceNet dataset using deep UNet
Stars: ✭ 227 (+272.13%)
Mutual labels:  image-segmentation
Pixelobjectness
Generic Foreground Segmentation in Images
Stars: ✭ 154 (+152.46%)
Mutual labels:  image-segmentation
Smoothly Blend Image Patches
Using a U-Net for image segmentation, blending predicted patches smoothly is a must to please the human eye.
Stars: ✭ 218 (+257.38%)
Mutual labels:  image-segmentation
Ailearnnotes
Artificial Intelligence Learning Notes.
Stars: ✭ 195 (+219.67%)
Mutual labels:  image-segmentation
Piccante
The hottest High Dynamic Range (HDR) Library
Stars: ✭ 195 (+219.67%)
Mutual labels:  image-segmentation
Dataturks
ML data annotations made super easy for teams. Just upload data, add your team and build training/evaluation dataset in hours.
Stars: ✭ 200 (+227.87%)
Mutual labels:  image-segmentation

[PYTORCH] Deeplab

Introduction

Here is my pytorch implementation of the model described in the paper DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs paper.

How to use my code

With my code, you can:

  • Train your model from scratch
  • Train your model with my trained model
  • Evaluate test images with either my trained model or yours

Requirements:

  • python 3.6
  • pytorch 0.4
  • opencv (cv2)
  • tensorboard
  • tensorboardX (This library could be skipped if you do not use SummaryWriter)
  • torchvision
  • PIL
  • numpy

Datasets:

I used 2 different datases: VOC2012 and VOCaugmented (VOC2007 + 2012) Statistics of datasets I used for experiments is shown below

Dataset #Classes #Train images #Validation images
VOC2012 20 5011 1449
VOCaugmented 20 1464 1449

Create a data folder under the repository,

cd {repo_root}
mkdir data
  • VOC: Download the voc images and annotations from VOC2007 or VOC2012. Make sure to put the files as the following structure:
    VOCDevkit
    ├── VOC2007
    │   ├── Annotations  
    │   ├── ImageSets
    │   ├── JPEGImages
    │   └── ...
    ├── VOC2012
    │   ├── Annotations  
    │   ├── ImageSets
    │   ├── JPEGImages
    │   └── ...
    └── VOCaugmented
        ├── gt  
        ├── img
        ├── list
        └── ...
    

Note: You need to put ALL images from 2 dataset VOC2007 and VOC2012 into folder VOCdevkit/VOCaugmented/img/

  • In my implementation, in every epoch, the model is saved only when its loss is the lowest one so far. You could also use early stopping, which could be triggered by specifying a positive integer value for parameter es_patience, to stop training process when validation loss has not been improved for es_patience epoches.

Trained models

You could find all trained models I have trained in Deeplab trained models

Training

I provide my pre-trained model name vietnh_trained_deeplab_voc. You could put it in the folder trained_models/, and load it before training your new model, for faster convergence.

If you want to train a new model, you could run:

  • python3 train_voc.py --dataset dataset: For example, python train_voc.py --dataset augmentedvoc

Test

By default, my test script will load trained model from folder trained_models/. You of course could change it to other folder which contains your trained model(s).

I provide 2 different test scripts:

If you want to test a trained model with a standard VOC dataset, you could run:

  • python3 test_voc.py --year year: For example, python3 test_voc.py --year 2012

If you want to test a model with some images, you could put them into the folder test_images/, then run:

  • python3 test_voc_single_images.py --input --output path/to/output/folder: For example, python3 test_voc_single_images.py --output predictions. For easy comparison, not only output images are created, but input images are also copied to output folder

Experiments:

I trained models in 2 machines, one with NVIDIA TITAN X 12gb GPU and the other with NVIDIA quadro 6000 24gb GPU.

The training/test loss curves for each experiment are shown below:

  • VOC2012 voc2012 loss
  • VOCaugmented vocaugmented loss

Results

Some output predictions for experiments for each dataset are shown below:

  • VOC2012

  • VOCaugmented

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].