@@ -96,6 +96,49 @@ node scripts/mincut-person-counter.js --port 5006 # Correct person counting
9696>
9797---
9898
99+ ### What's New in v0.7.0
100+
101+ <details open >
102+ <summary ><strong >Camera Ground-Truth Training — 92.9% PCK@20</strong ></summary >
103+
104+ ** v0.7.0 adds camera-supervised pose training** using MediaPipe + real ESP32 CSI data:
105+
106+ | Capability | What it does | ADR |
107+ | -----------| -------------| -----|
108+ | ** Camera ground-truth collection** | MediaPipe PoseLandmarker captures 17 COCO keypoints at 30fps, synced with ESP32 CSI | [ ADR-079] ( docs/adr/ADR-079-camera-ground-truth-training.md ) |
109+ | ** ruvector subcarrier selection** | Variance-based top-K reduces input by 50% (70→35 subcarriers) | ADR-079 O6 |
110+ | ** Stoer-Wagner min-cut** | Person-specific subcarrier cluster separation for multi-person training | ADR-079 O8 |
111+ | ** Scalable WiFlow model** | 4 presets: lite (189K) → small (474K) → medium (800K) → full (7.7M params) | ADR-079 |
112+
113+ ``` bash
114+ # Collect ground truth (camera + ESP32 simultaneously)
115+ python scripts/collect-ground-truth.py --duration 300 --preview
116+ python scripts/record-csi-udp.py --duration 300
117+
118+ # Align CSI windows with camera keypoints
119+ node scripts/align-ground-truth.js --gt data/ground-truth/* .jsonl --csi data/recordings/* .csi.jsonl
120+
121+ # Train WiFlow model (start lite, scale up as data grows)
122+ node scripts/train-wiflow-supervised.js --data data/paired/* .jsonl --scale lite
123+
124+ # Evaluate
125+ node scripts/eval-wiflow.js --model models/wiflow-real/wiflow-v1.json --data data/paired/* .jsonl
126+ ```
127+
128+ ** Result: 92.9% PCK@20** from a 5-minute data collection session with one ESP32-S3 and one webcam.
129+
130+ | Metric | Before (proxy) | After (camera-supervised) |
131+ | --------| ----------------| --------------------------|
132+ | PCK@20 | 0% | ** 92.9%** |
133+ | Eval loss | 0.700 | ** 0.082** |
134+ | Bone constraint | N/A | ** 0.008** |
135+ | Training time | N/A | ** 19 minutes** |
136+ | Model size | N/A | ** 974 KB** |
137+
138+ Pre-trained model: [ HuggingFace ruv/ruview/wiflow-v1] ( https://huggingface.co/ruv/ruview )
139+
140+ </details >
141+
99142### Pre-Trained Models (v0.6.0) — No Training Required
100143
101144<details open >
@@ -175,49 +218,6 @@ All scripts support `--replay data/recordings/*.csi.jsonl` for offline analysis
175218
176219</details >
177220
178- ### What's New in v0.7.0
179-
180- <details open >
181- <summary ><strong >Camera Ground-Truth Training — 92.9% PCK@20</strong ></summary >
182-
183- ** v0.7.0 adds camera-supervised pose training** using MediaPipe + real ESP32 CSI data:
184-
185- | Capability | What it does | ADR |
186- | -----------| -------------| -----|
187- | ** Camera ground-truth collection** | MediaPipe PoseLandmarker captures 17 COCO keypoints at 30fps, synced with ESP32 CSI | [ ADR-079] ( docs/adr/ADR-079-camera-ground-truth-training.md ) |
188- | ** ruvector subcarrier selection** | Variance-based top-K reduces input by 50% (70→35 subcarriers) | ADR-079 O6 |
189- | ** Stoer-Wagner min-cut** | Person-specific subcarrier cluster separation for multi-person training | ADR-079 O8 |
190- | ** Scalable WiFlow model** | 4 presets: lite (189K) → small (474K) → medium (800K) → full (7.7M params) | ADR-079 |
191-
192- ``` bash
193- # Collect ground truth (camera + ESP32 simultaneously)
194- python scripts/collect-ground-truth.py --duration 300 --preview
195- python scripts/record-csi-udp.py --duration 300
196-
197- # Align CSI windows with camera keypoints
198- node scripts/align-ground-truth.js --gt data/ground-truth/* .jsonl --csi data/recordings/* .csi.jsonl
199-
200- # Train WiFlow model (start lite, scale up as data grows)
201- node scripts/train-wiflow-supervised.js --data data/paired/* .jsonl --scale lite
202-
203- # Evaluate
204- node scripts/eval-wiflow.js --model models/wiflow-real/wiflow-v1.json --data data/paired/* .jsonl
205- ```
206-
207- ** Result: 92.9% PCK@20** from a 5-minute data collection session with one ESP32-S3 and one webcam.
208-
209- | Metric | Before (proxy) | After (camera-supervised) |
210- | --------| ----------------| --------------------------|
211- | PCK@20 | 0% | ** 92.9%** |
212- | Eval loss | 0.700 | ** 0.082** |
213- | Bone constraint | N/A | ** 0.008** |
214- | Training time | N/A | ** 19 minutes** |
215- | Model size | N/A | ** 974 KB** |
216-
217- Pre-trained model: [ HuggingFace ruv/ruview/wiflow-v1] ( https://huggingface.co/ruv/ruview )
218-
219- </details >
220-
221221### What's New in v0.5.5
222222
223223<details >
0 commit comments