RuView:用 WiFi 信号当人体雷达

你有没有想过——你家 WiFi 信号不仅仅是用来上网的?

那些在空气中穿梭的 2.4GHz 无线电波,每当有人走过、坐下、甚至呼吸时,都会产生微小的扰动。把这些扰动”翻译”成人能读懂的信息,就是 RuView 在做的事情。

RuView WiFi 空间感知系统

RuView 是什么?

RuView 是一个开源 WiFi 空间感知平台,用 Rust 编写,MIT 协议。它的核心思路很简单:

每个 WiFi 路由器都在往空间里填充无线电波。人体扰动这些电波——RuView 把它解读成位置、动作、甚至呼吸和心跳。

不需要摄像头。不需要穿戴设备。不需要云端。一套 ESP32 节点 + 一个跑 Docker 的主机,就能实现在家做”人体雷达”。

GitHub 上目前约 55k 星,最近一天新增 470+ 星,热度不低。项目由 ruvnet 维护,1055+ commits,96+ 个架构决策记录(ADR),工程化程度相当高。

核心技术:WiFi CSI 信号分析

这里面最核心的技术叫 WiFi CSI(Channel State Information,信道状态信息)。

简单理解:普通 WiFi 只看信号强度(RSSI),CSI 则能看到每一个子载波的相位和幅度变化。2.4GHz WiFi 6 在 HE20 模式下有 242 个子载波——相当于 242 个微小的”雷达通道”。人体对每个子载波的影响都不一样,而机器学习模型可以从这些细微差异中提取出姿态、动作和生命体征信号。

RuView WiFi DensePose 实时姿态检测

整个数据处理流水线分四步:

  1. CSI 采集:ESP32-C6 或 ESP32-S3 节点通过 ESP-IDF 固件实时采集子载波数据,通过 ESP-NOW 或 UDP 发给聚合服务器
  2. 去噪对齐:Rust 信号处理管道做相位展开、幅度归一化、多节点时间对齐
  3. 神经网络推理:轻量级 AI 模型在边缘侧推理——PCA 降维 + CNN/Transformer 判断状态
  4. 事件输出:JSON/WebSocket/MQTT 发送结构化事件给下游应用

能检测什么?

目前公开 Docker 镜像默认支持的功能(无需额外训练):

  • 人体存在检测:PRESENT / ABSENT,可以穿墙感知(2.4GHz 穿透干墙、木板、玻璃)
  • 动静判断:PRESENT_STILL(静止)vs PRESENT_MOTION(运动)
  • 呼吸信号:Breathing Band 波形随胸腔起伏实时变化
  • 心率检测:通过 CSI 多普勒分析提取心跳信号
  • 人数统计:person_count 输出

高精度姿态估计(WiFi DensePose,17 个骨骼关键点)需要额外模型文件,公开镜像默认不带。不过即使是基础功能,用在智能家居场景已经够用了——检测哪个房间有人、人是静止还是活动,足够驱动灯光、空调、安防逻辑。

硬件门槛:低到离谱

RuView Cognitum Seed 边缘AI硬件

最低配置:

组件 要求 参考价格
ESP32-C6 或 ESP32-S3 支持 CSI 的 ESP32 开发板 约 ¥30-60/个
WiFi 路由器 支持 2.4GHz,建议 WiFi 6(802.11ax) 你家现有的就行
运行 Docker 的主机 x86_64 或 ARM64,1GB+ RAM NAS/RPi/旧电脑都可以

一个 ESP32-S3 开发板才几十块钱,3-6 个节点组网也就一两百块的成本。对比市面上动辄几百上千的人体存在传感器(毫米波雷达、红外阵列),这个方案价格优势非常明显。

固件烧录走标准 ESP-IDF 流程:

git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf && ./install.sh esp32s3 && . ./export.sh
git clone https://github.com/ruvnet/RuView.git
cd RuView/firmware/esp32-csi-node
idf.py set-target esp32s3
idf.py menuconfig  # 配置 WiFi SSID/密码、聚合服务器 IP、节点 ID
idf.py build flash monitor

menuconfig 里主要改几个参数:节点 ID(多节点递增)、聚合服务器 IP(跑 Docker 那台机器的局域网 IP)、WiFi 信道(和路由器保持一致,建议固定信道 6)。

Docker 一键部署

服务端极其简单,Docker 一条命令:

docker run -d 
  --name ruview 
  --restart unless-stopped 
  -p 3000:3000 
  -p 3001:3001 
  -p 5005:5005/udp 
  -e CSI_SOURCE=esp32 
  ruvnet/wifi-densepose:latest

镜像支持 amd64 和 arm64,NAS、树莓派、x86 小主机都能跑。如果你还没有 ESP32 硬件,可以把 CSI_SOURCE 设成 simulated 先体验模拟模式。启动后访问 http://主机IP:3000 就能看到 Web 仪表盘。

端口说明:

  • 3000:HTTP 服务器 + Web UI
  • 3001:WebSocket 实时数据流
  • 5005/udp:接收 ESP32 节点的 CSI 数据

智能家居集成:Home Assistant 原生支持

RuView 对智能家居生态的集成做得很用心:

  • Apple HomeKit 原生 HAP 桥接:不需要经过 Home Assistant,直接就能把 MotionSensor + OccupancySensor 暴露给 Apple Home。Siri 可以直接问”厨房有人吗?”
  • Home Assistant 兼容:通过 MQTT 或 REST API 可以集成到 HA,README 里挂了 “Works with Home Assistant” 徽章
  • Matter 支持:理论支持 Matter 协议(徽章有标,但具体实现状态需要关注 ADR 进度)
  • MCP 协议:通过 @ruvnet/rvagent npm 包暴露 12 个 MCP 工具,可以被 Claude Code 等 AI Agent 直接调用

对已经在用 Home Assistant 2026.7(7 月初刚发布,支持自然语言自动化)的用户来说,RuView 提供的人体存在数据是自动化触发条件的绝佳来源。不再是”红外传感器检测到移动”这种粗糙的 trigger,而是”客厅有 2 人静止、卧室 1 人活动”这种精确的空间感知。

隐私设计:值得一说的亮点

这种”能穿墙看人”的技术,隐私是最敏感的话题。RuView 在这方面做了几件事:

  • 不使用任何摄像头像素:原始数据是无线电波的相位/幅度,永远不产生图像
  • BFLD PrivacyGate 四级分类:Raw → Derived → Anonymous → Restricted,每个字段都有明确的隐私级别
  • 语义命名去威胁化:输出 “Unknown Presence” 而非 “intruder detected”
  • Identity Risk Score 默认为 null:在 HTTP 边界明确不暴露身份信息
  • 本地优先:所有推理在边缘完成,数据默认不离开局域网

这些设计意味着 RuView 可以用在卫生间、卧室、医院病房这类传统摄像头”禁区”。

有什么坑?

别被酷炫的功能描述冲昏头,这个项目有几个现实问题需要考虑:

  1. 精度不如摄像头:WiFi DensePose 的躯干关键点准确率是 82.69% PCK@20——比视觉方案低不少。定位精度取决于节点数量和空间布局,单节点只能判断”有人在动”。
  2. 环境依赖强:金属家具、厚混凝土墙、大量人群都会干扰 CSI 信号。搬个沙发位置可能就要重新校准。
  3. WiFi 信道限制:必须用 2.4GHz,而且路由器要固定信道。如果你家 2.4GHz 信道拥挤(公寓楼常见问题),准确率会明显下降。
  4. 姿态估计需要额外模型:公开 Docker 镜像只有基础功能。想用完整的 17 关节点姿态追踪,要自己下载模型文件并配置。
  5. 项目还在快速迭代:最新提交是 7 月 3 日,1055+ 个 commit,96+ 个 ADR——说明架构还在频繁调整。API 稳定性不做保证。
  6. 没有中文社区:文档纯英文,issue 讨论也是英文。虽然有中文博客写过部署教程,但遇到问题基本只能靠自己翻 ADR。

值不值得折腾?

如果你符合以下条件,值得一试:

  • 已经在用 Home Assistant 做智能家居自动化
  • 有闲置的 ESP32 开发板(或者愿意花几十块买几个)
  • 对”无摄像头人体感知”有实际需求(老人看护、节能自动化等)
  • 不介意英文文档和频繁的 API 变更

如果只是”想体验一下 WiFi 感知是什么感觉”,开 Docker 模拟模式就够了——不需要任何硬件,5 分钟就能在浏览器里看到效果。

RuView 的价值在于把学术界研究了几十年的 WiFi CSI 感知技术,做成了一个 能实际部署的开源产品。ESP32 几十块钱一个,Docker 一行命令部署,Home Assistant 原生集成——这个落地门槛在同类项目里低得惊人。配上 Home Assistant 2026.7 刚发布的自然语言自动化,WiFi 人体感知 + AI 自动化这个组合拳,想象空间很大。

GitHub 仓库:github.com/ruvnet/RuView

官网:ruview.pro

发表评论