RuView
用 $9 的 ESP32 把普通 WiFi 变成穿墙雷达,实现无摄像头的人体感知、呼吸心率监测与姿态
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
用 $9 的 ESP32 把普通 WiFi 变成穿墙雷达,实现无摄像头的人体感知、呼吸心率监测与姿态
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你下班回家,推开门的一瞬间,手机上绑出这样一条消息——「客厅检测到 1 人,正在监测呼吸频率(16 次/分钟),心率 68bpm,睡眠质量评分 92/100。》没有摄像头,没有可穿戴设备,没有智能手表。只是客厅角落里那个 $9 的小芯片,正在「听」————WiFi信号的微小扰动。
这听起来像科幻,但它正在发生。
这个项目的作者是 rUv(ruv@ruv.net),他同时维护着 RuVector 信号智能工具链。2023-2024 年,WiFi 感知(WiFi Sensing / Channel State Information, CSI)通渐从学术圈走向开源社区。传统计算机视觉靠摄像头「看」,但摄像头有隐私问题、在黑暗中失效、无法穿墙。rUv 决定换一条路:不看像素,只「听」无线电波的回声。
他的核心渐见是:每台路由器都在持续发射 WiFi 无线电波,当这些波遇到人体时会发生反射和散将,造成可测量的信号相位与幅度变化——这就是 CSI 数据。ESP32 芯片支持读取原始 CSI 信息,精度足够挑取呼吸引起的背部起伏(毫米级位移)。这意味着,用 $9 的硬件就能做到过去需要昂贵毫米波雷达才能实现的事情。
普通路由器的 WiFi 信号像一束阳光——它照亮空间,但你不从中获取信息。RuView 把这束光变成了雷达:它向空间中发射「探测波」,分析反射回来的每一丝信号变化。
人体在房间中的存在感,会造成 WiFi 信号的多径效应(Multipath)改变-信号不再走直线,而是被墙壳、人体、桌椅反飞出十条路径。当人移动时,这些路径的长度在连续变化,CSI 数据的相位随之旋转,RuView 用 MinCut 图切算法 将混合信号分离出单人的身体轨迹。
1. 存在感知(Presence Detection) 通过 CSI 振幅异常检测判断房间内是否有人,支持穿墙检测。对独居老人看护场景特别有价值——子女不在家时,系统实时监测老人是否还在活动区域。
2. 生命体征监测(Vital Sign Monitoring) 非接触式测量呼吸频率和心率。算法提取 CSI 信号的周期性分量,通过频谱分析识别心跳(1-2Hz)和呼吸(0.2-0.5Hz)的特征频段。单 ESP32 节点可达到临床级呼吸监测精度,多节点融合后心率误差e < 5bpm。
3. 人体姿态估计(WiFi DensePose) 最硬核的功能:把 CSI 数据送入 DensePose 风格神练网络,估计人的骨骼关键点(身干、四腿)。当前 beta 精度约 PCK@20 ≈ 2.5%(proxy labels),团队正在推进相机真值训练方案(ADR-079),目标 35%+ PCK@20。
4. 活动识别与环境映射 通过 CSI 时序模式识别具体动作(走路、坐下、踢倒),并利用 RF 指纹技术(Frequentist MinCut)识别房间布局和家具位置变化——这套系统甚至能「记住」你家的平面图。
5. 睡眠分期与睡眠呼吸暂停筛查 过夜监测睡眠阶段(浅睡/深睡/REM),并检测呼吸暂停事件。已集成基于脉冲神练网络(Spiking Neural Network)的本地学习器,30 秒内完成环境自适应。
项目分为两层核心:
**前端感知层:**ESP32-C6/S3 组成的无线 mesh 网络,运行 CSI 采集固件(firmware/ 目录)。支持多节点协同——多个 ESP32 节点可从不同角度「听」同一个房间,融合后空间分辨率大幅提升。每个测量节点生成 Ed25519 密码学观察证明链(Cryptographic Attestation),保证数据不可篡改。
**后端分析层:**Rust 写的 sensing-server(v2/ 目录),基于 RuVector 信号智能库构建。提供 REST API(:3000)和 WebSocket(:3001),支持实时推送分析结果。Web UI 有三个看板:legacy index.html、实时 observatory.html、姿态融合 pose-fusion.html。

脉冲神练网络(SNN)用于本地边缘推理,MinCut 图切用于多径分离,DensePose 风格 CNN 用于姿态估计。
| 方式 | 难度 | 说明 |
|---|---|---|
| Web UI(推荐) | 低 | Docker Compose 一键启动,浏览器访问 localhost:3000,适合快速体验 |
| ESP32 固件 | 中 | 需要烹录固件,ESP32-C6 或 ESP32-S3(双核,C3/原始 ESP32 不支持) |
| 本地 Rust 编译 | 高 | 需要 Rust 1.85+ 和全套 RuVector vendor 依赖 |
| Cognitum Seed 集成 | 高 | 需要额外硬件(Seed 模块),支持持久记忆和 AI 集成 |
最简单路径:docker compose -f docker/docker-compose.yml up,30 分钟内可以跑起来并看到模拟数据。
精度问题:作者在 README 中谨言,当前的无相机姿态估计精度(PCK@20 ≈ 2.5%)距离实用还有距离。多节点部署能改善,但单节点场景体验有限。相机的监督训练方案(ADR-079)还在数据采集阶段,距离上线尚有时日。
硬件依赖:ESP32-C3 和初代 ESP32 不支持(单核,无法运行 CSI DSP)。官方推荐的 Cognitum Seed 硬件并非通用配件,增加了入门成本。
隐私风险:虽然不采集视频,但 WiFi 感知本质上是对物理空间的持续监控。如果部署在共享环境(办公室、宿舍),涉及多方隐私告知问题,项目文档未对此做充分讨论。
Beta 状态:API 和固件仍在快速迭代中,生产环境使用存在接口变更风险。
RuView 代表着 AI 感知从「视觉中心」向「多模态 RF 感知」的扩展趋势。在养老监护、婴儿监控、隐私敏感场景中,摄像头方案天然受限,而 WiFi/毫米波/声波等 RF 感知路线正在填补空白。GitHub 上同类项目也在快速增长。
作者 rUv 的长期路线图是将 RuView 发展为完全本地化、可验证的「空间智能」基础设施工具——不依赖云端,所有处理在边缘完成,数据通过 Ed25519 见证链保证可信。这个方向与当前隐私计算、本地 AI 的潮流高度身近。
⭐ 64439 Stars | MIT License | Rust + Python | ruvnet/RuView