From 55b3fef9896d158e4a96a2bd57ba16122eab5853 Mon Sep 17 00:00:00 2001 From: shuaiqing Date: Thu, 14 Jan 2021 21:17:40 +0800 Subject: [PATCH] init --- Readmd.md | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 Readmd.md diff --git a/Readmd.md b/Readmd.md new file mode 100644 index 0000000..ed1954f --- /dev/null +++ b/Readmd.md @@ -0,0 +1,131 @@ + +# EasyMocap +**EasyMocap** is an open-source toolbox for **markerless human motion capture**. + +## Results +|:heavy_check_mark: Skeleton|:heavy_check_mark: SMPL| +|----|----| +|![repro](doc/feng/repro_512.gif)|![repro](doc/feng/smpl_512.gif)|| + +|:black_square_button: Whole Body|:black_square_button: [Detailed Mesh](https://zju3dv.github.io/neuralbody/)| +|----|----| +|
3DPW
|
3DPW +
| + +## Installation +### 1. Download SMPL models +To download the *SMPL* model go to [this](http://smpl.is.tue.mpg.de) (male and female models) and [this](http://smplify.is.tue.mpg.de) (gender neutral model) project website and register to get access to the downloads section. **Place them as following:** +```bash +data +└── smplx + ├── J_regressor_body25.npy + └── smpl +    ├── SMPL_FEMALE.pkl +    ├── SMPL_MALE.pkl +    └── SMPL_NEUTRAL.pkl +``` + + +## Quick Start +We provide an example multiview dataset[OneDrive](). After downloading the dataset, you can run the following example scripts. +```bash +data=path/to/data +out=path/to/output +# 0. extract the video to images +python3 scripts/preprocess/extract_video.py ${data} +# 1. example for skeleton reconstruction +python3 code/demo_mv1pmf_skel.py ${data} --out ${out} --vis_det --vis_repro --undis --sub_vis 1 7 13 19 +# 2. example for SMPL reconstruction +python3 code/demo_mv1pmf_smpl.py ${data} --out ${out} --end 300 --vis_smpl --undis --sub_vis 1 7 13 19 +``` + +## Not Quick Start +### 0. Prepare Your Own Dataset +```bash +zju-ls-feng +├── extri.yml +├── intri.yml +└── videos + ├── 1.mp4 + ├── 2.mp4 + ├── ... + ├── 8.mp4 + └── 9.mp4 +``` +The input videos are placed in `videos/`. + +Here `intri.yml` and `extri.yml` store the camera intrinsici and extrinsic parameters. For example, if the name of a video is `1.mp4`, then there must exist `K_1`, `dist_1` in `intri.yml`, and `R_1((3, 1), rotation vector of camera)`, `T_1(3, 1)` in `extri.yml`. The file format is following [OpenCV format](https://docs.opencv.org/master/dd/d74/tutorial_file_input_output_with_xml_yml.html). + +### 1. Run [OpenPose](https://github.com/CMU-Perceptual-Computing-Lab/openpose) +```bash +python3 scripts/preprocess/extract_video.py ${data} --openpose +``` + +### 2. Run the code + +### 3. Output +The results are saved in `json` format. +```bash +- +├── keypoints3d +│   ├── 000000.json +│   └── xxxxxx.json +└── smpl +    ├── 000000.jpg +    ├── 000000.json +    └── 000004.json +``` +The data in `keypoints3d/000000.json` is a list, each element represents a human body. +```bash +{ + 'id': , + 'keypoints3d': [[x0, y0, z0, c0], [x1, y1, z0, c1], ..., [xn, yn, zn, cn]] +} +``` + +The data in `smpl/000000.json` is also a list, each element represents the SMPL parameters which is slightly different from official model. +```bash +{ + "id": , + "Rh": <(1, 3)>, + "Th": <(1, 3)>, + "poses": <(1, 72)>, + "shapes": <(1, 10)> +} +``` +We set the first 3 dimensions of `poses` to zero, and add a new parameter `Rh` to represents the global oritentation, the vertices of SMPL model V = RX(theta, beta) + T. + +## Acknowledgements +Here are some great resources we benefit: + +- SMPL models and layer is borrowed from MPII [SMPL-X model](https://github.com/vchoutas/smplx). +- Some functions are borrowed from [SPIN](https://github.com/nkolot/SPIN), [VIBE](https://github.com/mkocabas/VIBE), [SMPLify-X](https://github.com/vchoutas/smplify-x) + +We also would like to thank Wenduo Feng for the example data. + +## Contact +Please open an issue if you have any questions. + +## Citation +This project is the base of our other works: [iMocap](https://zju3dv.github.io/iMoCap/), [Neural Body](https://zju3dv.github.io/neuralbody/) + +```bibtex +@inproceedings{dong2020motion, + title={Motion capture from internet videos}, + author={Dong, Junting and Shuai, Qing and Zhang, Yuanqing and Liu, Xian and Zhou, Xiaowei and Bao, Hujun}, + booktitle={European Conference on Computer Vision}, + pages={210--227}, + year={2020}, + organization={Springer} +} +``` + +