Skip to content

DeepLab v3+ model in PyTorch. Support different backbones.

License

Notifications You must be signed in to change notification settings

jaemin93/pytorch-deeplab-xception

 
 

Repository files navigation

pytorch-deeplab-xception

Update on 2018/12/06. Provide model trained on VOC and SBD datasets.

Update on 2018/11/24. Release newest version code, which fix some previous issues and also add support for new backbones and multi-gpu training. For previous code, please see in previous branch

Update on 2019/12/06. This repo is redesigned with a new template

Update on 2019/12/07. Add dockerfile and ainize Service

Run on Ainize

Docker

TODO

  • Support different backbones
  • Support VOC, SBD, Cityscapes and COCO datasets
  • Multi-GPU training
Backbone train/eval os mIoU in val Pretrained Model
ResNet 16/16 78.43% google drive
MobileNet 16/16 70.81% google drive
DRN 16/16 78.87% google drive

Introduction

This is a PyTorch(0.4.1) implementation of DeepLab-V3-Plus. It can use Modified Aligned Xception and ResNet as backbone. Currently, we train DeepLab V3 Plus using Pascal VOC 2012, SBD and Cityscapes datasets.

Results

Installation

The code was tested with Anaconda and Python 3.6. After installing the Anaconda environment:

  1. Clone the repo:

    git clone https://github.com/jfzhang95/pytorch-deeplab-xception.git
    cd pytorch-deeplab-xception
  2. Install dependencies:

    For PyTorch dependency, see pytorch.org for more details.

    For custom dependencies:

    pip install matplotlib pillow tensorboardX tqdm

Training

Fellow steps below to train your model:

  1. Configure your dataset path in mypath.py.

  2. Input arguments: (see full input arguments via python train.py --help):

    usage: train.py [-h] [--backbone {resnet,xception,drn,mobilenet}]
                [--out-stride OUT_STRIDE] [--dataset {pascal,coco,cityscapes}]
                [--use-sbd] [--workers N] [--base-size BASE_SIZE]
                [--crop-size CROP_SIZE] [--sync-bn SYNC_BN]
                [--freeze-bn FREEZE_BN] [--loss-type {ce,focal}] [--epochs N]
                [--start_epoch N] [--batch-size N] [--test-batch-size N]
                [--use-balanced-weights] [--lr LR]
                [--lr-scheduler {poly,step,cos}] [--momentum M]
                [--weight-decay M] [--nesterov] [--no-cuda]
                [--gpu-ids GPU_IDS] [--seed S] [--resume RESUME]
                [--checkname CHECKNAME] [--ft] [--eval-interval EVAL_INTERVAL]
                [--no-val]
    
  3. To train deeplabv3+ using Pascal VOC dataset and ResNet as backbone:

    bash train_voc.sh
  4. To train deeplabv3+ using COCO dataset and ResNet as backbone:

    bash train_coco.sh

Acknowledgement

PyTorch-Encoding

Synchronized-BatchNorm-PyTorch

drn

Build Docker

$ docker build -t ${YOUR_DOCKER_HUB_ID}/${DOCKER_HUB_REPO_NAME} .

Run Docker

$ docker run -p 80:80 -it ${YOUR_DOCKER_HUB_ID}/${DOCKER_HUB_REPO_NAME}

Test

ref: https://github.com/ainize-team/ainize-run-wonny-example

Imgur

https://imgur.com/

Upload your image and get link.

Google Drive

For your convience, we share a Google Drive folder.

Once uploaded an image file, you can get a sharable link to the uploaded file from the image id provided by Google Drive:

https://drive.google.com/uc?export=view&id=${imageId}

How to query the server

Finally, you can pass the image url to Wonny server to get the evaluation result:

http://${host}/evaluate?image=${imageUrl}
http://localhost/evaluate?image=${imageUrl}  # for local host

Result

About

DeepLab v3+ model in PyTorch. Support different backbones.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.7%
  • JavaScript 2.5%
  • Other 0.8%