ruvnet/RuView
摘要
RuView 是一个开源 WiFi 传感平台,利用来自低成本 ESP32 传感器的信道状态信息(CSI)来检测人员、追踪运动、测量生命体征,以及在不使用摄像头或穿戴设备的情况下估计穿透墙壁的姿态。该系统完全在边缘硬件上运行,具有密码学证明机制,并使用脉冲神经网络进行本地自适应。
查看缓存全文
缓存时间: 2026/04/20 08:33
ruvnet/RuView 来源:https://github.com/ruvnet/RuView
π RuView
测试版软件 — 正在积极开发中。API 和固件可能会变更。已知限制:
- 不支持 ESP32-C3 和原始 ESP32(单核,CSI 数字信号处理算力不足)
- 单个 ESP32 部署的空间分辨率有限 — 使用 2+ 个节点或添加 Cognitum Seed(https://cognitum.one)以获得最佳效果
- 无摄像头的姿态精度有限 — 使用摄像头地面真实训练实现 92.9% PCK@20
欢迎在 Issues(https://github.com/ruvnet/RuView/issues)提交贡献和错误报告。
用 WiFi 透视墙壁
将普通 WiFi 变成感知系统。
检测人员、测量呼吸和心率、跟踪运动、监控房间 — 穿过墙壁、在黑暗中、无需摄像头或可穿戴设备。仅需物理学。
π RuView 是一个 WiFi 感知平台,将无线电信号转化为空间智能。
每个 WiFi 路由器已经用无线电波填满了你的空间。当人们移动、呼吸,甚至静坐时,他们会以可测量的方式干扰这些波。RuView 使用来自低成本 ESP32 传感器的信道状态信息 (CSI) 捕捉这些干扰,并将其转化为可操作的数据:谁在那里、他们在做什么,以及他们是否安好。
它能感知:
- 存在和占用 — 穿过墙壁检测人员、计数、跟踪出入
- 生命体征 — 呼吸频率和心率、非接触式、睡眠或坐着时
- 活动识别 — 行走、坐着、手势、跌倒 — 从时间 CSI 模式
- 环境映射 — 射频指纹识别识别房间、检测移动的家具、发现新物体
- 睡眠质量 — 夜间监测,包括睡眠阶段分类和呼吸暂停筛查
基于 RuVector(https://github.com/ruvnet/ruvector/)和 Cognitum Seed(https://cognitum.one),RuView 完全在边缘硬件上运行 — 一个 ESP32 网格(每个节点仅 $9)配合 Cognitum Seed 实现持久化存储、密码学认证和 AI 集成。无云、无摄像头、无需互联网。
该系统使用脉冲神经网络在本地学习每个环境,在 30 秒内适应,通过 6 个 WiFi 信道的多频率网格扫描,使用邻居的路由器作为免费的雷达照射源。每次测量都通过 Ed25519 见证链进行密码学认证。RuView 还支持姿态估计(通过 WiFlow 架构的 17 个 COCO 关键点),完全无摄像头训练,使用 10 个传感器信号 — 这是一项从卡内基梅隆大学原始 DensePose From WiFi 研究开创的技术。
为低功耗边缘应用而构建
边缘模块是直接在 ESP32 传感器上运行的小程序 — 无需互联网、无云费用、即时响应。
Rust 1.85+(https://www.rust-lang.org/) 许可证:MIT(https://opensource.org/licenses/MIT) 测试:1463(https://github.com/ruvnet/RuView) Docker:多架构(https://hub.docker.com/r/ruvnet/wifi-densepose)
生命体征 ESP32 就绪 crates.io(https://crates.io/crates/wifi-densepose-ruvector)
功能 方式 速度 姿态估计 CSI 副载波幅度/相位 → 17 COCO 关键点 171K emb/s(M4 Pro) 呼吸检测 带通 0.1-0.5 Hz → 零交叉 BPM 6-30 BPM 心率 带通 0.8-2.0 Hz → 零交叉 BPM 40-120 BPM 存在检测 训练模型 + PIR 融合 — 100% 精度 0.012 ms 延迟 透墙 Fresnel 区域几何 + 多径建模 最深 5m 边缘智能 8 维特征向量 + Cognitum Seed 上的 RVF 存储 总 BOM $140 无摄像头训练 10 个传感器信号、无需标签 M4 Pro 上 84s 摄像头监督训练 MediaPipe + ESP32 CSI → 92.9% PCK@20 笔记本电脑上 19 分钟 多频率网格 6 个频段的信道跳转、邻居 AP 作为照射源 3 倍感知带宽
# 选项 1:Docker(模拟数据、无需硬件)
docker pull ruvnet/wifi-densepose:latest
docker run -p 3000:3000 ruvnet/wifi-densepose:latest
# 打开 http://localhost:3000
# 选项 2:带 ESP32-S3 硬件的实时感知($9)
# 刷写固件、配置 WiFi 并开始感知:
python -m esptool --chip esp32s3 --port COM9 --baud 460800 \
write_flash 0x0 bootloader.bin 0x8000 partition-table.bin \
0xf000 ota_data_initial.bin 0x20000 esp32-csi-node.bin
python firmware/esp32-csi-node/provision.py --port COM9 \
--ssid "YourWiFi" --password "secret" --target-ip 192.168.1.20
# 选项 3:带 Cognitum Seed 的完整系统($140)
# ESP32 流式传输 CSI → 网桥转发到 Seed 进行持久存储 + kNN + 见证链
node scripts/rf-scan.js --port 5006 # 实时 RF 房间扫描
node scripts/snn-csi-processor.js --port 5006 # SNN 实时学习
node scripts/mincut-person-counter.js --port 5006 # 正确的人员计数
建议使用 CSI 兼容硬件。 存在检测、生命体征、透墙感知以及所有高级功能都需要来自 ESP32-S3($9)或研究网卡的信道状态信息 (CSI)。Docker 镜像使用模拟数据运行以供评估。消费级 WiFi 笔记本电脑仅提供 RSSI 级别的存在检测。
实时 CSI 捕捉的硬件选项:
选项 硬件 成本 完整 CSI 功能 ESP32 + Cognitum Seed(推荐) ESP32-S3 + Cognitum Seed(https://cognitum.one) ~$140 是 姿态、呼吸、心跳、运动、存在 + 持久化向量存储、kNN 搜索、见证链、MCP 代理 ESP32 网格 3-6x ESP32-S3 + WiFi 路由器 ~$54 是 姿态、呼吸、心跳、运动、存在 研究网卡 Intel 5300 / Atheros AR9580 ~$50-100 是 完整 CSI 3x3 MIMO 任何 WiFi Windows、macOS 或 Linux 笔记本 $0 否 RSSI 仅:粗存在和运动 没有硬件?用确定性参考信号验证信号处理管道:
python v1/data/proof/verify.py
v0.7.0 中的新功能
摄像头地面真实训练 — 92.9% PCK@20
v0.7.0 添加摄像头监督姿态训练,使用 MediaPipe + 真实 ESP32 CSI 数据:
| 功能 | 功能描述 | ADR |
|---|---|---|
| 摄像头地面真实采集 | MediaPipe PoseLandmarker 以 30fps 捕捉 17 个 COCO 关键点,与 ESP32 CSI 同步 | ADR-079 |
| ruvector 副载波选择 | 基于方差的 top-K 将输入减少 50%(70→35 副载波) | ADR-079 O6 |
| Stoer-Wagner 最小割 | 人员特定的副载波集群分离,用于多人训练 | ADR-079 O8 |
| 可扩展 WiFlow 模型 | 4 个预设:lite (189K) → small (474K) → medium (800K) → full (7.7M params) | ADR-079 |
# 采集地面真实(摄像头 + ESP32 同步)
python scripts/collect-ground-truth.py --duration 300 --preview
python scripts/record-csi-udp.py --duration 300
# 将 CSI 窗口与摄像头关键点对齐
node scripts/align-ground-truth.js --gt data/ground-truth/*.jsonl --csi data/recordings/*.csi.jsonl
# 训练 WiFlow 模型(从 lite 开始,随着数据增长而扩展)
node scripts/train-wiflow-supervised.js --data data/paired/*.jsonl --scale lite
# 评估
node scripts/eval-wiflow.js --model models/wiflow-real/wiflow-v1.json --data data/paired/*.jsonl
结果:从一次 5 分钟的数据采集会话(一个 ESP32-S3 和一个 WebCam)中获得 92.9% PCK@20。
| 指标 | 之前(代理) | 之后(摄像头监督) |
|---|---|---|
| PCK@20 | 0% | 92.9% |
| 评估损失 | 0.700 | 0.082 |
| 骨约束 | N/A | 0.008 |
| 训练时间 | N/A | 19 分钟 |
| 模型大小 | N/A | 974 KB |
预训练模型:HuggingFace ruv/ruview/wiflow-v1(https://huggingface.co/ruv/ruview)
预训练模型(v0.6.0) — 无需训练
从 HuggingFace 下载并立即开始感知
预训练模型在 HuggingFace 上提供:
https://huggingface.co/ruv/ruview(主要) | 镜像(https://huggingface.co/ruvnet/wifi-densepose-pretrained)
在一次 8 小时夜间采集的 60,630 个真实样本上训练。只需下载并运行 — 无需数据集、GPU 或训练。
| 模型 | 大小 | 功能 |
|---|---|---|
model.safetensors | 48 KB | 对比度编码器 — 128 维嵌入用于存在、活动、环境 |
model-q4.bin | 8 KB | 4 位量化 — 适合 ESP32-S3 SRAM 边缘推理 |
model-q2.bin | 4 KB | 2 位超紧凑,用于内存受限设备 |
presence-head.json | 2.6 KB | 100% 准确的存在检测头 |
node-1.json / node-2.json | 21 KB | 按房间 LoRA 适配器(为新房间交换) |
# 下载并使用(Python)
pip install huggingface_hub
huggingface-cli download ruv/ruview --local-dir models/
# 或直接用于感知管道
node scripts/train-ruvllm.js --data data/recordings/*.csi.jsonl # 在你的数据上重新训练
node scripts/benchmark-ruvllm.js --model models/csi-ruvllm # 基准测试
基准(Apple M4 Pro,在夜间数据上重新训练):
| 测量项目 | 结果 | 为什么重要 |
|---|---|---|
| 存在检测 | 100% 准确性 | 永不遗漏人员,无误报 |
| 推理速度 | 0.008 ms 每个嵌入 | 比实时快 125,000 倍 |
| 吞吐量 | 164,183 个嵌入/秒 | 一个 Mac Mini 处理 1,600+ ESP32 节点 |
| 对比度学习 | 51.6% 改进 | 从真实夜间数据中学习强模式 |
| 模型大小 | 8 KB(4 位量化) | 适合 ESP32 SRAM — 无需服务器 |
| 总硬件成本 | $140 | ESP32(9)+ Cognitum Seed(https://cognitum.one)(131) |
17 个传感应用(v0.6.0)
健康、环境、安全和多频率网格感知
所有应用都从单个 ESP32 + 可选 Cognitum Seed 运行。无摄像头、无云、无互联网。
健康与健康:
| 应用 | 脚本 | 检测内容 |
|---|---|---|
| 睡眠监测器 | node scripts/sleep-monitor.js | 睡眠阶段(深度/浅层/REM/清醒)、效率、低谷图 |
| 呼吸暂停检测器 | node scripts/apnea-detector.js | 呼吸暂停 >10s、呼吸暂停低通气指数严重程度评分 |
| 压力监测器 | node scripts/stress-monitor.js | 心率变异性、LF/HF 压力比 |
| 步态分析器 | node scripts/gait-analyzer.js | 行走节奏、步幅不对称、震颤检测 |
环境与安全:
| 应用 | 脚本 | 检测内容 |
|---|---|---|
| 人员计数器 | node scripts/mincut-person-counter.js | 正确的占用计数(修复 #348) |
| 房间指纹 | node scripts/room-fingerprint.js | 活动状态聚类、日常模式、异常 |
| 材料检测器 | node scripts/material-detector.js | 新的/移动的物体,通过副载波零点变化 |
| 设备指纹 | node scripts/device-fingerprint.js | 电子设备活动(打印机、路由器等) |
多频率网格(需要 --hop-channels 配置):
| 应用 | 脚本 | 检测内容 |
|---|---|---|
| RF 层析成像 | node scripts/rf-tomography.js | 通过 RF 反投影的 2D 房间成像 |
| 被动雷达 | node scripts/passive-radar.js | 邻居 WiFi AP 作为双基地雷达照射源 |
| 材料分类器 | node scripts/material-classifier.js | 金属/水/木/玻璃,通过频率响应 |
| 透墙 | node scripts/through-wall-detector.js | 使用较低频率穿透的墙后运动 |
所有脚本支持 --replay data/recordings/*.csi.jsonl 用于离线分析和 --json 用于程序化输出。
v0.5.5 中的新功能
高级感知:SNN + MinCut + WiFlow + 多频率网格
v0.5.5 添加了四种新的感知功能,基于 ruvector(https://github.com/ruvnet/ruvector)生态系统:
| 功能 | 功能描述 | ADR |
|---|---|---|
| 脉冲神经网络 | 在 <30s 内适应你的房间,使用 STDP 在线学习 — 无标签、无批次、计算量减少 16-160 倍 | ADR-074 |
| MinCut 人员计数 | Stoer-Wagner 最小割在副载波相关性图上 — 修复 #348(之前总是 4,现在正确) | ADR-075 |
| CNN 谱图嵌入 | 将 CSI 视为 64×20 图像 → 128 维嵌入用于环境指纹识别(0.95+ 相似性) | ADR-076 |
| WiFlow SOTA 架构 | TCN + 轴向注意力 + 姿态解码器 → 17 COCO 关键点,1.8M 参数(4 位 881 KB) | ADR-072 |
| 多频率网格 | 跨 6 个频段的信道跳转,邻居 WiFi 作为被动雷达照射源 | ADR-073 |
# 实时 RF 房间扫描(频谱可视化)
node scripts/rf-scan.js --port 5006 --duration 30
# 正确的人员计数(修复 #348)
node scripts/mincut-person-counter.js --port 5006
# SNN 实时适应
node scripts/snn-csi-processor.js --port 5006
# CNN 谱图嵌入
node scripts/csi-spectrogram.js --replay data/recordings/*.csi.jsonl
# WiFlow 17 关键点姿态训练
node scripts/train-wiflow.js --data data/recordings/*.csi.jsonl
# 在 ESP32 上启用信道跳转
python firmware/esp32-csi-node/provision.py --port COM9 --hop-channels "1,6,11"
验证的基准:
| 指标 | v0.5.4 | v0.5.5 |
|---|---|---|
| 人员计数 | 损坏(总是 4) | 正确(MinCut,24/24) |
| WiFi 频道 | 1 | 6(多频跳转) |
| 零副载波 | 19% 阻断 | 16%(频率多样性) |
| 姿态模型 | 16K 参数(仅 FC) | 1.8M 参数(WiFlow) |
| 在线适应 | 无 | <30s(SNN STDP) |
| 指纹维度 | 8 | 128(CNN 谱图) |
| 多节点融合 | 平均 | GATv2 注意力 |
| 新脚本 | 0 | 15+ |
| 新 ADR | 3 | 8(069-076) |
v0.5.4 中的新功能
Cognitum Seed 集成 + 无摄像头姿态训练
v0.5.4 将 RuView 从实时感知工具转变为持久边缘 AI 系统。 你的 ESP32 现在记住它感知的内容、无摄像头学习并用密码学证明其数据。
| 功能 | 详情 | 硬件 |
|---|---|---|
| 持久化向量存储 | 每个感知事件存储为 RVF 格式的可搜索 8 维向量 | ESP32 + Cognitum Seed(https://cognitum.one)($140) |
| kNN 相似性搜索 | “找到与现在最相似的 10 个状态” — 异常检测、指纹识别 | Cognitum Seed |
| 见证链 | SHA-256 篡改证明审计跟踪,每次测量(验证 1,747 条条目) | Cognitum Seed |
| 无摄像头姿态训练 | 从 10 个传感器信号的 17 COCO 关键点 — PIR、RSSI 三角测量、副载波不对称、振动、BME280 | 2x ESP32 + Seed |
| 预训练模型 | 82.8 KB(4 位量化时 8 KB),100% 存在准确性,0 骨骼违规 | 从版本下载 |
| 亚毫秒推理 | 0.012 ms 延迟,M4 Pro 上 171,472 个嵌入/秒 | 任何带 Node.js 的机器 |
| SONA 适应 | 无需重新训练,在 <1ms 内适应新房间 | ruvllm 运行时 |
| LoRA 房间适配器 | 每个节点的微调,每个适配器 2,048 个参数 | 自动 |
| 114 工具 MCP 代理 | AI 助手(Claude、GPT)通过 JSON-RPC 直接查询传感器 | Cognitum Seed |
| 多频率网格 | 跨 ch 1/3/5/6/9/11 的信道跳转 — 邻居 WiFi 作为被动雷达 | 2x ESP32($18) |
| RF 房间扫描器 | 实时频谱可视化:零点、反射器、运动、多径 | node scripts/rf-scan.js |
| 安全加固 | 不记名令牌、TLS、源 IP |
相似文章
使用WiFi感知人类 – Ruview
关于使用WiFi信号感知人类存在、运动和生命体征的技术综述
@Smartpigai: 震惊的不只是摄像头,这次是“WiFi本身在看见你”。 一个叫 RuView 的开源项目在 GitHub 已经7万+ star,思路有点离谱: 你家里的普通 WiFi 信号,不只是上网工具,还能变成一台“隐形感知雷达”。 它能做到这些事 不…
介绍了一个名为 RuView 的开源项目,利用普通 WiFi 信号的 CSI 数据和 AI 模型,实现无摄像头的室内人体感知,包括人数检测、姿态估计、呼吸心率监测和跌倒检测,在 GitHub 上已获 7 万 + star。
@IndieDevHailey: 恐怖!用家Wi-Fi就能知道隔壁墙后的人在干什么! 开源项目 RuView 在GitHub已经冲到 5万+星,直接炸了! 完全不用摄像头,也不用戴任何设备,就靠家里普通的WiFi信号,就能穿墙透视: - 隔壁有几个人、在哪个位置、是走路还…
开源项目 RuView 利用 WiFi 信号和 AI 技术实现无摄像头穿墙感知,能够实时识别人体姿态、呼吸及跌倒,已在 GitHub 获得大量关注。该项目强调隐私安全,数据完全本地处理,支持通过 ESP32 或 Docker 轻松部署。
@pulmencr: 有人将普通家用Wi-Fi变成了能穿透墙壁的雷达。GitHub上该项目已获超过6.2万颗星,系统可…
一名开发者创建了一套系统,可将普通Wi-Fi转化为能穿透墙壁的雷达,无需摄像头即可追踪人体姿势、呼吸和心跳。这个开源项目在GitHub上已获得超过6.2万颗星,运行在一块仅5美元的微芯片上。
QuadRF 可以探测无人机并透过墙壁看到 WiFi 信号
QuadRF 是一款基于 Raspberry Pi 5 的相控阵无线电,能够探测无人机并透过墙壁可视化 WiFi 信号,并配有用于高级信号处理的开源软件。