家里装摄像头,总像揣了个定时炸弹。对着卧室客厅,怕隐私泄露;不装,独居老人摔了没人知道,孩子偷偷爬窗台发现不了。普通人体传感器更气人。人在沙发上躺着不动半小时,直接给你关灯锁空调,半夜起夜摸黑找开关,差点摔了。

直到我挖到了 RuView 这个开源项目 —— 原来天天用的 WiFi,除了刷视频打游戏,还能当一双 “看不见的眼睛”。

先搞懂,RuView 到底是什么

它是个完全开源的 WiFi 空间传感平台。不用摄像头,不用穿戴设备,不用额外布线,靠你家现成的 WiFi 信号,就能穿透墙壁、在全黑环境里,感知屋里的人在哪、在做什么,甚至能非接触式测出你的呼吸和心率。

原理说穿了一点都不玄乎。你家的 WiFi 路由器,就是个不停往空间里发射无线电波的小基站。这些波能填满整个房间,穿得过墙,绕得开柜子,连门缝都能钻进去。人在屋里动一下,抬个手,甚至只是胸腔起伏喘气,心脏跳一下,都会让这些波发生细微的散射。就像风扫过水面,留下的细碎涟漪。RuView 做的,就是把这些人眼看不见的涟漪抓下来。靠自研的信号处理算法和 AI 模型,把原始的信号波动,还原成实实在在的信息:屋里有没有人,人在哪个位置,是站着还是坐着,呼吸心跳正不正常。

它能做的事,远不止 “穿墙看人”

我玩了一周,最实用的功能,全踩中了日常的痛点。

最刚需的,是全屋人体感应。人在沙发上躺着刷手机,哪怕半天不动,它也能准确识别你在,不会傻乎乎给你断电关灯。隔着卧室墙,能知道你起没起床,不用在每个房间都塞一个传感器,连衣柜、卫生间这种死角都能覆盖。

对独居家庭、有老人的家庭,它是真的能救命。跌倒检测不用戴任何手环手表,摔了立刻能触发提醒。睡眠时能监测呼吸心率,筛查呼吸暂停,老人不爱戴穿戴设备,这个完全无感化,不用提醒,不用充电。

开店、开民宿的朋友,也能直接用。统计客流,看顾客在哪个货架前停得久,算餐桌翻台率,不用装摄像头,天然避开隐私合规的麻烦。民宿能检测房间有没有人,没人的时候自动关空调关灯,省电费,不用装门磁。

甚至很多极端场景,它比摄像头靠谱 10 倍。消防救援时,能穿透浓烟、废墟,靠呼吸信号找幸存者;工地、仓库里,能穿透货架、粉尘,检测有没有人靠近危险区域;地下矿井、隧道里,GPS 和摄像头都废了,它靠 WiFi 信号就能定位人员。

为什么它比摄像头、传感器香?

最核心的,是绝对的隐私安全。全程没有一个摄像头像素,不采集任何图像画面,只有 WiFi 信号的波动数据,所有运算都能在本地跑,不用上传云端,彻底断了隐私泄露的可能。

成本低到离谱。零成本就能用笔记本跑通演示,进阶玩法只需要三四十块的 ESP32 开发板,对比动辄几百上千的毫米波雷达、专业传感设备,门槛几乎为零。

环境适应性拉满。穿墙能用,全黑环境能用,浓烟、粉尘、大雾里都能用,彻底解决了摄像头、激光雷达必须视线无遮挡的死穴。

完全开源,随便折腾。基于 MIT 协议开源,代码、固件、文档全开放,你想改就改,接入 HomeAssistant 做全屋自动化,自己训练跌倒检测、手势识别的模型,都没问题。

手把手带你上手,先从零成本开始

别慌,不用先买一堆硬件。我一开始也以为门槛很高,结果手里的普通笔记本,3 分钟就跑通了完整演示。

你只需要准备两样东西:一台能正常连 WiFi 的笔记本,Windows、Mac、Linux 系统都能用;再装个 Docker Desktop,官网直接下载,一路下一步就行,不用改复杂设置。

3 分钟跑通演示,一行命令都不用多敲

打开终端,Windows 用 CMD 或者 PowerShell,Mac、Linux 用自带的终端就行。先敲一行命令,拉取官方的 Docker 镜像:

docker pull ruvnet/wifi-densepose:latest

国内用户记得给 Docker 配个国内镜像源,阿里云、中科大的都行,不然下载速度慢。

镜像拉完,再敲一行命令,启动容器,映射本地 3000 端口:

docker run -p 3000:3000 ruvnet/wifi-densepose:latest

完事。打开任意浏览器,输入http://localhost:3000,就能进入 RuView 的可视化仪表盘。里面有完整的模拟数据,能看 WiFi 信号还原的人体姿态骨架,呼吸心率的实时监测,人员计数、穿墙检测的效果,先把所有功能摸一遍,心里有底。

不想用 Docker?直接跑原生代码

不想装 Docker 的,直接克隆仓库代码,跑官方的验证脚本,一样不用额外硬件。

# 克隆仓库到本地
git clone https://github.com/ruvnet/RuView.git
# 进入项目目录
cd RuView
# 安装Python依赖
pip install -r requirements.txt
# 运行验证脚本,确认核心信号处理链路正常
python archive/v1/data/proof/verify.py

脚本跑通,终端会输出信号处理的验证结果,核心功能的链路就通了。

进阶玩法!加三四十块,解锁真・穿墙感知

普通笔记本自带的消费级 WiFi 网卡,抓不到完整的 CSI 信号数据,只能做个大概的存在检测。想解锁穿墙感知、呼吸心率监测、姿态估计这些真本事,只需要加一块 ESP32-S3 开发板。单块板也就三四十块,一杯奶茶钱。

硬件准备清单

  • ESP32-S3 开发板:必须是 S3 型号,ESP32-C3、初代 ESP32 用不了,单核性能不够,抓不了完整数据。推荐合宙、乐鑫的核心板,带 Type-C 口就行;
  • Type-C 数据线:必须是能传数据的,别用那种只能充电的废线,我一开始就踩了这个坑,折腾半小时才发现线不对;
  • 家用 WiFi:优先 2.4G 频段,5G 部分信道兼容性不好,容易丢包,笔记本和开发板要连同一个 WiFi。

想效果更好?多买 2-6 块开发板组 Mesh 网,官方明确说,单节点空间分辨率有限,2 个以上节点,精度会有质的提升。

一步步带你刷固件、配网、跑通真实感知

第一步:给开发板刷写固件

先给电脑装 esptool 工具,用来给 ESP32 刷固件,一行命令搞定:

pip install esptool

去项目仓库的 release 页面,下载最新的 ESP32-S3 固件包,解压出来四个 bin 文件,放一个好找的文件夹里。

用 Type-C 线把开发板连到电脑,先确认串口能被识别。Windows 里是 COM 开头的端口,Mac、Linux 里是 /dev/ttyUSB0 或者 /dev/tty.usbmodem 开头的地址。串口找不到?先装 CH340 驱动,几十块的开发板基本都用这个,装完重启电脑就认了。

然后刷固件,把命令里的 COM9 换成你自己的串口地址:

python -m esptool --chip esp32s3 --port COM9 --baud 460800 \
  write_flash 0x0 bootloader.bin 0x8000 partition-table.bin \
  0xf000 ota_data_initial.bin 0x20000 esp32-csi-node.bin

刷不进去?按住开发板的 BOOT 键再插线,进下载模式再刷,别硬怼。看到终端输出 “Leaving... Hard resetting via RTS pin...”,就是刷写成功了。

第二步:给开发板配网,连到你的笔记本

固件刷完,别断开串口,用官方的配网脚本,给开发板设置 WiFi,让它把采集到的数据传到你的笔记本上。

把命令里的参数换成你自己的:

  • --port:你的串口地址,和刷固件时一致;
  • --ssid:你家的 WiFi 名称;
  • --password:你家的 WiFi 密码;
  • --target-ip:你笔记本的局域网 IP,别填 127.0.0.1,也别填公网 IP。
python firmware/esp32-csi-node/provision.py --port COM9 \
  --ssid "你家WiFi名" --password "你家WiFi密码" --target-ip 192.168.1.100

配网完成,开发板会自动重启,连上你家的 WiFi,开始采集 CSI 数据。

第三步:笔记本启动服务,看实时数据

回到项目仓库目录,开两个终端窗口。第一个窗口,启动实时扫描脚本,接收开发板传来的数据:

node scripts/rf-scan.js --port 5006

第二个窗口,启动信号处理脚本:

node scripts/snn-csi-processor.js --port 5006

再打开浏览器,进http://localhost:3000,就能看到实时采集的 WiFi 数据,真实的人体检测、运动追踪、姿态估计,都出来了。

我踩过的坑,全给你避了

收不到开发板的数据?先确认笔记本和开发板连的是同一个 WiFi,在一个局域网里。再把笔记本的系统防火墙关了,大概率是防火墙把数据包拦了。刷固件失败?除了进下载模式,还要确认串口没有被其他软件占用,串口助手、烧录工具都关了再刷。单块板效果不好别慌,官方明确说了单节点空间分辨率有限,想玩姿态估计、精准定位,至少 2 块板起步。WiFi 优先用 2.4G 的,5G 的很多信道对 CSI 采集兼容性不好,容易丢包,稳定性差。

玩到现在,最打动我的,不是它有多 “黑科技”,是它给了一个完全不侵犯隐私的感知方案。现在摄像头到处都是,想做个全屋感应,总怕数据泄露,怕被人偷看。而这个方案,从头到尾没有图像,只有 WiFi 信号的波动,所有数据都能在本地跑,不用上传云端。几十块的成本,就能玩到专业级的无线感知,这大概就是开源的魅力。感兴趣的,去 GitHub 给项目点个 Star,自己动手试试,说不定能玩出更多有意思的花样。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐