Files
ruvnet--RuView/examples/research-sota/r8_rssi_only_results.json
T
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

239 lines
5.6 KiB
JSON

{
"method": "RSSI-proxy band-mean amplitude over 20-frame window",
"input_dim": 20,
"architecture": "MLP(20 \u2192 32 \u2192 8) ReLU + softmax, vanilla SGD",
"epochs": 200,
"train_time_s": 0.717573200003244,
"n_train": 862,
"n_eval": 215,
"label_distribution_train": {
"1": 445,
"0": 417
},
"label_distribution_eval": {
"0": 116,
"1": 99
},
"final_eval_acc": 0.5906976744186047,
"best_eval_acc": 0.5906976744186047,
"per_class_accuracy": {
"0": {
"support": 116,
"accuracy": 0.5948275862068966
},
"1": {
"support": 99,
"accuracy": 0.5858585858585859
}
},
"full_csi_baseline": {
"version": "cog-person-count v0.0.2",
"overall_acc": 0.623,
"class0_acc": 0.862,
"class1_acc": 0.343,
"source": "docs/benchmarks/person-count-cog.md"
},
"retained_fraction": 0.9481503602224793,
"eval_acc_curve": [
0.3395348837209302,
0.4604651162790698,
0.4744186046511628,
0.5116279069767442,
0.5534883720930233,
0.5395348837209303,
0.5441860465116279,
0.5302325581395348,
0.5255813953488372,
0.5348837209302325,
0.5395348837209303,
0.5395348837209303,
0.5534883720930233,
0.5534883720930233,
0.5488372093023256,
0.5441860465116279,
0.5627906976744186,
0.5674418604651162,
0.5441860465116279,
0.5581395348837209,
0.5534883720930233,
0.5581395348837209,
0.5534883720930233,
0.5488372093023256,
0.5627906976744186,
0.5488372093023256,
0.5488372093023256,
0.5441860465116279,
0.586046511627907,
0.5534883720930233,
0.5441860465116279,
0.5395348837209303,
0.5534883720930233,
0.5581395348837209,
0.5534883720930233,
0.5534883720930233,
0.5441860465116279,
0.5813953488372093,
0.5534883720930233,
0.5488372093023256,
0.5534883720930233,
0.5581395348837209,
0.5767441860465117,
0.5581395348837209,
0.5534883720930233,
0.5627906976744186,
0.5906976744186047,
0.5906976744186047,
0.5581395348837209,
0.5674418604651162,
0.5581395348837209,
0.5581395348837209,
0.5534883720930233,
0.5627906976744186,
0.5627906976744186,
0.5581395348837209,
0.5813953488372093,
0.5627906976744186,
0.5581395348837209,
0.5720930232558139,
0.5627906976744186,
0.5581395348837209,
0.5627906976744186,
0.5581395348837209,
0.5627906976744186,
0.5581395348837209,
0.5581395348837209,
0.5674418604651162,
0.5627906976744186,
0.5627906976744186,
0.5581395348837209,
0.5581395348837209,
0.5581395348837209,
0.5581395348837209,
0.5627906976744186,
0.5534883720930233,
0.5581395348837209,
0.5674418604651162,
0.5534883720930233,
0.5534883720930233,
0.5534883720930233,
0.5581395348837209,
0.5581395348837209,
0.5767441860465117,
0.5627906976744186,
0.5720930232558139,
0.5534883720930233,
0.5488372093023256,
0.5534883720930233,
0.5534883720930233,
0.5767441860465117,
0.5534883720930233,
0.5534883720930233,
0.5534883720930233,
0.5720930232558139,
0.5534883720930233,
0.5627906976744186,
0.5627906976744186,
0.5534883720930233,
0.5534883720930233,
0.5581395348837209,
0.5581395348837209,
0.5627906976744186,
0.5581395348837209,
0.5534883720930233,
0.5674418604651162,
0.5488372093023256,
0.5581395348837209,
0.5581395348837209,
0.5488372093023256,
0.5488372093023256,
0.5488372093023256,
0.5395348837209303,
0.5627906976744186,
0.5441860465116279,
0.5581395348837209,
0.5581395348837209,
0.5441860465116279,
0.5627906976744186,
0.5534883720930233,
0.5534883720930233,
0.5627906976744186,
0.5674418604651162,
0.5348837209302325,
0.5534883720930233,
0.5441860465116279,
0.5534883720930233,
0.5534883720930233,
0.5581395348837209,
0.5581395348837209,
0.5581395348837209,
0.5488372093023256,
0.5534883720930233,
0.5488372093023256,
0.5488372093023256,
0.5441860465116279,
0.5441860465116279,
0.5534883720930233,
0.5720930232558139,
0.5441860465116279,
0.5488372093023256,
0.5674418604651162,
0.5488372093023256,
0.5534883720930233,
0.5674418604651162,
0.5720930232558139,
0.5441860465116279,
0.5627906976744186,
0.5627906976744186,
0.5534883720930233,
0.5627906976744186,
0.5627906976744186,
0.5581395348837209,
0.5488372093023256,
0.5395348837209303,
0.5581395348837209,
0.5627906976744186,
0.5534883720930233,
0.5581395348837209,
0.5441860465116279,
0.5720930232558139,
0.5488372093023256,
0.5627906976744186,
0.5627906976744186,
0.5534883720930233,
0.5627906976744186,
0.5534883720930233,
0.5627906976744186,
0.5674418604651162,
0.5627906976744186,
0.5627906976744186,
0.5674418604651162,
0.5674418604651162,
0.5581395348837209,
0.5674418604651162,
0.5674418604651162,
0.5627906976744186,
0.5581395348837209,
0.5627906976744186,
0.5674418604651162,
0.5627906976744186,
0.5581395348837209,
0.5674418604651162,
0.5534883720930233,
0.5488372093023256,
0.5581395348837209,
0.5674418604651162,
0.5627906976744186,
0.5627906976744186,
0.5581395348837209,
0.5581395348837209,
0.5674418604651162,
0.5488372093023256,
0.5674418604651162,
0.5674418604651162,
0.5534883720930233,
0.5627906976744186,
0.5627906976744186,
0.5627906976744186,
0.5674418604651162
]
}