最近在 GitHub 上看到一个很特别的项目:RuView。
它声称不需要摄像头,也不要求人佩戴设备,只利用房间里的 Wi-Fi 信号,就能检测人体存在、运动、呼吸、心率,甚至还尝试还原人体姿态。
截至我调研时,这个项目已经超过 8.6 万 Star。听起来很像科幻,所以我决定不只看 README,而是把代码拉下来实际部署和测试一下。
它的原理是什么?
Wi-Fi 信号在房间里传播时,会被墙壁、家具和人体不断反射。一个人进入房间、走动、挥手,甚至只是呼吸,都会改变无线信号的传播路径。
RuView 使用 ESP32 采集 CSI(信道状态信息)。相比只有一个信号强度数值的 RSSI,CSI 可以记录几十个 Wi-Fi 子载波的振幅、相位及其时间变化。它会进一步做信号去噪、相位处理、频谱分析、房间标定,再通过规则算法或模型,推断房间里是否有人、是否运动,以及可能的呼吸和心率变化。
所以 RuView 并不是真的像摄像头一样「看见」墙后的人。更准确地说,它是在观察无线信道发生了什么变化,然后推断变化背后可能发生了什么。
我的部署过程
我先克隆了整个仓库:
git clone https://github.com/ruvnet/RuView.git
cd RuView
这个项目不是一个简单的 Python 工具。它包含 Rust 感知服务器、ESP32 固件、Python 和 Node 客户端、Web 与桌面界面、Home Assistant 集成,以及大量实验性模块。整个仓库大约有:
- 2,700 多个文件
- 700 多个 Rust 文件
- 38 个左右的 Rust crate
- 8 个 Git 子模块
由于我的 Docker Desktop 当时没有启动,系统里也没有 Rust 工具链,我先选择了官方 Python 轮子作为最短验证路径。
但第一步就遇到了问题。直接运行:
pip install wifi-densepose
装到的是 1.99.0。这是一个「墓碑版本」,导入时会直接报错,并提示安装目前并不存在的稳定版 2.0.0。
最后只能显式安装 Alpha:
py -3.11 -m venv .venv
.\.venv\Scripts\python -m pip install "wifi-densepose==2.0.0a1"
这次安装成功,编译好的 Rust/Python 绑定也能正常加载。
我实际测试了什么?
我没有 ESP32-S3 硬件,所以没有假装自己完成了真实房间测试。我做了两类验证。
第一类是合成生命体征信号测试。向算法输入一个 72 BPM 的模拟心率信号,结果是:
- 输出:72.289 BPM
- 置信度:0.845
- 状态:Valid
这个结果相当不错。随后输入 15 BPM 的模拟呼吸信号:
- 输出:18 BPM
- 置信度:0.309
- 状态:Unreliable
说明 DSP 接口确实可以运行,也能从周期信号里提取结果;但同样说明:能够输出一个数字,不等于这个数字可靠。
第二类是项目的公开 Observatory Demo。页面正常完成了 3D Canvas 渲染,控制台没有报错。我也成功把场景从自动轮播切换到多人模式,页面随即显示两个人和 ACTIVE 状态。前端体验做得相当完整。
不过页面明确写着 DEMO。这些是预设或模拟场景,只能证明展示系统正常,不能证明真实 Wi-Fi 人体识别准确率。
我认为它做得好的地方
首先,它探索的是一个真实且有价值的方向。相比摄像头,Wi-Fi 感知不采集人脸和视频,能在黑暗、遮挡甚至部分穿墙环境下工作。对卧室、卫生间、养老照护和隐私敏感空间,这种技术有明显吸引力。
其次,它优先考虑本地和边缘运行。ESP32 负责采集,服务器可以在局域网处理,不一定需要把原始数据上传云端。
再次,扩展能力很强。项目已经覆盖 REST、WebSocket、MQTT、Home Assistant、Matter、Python、Rust、WASM 和桌面端。它不只是一个算法 Demo,而是在尝试搭建完整的环境感知平台。
我还比较欣赏的一点是,仓库现在开始主动区分「真实验证」「合成数据」和「研究设想」。例如,它明确承认单 ESP32 的 17 关键点姿态模型仍然是第一版,部分人数统计实际上只是启发式算法,而不是训练完成的分类模型。
它目前最大的问题
最大的问题不是收不到 CSI。真实用户已经证明,ESP32 可以正常采集和发送真实 CSI。真正困难的是:如何稳定地把信号变化解释为「有人」。
一位用户使用 3 个 ESP32-S3 做了受控实验。在排除时间漂移和 Wi-Fi 连接模式变化后,原始幅度特征的存在检测 AUC 只有大约 0.58,接近随机猜测。维护者也明确回复:可靠的存在检测应该使用每个房间单独标定和训练的模型,而不是直接依赖通用规则或原始 CSI。
这意味着它目前还不是开箱即用的传感器。房间布局、设备位置、温度、风扇、微波炉、邻近 AP 和 Wi-Fi 发射功率变化,都可能导致误报。
硬件兼容性同样仍在磨合。有人报告预编译 ESP32 固件无法输出 CSI;ESP32-C6 存在断线后无法重连的问题;多节点之间还可能出现时间同步和融合失败。
安全方面也有明显缺口。CSI 数据默认通过 UDP 发送,接收端监听所有网络接口,目前没有节点认证、HMAC、重放保护或来源白名单。在隔离的家庭局域网里,这可能是可管理风险;在企业、医院或公网环境中,则必须重新设计。
它目前处于什么阶段?
我的判断是:RuView 已经超过了普通概念验证,但还没有达到稳定产品阶段。
它的「数据采集、协议、接口和展示」走得比较快。但最关键的「真实环境准确率、跨房间泛化、硬件一致性和长期运行稳定性」仍然落后于产品宣传所呈现的完整度。
项目更新非常活跃,但也扩张得太快。仓库里同时存在大量研究路线、硬件适配、边缘模块和产品集成,版本标签和发布包也比较混乱。
目前更适合 RF、IoT、边缘计算和机器学习团队研究,不适合直接承担医疗、养老或工业安全责任。
为什么我依然觉得它未来可期?
因为 Wi-Fi 感知这个方向本身并不是伪命题。CSI 确实可以捕捉人体运动、呼吸和环境变化。真正的问题是,如何在不同房间、不同 AP、不同设备和不同时间条件下保持稳定。
如果 RuView 接下来能够做好几件事:
- 建立更大规模的真实房间数据集
- 把逐房间标定做成简单可靠的流程
- 发布真正可复现的存在与姿态模型
- 统一硬件和固件兼容矩阵
- 完善数据面认证和安全边界
- 用盲测和长期测试替代模拟 Demo 指标
那么它很可能会从一个吸引眼球的研究项目,逐渐变成真正有用的无摄像头空间感知平台。
最后
RuView 是我最近见过最有想象力的开源项目之一。它让我看到了一个可能的未来:房间知道有人,却不需要拍下任何人。
但就当前状态而言,我会关注它、研究它,也愿意拿它做一个房间的小规模实验。我不会把它直接用于医疗监护、跌倒告警或工业安全,更不会把模拟 Demo 当成真实准确率。
对我来说,它现在最准确的定位不是「已经实现用 Wi-Fi 穿墙看人」,而是:一个正在努力证明这件事究竟能做到什么程度的开放实验场。
问题留给大家:
如果一种传感器完全不拍摄视频,但准确率暂时不如摄像头,你愿意用一部分准确率换取更多隐私吗?你能接受的误报率是多少?而且,当 Wi-Fi 开始感知人体时,它真的比摄像头更「隐私」吗?