mirror of
https://github.com/ruvnet/RuView.git
synced 2026-06-02 00:58:56 +02:00
ea62ec4667
@xiaofuchen's code audit in #568 was correct: the firmware's
`pkt.n_persons` is `s_top_k_count / 2` (clamped) — a subcarrier-slot
partition, not a learned classifier. The README's old wording
('Multi-person estimation', 'Presence sensing') reads stronger than
`edge_processing.c:481-548` actually supports. Same-direction fix as
commit bd4f81749 (which retracted the 92.9% PCK@20 claim because
ADR-079's eval phases are still Pending) and ADR-099 §D8 (which
honestly amended the 10× latency target because it's unreachable on
1-D scalar features).
Three things this commit changes:
1. **Headline-table 'Presence sensing' -> 'Presence indicator (heuristic)'.**
Adds an explicit caveat that strong RF interference can false-positive
without re-calibration, with a link to the detailed Tier-2 section.
The marketing word 'sensing' implied a classifier; the code is a
variance threshold.
2. **Tier-2 bullet 'Multi-person estimation' -> 'Multi-person slot count'.**
Now reads:
'partitions the top-K subcarriers into top_k / 2 groups (clamped to
[1, EDGE_MAX_PERSONS]), computes per-group filtered breathing/heart-
rate estimates, and reports the slot count as pkt.n_persons. This
is a slot-capacity heuristic, not a learned counter — the reported
count tracks subcarrier diversity, not actual occupancy.'
Links directly to `main/edge_processing.c:481-548` so the user can
verify the claim against the code.
3. **New 'What this firmware does NOT do (Tier 2 caveats)' subsection.**
Three explicit non-claims:
- No trained neural model on the ESP32 — the person count is
arithmetic, not inference.
- No pose estimation on the ESP32; pose comes from the host's Rust
server, and only runs learned inference when --model <rvf-file> is
passed. Without a trained model, the host runs signal-based
heuristics, not keypoint inference. Same point as #509 / #506.
- Presence indicator false-positives under fans/microwaves/AP TX
swings without re-running the 60 s ambient calibration. Notes the
concrete remedy (power-cycle in an empty room).
Closes #568.