All Projects → Tramac → Lightweight Segmentation

Tramac / Lightweight Segmentation

Licence: apache-2.0
Lightweight models for real-time semantic segmentation(include mobilenetv1-v3, shufflenetv1-v2, igcv3, efficientnet).

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Lightweight Segmentation

Nas Segm Pytorch
Code for Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells, CVPR '19
Stars: ✭ 126 (-51.72%)
Mutual labels:  semantic-segmentation, real-time
Mobilepose Pytorch
Light-weight Single Person Pose Estimator
Stars: ✭ 427 (+63.6%)
Mutual labels:  lightweight, real-time
Multi Task Refinenet
Multi-Task (Joint Segmentation / Depth / Surface Normas) Real-Time Light-Weight RefineNet
Stars: ✭ 139 (-46.74%)
Mutual labels:  semantic-segmentation, real-time
Esnet
ESNet: An Efficient Symmetric Network for Real-time Semantic Segmentation
Stars: ✭ 88 (-66.28%)
Mutual labels:  semantic-segmentation, real-time
hyperseg
HyperSeg - Official PyTorch Implementation
Stars: ✭ 174 (-33.33%)
Mutual labels:  real-time, semantic-segmentation
Dabnet
Depth-wise Asymmetric Bottleneck for Real-time Semantic Segmentation (BMVC2019)
Stars: ✭ 109 (-58.24%)
Mutual labels:  semantic-segmentation, real-time
Espnetv2
A light-weight, power efficient, and general purpose convolutional neural network
Stars: ✭ 377 (+44.44%)
Mutual labels:  lightweight, semantic-segmentation
Lednet
LEDNet: A Lightweight Encoder-Decoder Network for Real-time Semantic Segmentation
Stars: ✭ 450 (+72.41%)
Mutual labels:  semantic-segmentation, real-time
ESANet
ESANet: Efficient RGB-D Semantic Segmentation for Indoor Scene Analysis
Stars: ✭ 154 (-41%)
Mutual labels:  real-time, semantic-segmentation
Gccpm Look Into Person Cvpr19.pytorch
Fast and accurate single-person pose estimation, ranked 10th at CVPR'19 LIP challenge. Contains implementation of "Global Context for Convolutional Pose Machines" paper.
Stars: ✭ 137 (-47.51%)
Mutual labels:  lightweight, real-time
Espnetv2 Coreml
Semantic segmentation on iPhone using ESPNetv2
Stars: ✭ 66 (-74.71%)
Mutual labels:  semantic-segmentation, real-time
jeelizGlanceTracker
JavaScript/WebGL lib: detect if the user is looking at the screen or not from the webcam video feed. Lightweight and robust to all lighting conditions. Great for play/pause videos if the user is looking or not, or for person detection. Link to live demo.
Stars: ✭ 68 (-73.95%)
Mutual labels:  lightweight, real-time
Enet
ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation
Stars: ✭ 530 (+103.07%)
Mutual labels:  semantic-segmentation, real-time
Real Time Semantic Segmentation
lightweight and efficient cnn for semantic segmentation, my blog address:
Stars: ✭ 118 (-54.79%)
Mutual labels:  semantic-segmentation, real-time
Espnet
ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation
Stars: ✭ 473 (+81.23%)
Mutual labels:  semantic-segmentation, real-time
Lightweight Human Pose Estimation 3d Demo.pytorch
Real-time 3D multi-person pose estimation demo in PyTorch. OpenVINO backend can be used for fast inference on CPU.
Stars: ✭ 331 (+26.82%)
Mutual labels:  lightweight, real-time
Kimera Semantics
Real-Time 3D Semantic Reconstruction from 2D data
Stars: ✭ 368 (+41%)
Mutual labels:  semantic-segmentation, real-time
Icnet Tensorflow
TensorFlow-based implementation of "ICNet for Real-Time Semantic Segmentation on High-Resolution Images".
Stars: ✭ 396 (+51.72%)
Mutual labels:  semantic-segmentation, real-time
Lightweight Human Pose Estimation.pytorch
Fast and accurate human pose estimation in PyTorch. Contains implementation of "Real-time 2D Multi-Person Pose Estimation on CPU: Lightweight OpenPose" paper.
Stars: ✭ 958 (+267.05%)
Mutual labels:  lightweight, real-time
AttaNet
AttaNet for real-time semantic segmentation.
Stars: ✭ 37 (-85.82%)
Mutual labels:  real-time, semantic-segmentation

Lightweight Model for Real-Time Semantic Segmentation

python-image pytorch-image lic-image

This project aims at providing the popular lightweight model implementations for real-time semantic segmentation.

Usage


Train

  • Single GPU training
python train.py --model mobilenet --dataset citys --lr 0.01 --epochs 240
  • Multi-GPU training
# for example, train mobilenet with 4 GPUs:
export NGPUS=4
python -m torch.distributed.launch --nproc_per_node=$NGPUS train.py --model mobilenet --dataset citys --lr 0.01 --epochs 240

Evaluation

  • Single GPU evaluating
python eval.py --model mobilenet_small --dataset citys
  • Multi-GPU evaluating
# for example, evaluate mobilenet with 4 GPUs:
export NGPUS=4
python -m torch.distributed.launch --nproc_per_node=$NGPUS eval.py --model mobilenet --dataset citys

Result

  • Cityscapes

Where: crop_size=768, lr=0.01, epochs=80.

Backbone OHEM Params(M) FLOPs(G) CPU(fps) GPU(fps) mIoU/pixACC Model
mobilenet 5.31 4.48 0.81 77.11 0.463/0.901 GoogleDrive,BaiduCloud(ybsg)
mobilenet 5.31 4.48 0.81 75.35 0.526/0.909 GoogleDrive,BaiduCloud(u2y2)
mobilenetv2 4.88 4.04 0.49 49.40 0.613/0.930 GoogleDrive,BaiduCloud(q2g5)
mobilenetv3_small 1.02 1.64 2.59 104.56 0.529/0.908 GoogleDrive,BaiduCloud(e7no)
mobilenetv3_large 2.68 4.59 1.39 79.43 0.584/0.916 GoogleDrive,BaiduCloud(i60c)
shufflenet 6.89 5.68 0.57 43.79 0.493/0.901 GoogleDrive,BaiduCloud(6fjh)
shufflenetv2 5.24 4.33 0.72 57.71 0.528/0.914 GoogleDrive,BaiduCloud(7pi5)
igcv3 4.86 4.04 0.34 29.70 0.573/0.923 GoogleDrive,BaiduCloud(qe4f)
efficientnet-b0 6.63 2.60 0.33 30.15 0.492/0.903 GoogleDrive,BaiduCloud(phuy)
  • Improve
Model batch_size epochs crop_size init_weight optimizer mIoU/pixACC
mobilenetv3_small 4 80 768 kaiming_uniform SGD 0.529/0.908
mobilenetv3_small 4 160 768 kaiming_uniform SGD 0.587/0.918
mobilenetv3_small 8 160 768 kaiming_uniform SGD 0.553/0/913
mobilenetv3_small 4 80 1024 kaiming_uniform SGD 0.557/0.914
mobilenetv3_small 4 80 768 xavier_uniform SGD 0.550/0.911
mobilenetv3_small 4 80 768 kaiming_uniform Adam 0.549/0.911
mobilenetv3_small 8 160 1024 xavier_uniform SGD 0.612/0.920

Support

To Do

  • [ ] improve performance
  • [ ] optimize memory
  • [ ] check efficientnet
  • [ ] replace nn.SyncBatchNorm by nn.BatchNorm.convert_sync_batchnorm
  • [ ] check find_unused_parameters in nn.parallel.DistributedDataParallel

References

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