wifi-densepose/docs
rUv d9ca9b3684
research(R8): RSSI-only person count retains 95% of full-CSI accuracy (#703)
Builds directly on R5's band-spread observation. If the count-task
signal is spread across the WiFi band (R5: max/mean ratio 2.85× across
56 subcarriers), then RSSI — which is the integral of |H_k|^2 across
the band — keeps most of the information. The naive prior (RSSI throws
away 98% of CSI bytes) is misleading; the relevant metric is how much
of the *signal* is in the integral, not how many bytes are in the
representation.

Tested by aggregating each existing [56 × 20] CSI window down to a
[20]-vector RSSI proxy (mean across subcarriers per frame), training a
tiny MLP (Linear 20→32→8, 656 params, 5 KB) with vanilla NumPy SGD for
200 epochs on the same random 80/20 split as cog-person-count v0.0.2.

Result:

  Full CSI v0.0.2   62.3% accuracy
  RSSI-only (this)  59.1% accuracy   = 94.82% retained

Per-class is also markedly more *balanced* (RSSI: 59.5 / 58.6 ; full
CSI: 86.2 / 34.3) — the tiny model on a low-dim input can't cheat by
leaning on class 0 the way v0.0.2's larger model does at inference.

What this enables on a 10-year horizon: phones, laptops, smart
speakers, smart TVs, smart lights — anything with WiFi reports RSSI
and anything with a CPU can run a 656-param MLP. Person counting
becomes a federated property of any room with WiFi, not a property of
the ESP32-S3 fleet.

What this doesn't prove (called out explicitly in the research note):
- Single room, single operator, single 30-min recording
- 2-class problem (label distribution is {0, 1})
- Single random draw — needs K-fold + multi-room replication

Three follow-up experiments queued in R8-rssi-only-count.md §'What's
next on this thread':
- Multi-room replication once #645 lands
- 3-class extension (0 / 1 / 2+) — measure the info-rate cliff
- Run on a non-ESP32 RSSI source (e.g. iw event on Linux laptop)

Files:
* examples/research-sota/r8_rssi_only_count.py — pure-NumPy, no
  framework deps. Trains + evals in 0.72 s on CPU.
* examples/research-sota/r8_rssi_only_results.json — full JSON dump
  for cross-tick reproducibility.
* docs/research/sota-2026-05-22/R8-rssi-only-count.md — method,
  measured numbers, interpretation, what doesn't work yet.
* docs/research/sota-2026-05-22/PROGRESS.md — updated index + Done
  log.

Coordination note: horizon-tracker is working on tools/ruview-mcp/
+ tools/ruview-cli/ + ADR-104 — this commit deliberately stays out
of those paths.
2026-05-21 23:18:09 -04:00
..
adr docs(adr): ADR-103 — learned multi-person counter (SOTA path) (#693) 2026-05-21 18:28:18 -04:00
archtocode-visual-overview docs: add visual architecture overview images (#208) 2026-05-17 18:18:07 -04:00
benchmarks docs(bench): append v0.0.2 section to person-count benchmark log 2026-05-21 19:47:55 -04:00
ddd docs: rvCSI edge RF sensing platform — PRD, ADR-095, DDD domain model 2026-05-12 23:15:10 +00:00
edge-modules chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
huggingface fix(train): wire wifi-densepose-signal into the pipeline; correct MODEL_CARD env-sensor claim (#536) 2026-05-11 23:40:55 -04:00
prd docs: rvCSI edge RF sensing platform — PRD, ADR-095, DDD domain model 2026-05-12 23:15:10 +00:00
qe-reports chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
research research(R8): RSSI-only person count retains 95% of full-CSI accuracy (#703) 2026-05-21 23:18:09 -04:00
tutorials docs(tutorials): Pi 5 + Hailo cluster rvcsi tutorial (#546) 2026-05-17 17:41:39 -04:00
TROUBLESHOOTING.md fix(docker): UDP relay for multi-source ESP32 on Docker Desktop Windows (#502) 2026-05-17 18:01:44 -04:00
WITNESS-LOG-028.md chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
build-guide.md chore(repo): move v1/ → archive/v1/ + add archive/README.md (#430) 2026-04-25 23:07:52 -04:00
readme-details.md docs(readme): split details to docs/readme-details.md and reorganize 2026-04-29 19:34:24 -04:00
security-audit-wasm-edge-vendor.md chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00
user-guide.md docs: truth-up README + user-guide on Hugging Face model release (#637) 2026-05-19 13:03:54 -04:00
wifi-mat-user-guide.md chore(repo): rename rust-port/wifi-densepose-rs → v2/ (flatten to one level) (#427) 2026-04-25 21:28:13 -04:00