WiFlow v1 — Camera-Supervised WiFi Pose Estimation
First WiFlow model trained on real ESP32 CSI + real camera ground truth.
Headline Result
| Metric | Value |
|---|---|
| PCK@20 | 92.9% |
| Eval loss | 0.082 |
| Bone constraint | 0.008 |
| Parameters | 186,946 |
| Model size | 974 KB |
| Training time | 19 minutes |
What's New
Camera Ground-Truth Pipeline (ADR-079)
collect-ground-truth.py— MediaPipe webcam capture synced with CSIalign-ground-truth.js— Nanosecond time alignmenttrain-wiflow-supervised.js— 3-phase curriculum trainingeval-wiflow.js— PCK/MPJPE evaluationrecord-csi-udp.py— Lightweight ESP32 CSI recorder
ruvector Optimizations
- O6: Subcarrier selection (70→35, 50% reduction)
- O7: Attention-weighted subcarriers
- O8: Stoer-Wagner min-cut person separation
- O9: Multi-SPSA gradient estimation
- O10: Scalable model (lite/small/medium/full)
Data Collection
- ESP32-S3 CSI: 7,000 frames at 23fps (5 min)
- Mac Mini M4 Pro camera: 6,470 frames via MediaPipe (5 min)
- 345 time-aligned paired samples
Model Archive Contents
wiflow-v1.json— Trained model weights (974 KB)training-log.json— Loss curves per phasebaseline-report.json— Pre-training baseline metricsMODEL_CARD.md— Model documentation
How to Use
# Collect your own ground truth
python scripts/collect-ground-truth.py --duration 300 --preview
python scripts/record-csi-udp.py --duration 300
# Train
node scripts/train-wiflow-supervised.js --data data/paired/your-data.jsonl --scale lite
# Evaluate
node scripts/eval-wiflow.js --model models/wiflow-real/wiflow-v1.json --data data/paired/your-data.jsonlRelated
- PR #363: Camera ground-truth training pipeline
- ADR-079: Camera Ground-Truth Training Pipeline
- ADR-072: WiFlow Architecture