Environment

FIIT STU — same room as EXP-002, continuation of drift experiment

Executive summary

A Wi-Fi crowd-counting model is accurate on the day you install it and slowly goes wrong afterwards, because the radio "fingerprint" it learned depends on where the furniture and people usually are. This experiment is the thesis's proposed cure: instead of the expensive fix (re-collecting a big labelled dataset and retraining from scratch), run a short calibration campaign — 10 to 30 minutes where a handful of people carry a phone that broadcasts Bluetooth (BLE) beacons. The BLE gives a cheap, reliable head-count, so the system gets fresh labelled Wi-Fi data for free and gently fine-tunes the existing model back to health. The signature picture is a sawtooth: accuracy decays, a campaign snaps it back up, it decays again.

Stated honestly: this umbrella is a design, not a result. Nothing here has run on real hardware. The only executed piece is the sibling question — a synthetic study of when to trigger a recalibration (csi-recalibration-trigger) — which found a cross-modal Wi-Fi/BLE disagreement signal detects drift well (Spearman rho = 0.93, 95% CI [0.72, 1.0]) but that acting on it yields budget savings, not better accuracy (about a quarter of the recalibrations at matched error). Crucially, the umbrella's own central claim — a short BLE campaign restores accuracy to within 5% of Day 0 — has not been measured at all, not even in simulation. It is a hypothesis awaiting the IP-106 real capture. Read this card as a well-motivated plan under active scrutiny.

The problem, in plain words

Picture teaching a child "five coats on the rack means five people are here." They learn it perfectly in your living room. Now move the rack, add a mirror, push the sofa against a different wall — and the same five people look different to them. Wi-Fi crowd counting has exactly this weakness. The model learns "this pattern of signal distortion means five people," but the pattern is glued to the room's exact layout and the usual reflective surfaces. Rearrange things — or just let weeks pass as furniture, plants, and habits shift — and the model quietly drifts until its count is wrong. This is not a bug; it is a well-documented property of CSI sensing over time (brunello2025_d781; santos2024_1e39 ).

The blunt fix is to retrain: send someone to the room, count people by hand for hours, relabel, and rebuild the model. Accurate, but so expensive nobody does it on schedule — so the model stays broken. The thesis idea is to make relabelling cheap and frequent by borrowing the head-count from a second, independent radio: Bluetooth. BLE beacons on people's phones give a coarse but honest occupancy estimate (demrozi2021_bf55 ; longo2019_b72f). Feed those BLE-derived labels back to the Wi-Fi model in a short session and it can re-fit to today's room. The open questions this umbrella must answer: how short can the session be, how much accuracy comes back, and how often must you do it.

What we are trying to prove

  • Primary hypothesis (falsifiable): a 10–30 minute BLE-labelled campaign, used to fine-tune the last layers of an already-trained CSI counter, restores its accuracy to within 5% of Day 0. If a campaign of realistic length cannot claw back most of the lost accuracy, the whole "cheap periodic cure" premise fails and the honest recommendation becomes full retraining or a different sensor.
  • Secondary hypothesis: an event-driven trigger (recalibrate when Wi-Fi and BLE disagree) beats a fixed timer on error at equal cost. This is the sceptical claim, and the sibling sim already refutes the accuracy version of it — the payoff is fewer recalibrations, not lower error (see below).
  • What a null means: if fine-tuning on 10–30 minutes of BLE-labelled data does not recover accuracy, either the campaign is too short to contain the room's new variability, or fine-tuning on so little data causes catastrophic forgetting (the model over-fits the campaign and loses general skill). Both are real failure modes for continual adaptation of Wi-Fi sensors (wang2026_2758), and a null here is scientifically informative, not just disappointing.

How the experiment works (plain method)

  1. Start from a drifted model. Take a CSI counter trained on Day 0 and let it degrade in the real room (this is what EXP-002 / EXP-F2 measures). Record its pre-campaign accuracy on the last hour of data.
  2. Run a campaign. A phone app is told (over TCP/UDP) to enter "calibration mode": it raises its BLE advertising rate so occupancy is tracked tightly, and a few participants walk the room naturally for 10–30 minutes. The system logs CSI with BLE-derived head-counts as labels.
  3. Fine-tune, gently. Update only the last few layers of the model on the fresh labelled data, at a learning rate ~10x lower than original training and for only 5–10 epochs — deliberately weak, to re-fit the room without erasing what the model already knew. This is the standard few-shot / transfer recipe for wireless counting (hou2023_bf83; khan2023_b7c5).
  4. Measure recovery. Record post-campaign accuracy on the next hour. Recovery = post-campaign accuracy / Day 0 accuracy.
  5. Compare strategies as ablations on the same collected data (per the EXP-F2 reorganisation): Daily (10 min every working day), Weekly (30 min Mondays), Trigger (recalibrate when Wi-Fi and BLE counts diverge), Never (the frozen control). Then sweep campaign duration (5/10/15/30/60 min) to find the shortest session that still hits within-5%-of-Day-0.

What we've found so far — and what's still only planned

What has run is the trigger sub-experiment csi-recalibration-trigger on a synthetic corpus:

Question tested (in-silico only) Result Honest reading
Can a ground-truth-free signal detect prediction-relevant drift? cross-modal xmodal disagreement: Spearman rho = 0.93 [0.72, 1.0] vs true error; false-fires on error-irrelevant room change 5.6% Detection works — but on a self-authored corpus
Does triggering beat a fixed timer on accuracy? trigger error 0.407 vs fixed-cadence 0.399 at matched budget Refuted — fixed cadence is no worse
Does triggering save effort? 2.0 vs 8.0 estate-wide recalibrations The real win: about a quarter of the recalibrations at parity error

Two other campaigns are attached to the sibling card (c-ble-trigger-equivalence, c-csi-ble-condition-switch); their numbers are not reproduced here because they concern trigger equivalence/switching, not campaign recovery, and quoting them as recovery evidence would be misleading.

The plan (unexecuted). The umbrella becomes a real result only when: (a) a first-party BLE-calibrated CSI capture exists on AX210/Pi5 hardware (IP-106); (b) the recovery curve (accuracy vs campaign duration) is measured on that data, not assumed; and (c) forgetting is checked directly — does the fine-tuned model still count correctly on earlier conditions, or only on the campaign's? Until then, the sawtooth figure is an illustration of an expectation, not a finding.

Review panel

Each voice is a prepared expert with a one-line stance and the literature it argues from. Verdicts are about this experiment — a design with a refuted secondary claim and an untested primary claim — not the idea in the abstract.

Key references

  • brunello2025_d781 — real empirical evidence that CSI sensing drifts over time; the premise this whole cure targets.
  • santos2024_1e39 — environment/layout dependence of CSI crowd counting specifically.
  • hou2023_bf83, khan2023_b7c5 — the few-shot / transfer recipe the campaign fine-tuning inherits.
  • wang2026_2758, zhang2025_a250 — continual/online adaptation and its forgetting hazard.
  • demrozi2021_bf55 , longo2019_b72f, iannizzotto2025_b55c — BLE occupancy: the second modality's real-world basis and its noise.
  • angelopoulos2025_8070 — turning "within 5% of Day 0" into a statistically guaranteed bound.
  • guarino2026_e72c , zhang2026_ccac — the reproducibility bar for the eventual real capture.
  • huang2025_060d — a public real-CSI anchor for the red-team's cross-check demand.
  • koo2026_a08d — the "lightweight self-calibration without uploading data" vision this experiment operationalises.

Provenance

not recorded

Data types

  • csi-amplitude
  • csi-phase
  • ble-ground-truth
  • calibration-campaign-log
  • model-accuracy-before-after