new_ops branch can support all pytorch version.
The current code can achieve the better performance than the results reported in papers.
πππππππππππa compact and powerful single-stage multi-person pose estimation framework:
AdaptivePose: Human Parts as Adaptive Points,
Yabo Xiao, Dongdong Yu, Xiaojuan Wang, Guoli Wang, Qian Zhang, Mingshu He;
Published on AAAI2022
AdaptivePose++: A Powerful Single-Stage Network for Multi-Person Pose Regression
Yabo Xiao, Xiaojuan Wang, Dongdong Yu, Kai Su, Lei Jin, Mei Song, Shuicheng Yan, Jian Zhao;
-
Simple: Adaptivepose is a effecient and powerful single-stage multi-person pose estimation pipeline which can effectively model the relationship between the human instance and corresponding keypoints in a single-forward pass.
-
Generalizability: AdaptivePose is able to achieve the competitive performance on crowded and 3D scenes.
-
Fast: AdaptivePose is a very compact MPPE pipeline. During inference, we eliminate the heuristics grouping, and do not require any refinements and other hand-crafted post-processes except for center NMS.
-
Strong: AdaptivePose uses center feature together with the features at adaptive human part-related points to encode diverse human pose sufficiently. It outperforms the existing bottom-up and single-stage pose estimation approaches without the flip and multi-scale testing in terms of speed and accuracy.
Speed Please refer to the paper(https://arxiv.org/abs/2112.13635) for inference time πππ. The performance is slightly better than the reported in paper. The time is calculated on a single Tesla V100, which is more faster than the speed reported in paper.
We found that stacking more 3*3 conv-relu in each brach can further improve the performance.
We employ the OKS loss for regression head and achieve the better performance without Inference overhead. Outperforming all bottom-up and single-stage methods with faster speed !!! πππππππππππππππ -->
Backbone | inp_res | AP | Flip AP | Multi-scale AP. | download | time/ms |
---|---|---|---|---|---|---|
DLA-34 | 512 | 67.0 | 67.4 | 69.2 | model | 33 |
HRNet-W32 | 512 | 68.6 | 69.1 | 71.2 | model | 46 |
HRNet-W48 | 640 | 71.0 | 71.5 | 73.2 | model | 57 |
Backbone | inp_res | AP | Flip AP | Multi-scale AP. | download | time/ms |
---|---|---|---|---|---|---|
HRNet-W32 | 512 | 67.5 | 68.0 | 69.3 | model | 46 |
HRNet-W48 | 640 | 70.4 | 71.0 | 72.6 | model | 57 |
The conda environment torch12 can be downloaded directly from torch12.tar.gz. The path should like this AdaptivePose/torch12.tar.gz and then following
source prepare_env.sh
In another way, you also can deploy the environment following
source prepare_env2.sh
Follow the instructions in DATA.md to setup the datasets. Or link dataset path to AdaptivePose/data/
cd AdaptivePose
mkdir -p data/coco
mkdir -p data/crowdpose
ln -s /path_to_coco_dataset/ data/coco/
ln -s /path_to_crowdpose_dataset/ data/crowdpose/
The pretrain models can be downloaded from pretrain_models, put the pretrain models into AdaptivePose/models
After preparing the environment and data, you can train or test AdaptivePose with different network and input resolution. πππ Note that the image resolution can be optionally adjusted according to user's requirements for obtaining the different speed-accuracy trade-offs! πππ
DLA34 with 512 pixels:
cd src
bash main_dla34_coco512.sh
HRNet-W32 with 512 pixels:
cd src
bash main_hrnet32_coco512.sh
HRNet-W48 with 640 pixels:
cd src
bash main_hrnet48_coco640.sh
The input aspect ratio is closer to 1, the speed is faster οΌοΌοΌ
visualize coco
torch12/bin/python test.py multi_pose_wodet --exp_id $EXPNAME --dataset coco_hp_wodet --resume --not_reg_offset --not_reg_hp_offset --K 20 --not_hm_hp --arch $ARCNAME --input_res $RES --keep_res --debug 1
visualize customized image
torch12/bin/python demo.py multi_pose_wodet --exp_id $EXPNAME --dataset coco_hp_wodet --resume --not_reg_offset --not_reg_hp_offset --K 20 --not_hm_hp --arch $ARCNAME --input_res $RES --keep_res --debug 1 --demo path/to/image_dir --vis_thresh 0.1
visualize customized video
torch12/bin/python demo.py multi_pose_wodet --exp_id $EXPNAME --dataset coco_hp_wodet --resume --not_reg_offset --not_reg_hp_offset --K 20 --not_hm_hp --arch $ARCNAME --input_res $RES --keep_res --debug 1 --demo path/to/xx.mp4 --vis_thresh 0.1
xyb.2023-01-01.16.44.56.mp4
xyb.2023-01-01.16.51.39.mp4
AdaptivePose is built upon the codebase of CenterNet. If you are interested in training AdaptivePose in a new pose estimation dataset, or add a new network architecture, please refer to DEVELOP.md. Also feel free to send me emails(xiaoyabo@bupt.edu.cn) for discussions or suggestions.
If you find this project useful for your research, please use the following BibTeX entry.
@inproceedings{xiao2022adaptivepose,
title={Adaptivepose: Human parts as adaptive points},
author={Xiao, Yabo and Wang, Xiao Juan and Yu, Dongdong and Wang, Guoli and Zhang, Qian and Mingshu, HE},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
volume={36},
number={3},
pages={2813--2821},
year={2022}
}
@article{xiao2022adaptivepose++,
title={AdaptivePose++: A Powerful Single-Stage Network for Multi-Person Pose Regression},
author={Xiao, Yabo and Wang, Xiaojuan and Yu, Dongdong and Su, Kai and Jin, Lei and Song, Mei and Yan, Shuicheng and Zhao, Jian},
journal={arXiv preprint arXiv:2210.04014},
year={2022}
}