Hotdry.

Article

WiFi CSI 感知流水线解析:从 ESP32-S3 到人体姿态估计的工程实践

深度解析基于 ESP32-S3 的 WiFi CSI 采集架构,剖析信号处理流水线与神经网络推理的工程化参数。

2026-04-19ai-systems

当我们讨论人体姿态估计时,摄像头方案几乎成为默认选择,然而隐私敏感场景、黑暗环境、穿墙感知等需求正在催生全新的技术路线。WiFi 信道状态信息(CSI)感知便是在这一背景下兴起 —— 它利用无线信号在空间中传播时被人体反射和散射产生的微小变化,重建人体姿态与生命体征,整个过程不依赖任何光学传感器。RuView 项目将这一理论变为可部署的消费级方案,其基于 ESP32-S3 的硬件流水线尤为值得深入剖析。

CSI 采集的硬件基础

ESP32-S3 成为 WiFi 感知领域的标志性选择,核心在于其原生的 CSI 采集能力。与传统 RSSI(接收信号强度)仅能反映信号强弱不同,CSI 携带了每个子载波的幅度与相位信息。在 20 MHz 带宽模式下,ESP32-S3 能够以每秒 28.5 帧的速率输出 56 个子载波的复数数据,这相当于在每个采样时刻获得了 112 个维度(幅度加相位)的信号特征向量。

硬件层面的关键参数包括:ESP32-S3 开发板成本约 9 美元,需配备 8 MB Flash 以存储固件和模型;CSI 帧率在 802.11n 模式下可达 28.5 Hz,在 802.11ax 模式下可提升至更高;每个 CSI 帧包含 64/128/192 个子载波,具体取决于 WiFi 模式配置。固件通过 UDP 协议将数据推送至主机,延迟控制在本地网络下低于 1 毫秒。

值得注意的是,ESP32-C3 和初代 ESP32 不被支持,原因在于单核处理器无法满足 CSI 数字信号处理(DSP)的算力需求。官方推荐的最小部署配置为单节点 ESP32-S3 加上一台运行 sensing-server 的主机,若追求更好的空间分辨率,建议部署 2 个以上节点或额外配置 Cognitum Seed。

信号处理流水线的六个阶段

从原始 CSI 数据到可供神经网络推理的特征向量,RuView 实现了一套包含六个阶段的信号处理流水线,每个阶段针对特定的物理效应和噪声进行补偿。

第一阶段为相位清理(Phase Sanitization)。CSI 原始相位受载波频率偏移(CFO)、采样频率偏移(SFO)以及分组检测延迟的严重影响。SpotFi 算法通过共轭乘法消除这些系统性偏差:对于两天线接收的信号 H₁[k] 与 H₂[k],计算 CSI_ratio [k] = H₁[k] × conj (H₂[k]) 即可抵消公共相位噪声,保留仅由人体运动引起的相位差异。

第二阶段为异常值剔除(Hampel Filtering)。传统 Z-score 方法使用均值和标准差检测异常值,但当数据中异常值占比超过 50% 时,均值和标准差本身已被污染,形成 “掩蔽效应”。Hampel 滤波器采用中位数和绝对中位差(MAD)作为鲁棒统计量,公式中的比例因子 1.4826 确保了在高异常值比例下仍能准确估计标准差。

第三阶段为子载波选择(Subcarrier Selection)。并非所有子载波对人体运动同等敏感 —— 某些子载波恰好处于多径 null 点,几乎不携带任何运动信息。RuView 采用基于方差的敏感度排名,选取 motion_variance /static_variance 比值最高的 Top-K 子载波。实测表明,选择 10 到 20 个最敏感子载波可将信噪比提升 6 到 10 dB。

第四阶段为时频分析(STFT Spectrogram)。将滑动窗口 FFT 应用于每个子载波的时间序列,产生二维时频矩阵。呼吸信号的特征频段为 0.1 至 0.5 Hz,步行周期约为 1 至 2 Hz,环境噪声则通常分布在更高频率。这种二维结构使后续的 CNN 能识别空间模式,而这是单一时间序列特征无法捕捉的。

第五阶段为菲涅尔区建模(Fresnel Zone Model)。Zero-crossing 计数法在多径丰富的环境中表现不佳,FarSense 提出的菲涅尔区模型从几何角度预测呼吸信号的出现位置。当人体胸廓位移穿过菲涅尔区边界时,信号幅度呈现正弦形包络,公式 ΔΦ = 2π × 2Δd / λ 描述了相位变化与路径差的关系,其中 λ 为信号波长(约 5 GHz 下 6 厘米),Δd 为胸廓位移。

第六阶段为人体速度轮廓(Body Velocity Profile, BVP)。Widar 3.0 提出的 BVP 是域无关的特征 —— 同一速度分布无论房间布局、家具位置或 AP 放置方式如何都保持一致,这为跨环境泛化提供了物理基础。BVP 通过对多子载波 Doppler 频移进行加权聚合得到。

神经网络推理:从特征到 17 关键点

经上述流水线处理的 CSI 特征被送入 WiFlow 神经网络模型。该模型架构为图 transformer 加上交叉注意力机制,处理 17 个 COCO 人体关键点(鼻子、双眼、双耳、双肩、双肘、双腕、双髋、双膝、双踝)的回归任务。

模型提供四个规模预设:lite(189K 参数)、small(474K 参数)、medium(800K 参数)和 full(7.7M 参数)。在 Apple M4 Pro 上的基准测试显示,推理延迟仅为 0.008 毫秒,吞吐量达 164,183 个嵌入每秒。这意味着单个 Mac Mini 能同时处理超过 1600 个 ESP32 节点的数据。

v0.7.0 版本引入的相机辅助训练(Camera-Supervised Training)将 PCK@20 指标从 0% 提升至 92.9%。训练流程使用 MediaPipe 同步采集 17 个 COCO 关键点与 ESP32 CSI 数据,随后进行特征对齐和模型微调。整个过程在笔记本上仅需约 19 分钟即可完成。

边缘部署的关键参数

若将系统部署至边缘设备,需关注以下工程参数。模型量化方面,4-bit 量化后的模型大小仅 8 KB,可完整容纳于 ESP32-S3 的 SRAM 中;2-bit 量化更可压缩至 4 KB,适用于极端内存约束场景。边缘推理层级(Edge Tier)可通过 provisioning 工具配置:Tier 0 为关闭状态,仅传输原始 CSI;Tier 1 在设备端完成信号清理和压缩,可节省 30% 到 50% 带宽;Tier 2 进一步执行存在检测、呼吸心率测量和跌倒判别;Tier 3 支持加载自定义 WASM 模块。

多节点组网采用 TDM(时分复用)协议,节点在 1、6、11 频道间自动跳转以扩展感知带宽。4 个 ESP32-S3 节点(总价约 48 美元)可构建 12 条 TX-RX 测量链路,实现 360 度空间覆盖和亚英寸级定位精度。

应用场景与工程权衡

该技术栈的核心优势在于穿墙感知能力 ——WiFi 信号可穿透混凝土、木材、石膏板等非金属材质,这在养老院看护、应急救援等场景中具有独特价值。隐私层面,系统完全不采集任何图像或视频,天然规避 GDPR 和 HIPAA 中关于视频监控的合规要求。

然而工程实现也存在局限:单 AP 条件下可区分约 3 到 5 人(受限于 56 子载波数量);呼吸检测在 3 米范围内信噪比超过 10 dB,但距离增加后急剧下降;穿墙深度官方标称为 5 米,实际受墙体材质和信号频率影响显著。

小结

RuView 展示了一条从消费级硬件到人体感知的技术路径:ESP32-S3 以 28.5 Hz 采样 56 个子载波,经六阶段信号处理(相位清理、异常值剔除、子载波选择、时频分析、菲涅尔建模、人体速度轮廓)后进入神经网络推理,最终输出 17 个 COCO 关键点。部署层面,4-bit 量化模型 8 KB 即可在边缘端运行推理,单节点成本不足 10 美元。这条流水线为隐私敏感场景下的实时人体感知提供了可复用的工程参考。

资料来源:GitHub ruvnet/RuView 项目文档(https://github.com/ruvnet/RuView)

ai-systems