[📜 Paper] [📰 Blog (商汤学术)] [📹 Presentation] [📺 Demo (YouTube)]
This is the official release for:
Graph-Based 3D Multi-Person Pose Estimation Using Multi-View Images,
Size Wu, Sheng Jin, Wentao Liu, Lei Bai, Chen Qian, Dong Liu, and Wanli Ouyang
ICCV 2021 (arXiv 2109.05885)
Thanks to MMPose, this repo produces slightly better results (compared to those reported in our ICCV'21 paper), please see Results below. Codes will be integrated into MMPose soon.
This paper studies the task of estimating the 3D human poses of multiple persons from multiple calibrated camera views. Following the top-down paradigm, we decompose the task into two stages, i.e. person localization and pose estimation. Both stages are processed in coarse-to-fine manners. And we propose three task-specific graph neural networks for effective message passing. For 3D person localization, we first use Multi-view Matching Graph Module (MMG) to learn the cross-view association and recover coarse human proposals. The Center Refinement Graph Module (CRG) further refines the results via flexible pointbased prediction. For 3D pose estimation, the Pose Regression Graph Module (PRG) learns both the multi-view geometry and structural relations between human joints. Our approach achieves state-of-the-art performance on CMU Panoptic and Shelf datasets with significantly lower computation complexity.
- Training/testing codes release.
- Pre-trained model release.
- Integrate codes to MMPose.
Multiview 3D Pose Estimation on CMU Panoptic
Refine Pose | mAP |
mAR |
MPJPE (mm) |
Config | Download | |
---|---|---|---|---|---|---|
Paper | + | 98.10 | 98.70 | 15.84 | - | - |
This Repo | - | 97.25 | 98.24 | 17.18 | config | model; log |
This Repo | + | 98.65 | 98.80 | 15.68 | config | model; log |
Following this installation guidance to build the latest version of MMPose from source.
git clone https://github.com/open-mmlab/mmpose.git
cd mmpose
git checkout reform_multiviewpose # to be discarded in future
pip install -r requirements.txt
pip install -v -e .
We implement our GCN modules using PyTorch Geometric.
conda install pyg -c pyg # for PyTorch >= 1.8.0
If having problem installing PyTorch Geometric with the above command, try build it from source following the official tutorial.
Prepare CMU Panoptic Dataset following MMPose. The data structure looks like:
multiview_pose
├── multiview_pose
├── tools
├── configs
`── data
├── panoptic
├── 16060224_haggling1
| | ├── hdImgs
| | ├── hdvideos
| | ├── hdPose3d_stage1_coco19
| | ├── calibration_160224_haggling1.json
├── 160226_haggling1
├── ...
Download the pre-trained 2D bottom-up pose estimator this link and put it under checkpoints
multiview_pose
├── checkpoints
├── resnet_50_deconv.pth.tar
For training and testing, use the exactly same commands as MMPose. For example, you can train the model with 8 GPUs by using
bash tools/dist_train.sh configs/body/3d_kpt_mview_rgb_img/graph_pose/panoptic/gcn_cpn80x80x20_panoptic_cam5_end2end.py 8
To test the model with 8 GPUs, use the following
bash tools/dist_test.sh configs/body/3d_kpt_mview_rgb_img/graph_pose/panoptic/gcn_cpn80x80x20_panoptic_cam5_end2end.py \
path/to/checkpoint 8 --eval mpjpe mAP
bash tools/dist_test.sh configs/body/3d_kpt_mview_rgb_img/graph_pose/panoptic/gcn_cpn80x80x20_panoptic_cam5_end2end_test_without_refinement.py \
path/to/checkpoint 8 --eval mpjpe mAP # test without pose refinement
@inproceedings{wu2021graph,
title={Graph-based 3d multi-person pose estimation using multi-view images},
author={Wu, Size and Jin, Sheng and Liu, Wentao and Bai, Lei and Qian, Chen and Liu, Dong and Ouyang, Wanli},
booktitle={ICCV},
year={2021}
}