9 美元的 ESP32 能看穿墙壁?拆解 4.8 万 Star 的 WiFi 感知平台 RuView

\n

项目卡片

  • 项目:RuView[1]
  • 状态:v0.6.2-esp32 / 47,993 Stars / MIT / 活跃开发中
  • 一句话判断:WiFi 感知领域当前最完整的开源方案,工程深度远超同类,但多项高级功能仍处于早期实验阶段。

你的路由器每时每刻都在发射无线电波。当一个人走进房间,哪怕隔着墙壁,电波也会被他的身体散射、反射、吸收——这些变化是可测量的。

RuView 用 9 美元一块的 ESP32-S3 捕获 WiFi 信道状态信息(CSI),通过信号处理到神经网络的完整流水线,把电波扰动还原成有用信息:有人吗、呼吸频率多少、心率多少。

我翻完仓库后的第一反应是工程深度远超预期——15 个 Rust crate、1.2 万行 C 固件、79 篇 ADR,在开源 WiFi 感知领域几乎是独一无二的体量。

没有摄像头,没有穿戴设备,不联网。核心成本就是一块 ESP32。

RuView 实时 WiFi CSI 信号生成的 3D 骨架可视化

它不是什么

在展开之前先说清楚 RuView 不是什么。

它不是读心术。WiFi CSI 感知的本质是多径效应分析——人的身体改变了电磁波传播路径,ESP32 捕获这些变化并提取模式。精度受物理条件限制:单个 AP 大约区分 3-5 人,穿墙感知有效距离约 5 米。

它也不是即插即用的消费级产品。当前标注 Beta,最近一次更新还修复了 Timer Service 栈溢出导致启动 1 秒后崩溃的问题,部分 ADR 还是 Proposed 状态。

它是一个工程原型——但作为一个开源工程原型,它的完成度令人惊讶。

架构:三层分离

RuView 的系统分三层,每一层都独立可运行:

底层是 ESP32 固件(C 语言,约 1.2 万行)。从 WiFi 芯片提取 CSI 原始数据,做边缘信号处理(呼吸/心跳检测、跌倒判定),通过 UDP 发送数据帧。最新版引入了 ADR-081 五层架构(Radio Abstraction Layer / Adaptive Controller / Mesh Sensing Plane / On-device Feature Extraction / Rust Handoff),让同一套控制器适配不同射频芯片。60 字节紧凑特征包(rv_feature_state_t)把带宽从 ~100 KB/s 压到 300 B/s,压缩比 99.7%。

中间层是 Rust 信号处理引擎(15 个 crate,约 15.8 万行)。wifi-densepose-signal 实现 Hampel 滤波、相位解卷绕、Fresnel 几何、微多普勒提取;wifi-densepose-ruvector 集成子载波选择、注意力机制、Stoer-Wagner 最小割人员分离;wifi-densepose-train 提供从数据收集到模型训练的完整流水线。

上层是可视化与 API 服务。Rust Axum 服务器 + Three.js 前端,Docker 一键启动,不需要硬件就能用模拟数据体验。

RuView 的 Web 管理界面,实时显示感知数据

核心能力与成熟度

RuView 声称支持的能力非常多,从存在检测到姿态估计到穿墙搜救,跨度极大。我翻了一遍源码和测试,按实际验证情况把它们分成三个档位。

已验证可用

存在检测:60,630 个过夜样本,100% 准确率。推理 0.012 ms,单台 Mac Mini 处理 1,600+ 节点。预训练模型已发 HuggingFace,4-bit 量化仅 8 KB。

生命体征:呼吸 6-30 BPM、心率 40-120 BPM,基于 FFT 频谱分析。支持 60 GHz 毫米波雷达融合,实测 52 cm 距离心率 75 bpm。

跌倒检测:角速度阈值 15.0 rad/s²(正常行走不触发),3 帧去抖 + 5 秒冷却,实测 0 误报。

快速上手:Docker 方案确实做到了一条命令启动。docker pull ruvnet/wifi-densepose:latest && docker run -p 3000:3000 ruvnet/wifi-densepose:latest,打开浏览器即可看到模拟数据驱动的完整界面。

基本可用但有限制

姿态估计:WiFlow 架构(TCN + axial attention),17 个 COCO 关键点。无监督训练下精度有限;配合摄像头做监督训练可达 92.9% PCK@20(需 5 分钟收集配对数据)。无摄像头方案精度会打折。

多人追踪:Stoer-Wagner 最小割算法修复了长期 bug(Issue #348),多人融合用 GATv2 注意力机制,但效果高度依赖房间布局和节点部署。

多频率 mesh:ESP32 在 6 个 WiFi 信道间跳频,甚至利用邻居路由器做被动雷达。功能代码存在,但部署复杂度显著上升。

仍在纸面上

穿墙搜救(WiFi-MAT):代码实现了多 AP 三角定位和伤情分类,但"穿透 30cm 混凝土"的能力没有实测数据支撑。

65 个边缘 WASM 模块:代码存在、609 个测试通过,但从手势识别到情感检测,很多更像是概念验证,缺少真实场景测试报告。

跨环境泛化(MERIDIAN):ADR-027 描述了对抗性领域泛化方案(1,858 行代码、72 个测试),但缺少跨房间/跨建筑的实测验证。

信号处理管线的真实设计

抛开那些宏大的应用场景,我认为 RuView 最有价值的部分是它的信号处理管线。从源码中提炼出的真实数据流如下:

从 WiFi 信号到人体感知的数据流:ESP32 捕获 CSI → Rust 信号处理管线 → 姿态/生命体征/存在检测输出

WiFi 路由器 → ESP32-S3 mesh 捕获 CSI(信道 1/6/11,TDM 协议)
    ↓ 多频段融合(3 信道 × 56 子载波 = 168 虚拟子载波)
    ↓ 多基站融合(N×(N-1) 链路 → 注意力加权跨视点嵌入)
    ↓ 一致性门控(Z-score 相位一致性 + 滞后门控)
    ↓ 信号处理(Hampel / Fresnel / BVP / 频谱图)
    ↓ AI 骨干网(RuVector:注意力 + 图算法 + 场模型)
    → 输出:姿态 + 呼吸 + 心率 + 房间指纹

几个值得注意的工程决策:

  • CSI 而非 RSSI:大多数 WiFi 感知方案只利用 RSSI,精度有限。RuView 直接提取完整 CSI——每个子载波的幅度和相位——信息量大几个数量级。代价是只支持 ESP32-S3 和研究级 NIC,不支持 ESP32-C3 和原版 ESP32。

  • 一致性门控:不是所有时刻的 CSI 都可信。coherence gate 用 Z-score 相位一致性评分加滞后门控,自动决定接受、预测或拒绝每帧数据,这是系统能稳定运行数天无需调参的关键。

  • Adaptive Controller(ADR-081):三层闭环控制——快环(200ms)调采样频率、中环(1s)切信道、慢环(~30s)重校准基线。真正的控制系统设计,不是 if-else。

开发体验

如果你想上手试一下,几个关键信息:

最低门槛:Docker 方案,零硬件。拉镜像运行,浏览器打开 localhost:3000 即可体验完整 UI(模拟数据)。

入门硬件:一块 ESP32-S3(8MB Flash),约 9 美元。串口烧录固件,用 provision.py 配 WiFi,固件自动通过 UDP 发送 CSI 数据。

推荐配置:2-3 块 ESP32-S3 组 mesh,连接同一路由器,多节点显著提升检测精度。

测试覆盖是强项:1,463 个测试通过。Rust 侧 1,031+,Python 侧有确定性验证脚本(参考信号 + SHA-256 哈希),固件侧有 QEMU 模拟和主机端单元测试。

值得警惕的地方

这个项目有几个需要注意的问题:

scope 膨胀。不到一年半时间,项目从"WiFi 姿态估计"膨胀到涵盖睡眠监测、灾害搜救、材料分类、被动雷达、情感检测等几十个方向。79 篇 ADR 说明文档化做得好,但方向太多,任何一个的深度都可能受限。

CLAUDE.md 暴露的信息。项目的 CLAUDE.md 主要描述 Claude Flow 多智能体编排框架,而非 WiFi 感知本身——说明开发大量依赖 AI 辅助。15.8 万行 Rust 中有多少经过真实场景验证,需要你自己判断。

安全修复记录。CHANGELOG 中记录了 SQL 注入、XSS、命令注入、路径穿越等安全修复。对于一个处理敏感感知数据(生命体征、人员位置)的系统,这些修复说明早期安全实践有待加强。

单作者项目的可持续性。仓库 owner rUv 是项目的主要贡献者。这个规模的代码库(15.8 万行 Rust + 1.2 万行 C + Python + JS),长期维护是一个现实挑战。

总结

RuView 是 WiFi 感知开源领域目前最完整的实现。存在检测和生命体征提取已经具备实用价值,如果你需要在隐私敏感场景做人员感知,这是一个值得认真评估的方案。

项目当前真正能打的是基础感知能力工程架构。穿墙搜救、情感检测、量子启发计算这些方向展示了技术天花板,但距离落地还有相当距离。建议从存在检测和生命体征开始验证——代码和测试最扎实。


如果这篇对你有用,建议点个关注。我会持续把 GitHub 上值得用的 AI 工具拆成「最短上手闭环 + 坑点清单 + 可复用配置」,让你少走弯路。

引用链接

[1]RuView: https://github.com/ruvnet/RuView

 

暂无评论,快来发表第一条评论吧!

📮 需求咨询