YuliangXiu / MobilePose

Light-weight Single Person Pose Estimator
http://xiuyuliang.cn
635 stars 148 forks source link
data-augmentation dataloader deep-learning deeppose dsntnn heatmap lightweight machine-learning mobile-device mobilenetv2 pose-estimation pytorch real-time realtime resnet-18 shufflenet shufflenet-v2 shufflenetv2 squeezenet

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!

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

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
  2. Evaluation
    
    ln -s cocoapi/PythonAPI/pycocotools
    cd cocoapi/PythonAPI && make

python eval.py --t7 ./models/resnet18_224_adam_best.t7 --model resnet18 --gpu 0

4. Web Camera Demo (MacBook)

```shell
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. Thanks for Siyuan Pan's implementation of mnn version.

License

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