Building an empty-room fingerprint
During a known-empty period (nights, scheduled away times, or initial setup), collect CSI for 5–30 minutes. Compute:- Mean amplitude profile per subcarrier:
- Variance envelope per subcarrier: typical fluctuation range when empty
- Phase reference (sanitized): mean phase structure after CFO/SFO removal
- Shape similarity (STI) — for each subcarrier, how much does the amplitude curve’s shape change when someone enters? Greedy subcarrier selection picks the most responsive frequencies. This is the FreeDetector / WiFree approach; WiFree reported 99.1% occupancy on building-scale deployments.
Sources of drift
Baselines go stale. Common causes:
Slow drift (temperature, seasonal) can be tracked with exponential moving averages on the baseline, adapting during confirmed-empty periods. Fast drift (furniture, doors) requires explicit re-baselining.
Scene-change detection
Before comparing live CSI to the baseline, check whether the baseline itself is still valid. Monitor the static channel profile over long empty windows:- If the mean amplitude profile shifts gradually while occupancy is declared empty, update the baseline slowly (adaptive tracking).
- If the profile shifts suddenly, trigger a scene-change event: someone moved furniture, or the node was bumped. Require explicit re-baselining before occupancy detection resumes.
Cross-site domain shift
Training a classifier or setting thresholds in Room A and deploying in Room B fails because the baseline fingerprint and the perturbation patterns are both environment-specific. This is not overfitting: it is a fundamental property of multipath channels. Cross-site strategies:- Per-site baseline (mandatory) — every deployment learns its own empty-room fingerprint.
- Per-site thresholds — deviation thresholds tuned on the target environment’s noise floor.
- Transfer kernel learning — WiFree used this for crowd counting across rooms (92.8% accuracy); less critical for binary occupancy.
- Roaming synthesis — CrossSense’s offline model translates source-site CSI into synthetic target-site training data from a small calibration set. Primarily for gesture/HAR, but the principle applies.
- Fine-tune feature extractors on 10–20 labeled examples from the target room.
When to re-baseline
- After furniture rearrangement — always.
- After node repositioning — always.
- After prolonged absence (vacation home, seasonal property) — recommended.
- When false-alarm rate increases without explanation — check baseline staleness first.
- Automatically — during scheduled known-empty windows (nights, business hours off), if occupancy has been clear for N hours.
Further reading
Sensing Pipeline
Preprocessing that stabilizes baselines before detection.
Occupancy Analytics
Aggregating stable occupancy signals into room-level metrics.
Detection Ladder
Scene change at rung 1: how the detection hierarchy handles baseline shifts.
