multiview_pose
multiview_pose copied to clipboard
[ICCV2021] Code Release of Graph-Based 3D Multi-Person Pose Estimation Using Multi-View Images
Graph-Based 3D Multi-Person Pose Estimation Using Multi-View Images (ICCV'2021)
[đ Paper] [đ° Blog (ĺ湤ĺŚćŻ)] [đš Presentation] [đş Demo (YouTube)]
Introduction
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.
Abstract
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.
TODO
- [x] Training/testing codes release.
- [x] Pre-trained model release.
- [ ] Integrate codes to MMPose.
Results
Multiview 3D Pose Estimation on CMU Panoptic
Refine Pose | mAP $\uparrow$ | mAR $\uparrow$ | MPJPE (mm) $\downarrow$ | 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 |
Installation
MMPose
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 .
PyTorch Geometric
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.
Usage
Data preparation
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
âââ ...
Pre-trained 2D model
Download the pre-trained 2D bottom-up pose estimator this link and put it under checkpoints
multiview_pose
âââ checkpoints
âââ resnet_50_deconv.pth.tar
Training and testing
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
Citation
@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}
}