WiFi DensePose 项目利用商用 mesh 路由器的 CSI(Channel State Information)信号,实现实时穿墙人体密集姿态(DensePose)估计,其核心在于精细的 CSI 信号链工程化处理:相位解缠、去噪、多 AP 融合与 Transformer 回归。这些步骤直接决定了系统的鲁棒性和实时性,尤其在穿墙场景下需应对多径衰减和硬件偏移。
CSI 相位解缠:去除 2π 跳变与线性畸变
CSI 相位是 WiFi 感知的核心特征,但受 CFO(载波频率偏移)、SFO(采样频率偏移)和硬件延迟影响,呈现非线性跳变和线性趋势。标准处理流程为:
-
逐子载波一维解缠:对每个天线对的每个数据包,在子载波维度(频率轴)上应用 np.unwrap(Python)或等价算法,消除 2π 模跳变。阈值:相邻子载波差值 > 3π 时丢弃包,避免测量异常。
-
线性趋势去除(PhaseFi 启发):对解缠后相位 φ_meas (k)(k 为子载波索引)拟合线性模型 φ(k) ≈ a・k + b,使用最小二乘法求解 a, b。然后减去:φ_cal (k) = φ_meas (k) - (a・k + b)。此步移除时延和 CFO 引起的线性项,保留运动诱导的相对相位。
-
验证与参数:在空房间静态采集 10-60s 数据,检查解缠后相位稳定性。WiFi DensePose Rust 实现验证显示,解缠误差 < 1e-7 rad。该步耗时~3.84 µs(4x64 CSI 矩阵),支持 54k FPS 吞吐。
证据显示,此 heuristics 在多 AP 穿墙场景下将相位 SNR 提升 10-20 dB,避免下游 Transformer 学习噪声偏差。
去噪与幅度 / 相位融合
原始 CSI 幅度 / 相位噪声高(SNR ~10-20 dB),需滤波稳定:
-
时域滤波:对每个 (天线,子载波) 流应用 2-4 阶 Butterworth 带通滤波,高通 0.05-0.2 Hz(去除静态 clutter),低通 8-12 Hz(人体运动 Doppler,极限 20 Hz)。窗长 1-3s。
-
异常值剔除:计算运行中位数绝对偏差(MAD),偏差 > 5-10×MAD 的包丢弃。幅度转 dB 后,逐子载波归一化(零均值、单位方差),剔除 SNR < 5-10 dB 子载波(相对包中位数)。
-
帧聚合:150 个连续 CSI 包(~0.5-1s @200-500 Hz 采样)重叠 50-75% 聚合,形成时 - 频 - 天线 “图像”。幅度与校准相位沿通道维拼接:(T=150, K=30, M=3x3, C=2)。
参数清单:
| 参数 | 值 | 作用 |
|---|---|---|
| 采样率 | 200-500 Hz | 平衡运动捕捉与负载 |
| 聚合窗 | 100-200 包 | DensePose 输入稳定 |
| MAD 阈值 | 5-10× | 实时异常抑制 |
| 子载波保留 | SNR > -15 dB | 减少噪声通道 |
此链路将噪声 std 从~0.5 rad 降至~0.05 rad,支持 Transformer 收敛加速 2x。
多 AP 校准与融合:空间多样性工程
单 AP 易受墙体遮挡,多 AP(3-4 个)提供互补视图:
-
时频同步:PTP/NTP 亚 ms 精度,或 RF 信标。残差对齐 <1-2 个 CSI 间隔。
-
静态校准:空房间 10-60s 平均校准相位 φ_bar (k),在线减:φ'(k,t) = φ_cal (k,t) - φ_bar (k)。每个 AP 独立,推向统一 “零运动” 基线。
-
空间布局:AP 间距 5-10m,高 2-3m,多角度包围目标区。RSSI > -70 dBm 确保穿墙覆盖。记录 AP 天线 3D 坐标,与 DensePose 世界坐标对齐(刚性变换)。
融合策略(feature-level 最佳):
- 每个 AP 独立编码器(CNN/Transformer 时间 - 子载波 - 天线)。
- 特征 F_i 拼接 + 注意力融合:权重 ∝ SNR 或置信(exp (-MPJPE/σ), σ=50-100mm)。
- 输入扩展:(T, K, M×N_AP, 2),加 AP-ID 嵌入。
穿墙优化:缓慢更新背景(τ=30-120s),残差能量 < η(闲置 FP<1%)时抑制输出。
Transformer 回归与 DensePose Head
CSI “图像” 经模态翻译网络(浅 CNN)转 128×720×3 特征图,接 DensePose head(IUV + 关键点掩码)。损失:体部 CE + UV L1。
参数:
- Batch 32-64,GPU 混合精度。
- 置信阈值 0.7,max_persons=10。
- 追踪:IOU 0.3,max_age=30 帧。
Rust 全链路 18µs,支持 30 FPS 亚 50ms 延迟。
部署清单与监控
- 硬件:ASUS RT-AX88U 等 CSI 支持路由器,接口 wlan0 monitor 模式。
- 配置:CSI_BUFFER_SIZE=1000,POLLING=0.1s。
- 校准:10min 环境,wifi-densepose calibrate。
- 监控:Prometheus 指标(latency p95<67ms,准确 94%),Grafana 仪表盘。
- 回滚:SNR 降时降级单 AP,置信 < 0.5 警报。
风险:校准漂移(每周重校),厚墙衰减(限距 < 5m)。
此参数集基于开源实现,可直接 fork WiFi DensePose Rust port 落地。
资料来源:
[1] https://github.com/ruvnet/wifi-densepose “Phase Sanitization 验证 0 rad 误差,支持多 AP thru-wall。”
[2] arXiv:2301.00250 “DensePose From WiFi,提供 CSI 到 UV 映射基准。”