CondadosAI commited on
Commit
9186624
·
verified ·
1 Parent(s): 4f27743

docs: acaua mirror model card with upstream provenance (code + weights)

Browse files
Files changed (1) hide show
  1. README.md +92 -0
README.md ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ library_name: acaua
4
+ pipeline_tag: keypoint-detection
5
+ tags:
6
+ - pose-estimation
7
+ - keypoint-detection
8
+ - multi-person-pose
9
+ - vision
10
+ - acaua
11
+ - native-pytorch-port
12
+ datasets:
13
+ - COCO
14
+ - AI-Challenger
15
+ - CrowdPose
16
+ - MPII
17
+ - JHMDB
18
+ - Halpe
19
+ - PoseTrack18
20
+ ---
21
+
22
+ # RTMO-s (body7) — acaua mirror (pure-PyTorch port)
23
+
24
+ This is a **pure-PyTorch port** of RTMO-s hosted under `CondadosAI/` for use with the [acaua](https://github.com/CondadosAI/acaua) computer vision library.
25
+
26
+ RTMO (Lu et al., CVPR 2024) is a one-stage real-time multi-person pose estimator that integrates coordinate classification into a YOLO-style architecture. This variant was trained on the **body7** composite dataset (COCO + AI Challenger + CrowdPose + MPII + sub-JHMDB + Halpe + PoseTrack18), producing a 17-keypoint COCO-schema skeleton.
27
+
28
+ The architecture has been re-implemented in pure PyTorch under `acaua.adapters.rtmo` — no `mmcv`, no `mmengine`, no `mmpose`, no `trust_remote_code`. The `model.safetensors` in this mirror is converted from the upstream `.pth` checkpoint to safetensors with the acaua adapter's state_dict key naming. It is NOT drop-in compatible with mmpose — weights are laid out to load cleanly into our `nn.Module` tree via `load_state_dict(strict=True)`.
29
+
30
+ ## Provenance
31
+
32
+ | | |
33
+ |---|---|
34
+ | Upstream code | [`open-mmlab/mmpose`](https://github.com/open-mmlab/mmpose) @ `759b39c13fea6ba094afc1fa932f51dc1b11cbf9` (Apache-2.0) |
35
+ | Upstream weights URL | `https://download.openmmlab.com/mmpose/v1/projects/rtmo/rtmo-s_8xb32-600e_body7-640x640-dac2bf74_20231211.pth` |
36
+ | Upstream weights SHA256 | `dac2bf749bbfb51e69ca577ca0327dff4433e3be9a56b782f0b7ef94fb45247e` |
37
+ | Conversion script | [`scripts/convert_rtmo.py`](https://github.com/CondadosAI/acaua/blob/main/scripts/convert_rtmo.py) |
38
+ | Paper | Lu et al., *"RTMO: Towards High-Performance One-Stage Real-Time Multi-Person Pose Estimation"*, CVPR 2024, arXiv:[2312.07526](https://arxiv.org/abs/2312.07526) |
39
+ | Mirrored on | 2026-04-22 |
40
+ | Mirrored by | [CondadosAI/acaua](https://github.com/CondadosAI/acaua) |
41
+
42
+ ## Usage
43
+
44
+ ```python
45
+ import acaua
46
+
47
+ model = acaua.Model.from_pretrained("CondadosAI/rtmo_s_body7")
48
+ result = model.predict("image.jpg")
49
+
50
+ # Result is a PoseResult with shape:
51
+ # result.boxes -> (N, 4) float32, xyxy
52
+ # result.labels -> (N,) int64 (person = 0)
53
+ # result.scores -> (N,) float32
54
+ # result.keypoints -> (N, 17, 2) float32, xy in image pixels
55
+ # result.keypoint_scores -> (N, 17) float32
56
+
57
+ # Skeleton edges + keypoint names live on the adapter:
58
+ import supervision as sv
59
+ kp = result.to_supervision()
60
+ sv.EdgeAnnotator(edges=model.skeleton).annotate(image, kp)
61
+ ```
62
+
63
+ ## Architecture
64
+
65
+ - **Backbone:** CSPDarknet (YOLOX-lineage), `widen_factor=0.5`, `deepen_factor=0.33`
66
+ - **Neck:** HybridEncoder (RT-DETR–style transformer encoder + FPN/PAN fusion), `hidden_dim=256`
67
+ - **Head:** RTMOHead with per-level YOLO-style box + visibility predictions and a Dynamic Coordinate Classifier (DCC) decoded via softmax expectation over `(192 × 256)` coordinate bins
68
+ - **Parameters:** ~9.87M
69
+ - **Input:** 640 × 640 letterboxed, RGB raw pixel values (no mean/std normalization per upstream `PoseDataPreprocessor`)
70
+
71
+ ## Reported performance (upstream)
72
+
73
+ | Variant | Dataset | COCO val AP | COCO val AR | V100 FPS |
74
+ |---|---|---|---|---|
75
+ | **RTMO-s** | **body7** | **68.6** | 74.3 | ~141 |
76
+
77
+ ## License and attribution
78
+
79
+ Redistributed under Apache-2.0, consistent with the upstream code and weights declarations. The acaua adapter is itself a derivative work of the upstream PyTorch implementation — see [`NOTICE`](./NOTICE) for the required attribution chain (code AND weights).
80
+
81
+ ## Citation
82
+
83
+ ```bibtex
84
+ @misc{lu2023rtmo,
85
+ title={{RTMO}: Towards High-Performance One-Stage Real-Time Multi-Person Pose Estimation},
86
+ author={Peng Lu and Tao Jiang and Yining Li and Xiangtai Li and Kai Chen and Wenming Yang},
87
+ year={2023},
88
+ eprint={2312.07526},
89
+ archivePrefix={arXiv},
90
+ primaryClass={cs.CV}
91
+ }
92
+ ```