Keypoint Detection
LiteRT
LiteRT
LiteRT
on-device
android
gpu
face-alignment
face-landmarks
rtmpose
wflw
mmpose
Instructions to use litert-community/RTMPose-Face-WFLW-LiteRT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LiteRT
How to use litert-community/RTMPose-Face-WFLW-LiteRT with LiteRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
RTMPose-Face WFLW LiteRT fp16 (fully-GPU, Pixel 8a corr 0.9995, 4ms)
Browse files- README.md +45 -0
- rtm_face_fp16.tflite +3 -0
- samples/sample.png +0 -0
README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
library_name: LiteRT
|
| 4 |
+
pipeline_tag: keypoint-detection
|
| 5 |
+
tags: [litert, tflite, on-device, android, gpu, face-alignment, face-landmarks, rtmpose, wflw, mmpose]
|
| 6 |
+
base_model: open-mmlab/mmpose
|
| 7 |
+
---
|
| 8 |
+
|
| 9 |
+
# RTMPose-Face (WFLW) — LiteRT (on-device 98-point face alignment, fully-GPU)
|
| 10 |
+
|
| 11 |
+
[RTMPose](https://github.com/open-mmlab/mmpose) (mmpose) face alignment, trained on **WFLW**, converted to
|
| 12 |
+
**LiteRT** and running **fully on the `CompiledModel` GPU** (ML Drift) on Android. **98 dense facial landmarks**
|
| 13 |
+
(contour, eyebrows, eyes, nose, mouth, pupils) — the dense complement to a 5-point face detector.
|
| 14 |
+
|
| 15 |
+

|
| 16 |
+
|
| 17 |
+
## On-device (Pixel 8a, Tensor G3 — verified)
|
| 18 |
+
|
| 19 |
+
| | |
|
| 20 |
+
|---|---|
|
| 21 |
+
| nodes on GPU | **333 / 333** LITERT_CL (full residency) |
|
| 22 |
+
| inference | **~4 ms** (256×256) |
|
| 23 |
+
| size | 33.6 MB (fp16) |
|
| 24 |
+
| accuracy | device-vs-PyTorch SimCC corr **0.9995**, 98 landmarks |
|
| 25 |
+
|
| 26 |
+
```
|
| 27 |
+
face[1,3,256,256] (mmpose mean/std) →[GPU: RTMPose-m]→ simcc_x[1,98,512], simcc_y[1,98,512]
|
| 28 |
+
```
|
| 29 |
+
|
| 30 |
+
output[0] = simcc_x, output[1] = simcc_y; each landmark = `argmax` over its 1D SimCC (bins = pixels × 2).
|
| 31 |
+
|
| 32 |
+
## How it converts (litert-torch) — the RTMPose recipe, unchanged
|
| 33 |
+
|
| 34 |
+
Same model family as the human-pose RTMPose; only the config/checkpoint change to WFLW. The two on-device-only
|
| 35 |
+
Mali fixes transfer **without modification**: **`ScaleNorm` → SafeRMSNorm** and **GAU `act@act` BMM →
|
| 36 |
+
broadcast-reduce**. banned ops NONE, ≤4D, tflite-vs-torch corr **1.0**, device-vs-torch **0.9995**.
|
| 37 |
+
|
| 38 |
+
## Preprocessing
|
| 39 |
+
|
| 40 |
+
Center-crop to a (centered) face, resize 256×256, mmpose mean/std (RGB, 0-255 scale), NCHW.
|
| 41 |
+
|
| 42 |
+
## License
|
| 43 |
+
|
| 44 |
+
[Apache-2.0](https://github.com/open-mmlab/mmpose/blob/main/LICENSE). Upstream:
|
| 45 |
+
[open-mmlab/mmpose](https://github.com/open-mmlab/mmpose); dataset [WFLW](https://wywu.github.io/projects/LAB/WFLW.html).
|
rtm_face_fp16.tflite
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:652788790a2dac0ff117e5bc33c17eeb7048fd7ac0e6642e98b9fb60e65e24c7
|
| 3 |
+
size 33622896
|
samples/sample.png
ADDED
|