/mobilenetv3-segmentation

MobileNetV3 for Semantic Segmentation.

Primary LanguagePythonApache License 2.0Apache-2.0

mobilenetv3-segmentation

python-image pytorch-image lic-image

An unofficial implement of MobileNetV3 for semantic segmentation.

Requisites

  • PyTorch 1.1
  • Python 3.x

Usage


Train

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

Evaluation

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

Result

  • Cityscapes
Backbone F Epochs OHEM mIoU Params(M) Madds(G) CPU(fps) GPU(fps)
MV3-Small 128 80 0.411 1.02 2.98 1.12 76.61
MV3-Small 128 80 0.476 - - - -
MV3-Large 128 80 0.463 2.68 8.40 0.61 63.16
MV3-Large 128 80 0.529 - - - -
MV3-Large 128 160 0.526 - - - -

where: lr=0.01, crop_size=768

Note: Params and Madds are got using torchscope. They are much larger than those reported in the paper.

To Do

  • improve performance
  • train and eval
  • test madds

References