库 / SDK
ruvnet/RuView avatar
ruvnet/RuView

RuView:用 ESP32 和 WiFi 信号做无摄像头空间感知,到底靠不靠谱

把普通 WiFi 信号变成实时空间感知:无需摄像头即可穿墙探测人员、呼吸与心率,并可接入 Home Assistant 等智能家居系统。

94,106 个 Star12,456 个 ForkRustMIT

秒懂

它是什么?
RuView 把普通 WiFi 的 CSI 信号变成存在检测、呼吸心率测量和动作识别,全部跑在边缘设备上。本文基于仓库文档,拆解它的工作原理、部署方式、已知局限和适用边界。
适合谁用?
RuView 适合那些已经有 Home Assistant 或者愿意折腾 ESP32 的开发者,尤其是对隐私敏感、不想装摄像头的场景。它不适合追求医疗级心率数据或者需要开箱即用产品的普通用户,因为文档里的 82.3% 精度是特定模型在特定条件下的结果,真实环境表现需要自己验证。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 Rust(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的问题:摄像头之外的另一种感知方式

RuView 想解决的是一个很具体的问题:在不装摄像头、不戴手环的前提下,知道房间里有没有人、人在呼吸的频率是多少、心跳大概多快,甚至人是不是摔倒了。传统方案要么侵犯隐私,要么需要用户主动佩戴设备。RuView 的思路是,WiFi 路由器本来就在往外发无线电波,这些波碰到人体后会发生变化,通过分析这些变化就能反推人的状态。它面向的是智能家居玩家、养老监护场景的开发者,以及任何不想在卧室里放摄像头但又需要远程知道家人状态的人。仓库文档明确说,它不需要互联网,不需要云服务,所有处理都在本地边缘设备上完成。

核心机制:CSI 信号如何变成呼吸和心率数据

RuView 的数据源头是 Channel State Information,也就是 CSI。普通的 WiFi 网卡只关心信号强度,CSI 则记录了信号在多个子载波上的幅度和相位信息,这些信息会随着环境中物体的微小移动而变化。文档里给出的呼吸检测方法是:对包裹相位做 0.1 到 0.5 Hz 的带通滤波,然后计算循环方差和过零率,从而得到每分钟呼吸次数。心率检测类似,只是频带换成 0.8 到 2.0 Hz。也就是说,它并不是用机器学习从原始波形里硬猜,而是先做信号处理,把呼吸和心跳的周期性从噪声里分离出来。这个方法的优点是计算量小,ESP32 这样的低功耗芯片也能实时跑。缺点是它对传感器的放置位置和环境的稳定性很敏感,稍微挪动一下家具,滤波器的参数可能就要重新调。

硬件与软件架构:ESP32 网格加一个中心节点

整个系统分为两层。底层是 ESP32 传感器节点,文档说每个节点成本可以低到 9 美元,它们组成一个 mesh 网络,同时扫描 6 个 WiFi 信道,甚至可以利用邻居家的路由器信号作为额外的雷达照射源。上层是一个叫 Cognitum Seed 的边缘计算单元,负责持久化存储、密码学 attestation 和 AI 推理。每个节点会输出 21 个实体,其中 11 个是原始信号,另外 10 个是推断出来的语义状态,比如 someone-sleeping、possible-distress、bathroom-occupied 这些。这些状态通过 MQTT 发布给 Home Assistant,也可以作为 Matter bridge 接入 Apple Home 或者 Google Home。文档里提到一个 HOMECORE 组件,它提供状态管理、自动化、签名 Wasm 插件和 HomeKit 支持。整个架构的意图很明显:传感器只负责采集和初步处理,复杂的逻辑放在中心节点,这样单个传感器坏了不会影响整体判断。

部署方式:从 npx 命令到 Home Assistant 集成

RuView 的部署入口有点特别,它提供了一个叫 MetaHarness 的工具,用 npx 就能调用。文档给出的命令是 `npx @ruvnet/ruview@0.4.0 doctor`,用来检查本地环境是否就绪。然后是 `npx @ruvnet/ruview@0.4.0 agent run --host codex --repo . --prompt "Find the nearest tests and cite the source files"`,这会让一个 AI agent 在仓库里搜索测试代码。实际接入 Home Assistant 只需要给主程序加一个 `--mqtt` 标志,文档说 ships 21 entities per node,还有 3 个 starter Blueprints。如果你用的是 Apple Home,RuView 会作为一个 HAP-1.1 bridge 被发现,不需要写任何自定义 skill。这里有个值得注意的点:MetaHarness 的 agent 默认是只读的,如果要写文件必须同时加 `--allow-write` 和 `--confirm` 两个参数。这个设计是好的,但意味着你不太可能完全靠 AI 自动完成整个部署,还是需要自己理解硬件接线和网络配置。

模型精度与诚实性:82.3% 意味着什么

仓库里有一个很关键的细节:文档明确说,v2 encoder 在无标签的 held-out 数据集上的 temporal-triplet accuracy 是 82.3%,而旧的“100% presence”数字已经被撤回,因为那个结果是在单类录音上测出来的。这种主动承认精度虚高的情况在开源项目里不多见,值得肯定。但 82.3% 这个数字本身需要仔细看:它是 temporal-triplet accuracy,不是端到端的呼吸检测准确率,也不是人体关键点检测的 mAP。它衡量的是模型在区分不同时间序列片段时的能力,和实际部署中“这个人是不是在睡觉”的判断准确率不是一回事。所以如果你打算用 RuView 做睡眠监测,不能直接拿 82.3% 当产品指标,你需要在自己的环境里重新采集数据、重新评估。文档也提到 unified RF world model 的 accuracy 还是 synthetic,意思是还没有经过真实数据验证,这一点在评估时不能忽略。

已知局限与失败模式:哪些场景不适合

RuView 的第一个明显局限是它依赖 CSI 数据,而 CSI 的获取并不像读 RSSI 那么简单。ESP32 的固件需要支持 CSI 采集,而且不同路由器芯片的 CSI 质量差异很大,文档没有给出兼容路由器列表,这意味着你可能要试好几台路由器才能得到稳定的信号。第二个局限是环境变化的影响。文档提到 RF fingerprinting 可以检测房间里的家具是否被移动,但反过来,如果你经常挪动家具,模型可能需要重新校准。第三个局限是隐私边界。虽然系统是本地运行的,但文档里提到一个“governed evidence”机制,会给每个感知事件附加隐私政策、不确定性和 provenance 记录。这听起来很严谨,但也意味着系统会记录大量关于居住者行为的数据,这些数据存储在本地,但如果你把 Home Assistant 暴露到公网,这些敏感信息就有了泄露风险。最后,文档明确说某些功能的精度还是 synthetic,也就是说在真实环境中可能达不到宣传效果。

替代方案:毫米波雷达和传统 PIR 传感器

如果你需要的是存在检测和呼吸监测,市面上有更成熟的方案。毫米波雷达模块,比如 Infineon 的 BGT60TR13C 或者 TI 的 IWR6843,可以直接输出点云和微动数据,不需要依赖 WiFi 信号,对环境变化的鲁棒性更好。它们的缺点是成本更高,一个模块可能要几十美元,而且需要更复杂的信号处理。另一个简单得多的替代是 PIR 传感器,成本不到 2 美元,但只能检测运动,无法测量呼吸或心率。RuView 的优势在于它利用的是现有的 WiFi 基础设施,不需要额外购买专用硬件,而且它提供了 17 个身体关键点的估计能力,这是 PIR 和普通雷达模块做不到的。但如果你只需要“房间里有没有人”这个信息,PIR 加一个 Home Assistant 的 Zigbee 网关可能更省心,部署时间从几小时缩短到几分钟。

维护成本与许可证:MIT 带来的自由度与责任

RuView 采用 MIT 许可证,这意味着你可以自由使用、修改和商用,但项目本身没有提供商业支持。仓库最近的发布频率看起来不低,v2403 和 v2400 只隔了一天,说明开发还在活跃进行,但这也意味着 API 可能不稳定,升级时可能需要调整配置。文档里提到的 Hugging Face 模型是单独发布的,你需要单独下载并管理模型文件,这部分不在 MIT 许可证的覆盖范围内,使用时需要检查模型的具体 license。另一个维护成本来自硬件:ESP32 节点需要定期固件更新,而且电池供电的话还要考虑更换电池。整体来看,RuView 适合愿意投入时间调试的开发者,不适合想要一个“装完就忘”的产品的用户。如果你决定采用,建议先从小规模开始,比如用一个 ESP32 节点加一个 Cognitum Seed 的模拟环境,跑通 data flow 之后再扩展到多节点 mesh。

编辑结论

RuView 适合那些已经有 Home Assistant 或者愿意折腾 ESP32 的开发者,尤其是对隐私敏感、不想装摄像头的场景。它不适合追求医疗级心率数据或者需要开箱即用产品的普通用户,因为文档里的 82.3% 精度是特定模型在特定条件下的结果,真实环境表现需要自己验证。在采用之前,先确认你的路由器能提供稳定的 CSI 数据,检查 ESP32 固件是否支持你手上的硬件版本,并且跑一遍仓库里的 doctor 命令看看环境是否齐全。如果你只是想要一个简单的存在传感器,直接买一个 PIR 或者毫米波雷达模块可能更省事。RuView 的价值在于它把 WiFi 信号变成了一种可编程的感知层,但它的成熟度还停留在需要动手的阶段。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记