在智能家居与医疗健康监测领域,传统的摄像头方案始终面临隐私泄露的质疑。无论是卧室、病房还是养老机构,安装摄像头都会让使用者产生被监视的不适感。RuView 项目提供了一种替代方案:利用空间中无处不在的 WiFi 信号,无需任何摄像头或可穿戴设备,即可实时检测人体呼吸、心率以及存在感知。其核心区别在于,RuView 既支持高精度的 CSI(Channel State Information)信号,也支持基于普通 RSSI(Received Signal Strength Indicator)的轻量级部署,后者仅需一块九美元的 ESP32-S3 开发板即可实现。
RSSI 与 CSI 的技术差异
理解这两种信号类型的差异,是选择合适部署方案的前提。RSSI 是接收端对整个数据包强度的粗略度量,通常以 dBm 为单位,典型范围在 -30 dBm(距离很近)到 -90 dBm(信号微弱)之间。RSSI 只能反映信号的整体强弱,无法区分多径效应与环境变化,噪声较大,但在任何支持 WiFi 的设备上都可以直接读取,无需特殊驱动或固件修改。与之对应,CSI 是物理层提供的细粒度信息,包含每个子载波的幅度与相位数据。以常见的 20 MHz 带宽为例,802.11n 标准下有 56 个子载波,802.11ac 可达 114 个甚至更多。CSI 能够捕捉到毫米级的胸部起伏带来的相位变化,因此更适合精确的姿态估计与生命体征监测。
从技术实现角度,RSSI 数据的获取几乎没有门槛。Windows、macOS 和 Linux 系统均提供标准接口,开发者可以使用 Python 的 Scapy 库或系统原生的网络管理接口轮询信号强度,数据速率通常受限于操作系统扫描间隔,一般为一秒数次。而 CSI 数据需要特殊的硬件与固件支持。Intel 5300 网卡刷入修改驱动、ESP32-S3 开发板刷入定制固件、或者专业的 Atheros AR9580 网卡配合 Linux ath9k 补丁,都是常见的获取途径。ESP32-S3 方案成本最低,约九美元即可搭建一个完整的 CSI 采集节点,但需要额外的固件烧录与 provisioning 步骤。
呼吸与心率检测的信号处理原理
人体呼吸时,胸部会以每分钟六至三十次的频率(约 0.1 至 0.5 Hz)起伏;心率则对应每分钟四十至一百二十次(约 0.8 至 2.0 Hz)。这两种生理活动都会对 WiFi 信号产生调制,但幅度与频率特性截然不同。呼吸导致的胸部位移通常在四至十二毫米之间,产生的信号变化相对较大但缓慢;心跳产生的躯体微动更为微弱,幅度通常在一毫米以下,频率却更高。从频域角度看,呼吸信号集中于低频段,心率信号则位于稍高的频段,这一差异使得通过带通滤波分离成为可能。
完整的信号处理流水线通常包含以下阶段。首先是数据采集,ESP32-S3 以每秒二十次的频率通过 UDP 协议将 CSI 帧发送至服务器(或本地处理),每个帧包含五十六个子载波的复数值。其次是相位清洗,原始 CSI 相位容易受到载波频率偏移与采样定时偏移的污染,采用共轭乘法(Conjugate Multiplication)消除天线对之间的相位偏差是标准做法,对应 SpotFi 算法的核心步骤。随后是异常值剔除,Hampel 滤波器利用中位数与绝对偏差中位数(MAD)而非均值与标准差,能够在高达百分之五十数据污染的情况下保持稳健。完成清洗后,进入子载波选择阶段,并非所有子载波对生命体征敏感,部分子载波可能处于多径_null 点,选择方差比最高的十至二十个子载波可以将信噪比提升六至十 dB。
带通滤波是分离呼吸与心率的关键环节。呼吸信号对应 0.1-0.5 Hz 频段,心率信号对应 0.8-2.0 Hz 频段。FIR 滤波器设计需要兼顾过渡带宽度与相位线性,避免信号失真。完成滤波后,对时域信号进行快速傅里叶变换(FFT),在对应频段内搜索峰值即可得到呼吸率与心率估计值。值得注意的是,心率检测的难度显著高于呼吸检测,因为心跳信号的幅度通常比呼吸信号低一到两个数量级,且更容易被环境噪声掩盖。Fresnel 区模型在此处发挥作用 —— 它根据发射端、人体、接收端的几何关系预测呼吸信号应当出现的相位变化位置,帮助在多径丰富的环境中定位真实的人体信号。
部署参数与硬件选型
针对不同的应用场景,RuView 提供了明确的硬件配置建议。基础的生命体征监测仅需一块 ESP32-S3 开发板,售价约九美元,配合开源的固件即可实现呼吸与心率检测。若追求更高的空间分辨率与多房间覆盖,建议部署三至六个节点组成 mesh 网络,节点之间通过 TDM(时分复用)协议协调传输,总成本约为五十四美元。多节点配置不仅能消除单节点的盲点,还能通过多视角数据融合提升检测精度,尤其在有多人共处一室时,Stoer-Wagner 最小割算法能够有效分离不同个体的信号。
部署距离方面,官方标称的可信赖检测范围约为三米,在穿透一堵砖墙后仍能维持可用的信号质量。Esp32 的 CSI 帧率在 20 Hz 左右,足以满足呼吸与心率的奈奎斯特采样要求(心率上限 2 Hz,采样率需大于 4 Hz)。若需更远的穿透距离,例如搜索与救援场景下穿透三十厘米混凝土,WiFi 信号相比毫米波仍具有一定的绕射优势,但检测精度会显著下降,需要配合多节点协同与更长的积分时间。
关于检测阈值的设定,RuView 在官方文档中给出了以下参考:呼吸率检测范围为六至三十 BPM,对应 0.1-0.5 Hz 频段;心率检测范围为四十至一百二十 BPM,对应 0.8-2.0 Hz 频段。置信度分数介于 0.0 至 1.0 之间,反映信号质量与频谱峰值的一致性。静止人体(无大幅度动作)的心率检测置信度通常高于运动场景,因为大幅度肢体动作会在更宽的频带内引入干扰。存在感知(Presence Detection)的响应延迟低于一毫秒,官方声称在受控环境下达到百分之百准确率。
隐私保护与合规优势
相比传统的摄像头方案,WiFi 感知的核心优势在于天然的隐私保护特性。整个感知过程不涉及任何图像或视频数据的采集、存储与传输。系统处理的是射频信号的空间干涉模式,而非可识别的生物特征。在欧盟《通用数据保护条例》(GDPR)与美国《健康保险流通与责任法案》(HIPAA)的框架下,摄像头部署通常被视为高风险的数据处理行为,需要额外的 consent 获取、数据保留期限限制与安全审计。而 WiFi 感知从设计上规避了这些问题 —— 它不采集任何个人身份信息,不存储任何可追溯的生物特征,部署方无需在数据保护合规上投入大量资源。
这一特性在养老监护、病房监控与儿童托管场景中尤为关键。以养老院为例,在老人卧室中安装摄像头可能引发隐私投诉与心理不适,但部署一到两个 ESP32 节点即可实现夜间呼吸监测与跌倒检测,既保障了老人安全,又尊重了老人的生活隐私。同样的逻辑适用于医疗机构的非侵入式监护 —— 对于需要持续监测但不适合佩戴心率贴片的患者,WiFi 感知提供了一种无接触的替代方案。
工程落地的关键考量
在实际部署中,以下几个工程问题值得关注。首先是环境标定,WiFi 信号对房间布局、家具摆设非常敏感,部署初期需要让系统在无人的状态下建立环境基线。RuView 提供了自动标定脚本,运行约十到三十分钟后,系统能够区分静态环境反射与动态人体信号。其次是多径干扰,在金属框架结构或会议室等多反射环境中,信号处理流水线的稳健性会受到考验。子载波选择与相位清洗环节正是为了应对这一问题 —— 通过剔除敏感度低的子载波,保留受人体调制最强的信号路径,可以显著提升检测成功率。
此外,ESP32-S3 的固件更新与配置管理也需要纳入运维体系。官方提供了 provisioning 工具,允许通过 Python 脚本远程修改 WiFi 凭证、目标服务器地址以及 TDM 参数。配合 Cognitum Seed(约一百三十一美元)使用时,系统还能实现持久化的向量存储与密码学见证链 —— 每条测量记录都附带 SHA-256 哈希校验,确保数据未被篡改。这对于医疗场景的审计追溯具有实际价值。
总体而言,基于通用 WiFi 的生命体征监测技术已经度过了概念验证阶段。RuView 项目展示了从九美元硬件到完整感知系统的完整链路:以 ESP32-S3 为采集前端,以 Rust 编写的信号处理流水线为计算核心,以 WebSocket 与 REST API 为输出接口。在呼吸率与心率检测这两个核心指标上,系统达到了可用的工程精度,同时保持了零摄像头、零隐私侵扰的设计承诺。对于寻求非接触式健康监测解决方案的开发者与产品团队,这一技术路线提供了兼具成本效益与合规安全的选择。
参考资料
- RuView 官方项目文档:https://github.com/ruvnet/RuView
- WiFi CSI vital sign sensing 技术综述:IEEE VTC2024Spring 论文