/MobilePose-pytorch

Single Person Pose Estimation for Mobile Device

Primary LanguageJupyter Notebook

MobilePose

MobilePose is a Tiny PyTorch implementation of single person 2D pose estimation framework. The aim is to provide the interface of the training/inference/evaluation, and the dataloader with various data augmentation options. And final trained model can satisfy basic requirements(speed+size+accuracy) for mobile device.

Some codes for mobilenetV2 and display are brought from pytorch-mobilenet-v2 and tf-pose-estimation. Thanks to the original authors.

Functionality

  1. Tiny trained model (Resnet18[43MB], MobilenetV2[8.9MB])
  2. Fast inference speed (GPU>100FPS, CPU~30FPS)
  3. Accurate keypoint estimation (75~85mAP(0.5IoU))

Requirements:

  • Python 3.6.2
  • Pytorch 0.2.0_3
  • imgaug 0.2.5

Todo List:

  • multi-thread dataloader
  • training and inference
  • performance evaluation
  • multi-scale training
  • support resnet18/mobilenetV2
  • data augmentation(rotate/shift/flip/multi-scale/noise)
  • Macbook camera realtime display script

Usage

  1. Training:
export CUDA_VISIBLE_DEVICES=0; python training.py --model=mobilenet/resnet --gpu=0
  1. Evaluation
export CUDA_VISIBLE_DEVICES=0; python eval.py --model=mobilenet/resnet
  1. Realtime visualization:
python run_webcam.py --model=mobilenet/resnet

Contributors

MobilePose is developed and maintained by Yuliang Xiu, Zexin Chen and Yinghong Fang.

License

MobilePose is freely available for free non-commercial use. For commercial queries, please contact Cewu Lu or SightPlus Co. Ltd.