File size: 2,383 Bytes
dc0b12a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e01a93b
 
 
 
dc0b12a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
07b24dc
 
dc0b12a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
---
library_name: braindecode
license: cc-by-nc-sa-4.0
tags:
  - emg
  - semg
  - hand-pose
  - pose-estimation
  - braindecode
  - emg2pose
pipeline_tag: other
---

# NeuroPose — emg2pose regression baseline

![NeuroPose architecture](https://huggingface.co/braindecode/NeuroPose-emg2pose/resolve/main/architecture.png)

*Figure 6 of Liu et al. (2021), CC BY.*

Meta's released `regression_neuropose.ckpt` from the
[emg2pose benchmark](https://github.com/facebookresearch/emg2pose), rehosted with
[braindecode](https://braindecode.org)'s own parameter names so it loads directly:

```python
from braindecode.models import NeuroPose

model = NeuroPose.from_pretrained("braindecode/NeuroPose-emg2pose")
```

16-channel sEMG at 2 kHz in, 20 joint angles per sample out — `(batch, n_chans, n_times)`
to `(batch, n_times, n_outputs)`.

## Provenance

These are **not** retrained weights. They are the authors' released checkpoint with only
the parameter names rewritten: upstream stores every block in a single `nn.Sequential`,
while braindecode splits them across `encoder` / `resnet` / `decoder`. Loading the
original `.ckpt` into `braindecode.models.NeuroPose` and running both implementations on
the same input gives bit-identical outputs (max absolute difference 0.0, 6,354,903
parameters in both).

The Hub checkpoint uses Braindecode-native parameter names; upstream naming is handled
once during publication rather than by the runtime model.

## Architecture

Liu et al.'s encoder / ResNet / decoder, in the configuration emg2pose used for its
published baseline: encoder widths 32/128/256 pooling (10,2) (8,2) (4,4) over
(time x electrodes), five residual blocks of three conv groups, decoder 128/32/1
upsampling (10,4) (8,4) (4,2).

## License and attribution

Weights are Meta's, released under **CC BY-NC-SA 4.0** — non-commercial, share-alike.
That license carries over here unchanged. The UmeTrack hand model used for the forward
kinematics behind the labels is CC BY-NC 4.0.

- Salter et al. (2024), *emg2pose: A Large and Diverse Benchmark for Surface
  Electromyographic Hand Pose Estimation*, NeurIPS Datasets and Benchmarks.
  [arXiv:2412.02725](https://arxiv.org/abs/2412.02725)
- Liu, Zhang, Gowda (2021), *NeuroPose: 3D Hand Pose Tracking using EMG Wearables*,
  The Web Conference 2021. [doi:10.1145/3442381.3449890](https://doi.org/10.1145/3442381.3449890)