Skip to content

xiaoyufenfei/Efficient-Segmentation-Networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Efficient-Segmentation-Networks

python-image pytorch-image

This project aims at providing an easy-to-use, modifiable reference implementation for real-time semantic segmentation models using PyTorch.

---

Requirements

PyTorch and Torchvision needs to be installed before running the scripts, PyTorch v1.1 or later is supported.

pip3 install -r requirements.txt

Models

The project supports these semantic segmentation models as follows:

  • (SQNet) Speeding up Semantic Segmentation for Autonomous Driving [Paper]
  • (LinkNet) Exploiting Encoder Representations for Efficient Semantic Segmentation [Paper]
  • (SegNet) A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation [Paper]
  • (UNet) Convolutional Networks for Biomedical Image Segmentation [Paper]
  • (ENet) A Deep Neural Network Architecture for Real-Time Semantic Segmentation [Paper]
  • (ERFNet) Efficient ConvNet for Real-time Semantic Segmentation [Paper]
  • (EDANet) Efficient Dense Modules of Asymmetric Convolution for Real-Time Segmentation [Paper]
  • (ESPNet) Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation [Paper]
  • (ESPNetv2) A Light-weight, Power Efficient, and General Purpose ConvNet [Paper]
  • (LEDNet) A Lightweight Encoder-Decoder Network for Real-Time Semantic Segmentation [Paper]
  • (FSSNet) Fast Semantic Segmentation for Scene Perception [Paper]
  • (ESNet) An Efficient Symmetric Network for Real-time Semantic Segmentation [Paper]
  • (CGNet) A Light-weight Context Guided Network for Semantic Segmentation [Paper]
  • (Fast-SCNN) Fast Semantic Segmentation Network [Paper]
  • (DABNet) Depth-wise Asymmetric Bottleneck for Real-time Semantic Segmentation [Paper]
  • (ContextNet) Exploring Context and Detail for Semantic Segmentation in Real-time [Paper]
  • (FPENet) Feature Pyramid Encoding Network for Real-time Semantic Segmentation [Paper]
  • ...

Losses

The project supports these loss functions:

  1. Weighted Cross Entropy
  2. Weighted Cross Entropy with Label Smooth
  3. Focal Loss
  4. Ohem Cross Entropy
  5. LovaszSoftmax
  6. SegLoss-List
  7. ...

Optimizers

The project supports these optimizers:

  1. SGD
  2. Adam
  3. AdamW
  4. RAdam
  5. RAdam + Lookahead
  6. ...

Activations

  1. ReLu
  2. PReLU
  3. ReLU6
  4. Swish
  5. Mish : A Self Regularized Non-Monotonic Neural Activation Function
  6. ...

Learning Rate Scheduler

The project supports these LR_Schedulers:

  1. Poly decay
  2. Warmup Poly
  3. ...

Normalization methods

  1. In-Place Activated BatchNorm
  2. Switchable Normalization
  3. Weight Standardization
  4. ...

Enhancing Semantic Feature Learning Method

  1. Attention Family
  2. NAS Family
  3. ...

Some useful Tools

  1. pytorch-OpCounter
  2. flops-counter.pytorch
  3. Netron : Visualizer for neural network models, On line URL: Netron
  4. Falshtorch: Visualization toolkit for neural networks in PyTorch !
  5. Bag of Tricks for Image Classification with Convolutional Neural Networks
  6. ...

Dataset Setting

This project has been tailored to suit the Cityscapes and Camvid datasets. The folds of your dataset need satisfy the following structures:

|-- dataset
|  |-- camvid
|  |  |-- train
|  |  |-- trainannot
|  |  |-- val
|  |  |-- valannot
|  |  |-- test
|  |  |-- testannot
|  |  |-- ...
|  |-- cityscapes
|  |  |-- leftImg8bit
|  |  |  |-- train
|  |  |  |-- val
|  |  |  |-- test
|  |  |-- gtFine
|  |  |  |-- train
|  |  |  |-- val
|  |  |  |-- test
|  |  |-- ...

Usage

Clone this Repo
git clone https://github.com/xiaoyufenfei/Efficient-Segmentation-Networks
cd Efficient-Segmentation-Networks

Currently, the code supports Python 3

Torch dependencies:

  • PyTorch (>=1.1.0)
  • torchvision(>=0.3.0)

Data dependencies:

Download Cityscapes and run the script createTrainIdLabelImgs.py to create annotations based on the training labels. Make sure that the folder is named cityscapes

Training
Testing
Predicting
Evaluating

Contact

If you think this work useful, please give me a star! And if you find any errors or have any suggestions, please contact me.

GitHub: xiaoyufenfei Email: wangy314159@163.com

Refer to this Rep

You are encouraged to cite the following papers if this work helps your research.

@misc{Efficient-Segmentation-Networks,
  author = {Yu Wang},
  title = {Efficient-Segmentation-Networks Pytorch Implementation},
  year = {2019},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/xiaoyufenfei/Efficient-Segmentation-Networks}},
  commit = {master}
}

About

Lightweight models for real-time semantic segmentationon PyTorch (include SQNet, LinkNet, SegNet, UNet, ENet, ERFNet, EDANet, ESPNet, ESPNetv2, LEDNet, ESNet, FSSNet, CGNet, DABNet, Fast-SCNN, ContextNet, FPENet, etc.)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors