Giter Site home page Giter Site logo

linjiefu-u / dynamicrouting Goto Github PK

View Code? Open in Web Editor NEW

This project forked from megvii-basedetection/dynamicrouting

0.0 0.0 0.0 460 KB

Learning Dynamic Routing for Semantic Segmentation

License: Apache License 2.0

Python 86.11% C++ 3.30% Cuda 10.60%

dynamicrouting's Introduction

DynamicRouting

This project provides an implementation for "Learning Dynamic Routing for Semantic Segmentation" (CVPR2020 Oral) on PyTorch. For the reason that experiments in the paper were conducted using internal framework, this project reimplements them on dl_lib and reports detailed comparisons below. Some parts of code in dl_lib are based on detectron2.

introduce image

Requirement

  • Python >= 3.6
    • python3 --version
  • PyTorch >= 1.3
    • pip3 install torch torchvision
  • OpenCV
    • pip3 install opencv-python
  • GCC >= 4.9
    • gcc --version

Installation

Make sure that your get at least one gpu when compiling. Run:

  • git clone https://github.com/yanwei-li/DynamicRouting.git
  • cd DynamicRouting
  • sudo python3 setup.py build develop

Usage

Dataset

We use Cityscapes dataset for training and validation. Please refer to datasets/README.md or dataset structure in detectron2 for more details.

Pretrained Model

We give ImageNet pretained models:

Training

For example, if you want to train Dynamic Network with Layer16 backbone:

  • Train from scratch
    cd playground/Dynamic/Seg.Layer16
    dl_train --num-gpus 4
  • Use ImageNet pretrain
    cd playground/Dynamic/Seg.Layer16.ImageNet
    dl_train --num-gpus 4 MODEL.WEIGHTS /path/to/your/save_dir/ckpt.pth

NOTE: Please set FIX_SIZE_FOR_FLOPS to [768,768] and [1024,2048] for training and evaluation, respectively.

Evaluation

You can evaluate the trained or downloaded model:

  • Evaluate the trained model
    dl_test --num-gpus 8
  • Evaluate the downloaded model:
    dl_test --num-gpus 8 MODEL.WEIGHTS /path/to/your/save_dir/ckpt.pth 

NOTE: If your machine does not support such setting, please change settings in config.py to a suitable value.

Performance

Cityscapes val set

Without ImageNet Pretrain:

Methods Backbone Iter/K mIoU (paper) GFLOPs (paper) mIoU (ours) GFLOPs (ours) Model
Dynamic-A Layer16 186 72.8 44.9 73.9 52.5 GoogleDrive
Dynamic-B Layer16 186 73.8 58.7 74.3 58.9 GoogleDrive
Dynamic-C Layer16 186 74.6 66.6 74.8 59.8 GoogleDrive
Dynamic-Raw Layer16 186 76.1 119.5 76.7 114.9 GoogleDrive
Dynamic-Raw Layer16 558 78.3 113.3 78.1 114.2 GoogleDrive

With ImageNet Pretrain:

Methods Backbone Iter/K mIoU (paper) GFLOPs (paper) mIoU (ours) GFLOPs (ours) Model
Dynamic-Raw Layer16 186 78.6 119.4 78.8 117.8 GoogleDrive
Dynamic-Raw Layer33 186 79.2 242.3 79.4 243.1 GoogleDrive

To do

  • Faster inference speed
  • Support more vision tasks
    • Object detection
    • Instance segmentation
    • Panoptic segmentation

Acknowledgement

Citation

Consider cite the Dynamic Routing in your publications if it helps your research.

@inproceedings{li2020learning,
    title = {Learning Dynamic Routing for Semantic Segmentation},
    author = {Yanwei Li, Lin Song, Yukang Chen, Zeming Li, Xiangyu Zhang, Xingang Wang, Jian Sun},
    booktitle = {IEEE Conference on Computer Vision and Pattern Recognition},
    year = {2020}
}

Consider cite this project in your publications if it helps your research.

@misc{DynamicRouting,
    author = {Yanwei Li},
    title = {DynamicRouting},
    howpublished = {\url{https://github.com/yanwei-li/DynamicRouting}},
    year ={2020}
}

dynamicrouting's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.