用7美元的ESP32隔墙看你呼吸:RuView把WiFi变成空间雷达
用 7 美元的 ESP32 隔墙看你呼吸:RuView 把 WiFi 变成空间雷达
> 一台路由器、一块拇指大的开发板,不需要摄像头,不需要穿戴设备,就能隔墙检测你在哪个房间、走还是坐、呼吸频率多少、心率多少——甚至你睡着时是否出现了呼吸暂停。
GitHub 上周冲上 trending 的 RuView 项目,把一个反直觉的物理事实塞到了开发者面前:你家路由器发出的 WiFi 信号,本来就已经在反射你的身体。你每一次呼吸引起的胸腔起伏,每一次心跳引起的微弱震动,都在扰动那些 2.4GHz 的电磁波。问题不是"能不能感知",而是"怎么把感知到的信号解出来"。
RuView 给出的答案简单到让人意外:一块 7 美元的 ESP32-S3 开发板,刷上开源固件,抓取 WiFi 的 CSI(Channel State Information,信道状态信息),喂给一个本地跑的小模型,就能输出 17 个身体关键点的姿态估计、呼吸率、心率、跌倒检测、睡眠分期。
物理层:WiFi 信号本来就是"雷达"
理解 RuView 的第一步,是放弃"摄像头才能看见"这个直觉。
雷达的原理是发射电磁波、接收反射、从时延和频移中解出目标的位置和速度。WiFi 路由器每秒发射上千次电磁波脉冲,你的身体——主要是水——会反射其中一部分。传统 WiFi 芯片只关心"信号能不能解码出 0 和 1",把反射当噪音扔掉。CSI 是被扔掉的那部分:它记录了每个子载波在每一时刻的振幅和相位,本质上是"信号在空间里被怎么扭曲了"的细粒度快照。
人在房间里走动,CSI 波形会画出一条明显的轨迹。人静止坐着呼吸,CSI 波形会出现 12-20 次/分钟的周期性微抖动。人睡着了,除了呼吸的慢周期,还能看到心率对应的 60-100 次/分钟的高频微抖动——这不是隐喻,是 FFT 之后真的能在频谱上看到的两个峰。
RuView 做的事情,是把这条从物理到信号的链路打通:ESP32 抓 CSI → 预处理去噪 → 喂给训练好的模型 → 输出语义事件("有人在睡觉"、"可能跌倒"、"浴室有人")。
工程层:21 个实体的智能家居节点
RuView 不是一篇论文,是一个能跑的系统。每个 ESP32 节点能输出 21 个实体:11 个原始信号(CSI 振幅、相位、信噪比等)+ 10 个推理出的语义状态。
10 个语义状态值得逐条看,因为它们暴露了"空间智能"到底在智能什么:
someone-sleeping:有人睡觉possible-distress:可能的异常状态room-active:房间活跃elderly-inactivity-anomaly:老人异常静止meeting-in-progress:会议进行中bathroom-occupied:浴室占用fall-risk-elevated:跌倒风险升高bed-exit:离床no-movement:无运动multi-room-transition:多房间切换
这是"感知 → 推理 → 语义"的三层架构,和计算机视觉里"像素 → 特征 → 物体识别"是同构的。区别在于,RuView 的"像素"是 CSI 时间序列,不是 RGB。
隐私层:没有镜头的监控
RuView 最值得讨论的不是技术,是它对"监控"这个概念的重新定义。
摄像头的问题不是"能拍到",是"拍到的东西可以被回放、可以被偷、可以被用来训练人脸模型"。RuView 没有镜头。它输出的数据是"房间有人、呼吸 16 次/分、姿态是躺"——这种数据对人脸识别模型毫无价值,对"老人独居是否安全"这个场景却价值巨大。
这是一个重要的区分:监控的隐私成本不取决于"能感知到什么",取决于"感知到的信号能不能被逆向回个人的生物特征"。CSI 信号是高度语义化的抽象,它告诉你"有一个人在呼吸",但无法告诉你"那个人是谁"。这是和摄像头本质不同的地方。
当然,CSI 也不是绝对匿名。研究已经证明,步态 CSI 模式可以用来做身份识别——每个人的走路节奏、步幅、重心转移都不一样。RuView 在文档里明确提到了这一点,并给每个感知事件附上了隐私政策、不确定性、来源和见证记录。这是"治理优先"而非"先做出来再说"的工程态度。
MetaHarness:给 AI 的声称装上"诚实检查"
RuView 仓库里有一个不太显眼但很重要的部分:MetaHarness。它是一个 AI 操作员,用来引导人类和 AI agent 完成部署、校准、训练、验证,并对所有感知声称做"诚实检查"。
为什么需要这个?因为 WiFi 感知领域有一个老问题:论文里 95% 准确率,到你家客厅可能掉到 60%。原因包括:你家路由器位置不一样、墙壁材质不一样、家里有其他反射物、模型是在实验室数据上训练的。如果不做实地校准和验证,声称的准确率就是空头支票。
MetaHarness 的做法是:每个声称必须附带来源引用、确定性验证、和实地数据校验。这和"模型已经知道"系列里反复出现的主题一致——声称不是能力,声称+证据才是能力。RuView 的作者把这一点做进了系统设计里,而不是留给用户自己判断。
跨域类比:电鱼和蝙蝠
RuView 的物理原理在生物界有直接对应。弱电鱼(electric fish)在浑浊的亚马逊河里靠发射电脉冲、感知反射的电场变化来导航和捕食。蝙蝠靠超声波回声定位。这两种动物都不依赖"镜头式"的视觉,而是用主动发射的信号 + 对反射的精细解析来构建环境模型。
RuView 是这个策略的人造版本:主动发射 WiFi 信号,解析 CSI 反射,构建空间模型。区别在于,电鱼和蝙蝠进化了几千万年才把这个能力优化到现在的水平,而 RuView 用开源硬件 + 深度学习在几年内就追上了。
更有趣的是,RuView 的"统一 RF 世界模型"试图把 WiFi CSI、毫米波雷达、UWB、蜂窝感知统一到一个场景模型里。这对应的是生物界里"多模态感知融合"——猫头鹰用视觉+听觉定位,鲨鱼用嗅觉+电感受定位。单一模态有盲区,多模态融合才能鲁棒。
为什么这件事现在发生
WiFi 感知不是新概念。2013 年 MIT 的 WiTrack 论文就展示了用 WiFi 隔墙追踪人体。但过去十几年,这个领域卡在三个瓶颈上:
1. 硬件门槛:需要专用 SDR 或修改驱动才能拿到 CSI。ESP32-S3 是第一款能直接输出 CSI 的廉价消费芯片。 2. 模型门槛:传统方法靠手工特征工程,泛化差。Transformer 和 LoRA 让小数据集训练成为可能。 3. 生态门槛:没有标准化的语义输出层。RuView 的 21 实体模型 + Home Assistant/Matter/HomeKit 集成,第一次把 WiFi 感知塞进了智能家居的标准协议里。
三个瓶颈同时松动,这件事就发生了。7 美元的硬件 + 开源固件 + 预训练模型 + 智能家居集成,让"隔墙感知"从实验室走进了能买的 DIY 套件。
一个更深的观察
RuView 让我想到一个跨域通用的原则:最好的传感器,是你已经部署但还没用起来的传感器。
WiFi 路由器本来就在发射信号,本来就在被反射。过去几十年,我们只用了"信号能不能解码出 0 和 1"这一层信息,把更细粒度的 CSI 当噪音扔掉。RuView 的贡献不是"发明了一种新的感知方式",是"把被扔掉的信息捡回来"。
这和 SOPHIA 的"残差流方向"、Möbius RoPE 的"拓扑干预"、螳螂虾的"声子盾牌"是同一个套路:不更强地做同一件事,而是换一个层面解决问题。摄像头是"加更多镜头",RuView 是"用已经存在的信号"。
这个原则的推论是:你身边可能已经有很多"免费传感器"在被浪费。蓝牙广播包、环境光传感器、麦克风的本底噪声、加速度计的微振动——这些信号里都藏着信息,只是没人去解码。RuView 做的事情,是给"解码已经存在的信号"这个思路提供了一个可复用的工程模板。
7 美元,一块 ESP32,一个开源仓库。隔墙看你呼吸,不用镜头。这不是科幻,是 2026 年的 GitHub trending。
---
项目地址:https://github.com/ruvnet/RuView 模型仓库:https://huggingface.co/ruvnet/wifi-densepose-pretrained 作者博客:https://ruview.blog/wifi-csi-sensing-open-source