/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 networks and display are brought from:

  1. pytorch-mobilenet-v2
  2. Vanilla FCN, U-Net, SegNet, PSPNet, GCN, DUC
  3. Shufflenet-v2-Pytorch
  4. tf-pose-estimation
  5. dsntnn

NEWS!

  • Mar 2019: Support running on MacBook with decent FPS!
  • Feb 2019: ALL the pretrained model files are avaliable!

Requirements

Evaluation Results

Model(+DUC+DSNTNN) Parmas(M) Flops(G) AP@0.5:0.95 AP@0.5 AR@0.5:0.95 AR@0.5 Link
ResNet18 12.26 1.64 68.2 93.9 79.7 96.7 51.5M
MobileNetV2 3.91 0.49 67.5 94.9 79.4 97.1 16.6M
ShuffleNetV2 2.92 0.31 61.5 91.6 74.8 95.5 12.4M
SqueezeNet1.1 2.22 0.63 58.4 92.1 72.3 95.8 9.3M

Features

  • multi-thread dataloader with augmentations (dataloader.py)
  • training and inference (training.py)
  • performance evaluation (eval.py)
  • multiple models support (network.py)
  • ipython notebook visualization (demo.ipynb)
  • Macbook camera realtime display script (run_webcam.py)

Usage

  1. Installation:
pip install -r requirements.txt
  1. Training:
python training.py --model shufflenetv2 --gpu 0 --inputsize 224 --lr 1e-3 --batchsize 128 --t7 ./models/shufflenetv2_224_adam_best.t7
  1. Evaluation
ln -s cocoapi/PythonAPI/pycocotools
cd cocoapi/PythonAPI && make

python eval.py --t7 ./models/resnet18_224_adam_best.t7 --model resnet18 --gpu 0
  1. Web Camera Demo (MacBook)
python run_webcam.py --model squeezenet --inp_dim 224 --camera 0

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.