MCPcopy
hub / github.com/zju3dv/EasyMocap

github.com/zju3dv/EasyMocap @v0.2 sqlite

repository ↗ · DeepWiki ↗ · release v0.2 ↗
2,057 symbols 6,015 edges 186 files 225 documented · 11%
README
<img src="https://github.com/zju3dv/EasyMocap/raw/v0.2/logo.png" width="40%">

EasyMocap is an open-source toolbox for markerless human motion capture and novel view synthesis from RGB videos. In this project, we provide a lot of motion capture demos in different settings.

python star

News


Core features

Multiple views of a single person

report Open In Colab

This is the basic code for fitting SMPL[^loper2015]/SMPL+H[^romero2017]/SMPL-X[^pavlakos2019]/MANO[^romero2017] model to capture body+hand+face poses from multiple views.

<img src="https://github.com/zju3dv/EasyMocap/raw/v0.2/doc/feng/mv1pmf-smplx.gif" width="80%">



<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/mv1p-dance-smpl.gif" width="80%">



<sup>Videos are from ZJU-MoCap, with 23 calibrated and synchronized cameras.</sup>







<img src="https://github.com/zju3dv/EasyMocap/raw/v0.2/doc/feng/mano.gif" width="80%">



<sup>Captured with 8 cameras.</sup>

Internet video

This part is the basic code for fitting SMPL[^loper2015] with 2D keypoints estimation[^cao2018][^hrnet] and CNN initialization[^kolotouros2019].

<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/23EfsN7vEOA%2B003170%2B003670.gif" width="80%">



<sup>The raw video is from <a href="https://www.youtube.com/watch?v=23EfsN7vEOA">Youtube</a>.</sup>

Internet video with a mirror

report quickstart

<img src="https://raw.githubusercontent.com/zju3dv/Mirrored-Human/main/doc/assets/smpl-avatar.gif" width="80%">



<sup>The raw video is from <a href="https://www.youtube.com/watch?v=KOCJJ27hhIE">Youtube</a>.</sup>

Multiple Internet videos with a specific action (Coming soon)

report quickstart

<img src="https://github.com/zju3dv/EasyMocap/raw/v0.2/doc/imocap/imocap.gif" width="80%">


<sup>Internet videos of Roger Federer's serving</sup>

Multiple views of multiple people

report quickstart

<img src="https://github.com/zju3dv/EasyMocap/raw/v0.2/doc/assets/mvmp1f.gif" width="80%">


<sup>Captured with 8 consumer cameras</sup>

Novel view synthesis from sparse views

report quickstart

<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/female-ballet.gif" width="80%">


<sup>Novel view synthesis for chanllenge motion(coming soon)</sup>







<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/nvs_mp_soccer1_6_rgb.gif" width="80%">


<sup>Novel view synthesis for human interaction</sup>

ZJU-MoCap

With our proposed method, we release two large dataset of human motion: LightStage and Mirrored-Human. See the website for more details.

If you would like to download the ZJU-Mocap dataset, please sign the agreement, and email it to Qing Shuai (s_q@zju.edu.cn) and cc Xiaowei Zhou (xwzhou@zju.edu.cn) to request the download link.

<img src="https://github.com/zju3dv/EasyMocap/raw/v0.2/doc/assets/ZJU-MoCap-lightstage.jpg" width="40%">


<sup>LightStage: captured with LightStage system</sup>






<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/mirrored-human.jpg" width="40%">


<sup>Mirrored-Human: collected from the Internet</sup>

Many works have achieved wonderful results based on our dataset:

Other features

3D Realtime visualization

quickstart

<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/assets/vis3d/skel-body25.gif" width="26%">
<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/assets/vis3d/skel-total.gif" width="26%">
<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/assets/vis3d/skel-multi.gif" width="26%">







<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/assets/vis3d/mesh-smpl.gif" width="26%">
<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/assets/vis3d/mesh-smplx.gif" width="26%">
<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/assets/vis3d/mesh-manol.gif" width="26%">

Camera calibration

<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/calib_intri.jpg" width="40%">
<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/calib_extri.jpg" width="40%">



<sup>Calibration for intrinsic and extrinsic parameters</sup>

Annotator

<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/annot_keypoints.jpg" width="40%">
<img src="https://raw.githubusercontent.com/chingswy/Dataset-Demo/main/EasyMocap/annot_mask.jpg" width="40%">



<sup>Annotator for bounding box, keypoints and mask</sup>

Updates

  • 11/03/2022: Support MultiNeuralBody.
  • 12/25/2021: Support mediapipe keypoints detector.
  • 08/09/2021: Add a colab demo here.
  • 06/28/2021: The Multi-view Multi-person part is released!
  • 06/10/2021: The real-time 3D visualization part is released!
  • 04/11/2021: The calibration tool and the annotator are released.
  • 04/11/2021: Mirrored-Human part is released.

Installation

See documentation for more instructions.

Acknowledgements

Here are the great works this project is built upon:

  • SMPL models and layer are from MPII SMPL-X model.
  • Some functions are borrowed from SPIN, VIBE, SMPLify-X
  • The method for fitting 3D skeleton and SMPL model is similar to SMPLify-X(with 3D keypoints loss), TotalCapture(without using point clouds).
  • We integrate some easy-to-use functions for previous great work:
  • easymocap/estimator/mediapipe_wrapper.py: MediaPipe
  • easymocap/estimator/SPIN : an SMPL estimator[^cao2018]
  • easymocap/estimator/YOLOv4: an object detector[^kolotouros2019]
  • easymocap/estimator/HRNet : a 2D human pose estimator[^bochkovskiy2020]

Contact

Please open an issue if you have any questions. We appreciate all contributions to improve our project.

Contributor

EasyMocap is built by researchers from the 3D vision group of Zhejiang University: Qing Shuai, Qi Fang, Junting Dong, Sida Peng, Di Huang, Hujun Bao, and Xiaowei Zhou.

We would like to thank Wenduo Feng, Di Huang, Yuji Chen, Hao Xu, Qing Shuai, Qi Fang, Ting Xie, Junting Dong, Sida Peng and Xiaopeng Ji who are the performers in the sample data. We would also like to thank all the people who has helped EasyMocap in any way.

Citation

This project is a part of our work iMocap, Mirrored-Human, mvpose, Neural Body, MultiNeuralBody, enerf.

Please consider citing these works if you find this repo is useful for your projects.

@Misc{easymocap,  
    title = {EasyMoCap - Make human motion capture easier.},
    howpublished = {Github},  
    year = {2021},
    url = {https://github.com/zju3dv/EasyMocap}
}

@inproceedings{shuai2022multinb,
  title={Novel View Synthesis of Human Interactions from Sparse
Multi-view Videos},
  author={Shuai, Qing and Geng, Chen and Fang, Qi and Peng, Sida and Shen, Wenhao and Zhou, Xiaowei and Bao, Hujun},
  booktitle={SIGGRAPH Conference Proceedings},
  year={2022}
}

@inproceedings{lin2022efficient,
  title={Efficient Neural Radiance Fields for Interactive Free-viewpoint Video},
  author={Lin, Haotong and Peng, Sida and Xu, Zhen and Yan, Yunzhi and Shuai, Qing and Bao, Hujun and Zhou, Xiaowei},
  booktitle={SIGGRAPH Asia Conference Proceedings},
  year={2022}
}

@inproceedings{dong2021fast,
  title={Fast and Robust Multi-Person 3D Pose Estimation and Tracking from Multiple Views},
  author={Dong, Junting and Fang, Qi and Jiang, Wen and Yang, Yurou and Bao, Hujun and Zhou, Xiaowei},
  booktitle={T-PAMI},
  year={2021}
}

@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}
}

@inproceedings{peng2021neural,
  title={Neural Body: Implicit Neural Representations with Structured Latent Codes for Novel View Synthesis of Dynamic Humans},
  author={Peng, Sida and Zhang, Yuanqing and Xu, Yinghao and Wang, Qianqian and Shuai, Qing and Bao, Hujun and Zhou, Xiaowei},
  booktitle={CVPR},
  year={2021}
}

@inproceedings{fang2021mirrored,
  title={Reconstructing 3D Human Pose by Watching Humans in the Mirror},
  author={Fang, Qi and Shuai, Qing and Dong, Junting and Bao, Hujun and Zhou, Xiaowei},
  booktitle={CVPR},
  year={2021}
}

[^loper2015]: Loper, Matthew, et al. "SMPL: A skinned multi-person linear model." ACM transactions on graphics (TOG) 34.6 (2015): 1-16.

[^romero2017]: Romero, Javier, Dimitrios Tzionas, and Michael J. Black. "Embodied hands: Modeling and capturing hands and bodies together." ACM Transactions on Graphics (ToG) 36.6 (2017): 1-17.

[^pavlakos2019]: Pavlakos, Georgios, et al. "Expressive body capture: 3d hands, face, and body from a single image." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.

[^cao2018]: Cao, Z., Hidalgo, G., Simon, T., Wei, S.E., Sheikh, Y.: Openpose: real-time multi-person 2d pose estimation using part affinity fields. arXiv preprint arXiv:1812.08008 (2018)

[^kolotouros2019]: Kolotouros, Nikos, et al. "Learning to reconstruct 3D human pose and shape via model-fitting in the loop." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019

[^bochkovskiy2020]: Bochkovskiy, Alexey, Chien-Yao Wang, and Hong-Yuan Mark Liao. "Yolov4: Optimal speed and accuracy of object detection." arXiv preprint arXiv:2004.10934 (2020).

[^hrnet]: Sun, Ke, et al. "Deep high-resolution representation learning for human pose estimation." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.

Core symbols most depended-on inside this repo

split
called by 88
easymocap/bodymodel/smplx.py
to
called by 83
easymocap/visualize/skelmodel.py
basename
called by 58
easymocap/dataset/base.py
mywarn
called by 57
easymocap/mytools/debug_utils.py
read_json
called by 57
easymocap/mytools/file_utils.py
load
called by 50
easymocap/config/baseconfig.py
load_object
called by 47
easymocap/config/baseconfig.py
clone
called by 45
easymocap/config/yacs.py

Shape

Method 1,083
Function 709
Class 265

Languages

Python100%

Modules by API surface

easymocap/multistage/fitting.py99 symbols
easymocap/multistage/lossbase.py80 symbols
easymocap/datasets/base.py71 symbols
easymocap/pyfitting/lossfactory.py61 symbols
easymocap/neuralbody/renderer/render_loss.py58 symbols
easymocap/neuralbody/dataset/utils_sample.py45 symbols
easymocap/annotator/basic_annotator.py45 symbols
easymocap/dataset/base.py44 symbols
easymocap/neuralbody/dataset/mvbase.py40 symbols
easymocap/mytools/triangulator.py40 symbols
easymocap/config/yacs.py34 symbols
easymocap/multistage/torchgeometry.py28 symbols

Dependencies from manifests, versioned

pytorch-lightning1.5.0 · 1×
setuptools59.5.0 · 1×
tensorboard2.8.0 · 1×

For agents

$ claude mcp add EasyMocap \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact