BLOG
用 WiFi 看穿墙的另一侧 — 在 ESP32 上试用无摄像头人体检测 OSS 『RuView』
『RuView』是一款用 Rust 编写的 OSS,靠 WiFi 反射(CSI)在不用摄像头的情况下推定人的存在、呼吸与姿势。本文梳理如何用 9 美元的 ESP32-S3 搭建、如何用 Docker 试用,以及它与 esp-csi 的区别。

完全不使用摄像头,仅凭在房间里飞来飞去的 WiFi 电波,就能推定人的存在、呼吸次数、心率,甚至身体的姿势。这听起来像科幻,但如今已经发展到能用9 美元的单片机与 OSS来重现的地步了。
处于其核心的是 ruvnet/RuView —— 一个汇集了超过 6 万颗星的 Rust WiFi 传感平台。它把 ESP32-S3 作为传感器节点,解析 WiFi 电波的「反射模式」,在完全不持有影像的情况下读取空间的状态。
本文梳理 RuView 的原理与架构、实际的试用方法,以及它与同类 OSS(espressif/esp-csi、WirelessEye)的区别。目的是为你判断「是否该在自己的项目中采用」提供依据。
为什么没有摄像头也能「看见」人
关键在于 CSI(Channel State Information / 信道状态信息)。
WiFi 电波并非从发射机一直线地到达接收机。它会撞到墙壁、家具,以及人体后反射,经由多条路径抵达接收机。把「哪个频率的电波、衰减了多少、相位偏移了多少后抵达」细致记录下来的,就是 CSI。
- 人在移动 → 反射路径改变 → CSI 的波形发生变化
- 人在呼吸 → 胸廓以毫米为单位上下起伏 → CSI 上叠加周期性的微小变动
- 人摆出特定姿势 → 反射模式中出现固有的「指纹」
也就是说,WiFi 路由器仅仅是在发出电波,就已经在「照亮」房间了。RuView 的定位就是读取那束反射光(电波)的接收传感器。由于不像摄像头那样持有影像,在隐私层面的抵触感压倒性地更小,这正是它最大的优点。
RuView 的架构
RuView 大致分为三层。
1. 传感器节点(ESP32-S3)
9 美元的 ESP32-S3 承担吐出 CSI 原始数据的角色。ESP32 系列在芯片层面就具备 CSI 获取 API,因此无需购买专用的 SDR(软件定义无线电)设备,用市售的廉价单片机就能站在 WiFi 传感的入口。这一点一举推进了该领域的民主化。
2. 处理引擎(Rust)
原始 CSI 满是噪声。RuView 的本体是用 Rust 编写的信号处理与推理引擎,在这里进行以下工作。
- 去噪、相位校正等预处理
- 提取呼吸、心跳这类周期成分
- 用于姿势与存在检测的特征量计算与模型推理
选择 Rust,想必是为了兼顾实时性与内存安全。对于在边缘常态运行的信号处理来说,这是合乎道理的选择。
3. 可视化与 API 层
这是把推定结果经由仪表盘或 API 输出到外部的层。由于可以用 Docker 整套启动,先在手边把握整体样貌是捷径。
用 Docker 试用
在深入打磨之前,先看到能跑起来的状态是理解的捷径。RuView 是可以用 Docker Compose 一整套启动的构成。
git clone https://github.com/ruvnet/RuView.git
cd RuView
docker compose up
这样处理引擎与可视化层就会启动,可以从浏览器访问仪表盘。这一构成设计成即便手边没有实机 ESP32-S3,也可以灌入样本 CSI 数据来确认其行为,所以若想体感「究竟能从 CSI 中读出什么」,从这里开始是最短路径。
要实际进行传感,则需进一步:把固件写入 ESP32-S3,并把 CSI 流朝引擎发送。到了这一阶段,「墙那头的呼吸」才终于以数字的形式呈现出来。
与 esp-csi / WirelessEye 的区别
WiFi 传感类 OSS 并非只有 RuView。为了便于采用判断,这里梳理有代表性的三款。
espressif/esp-csi
这是 Espressif 官方的仓库,以在 ESP32 上获取 CSI的固件与样本为中心。其定位是「CSI 的获取与基础样本」,上层的推理、可视化、运维则以自行搭建为前提。
- 优势:官方、轻量、最贴近芯片,能可靠地取到 CSI
- 弱点:不涵盖存在检测或姿势推定。它是地基,而非成品
把 RuView 理解为在这种 esp-csi 式「获取 CSI」层的之上,叠加了推理、可视化与运维,两者的关系就一目了然了。
WirelessEye
这是一款以实时可视化 CSI 为主旨的工具。在「电波里映出了什么」想先用眼睛看看的研究与学习阶段很强。不过它并非那种能原样嵌入产品的处理基础设施。
RuView 的定位
| OSS | 主旨 | 完成度的性质 |
|---|---|---|
| esp-csi | CSI 的获取 | 地基(上层需自制) |
| WirelessEye | CSI 的可视化 | 观察、学习向 |
| RuView | 获取〜推理〜可视化 | 一体化平台 |
若「想先理解原理」,用 esp-csi 或 WirelessEye 窥看电波会更快。若「想把存在、呼吸、姿势一气贯通地试一遍」,那就选 RuView,这就是它们的分工。
考虑采用时的现实注意点
这是一项富有梦想的技术,但若要用于业务,就需要冷静地划清界限。
- 精度依赖环境:家具的摆放、墙壁的材质、其他 WiFi 设备的干扰,都会让 CSI 大幅变化。并非「在任何房间都能立刻出精度」,逐环境的校准是前提。
- 不是摄像头的替代,而是另一回事:个人识别与细致的动作识别是摄像头的领域。CSI 擅长的不是「是谁」,而是「有人/动了/在呼吸」这类顾及隐私的粗略状态把握。
- 要挑用途:老年人守护、通过在室检测进行的空调与照明控制、睡眠中的生命体征监测等,正是在不想放摄像头的地方才显出真正的价值。
反过来说,在这种存在「无法放/不想放摄像头」约束的现场,能用 9 美元 ESP32 起步的 RuView 是非常有吸引力的选项。
总结
WiFi 传感已从需要专用昂贵设备的时代,进入了用廉价单片机与 OSS 谁都能试的阶段。RuView 把「从获取到推理与可视化」汇于一体,是当下最容易上手的入口之一。
先用 Docker 跑起来体感 CSI 里映出了什么,若有手感就买一块 ESP32-S3 进入实测 —— 按这个顺序,几千日元与几个小时就能触及「用 WiFi 看穿墙的另一侧」的世界。
如果你正在考虑传感数据的处理基础设施,或涉及此类边缘设备的产品开发,欢迎随时向 株式会社 Wired & Eco 咨询。