9美元ESP32的WiFi穿墙姿态估计:RuView入门指南
【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView
RuView 把普通 WiFi 信号变成穿墙传感器:不用摄像头,仅凭 $9 的 ESP32 采集 CSI(信道状态信息,信号穿过房间留下的"回声图"),就能估计人体姿态、呼吸和心率。
🎯 它到底能做什么(核心能力)
输入是房间里已有的 WiFi 信号:ESP32-S3 节点录下信号经过人体后的幅度和相位变化,也就是 CSI。输出是结构化感知事件:谁在房间、几个人、呼吸与心率多少、17 个身体关键点在哪、房间指纹是否变了。所有计算在本地边缘设备完成,不需要云端。
从原始 WiFi 信号到姿态骨架的流水线
| 指标 | 实测值 |
|---|---|
| 穿墙感知距离 | 约 5 m,依赖信号强度 |
| 存在检测(v2 编码器留出集) | 时序三元组准确率 82.3% |
| 17 关键点姿态(MM-Fi 基准) | torso PCK@20 82.69%,集成 83.59% |
| 跌倒告警延迟 | 小于 200 ms |
| 单区域硬件成本 | $0–8(复用现有 WiFi 或 ESP32) |
为什么它和别的方案不一样(差异化)
对比集中在三个轴:隐私、遮挡、成本。
| 轴 | 摄像头方案 | RuView |
|---|---|---|
| 隐私 | 录像,需授权 | 无视频、无图像数据 |
| 遮挡 | 每房间+需光照 | 穿墙、全黑可用 |
| 成本 | 每区 $200–2000 | 每区 $0–8 |
| 部署 | 新布线+安装 | 复用现有 WiFi |
WiFi 与图像方案的 AP 指标对比
在该项目引用的原始实验(相同布局协议)里,WiFi 方法的 AP@50 达 87.2,与图像基线的 93.7 处于同一量级;差距主要在 AP-m 一项上。
📡 技术内幕:信号/数据从哪来到哪去
身体是信号的改写者
路由器把无线电波铺满房间。人一动,甚至只是呼吸,波的反射路径就变了。ESP32-S3 记下每个子载波的幅度和相位,这就是 CSI,关键参数是 56 个子载波、连续采样。
多节点把平图拼成立体
单节点只能从一个角度看世界。4–6 个节点用 TDM(时分复用)轮流扫 1/6/11 信道,3 信道 × 56 子载波得到每条链路 168 个虚拟子载波;多节点静态融合把 N×(N-1) 条链路合成跨视角特征,再由 Coherence Gate(一致性门)裁决每帧是否采信,稳定后可连跑数天不校准。
滤波之后是数字
原始相位噪声很大,先过 Hampel 滤波和 Fresnel 区(电波第一绕射区)几何建模,特征才进入模型:存在检测头留出集准确率 82.3%,17 关键点姿态模型在 MM-Fi 上 82.69% torso PCK@20。生命体征不用模型,靠带通滤波:
# 呼吸:0.1–0.5 Hz 带通 + 过零计数,输出 BPM resp_bpm = 60.0 * zero_crossings(bandpass(csi_phase, 0.1, 0.5)) # 心率:0.8–2.0 Hz 带通 hr_bpm = 60.0 * zero_crossings(bandpass(csi_phase, 0.8, 2.0))一条反射数据变成姿态骨架的旅程
🚀 跑起来要多久(快速上手)
硬件与环境:
- 无硬件:任一台装有 Docker 的电脑,用模拟数据即可运行
- 真实感知:1–6 块 ESP32-S3(每块约 $9)+ 一台主机(树莓派/PC)
- 已有的 WiFi 环境,无需新布线;固件烧录脚本在
firmware/esp32-csi-node/
git clone https://gitcode.com/GitHub_Trending/wi/RuView && cd RuView docker pull ruvnet/wifi-densepose:latest docker run -p 3000:3000 ruvnet/wifi-densepose:latest看效果:
- 浏览器打开 http://localhost:3000
- 画面分三块:生命体征(心率/呼吸/置信度)、WiFi 信号(RSSI/运动/人数)、存在状态
- 按 A/S/F 键切换视角、场景与 FPS
- 想用仓库内 UI:执行
cd ui && ./start-ui.sh,再打开终端显示的地址
演示界面:生命体征与存在状态实时面板
谁适合用 / 典型落地场景
- 独居老人照护者:夜间无摄像头监测卧室呼吸与跌倒,告警小于 2s;老人不用佩戴设备,隐私空间不装相机。
- 智能家居开发者:一个
--mqtt标志接入 Home Assistant,每节点暴露 21 个实体(睡眠中、会议中、下床等),语音助手可直接问答房间级存在与体征。 - 健身应用开发者:从姿态计数动作次数、分类运动类型;健身房不用装摄像头,用户不用戴手环。
边界与下一步
还做不到:
- 单块 ESP32 的 17 关键点姿态仍是初版:PCK@20 = 3.0%,低于 35% 目标,运行时路径还是存根
- 跨房间零样本迁移约 64%,需要现场标定数据
- 单天线节点只有 56 个子载波,空间信息有限,面部和手部等细节关节接近随机
路线图:
- ADR-079 相机真值训练管线已实现,RTX 5080 上 400 个 epoch 训练 2.1s,目标 PCK@20 ≥ 35%
- MERIDIAN(ADR-027)跨环境域泛化,处于提案阶段
离无摄像头的全场景感知,还差真实环境数据。
【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考