All Projects → HowieMa → NSRMhand

HowieMa / NSRMhand

Licence: other
[WACV 2020] "Nonparametric Structure Regularization Machine for 2D Hand Pose Estimation"

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to NSRMhand

trt pose hand
Real-time hand pose estimation and gesture classification using TensorRT
Stars: ✭ 137 (+44.21%)
Mutual labels:  pose-estimation, hand-pose-estimation
HPRNet
Bottom-up whole-body pose estimation method in constant time.
Stars: ✭ 51 (-46.32%)
Mutual labels:  pose-estimation, hand-pose-estimation
iz-cpm
Portable CP/M emulation to run CP/M 2.2 binaries for Z80
Stars: ✭ 56 (-41.05%)
Mutual labels:  cpm
PeekingDuck
A modular framework built to simplify Computer Vision inference workloads.
Stars: ✭ 143 (+50.53%)
Mutual labels:  pose-estimation
aistplusplus api
API to support AIST++ Dataset: https://google.github.io/aistplusplus_dataset
Stars: ✭ 277 (+191.58%)
Mutual labels:  pose-estimation
cpmtools
Tools to access CP/M file systems (forked)
Stars: ✭ 29 (-69.47%)
Mutual labels:  cpm
openpose-pytorch
🔥 OpenPose api wrapper in PyTorch.
Stars: ✭ 52 (-45.26%)
Mutual labels:  pose-estimation
spectrum128 cpm
zx spectrum 128 emulation on stm32f407 + Grant Searle's CP/M system port ili9341 16 bit display
Stars: ✭ 29 (-69.47%)
Mutual labels:  cpm
CenterNet-pytorch-lightning
Refactored implementation of CenterNet (Objects as Points - Zhou, Xingyi et. al.) shipping with PyTorch Lightning modules
Stars: ✭ 53 (-44.21%)
Mutual labels:  pose-estimation
Format.cmake
💅 Stylize your code! Automatic clang-format and cmake-format targets for CMake.
Stars: ✭ 94 (-1.05%)
Mutual labels:  cpm
realant
RealAnt robot platform for low-cost, real-world reinforcement learning
Stars: ✭ 40 (-57.89%)
Mutual labels:  pose-estimation
gorilla-cpm
GORILLA.BAS port to CP/M in Turbo Modula-2. Supported terminals: VT52, VT100, ANSI, ADM-31, KayPro, C128, Memotech monochrome, CPC / Zenith Z19
Stars: ✭ 45 (-52.63%)
Mutual labels:  cpm
ZSM4
Z80/Z180/Z280 Macro Assembler for CP/M, UZI180 and RSX180
Stars: ✭ 26 (-72.63%)
Mutual labels:  cpm
Res2Net-Pose-Estimation
Res2Net for Pose Estimation using Simple Baselines as the baseline
Stars: ✭ 35 (-63.16%)
Mutual labels:  pose-estimation
mescc
Mike's Enhanced Small C Compiler for Z80 and CP/M.
Stars: ✭ 23 (-75.79%)
Mutual labels:  cpm
icra20-hand-object-pose
[ICRA 2020] Robust, Occlusion-aware Pose Estimation for Objects Grasped by Adaptive Hands
Stars: ✭ 42 (-55.79%)
Mutual labels:  pose-estimation
a80
Intel 8080/Zilog Z80 assembler written in D.
Stars: ✭ 23 (-75.79%)
Mutual labels:  cpm
movenet.pytorch
A Pytorch implementation of MoveNet from Google. Include training code and pre-trained model.
Stars: ✭ 273 (+187.37%)
Mutual labels:  pose-estimation
VolksForth
volksFORTH is a 16bit Forth System maintained by the German Forth Gesellschaft e.V.
Stars: ✭ 41 (-56.84%)
Mutual labels:  cpm
MobilePose-Pi
MobilePose deployment for Raspberry Pi
Stars: ✭ 15 (-84.21%)
Mutual labels:  pose-estimation

NSRMhand

Official implementation of WACV 2020 paper Nonparametric Structure Regularization Machine for 2D Hand Pose Estimation with Pytorch

Abstract

Hand pose estimation is more challenging than body pose estimation due to severe articulation, self-occlusion and high dexterity of the hand. Current approaches often rely on a popular body pose algorithm, such as the Convolutional Pose Machine (CPM), to learn 2D keypoint features. These algorithms cannot adequately address the unique challenges of hand pose estimation, because they are trained solely based on keypoint positions without seeking to explicitly model structural relationship between them. We propose a novel Nonparametric Structure Regularization Machine (NSRM) for 2D hand pose estimation, adopting a cascade multi-task architecture to learn hand structure and keypoint representations jointly. The structure learning is guided by synthetic hand mask representations, which are directly computed from keypoint positions, and is further strengthened by a novel probabilistic representation of hand limbs and an anatomically inspired composition strategy of mask synthesis. We conduct extensive studies on two public datasets - OneHand 10k and CMU Panoptic Hand. Experimental results demonstrate that explicitly enforcing structure learning consistently improves pose estimation accuracy of CPM baseline models, by 1.17% on the first dataset and 4.01% on the second one.

Visualization of our proposed LDM-G1, LPM-G1, and our network structure.
LPM G1 LDM G6

net

Highlights

  • We propose a novel cascade structure regularization methodology for 2D hand pose estimation, which utilizes synthetic hand masks to guide keypoints structure learning.
  • We propose a novel probabilistic representation of hand limbs and an anatomically inspired composition strategy for hand mask synthesis.

Running

Prepare

pytorch >= 1.0  
torchvision >= 0.2 
numpy  
matplotlib 

Inference

  1. Download our trained model (LPM G1&6) by running sh weights/download.sh or you can download it directly from this Dropbox link

  2. For pose estimation on the demo hand image, run

python inference.py

We provide example images in images folder. If set up correctly, the output should look like

input output

Note: this model is only trained on Panoptic hand dataset, thus it may not work very well on other scene.

Training

  1. Please download the Panoptic Hand dataset from their official website, and crop it based on 2.2x ground truth bounding box. For your convenience, you can download our preprocessed dataset from here. Please DO NOT duplicate it for any commercial purposes, and the copyright still belongs to Panoptic. If you want to train your own dataset, please also format it based on this data_sample/ folder.

  2. Specify your configuration in configs/xxx.json.
    You can also use the default parameter settings, but remember to change the data root.

  3. Train model by

python main.py + xxx.json

For example, if you want to train LPM G1, you should run

python main.py LPM_G1.json

Notation

  • The most creativie part of our model is the structure representation, which is generated from keypoints only.
    you can see dataset/hand_ldm.py and dataset/hand_lpm.py for detail and adapt it for other tasks.

  • Since this is a multi task learning problem, the weight ande decay ratio of keypoint confidence map loss and NSRM loss may vary for different dataset, you may need to adjust these parameters for your own dataset.

  • In our experiments and code, we only apply our NSRM to CPM, but we believe it will also work for other pose estimation network, such as Stacked Hourglass, HR-Net.

Citation

If you find this project useful for your research, please use the following BibTeX entry. Thank you!

@inproceedings{chen2020nonparametric,                    
  title={Nonparametric Structure Regularization Machine for 2D Hand Pose Estimation},                 
  author={Chen, Yifei and Ma, Haoyu and Kong, Deying and Yan, Xiangyi and Wu, Jianbao and Fan, Wei and Xie, Xiaohui},             
  booktitle={The IEEE Winter Conference on Applications of Computer Vision},                     
  pages={381--390},                  
  year={2020}              
}            
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].