WiFi DensePose 项目提供了一个纯 Rust 实现的信号处理管道,将商用 WiFi 的 Channel State Information (CSI) 信号转化为实时人体姿态估计、生命体征监测(心率 HR 和呼吸率 RR)以及低计算量的存在检测能力。该技术无需摄像头、无需可穿戴设备,仅依赖 WiFi 信号的多径传播特性,通过幅度 / 相位扰动回归人体表面 UV 坐标和生理信号周期,特别适用于隐私优先的场景如老人监护、医院病房和灾难救援。
Rust 管道的核心架构与性能优势
Rust 管道从 CSI 采集到输出端到端优化,实现了 54K fps 的处理吞吐量,远超 Python 基线 810 倍加速。这得益于 SIMD 加速的信号处理和无外部依赖的 NN 推理栈。“CSI subcarrier amplitude/phase → DensePose UV maps | 54K fps (Rust)”
证据与实现路径:
- CSI 采集层:支持 ESP32-S3 mesh(20 Hz,56-192 子载波)或 Intel 5300 NIC。UDP 端口 5005 流式传输二进制帧,解析 I/Q → 幅度 / 相位。
- 预处理链:SpotFi 共轭乘法消除载波偏移(CFO/SFO),Hampel 滤波器(MAD σ=1.4826×3)剔除异常,相位展开避免 2π 跳变。子载波选择:方差比 top-K(提升 SNR 6-10 dB)。
- 特征提取:STFT 谱图(滑动窗 FFT),Fresnel 区几何建模(ΔΦ = 2π × 2Δd / λ),BVP 体速度剖面(注意力加权 Doppler)。
可落地参数与清单:
| 阶段 | 参数 | 值 | 作用 |
|---|---|---|---|
| 采集 | 采样率 | 20 Hz | 捕获微动 |
| 预处理 | Hampel k | 3 | 异常阈值 |
| 子载波 | K | 10-20 | 敏感选择 |
| 谱图 | 窗长 | 256 | 时间 - 频分辨 |
部署清单:
- Docker 拉取:
docker pull ruvnet/wifi-densepose:latest(132 MB)。 - 运行:
docker run -p 3000:3000 -p 3001:3001 -p 5005:5005/udp ruvnet/wifi-densepose:latest。 - 硬件:3-6x ESP32-S3($54),provision SSID / 密码。
- 验证:
curl http://localhost:3000/api/v1/sensing/latest。
生命体征提取:频域回归与置信融合
管道针对胸腔微动设计 bandpass + FFT 峰值检测,实现非接触 HR/RR 监测。“Breathing detection | Bandpass 0.1-0.5 Hz → FFT peak | 6-30 BPM”
证据:
- 呼吸:0.1-0.5 Hz 带通(胸移 5-10mm),FFT 峰检测,置信 = 谱相干度。
- 心率:0.8-2.0 Hz 带通,微 Doppler 提取,融合姿势限制静止主体。
- 多人体:独立子载波分配(~3-5/AP),物理限由多径分辨。
工程参数:
| 体征 | 频段 (Hz) | FFT 窗 | 峰阈值 | 置信阈值 |
|---|---|---|---|---|
| RR | 0.1-0.5 | 128 | -10 dB | >0.7 |
| HR | 0.8-2.0 | 256 | -15 dB | >0.6 |
监控要点:
- API:
/api/v1/vital-signs轮询 BPM + 置信。 - WS:
ws://localhost:3001/ws/sensing实时流。 - 告警:RR <6 或>30 BPM 触发;融合姿势跌倒检测(<2s)。
回滚策略:若置信 < 0.5,fallback RSSI variance。
存在检测:低开销运动功率谱
存在检测无需全 CSI,仅 RSSI 方差 + 运动带功率,延迟 <1ms。即使消费 WiFi 笔记本,也支持粗粒度监测。“Presence sensing | RSSI variance + motion band power | < 1ms latency”
证据与参数:
- 方差阈值:自适应(3σ 基线)。
- 运动带:1-2 Hz 功率 > 阈值(动态学习 10min)。
- 通过墙:Fresnel + 多径,深度至 5m。
清单:
- 源:
--source wifi(Windows/Linux)。 - 输出:
/api/v1/sensingoccupancy 计数。 - 扩展:多 AP 线性(4 AP ~15-20 人)。
风险与限界:
- 非 CSI 硬件:仅 RSSI,精度降至粗存在,无姿势 / 体征。
- 干扰:多径 null 区盲点,解:mesh 部署冗余 AP。
- 计算:ESP32 仅 55KB 模型(int4 量化),边缘友好。
高级扩展:自学习与灾难模式
自学习 WiFi AI 生成 128 维环境指纹,支持异常入侵检测。WiFi-Mat 模式:通过瓦砾呼吸签名 + START 分级(Red/Yellow/Green/Black)。
部署参数:
- 指纹:
--embed,HNSW 索引搜索。 - MAT:
DisasterConfig::sensitivity(0.85),穿 30cm 混凝土。
该管道在实际中证明了 WiFi 感知的工程可行性,结合 Docker 和 Rust 的零依赖特性,便于从原型到生产。
资料来源:
- GitHub: ruvnet/wifi-densepose
- arXiv:2301.00250 (DensePose From WiFi)