π RuView:让家里的 WiFi 路由器变成「穿墙雷达」,无摄像头追踪 17 个身体关键点

你有没有想过,家里那台 24 小时开着、谁都不会多看一眼的 WiFi 路由器,居然可以充当「穿墙雷达」?

不开摄像头、不戴手环、不装红外传感器 —— 它就能:

  • 透过墙壁数清楚房间里到底有几个人;
  • 无接触地测出你的呼吸频率(6–30 BPM)和心率(40–120 BPM);
  • 用 17 个关键点重建你此刻的姿势(站着、坐着、跌倒……);
  • 在凌晨悄悄判断你是否进入了深睡眠阶段。

这听起来像是科幻小说的设定,却是 GitHub 上一个 8.5 万 stars 的开源项目 ruvnet/RuView 正在做的事。今天这篇博客,我们就来拆开它的原理,看它是如何「让 WiFi 看见人」的。


一、项目背景:为什么我们需要「不用摄像头」的感知方案?

1.1 摄像头的天花板

过去十年,室内感知几乎被摄像头垄断。无论是商场的客流统计、养老院的跌倒报警,还是智能家居的人来灯亮,背后都是一颗颗镜头。但摄像头有三大硬伤:

  • 隐私焦虑:卧室、卫生间、浴室 —— 这些最需要监测生命体征的场景,恰恰最不适合装摄像头。
  • 环境受限:黑暗、强光逆光、烟雾、被遮挡…… 摄像头几乎全部失效。
  • 攻击面过大:一台联网摄像头意味着一个能拍到屋内的实时端口,黑产里「破解家庭摄像头」早就成了一门生意。

1.2 WiFi 信号的「隐藏信息」

你可能没注意过,WiFi 信号在空间里传播时,会被人体的呼吸、抬手、转身这些细微动作「扰动」。学术上把这种细粒度信息叫做 CSI(Channel State Information,信道状态信息)

CSI 比常见的 RSSI(信号强度)精细得多 —— 它记录的是每一个子载波的幅度与相位,本质上是一段「无线电指纹」。当一个人在房间里呼吸,他的胸腔每分钟起伏 12–20 次,这套起伏会叠加进 CSI 中;只要算法够好,就能从 CSI 里把呼吸和心跳单独挑出来。

1.3 RuView 想干什么?

RuView 把 WiFi DensePose(卡耐基梅隆 2018 年提出的学术概念)落地成了一个低成本的边缘 AI 平台。它做的是三件事:

  1. 把 CSI 从廉价的 ESP32 节点里抓出来;
  2. 在边缘设备上跑信号处理 + 神经网络,提取 17 个身体关键点 + 生命体征;
  3. 把结果通过 MCP / WebSocket / MQTT 暴露给 Home Assistant、智能家居、家庭安防等下游应用。

截至今天,仓库已有 85.5k stars / 11.4k forks / 1,084 次提交,连续多天霸榜 GitHub Trending,是 2026 年最值得关注的「物理 + AI」项目之一。


二、核心功能亮点

2.1 五大感知能力

RuView 一口气把五件原本需要不同硬件的事做到了同一个平台里:

能力 输入 原理
🫁 呼吸监测 CSI 振幅 + 相位 0.1–0.5 Hz 带通 + FFT 峰值检测
💓 心率监测 CSI 振幅 + 相位 0.8–2.0 Hz 带通 + 零交叉 BPM
👤 存在检测 CSI 头部嵌入(HF ruvnet/wifi-densepose-pretrained 训练好的头部位姿检测器 + 相位方差回退
🦴 17 关键点姿势 CSI 嵌入 cog-pose-estimation Cog v0.0.1,Pi 5 上 8.4 ms 冷启动
🚨 跌倒检测 相位加速度 阈值 + 三帧去抖 + 5 秒冷却

2.2 自学习世界模型

最有意思的是,RuView 不只是一个「检测器」,而是一个能预测未来 15 帧空间占用的小型世界模型(OccWorld TransVQVAE)。在 RTX 5080 上推理 209 ms,3.4 GB 显存,意味着它可以提前告诉你「这个人接下来会走向哪里」。

2.3 边缘智能与极小占用

  • 128 维对比编码器,4-bit 量化后只占 8 KB
  • 单核 M4 Pro 笔记本上能跑到 164,183 emb/s
  • 完整的传感器 + 推理 BOM 总成本压到 140 美元,最低方案(3 个 ESP32-S3 + 现有路由器)只要 54 美元

2.4 多协议输出

最后,RuView 不打算「圈住」你。它通过以下方式把结果喂给下游:

  • REST API /api/v1/vital-signs
  • WebSocket /ws/sensing
  • MQTT RuViewMqttClient
  • MCP 代理:能被 Claude、Cursor 这类 AI Agent 直接当工具调用
  • Home Assistant 集成:原生支持 presencevital-signsfall-detected 等实体

这种「不抢戏」的架构,是它在 Trending 上持续被关注的关键。


三、实战示例:用 Docker 三分钟跑起来

3.1 零硬件体验

如果你只是想先看看效果,仓库已经提供了预录的 CSI 数据 + Docker 镜像:

1
2
docker pull ruvnet/wifi-densepose:latest
docker run -p 3000:3000 ruvnet/wifi-densepose:latest

打开浏览器访问 http://localhost:3000,就能看到一个 60 FPS 的 3D 观测台:姿态融合、生命体征、信号强度、跌倒警报全部在一个 WebGL 视图里。

3.2 Python SDK 路线(ADR-117)

如果你已经有自己的 ESP32 节点在采集 CSI,可以直接用 PyPI 上的 wifi-densepose 包:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from ruview import BreathingExtractor, HeartRateExtractor
from ruview.client import SensingClient, RuViewMqttClient

# 假设你的 ESP32 在 UDP 5005 上推送 CSI
client = SensingClient(udp_port=5005)

breath = BreathingExtractor()
heart = HeartRateExtractor()

async for frame in client.stream():
bpm_breath = breath.process(frame) # 6-30 BPM
bpm_heart = heart.process(frame) # 40-120 BPM

print(f"呼吸 {bpm_breath:.1f} BPM | 心率 {bpm_heart:.1f} BPM")

如果你想走 MQTT:

1
pip install "ruview[client]"

会额外装上 asyncio WebSocketpaho-mqtt

3.3 真硬件路线

最完整的部署路径是用 ESP32-S3 + Cognitum Seed(~140 美元)。整套系统会包含:

  • 17 关键点姿势
  • 跌倒检测
  • 105 cog 的边缘目录(实时从 app-registry.json 加载)
  • 向量数据库 + kNN 检索
  • 见证链(witness chain)
  • MCP 代理

而如果你只是想验证「WiFi 6 / 802.15.4」能不能用,单个 ESP32-C6 DevKit(约 10 美元)就够了。仓库给出的实测是 99.56% 的 ESP-NOW mesh 匹配率、相位偏移标准差仅 104 µs

3.4 一段最简「跌倒报警」代码

1
2
3
4
5
6
7
8
from ruview.detectors import FallDetector

fall = FallDetector(phase_accel_threshold=2.5)

async for frame in client.stream():
if fall.update(frame):
await mqtt.publish("home/fall_detected", payload={"room": "living"})
print("🚨 跌倒事件已上报")

配合 Home Assistant,你可以直接把这条 MQTT 桥接成手机的 Push 通知。


四、适用场景与限制

4.1 适合的 6 个场景

  1. 养老照护:夜间无接触监测呼吸 + 自动跌倒报警,避开摄像头伦理问题;
  2. 智慧酒店:不靠门磁、不靠摄像头的「房间有人 / 无人」判断;
  3. 办公空间:会议室占用率统计,比门口的 PIR 更准;
  4. 睡眠实验室:替代 PSG(多导睡眠图),做睡眠分期 + 呼吸暂停筛查;
  5. 安防入侵检测:夜间有人在院子里走动就能触发警报;
  6. AI Agent 场景:让 Agent 能感知房间状态 ——「房间里有几个人在开会」可以直接是 MCP tool 的返回值。

4.2 必须正视的限制

  • 需要 ESP32-S3 / C6 / Intel 5300 这一类支持 CSI 的硬件。ESP32-C3、ESP32 经典款因为是单核、DSP 不够,不被支持。
  • 穿墙距离大约 5 米,且高度依赖墙体材质和路由器位置 —— 混凝土墙会显著衰减。
  • 多目标拥挤场景仍是难点,单人 / 双人准确率高,五人以上会出现 ID 切换。
  • 隐私问题是双刃剑:能测心率,意味着同样能测「你半夜有没有出门」。仓库在 README 里特意写了「Ethical Use」段落,并强调部署时应当通知同住人。
  • 不是医学器械,生命体征读数仅供研究 / 日常参考。

五、与同类项目的差异

项目 切入点 核心差异
WiFi DensePose(CMU 论文) 学术 论文原型,无现成硬件 + 软件栈
Aerosense / Xandem 商业 闭源、贵、不能本地化
Google Nest 感知 / Amazon Sidewalk 商业 黑盒,且依附于具体产品生态
RuView 开源 完整软件栈 + 廉价硬件 + MCP/MQTT 输出 + 边缘自学习模型

简单说,RuView 是目前唯一一个把 WiFi DensePose 从论文搬进「10–140 美元」硬件、并且愿意把数据流交给任何下游系统的开源项目


六、总结

RuView 的爆火不是偶然。它踩中了三个时代情绪:

  • 隐私觉醒:用户开始拒绝「房间里再多一颗镜头」;
  • 边缘 AI 成熟:M4 Pro、Raspberry Pi 5 已经能在本地跑 17 关键点姿势;
  • Agent 时代:MCP 让任何模型都能直接调用这套感知能力。

如果你是智能家居玩家,3 个 ESP32-S3 + 现有路由器,54 美元就能给你的家装上一套「无摄像头雷达」;如果你是 AI Agent 开发者,它的 MCP 代理就是下一波「Agent 感知物理世界」的最佳 demo。

仓库地址github.com/ruvnet/RuView
在线 Demoruvnet.github.io/RuView

值得花一个周末,把它跑起来,看看自家 WiFi 究竟能「看见」多少你从没意识到的东西。