Update README.md
Browse files
README.md
CHANGED
|
@@ -5,10 +5,6 @@ language:
|
|
| 5 |
model-index:
|
| 6 |
- name: TinyMyo
|
| 7 |
results:
|
| 8 |
-
|
| 9 |
-
# -------------------------
|
| 10 |
-
# Hand Gesture Classification
|
| 11 |
-
# -------------------------
|
| 12 |
- task:
|
| 13 |
type: gesture-classification
|
| 14 |
dataset:
|
|
@@ -23,7 +19,6 @@ model-index:
|
|
| 23 |
type: f1
|
| 24 |
value: 0.7797
|
| 25 |
verified: false
|
| 26 |
-
|
| 27 |
- task:
|
| 28 |
type: gesture-classification
|
| 29 |
dataset:
|
|
@@ -38,7 +33,6 @@ model-index:
|
|
| 38 |
type: f1
|
| 39 |
value: 0.9674
|
| 40 |
verified: false
|
| 41 |
-
|
| 42 |
- task:
|
| 43 |
type: gesture-classification
|
| 44 |
dataset:
|
|
@@ -53,10 +47,6 @@ model-index:
|
|
| 53 |
type: f1
|
| 54 |
value: 0.9755
|
| 55 |
verified: false
|
| 56 |
-
|
| 57 |
-
# -------------------------
|
| 58 |
-
# Generic Neuromotor Interface (Meta RL)
|
| 59 |
-
# -------------------------
|
| 60 |
- task:
|
| 61 |
type: gesture-classification
|
| 62 |
dataset:
|
|
@@ -67,10 +57,6 @@ model-index:
|
|
| 67 |
type: classification-error-rate
|
| 68 |
value: 0.153
|
| 69 |
verified: false
|
| 70 |
-
|
| 71 |
-
# -------------------------
|
| 72 |
-
# Hand Kinematic Regression
|
| 73 |
-
# -------------------------
|
| 74 |
- task:
|
| 75 |
type: kinematic-regression
|
| 76 |
dataset:
|
|
@@ -89,10 +75,6 @@ model-index:
|
|
| 89 |
type: r2
|
| 90 |
value: 0.62
|
| 91 |
verified: false
|
| 92 |
-
|
| 93 |
-
# -------------------------
|
| 94 |
-
# Silent Speech Synthesis
|
| 95 |
-
# -------------------------
|
| 96 |
- task:
|
| 97 |
type: speech-synthesis
|
| 98 |
dataset:
|
|
@@ -103,10 +85,6 @@ model-index:
|
|
| 103 |
type: word-error-rate
|
| 104 |
value: 0.3354
|
| 105 |
verified: false
|
| 106 |
-
|
| 107 |
-
# -------------------------
|
| 108 |
-
# Silent Speech Recognition
|
| 109 |
-
# -------------------------
|
| 110 |
- task:
|
| 111 |
type: speech-recognition
|
| 112 |
dataset:
|
|
@@ -117,6 +95,10 @@ model-index:
|
|
| 117 |
type: word-error-rate
|
| 118 |
value: 0.3395
|
| 119 |
verified: false
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
---
|
| 121 |
|
| 122 |
<div align="center">
|
|
@@ -209,7 +191,7 @@ Unlike EEG FMs that mix channels early, TinyMyo uses **per-channel patching**:
|
|
| 209 |
* Patch stride: **20 samples**
|
| 210 |
* Tokens/channel: **50**
|
| 211 |
* Total seq length: **800 tokens** (16 x 50)
|
| 212 |
-
* Positional encoding: **RoPE
|
| 213 |
|
| 214 |
This preserves electrode-specific structure while allowing attention to learn cross-channel relationships.
|
| 215 |
|
|
@@ -263,18 +245,17 @@ TinyMyo generalizes across **gesture classification**, **kinematic regression**,
|
|
| 263 |
|
| 264 |
Evaluated on:
|
| 265 |
|
| 266 |
-
* **Ninapro DB5** (52 classes, 10 subjects)
|
| 267 |
-
* **EPN-612** (5 classes, 612 subjects)
|
| 268 |
-
* **UCI EMG** (6 classes, 36 subjects)
|
| 269 |
-
* **Meta Neuromotor Interface** (9 gestures)
|
| 270 |
|
| 271 |
### Preprocessing
|
| 272 |
|
| 273 |
* EMG filtering: **20–90 Hz bandpass + 50 Hz notch**
|
| 274 |
* Window sizes:
|
| 275 |
|
| 276 |
-
* **200
|
| 277 |
-
* **1000
|
| 278 |
|
| 279 |
### Linear Classification Head
|
| 280 |
|
|
@@ -285,10 +266,9 @@ Evaluated on:
|
|
| 285 |
|
| 286 |
| Dataset | Metric | Result |
|
| 287 |
| ------------------------ | ------ | ----------------- |
|
| 288 |
-
| **Ninapro DB5** (
|
| 289 |
-
| **EPN-612** (
|
| 290 |
-
| **UCI EMG** (
|
| 291 |
-
| **Neuromotor** | CLER | **0.153 ± 0.006** |
|
| 292 |
|
| 293 |
TinyMyo achieves **new state-of-the-art** on DB5, EPN-612, and UCI.
|
| 294 |
|
|
@@ -297,7 +277,7 @@ TinyMyo achieves **new state-of-the-art** on DB5, EPN-612, and UCI.
|
|
| 297 |
## 4.2 Hand Kinematic Regression (Ninapro DB8)
|
| 298 |
|
| 299 |
* Predict **5 joint angles**
|
| 300 |
-
* Windows: **
|
| 301 |
* Normalization: z-score only
|
| 302 |
|
| 303 |
### Regression Head (~788k params)
|
|
@@ -309,7 +289,7 @@ TinyMyo achieves **new state-of-the-art** on DB5, EPN-612, and UCI.
|
|
| 309 |
|
| 310 |
### Performance
|
| 311 |
|
| 312 |
-
* **MAE = 8.77 ± 0.12°** (
|
| 313 |
|
| 314 |
Note: Prior works reporting ~6.9° MAE are **subject-specific**; TinyMyo trains a **single cross-subject model**, a significantly harder setting.
|
| 315 |
|
|
@@ -354,7 +334,7 @@ TinyMyo runs efficiently on **GAP9 (RISC-V)** via:
|
|
| 354 |
* Integer LayerNorm, GELU, softmax
|
| 355 |
* Static memory arena via liveness analysis
|
| 356 |
|
| 357 |
-
### Runtime (
|
| 358 |
|
| 359 |
* **Inference time**: **0.785 s**
|
| 360 |
* **Energy**: **44.91 mJ**
|
|
|
|
| 5 |
model-index:
|
| 6 |
- name: TinyMyo
|
| 7 |
results:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
- task:
|
| 9 |
type: gesture-classification
|
| 10 |
dataset:
|
|
|
|
| 19 |
type: f1
|
| 20 |
value: 0.7797
|
| 21 |
verified: false
|
|
|
|
| 22 |
- task:
|
| 23 |
type: gesture-classification
|
| 24 |
dataset:
|
|
|
|
| 33 |
type: f1
|
| 34 |
value: 0.9674
|
| 35 |
verified: false
|
|
|
|
| 36 |
- task:
|
| 37 |
type: gesture-classification
|
| 38 |
dataset:
|
|
|
|
| 47 |
type: f1
|
| 48 |
value: 0.9755
|
| 49 |
verified: false
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
- task:
|
| 51 |
type: gesture-classification
|
| 52 |
dataset:
|
|
|
|
| 57 |
type: classification-error-rate
|
| 58 |
value: 0.153
|
| 59 |
verified: false
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
- task:
|
| 61 |
type: kinematic-regression
|
| 62 |
dataset:
|
|
|
|
| 75 |
type: r2
|
| 76 |
value: 0.62
|
| 77 |
verified: false
|
|
|
|
|
|
|
|
|
|
|
|
|
| 78 |
- task:
|
| 79 |
type: speech-synthesis
|
| 80 |
dataset:
|
|
|
|
| 85 |
type: word-error-rate
|
| 86 |
value: 0.3354
|
| 87 |
verified: false
|
|
|
|
|
|
|
|
|
|
|
|
|
| 88 |
- task:
|
| 89 |
type: speech-recognition
|
| 90 |
dataset:
|
|
|
|
| 95 |
type: word-error-rate
|
| 96 |
value: 0.3395
|
| 97 |
verified: false
|
| 98 |
+
tags:
|
| 99 |
+
- emg
|
| 100 |
+
- bio-signals
|
| 101 |
+
- foundation-model
|
| 102 |
---
|
| 103 |
|
| 104 |
<div align="center">
|
|
|
|
| 191 |
* Patch stride: **20 samples**
|
| 192 |
* Tokens/channel: **50**
|
| 193 |
* Total seq length: **800 tokens** (16 x 50)
|
| 194 |
+
* Positional encoding: **RoPE**
|
| 195 |
|
| 196 |
This preserves electrode-specific structure while allowing attention to learn cross-channel relationships.
|
| 197 |
|
|
|
|
| 245 |
|
| 246 |
Evaluated on:
|
| 247 |
|
| 248 |
+
* **Ninapro DB5** (52 classes, 10 subjects, 200 Hz)
|
| 249 |
+
* **EPN-612** (5 classes, 612 subjects, 200 Hz)
|
| 250 |
+
* **UCI EMG** (6 classes, 36 subjects, 200 Hz)
|
|
|
|
| 251 |
|
| 252 |
### Preprocessing
|
| 253 |
|
| 254 |
* EMG filtering: **20–90 Hz bandpass + 50 Hz notch**
|
| 255 |
* Window sizes:
|
| 256 |
|
| 257 |
+
* **200 samples** (1 sec, best for DB5)
|
| 258 |
+
* **1000 samples** (5 sec, best for EPN, UCI)
|
| 259 |
|
| 260 |
### Linear Classification Head
|
| 261 |
|
|
|
|
| 266 |
|
| 267 |
| Dataset | Metric | Result |
|
| 268 |
| ------------------------ | ------ | ----------------- |
|
| 269 |
+
| **Ninapro DB5** (1 sec) | Acc | **89.41 ± 0.16%** |
|
| 270 |
+
| **EPN-612** (5 sec) | Acc | **96.74 ± 0.09%** |
|
| 271 |
+
| **UCI EMG** (5 sec) | Acc | **97.56 ± 0.32%** |
|
|
|
|
| 272 |
|
| 273 |
TinyMyo achieves **new state-of-the-art** on DB5, EPN-612, and UCI.
|
| 274 |
|
|
|
|
| 277 |
## 4.2 Hand Kinematic Regression (Ninapro DB8)
|
| 278 |
|
| 279 |
* Predict **5 joint angles**
|
| 280 |
+
* Windows: **100 ms** or **500 ms**
|
| 281 |
* Normalization: z-score only
|
| 282 |
|
| 283 |
### Regression Head (~788k params)
|
|
|
|
| 289 |
|
| 290 |
### Performance
|
| 291 |
|
| 292 |
+
* **MAE = 8.77 ± 0.12°** (500 ms)
|
| 293 |
|
| 294 |
Note: Prior works reporting ~6.9° MAE are **subject-specific**; TinyMyo trains a **single cross-subject model**, a significantly harder setting.
|
| 295 |
|
|
|
|
| 334 |
* Integer LayerNorm, GELU, softmax
|
| 335 |
* Static memory arena via liveness analysis
|
| 336 |
|
| 337 |
+
### Runtime (EPN-612 dataset)
|
| 338 |
|
| 339 |
* **Inference time**: **0.785 s**
|
| 340 |
* **Energy**: **44.91 mJ**
|