Tramac / Lightweight Segmentation
Licence: apache-2.0
Lightweight models for real-time semantic segmentation(include mobilenetv1-v3, shufflenetv1-v2, igcv3, efficientnet).
Stars: ✭ 261
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
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
bynn.BatchNorm.convert_sync_batchnorm
- [ ] check
find_unused_parameters
innn.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].