Minimal Hand
A minimal solution to hand motion capture from a single color camera at over 100fps. Easy to use, plug to run.
Install / Use
npx skills add CalciferZh/minimal-handInstalls into whichever agent you are using.
README
Minimal Hand
A minimal solution to hand motion capture from a single color camera at over 100fps. Easy to use, plug to run.

This project provides the core components for hand motion capture:
- estimating joint locations from a monocular RGB image (DetNet)
- estimating joint rotations from locations (IKNet)
We focus on:
- ease of use (all you need is a webcam)
- time efficiency (on our 1080Ti, 8.9ms for DetNet, 0.9ms for IKNet)
- robustness to occlusion, hand-object interaction, fast motion, changing scale and view point
Some links: [video] [paper] [supp doc] [webpage]
The author is too busy to collect the training code for release. On the other hand, it should not be difficult to implement the training part. Feel free to open an issue for any encountered problems.
Pytorch Version
Here is a pytorch version implemented by @MengHao666. I didn't personally check it but I believe it worth trying. Many thanks to @MengHao666 !
With Unity
Here is a project that connects this repo to unity. It looks very cool and many thanks to @vinnik-dmitry07 !
Usage
Install dependencies
Please check requirements.txt. All dependencies are available via pip and conda.
Prepare MANO hand model
- Download MANO model from here and unzip it.
- In
config.py, setOFFICIAL_MANO_PATHto the left hand model. - Run
python prepare_mano.py, you will get the converted MANO model that is compatible with this project atconfig.HAND_MESH_MODEL_PATH.
Prepare pre-trained network models
- Download models from here.
- Put
detnet.ckpt.*inmodel/detnet, andiknet.ckpt.*inmodel/iknet. - Check
config.py, make sure all required files are there.
Run the demo for webcam input
python app.py- Put your right hand in front of the camera. The pre-trained model is for left hand, but the input would be flipped internally.
- Press
ESCto quit. - Although the model is robust to variant scales, most ideally the image should be 1.3x larger than the hand bounding box. A good bounding box may result in better accuracy. You can track the bounding box with the 2D predictions of the model.
We found that the model may fail on some "simple" poses. We think this is because such poses were no presented in the training data. We are working on a v2 version with further extended data to tackle this problem.
Use the models in your project
Please check wrappers.py.
IKNet Alternative
We also provide an optimization-based IK solver here.
Dataset
The detection model is trained with following datasets:
The IK model is trained with the poses shipped with MANO.
Citation
This is the official implementation of the paper "Monocular Real-time Hand Shape and Motion Capture using Multi-modal Data" (CVPR 2020).
The quantitative numbers reported in the paper can be found in plot.py.
If you find the project helpful, please consider citing us:
@InProceedings{zhou2020monocular,
author = {Zhou, Yuxiao and Habermann, Marc and Xu, Weipeng and Habibie, Ikhsanul and Theobalt, Christian and Xu, Feng},
title = {Monocular Real-Time Hand Shape and Motion Capture Using Multi-Modal Data},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2020}
}
Related Skills
mcp
Use the `mcp_perplexity-ask_perplexity_search` tools to answer questions. You should use this instead of the `web_search` tool because it is a lot more accurate.
practical-power-systems-synthesis
This skill enables synthesis in the domain of power-systems (engineering). It represents research-level-level expertise and is designed for production use in research, industry, and educational contexts. Use this skill when you need to perform synthesis operations related to power-systems.
semi-supervised-optogenetics-testing
This skill enables testing in the domain of optogenetics (neuroscience). It represents intermediate-level expertise and is designed for production use in research, industry, and educational contexts. Use this skill when you need to perform testing operations related to optogenetics.
data-mining-interpretation-fundamental
This skill enables interpretation in the domain of data-mining (data-science). It represents fundamental-level expertise and is designed for production use in research, industry, and educational contexts. Use this skill when you need to perform interpretation operations related to data-mining.
