Peeking into occluded joints: A novel framework for crowd pose estimation(ECCV2020)
This code is tested under Ubuntu 18.04, CUDA 10.1, cuDNN 7.1 environment with two NVIDIA 1080Ti GPUs.
Python 3.6.5 version is used for development.
We build a new dataset, called Occluded Pose(OCPose), that includes more heavy occlusions to evaluate the MPPE. It contains challenging invisible jointsand complex intertwined human poses.
Dataset | Total | IoU>0.3 | IoU>0.5 | IoU>0.75 | Avg IoU |
---|---|---|---|---|---|
CrowdPose | 20000 | 8704(44%) | 2909(15%) | 309(2%) | 0.27 |
COCO2017 | 118287 | 6504(5%) | 1209(1%) | 106(<1%) | 0.06 |
MPII | 24987 | 0 | 0 | 0 | 0.11 |
OCHuman | 4473 | 3264(68%) | 3244(68%) | 1082(23%) | 0.46 |
OCPose | 9000 | 8105(90%) | 6843(76%) | 2442(27%) | 0.47 |
Image code:euq6
Annotations code:3xgr
pls, Download annotations processed by sampling rules according to our paper
train_process_datasets
test_process_datasets
Here, we employ top-down module(Alphapose+ based on pytorch) as our initial module.
The pretrain checkpoints trained by official codes could be download as following:
SPPE
yolov3
Instead of using pretrain module in coco2017, we simply provide you quick-start version, where you merely train the OPEC-Net from processed data including both coco and CrowdPose.
Before training, the structure of projects like:
coco
| train2017
| xxxxx.jpg
crowdpose
| images
| xxxxx.jpg
project
│
│
│
└───test_process_datasets
│ download from Download processed annotations
│
│
└──────weights
│ │-- sppe
│ │ sppe weights
│ |
│ |-- ssd
| |
| |
| └───yolo
| yolow eights
└───train_process_datasets
download from Download processed annotations
e.g.
TRAIN_BATCH_SIZE=14
CONFIG_FILES=./configs/OPEC_GCN_GrowdPose_Test_FC.py
bash train.sh ${TRAIN_BATCH_SIZE} ${CONFIG_FILES}
after training, the result of CrowdPose is save into checkpoints/name/mAP.txt
the format of results like:
epoch (without best match) (use best match)
e.g.
CHECKPOINTS_DIRS='path to your checkpoints files'
CONFIG_FILES =./configs/OPEC_GCN_GrowdPose_Test_FC.py
bash test.sh ${CHECKPOINTS_DIRS} ${CONFIG_FILES}
Result on CrowdPose-test:
Method | mAP@50:95 | AP50 | AP75 | AP80 | AP90 |
---|---|---|---|---|---|
Mask RCNN | 57.2 | 83.5 | 60.3 | - | - |
Simple Pose | 60.8 | 81.4 | 65.7 | - | - |
AlphaPose+ | 68.5 | 86.7 | 73.2 | 66.9 | 45.9 |
OPEC-Net | 70.6 | 86.8 | 75.6 | 70.1 | 48.8 |
Result on OCHuman:
Method | mAP@50:95 | AP50 | AP75 | AP80 | AP90 |
---|---|---|---|---|---|
AlphaPose+ | 27.5 | 40.8 | 29.9 | 24.8 | 9.5 |
OPEC-Net | 29.1 | 41.3 | 31.4 | 27.0 | 12.8 |
Result on OCPose:
Method | mAP@50:95 | AP50 | AP75 | AP80 | AP90 |
---|---|---|---|---|---|
Simple Pose | 27.1 | 54.3 | 24.2 | 16.8 | 4.7 |
AlphaPose+ | 30.8 | 58.4 | 28.5 | 22.4 | 8.2 |
OPEC-Net | 32.8 | 60.5 | 31.1 | 24.0 | 9.2 |
If you find our works useful in your reasearch, please consider citing:
@inproceedings{qiu2020peeking,
title={Peeking into occluded joints: A novel framework for crowd pose estimation},
author={Qiu, Lingteng and Zhang, Xuanye and Li, Yanran and Li, Guanbin and Wu, Xiaojun and Xiong, Zixiang and Han, Xiaoguang and Cui, Shuguang},
booktitle={European Conference on Computer Vision},
pages={488--504},
year={2020},
organization={Springer}
}