用WiFi信号感知空间?这个开源项目挺有意思

用WiFi信号感知空间?这个开源项目挺有意思

室内空间感知这件事,主流方案一直是摄像头。但摄像头有个绕不开的问题——隐私。不管是家里还是办公室,架个摄像头在那里,心理上总有点不舒服。尤其近年来隐私泄露事件频发,很多人对"被监控"这件事越来越敏感。

所以我在 GitHub 上看到 RuView 这个项目的时候,觉得思路挺妙的:不用摄像头,用 WiFi 信号来感知空间。

原理其实不复杂

WiFi 信号穿透墙壁和物体的时候,会被人体遮挡、反射。房间里有人走动,WiFi 信号的强度就会发生变化。RuView 做的事情就是捕捉这些信号波动,然后用深度学习模型来分析——房间里有没有人、有几个人、在什么位置、在做什么动作。

本质上,它把 WiFi 路由器变成了一个"雷达"。不需要额外的硬件,利用家里现有的 WiFi 设备就行。这种"变废为宝"的思路特别讨巧——你家里可能已经有好几个 WiFi 设备在 24 小时工作,它们一直在向外发射无线电波,只是我们从来没想过把这些信号拿来"用"。

从信道状态到空间信息的转化链路

要真正理解 RuView 的工作方式,需要看看链路是怎么串起来的。首先,WiFi 网卡在正常工作时会持续测量接收到的信号强度,同时还能获取到更细粒度的 CSI(Channel State Information)数据。CSI 记录了每个子载波上的幅度和相位信息,比单纯的 RSSI(信号强度指示)要丰富得多——相当于从"信号大概多强"升级到了"信号的每个细粒度分量长什么样"。

把这些 CSI 时间序列喂进 1D-CNN 或 LSTM 模型里,模型就能从信号的微弱变化中分出是有人走过、有人坐着一动没动、还是房间里根本没有人。再在房间两侧各放一台支持 Linux 的边缘设备(树莓派就可以),把两台设备的检测结果做交叉校验,就能把精度从"有人没人"大致定位到"人在房间的哪个区域"。

动手体验步骤

没有想象中那么高门槛。你可以先准备两台刷了 Raspberry Pi OS 的树莓派,安装开源版本的 CSI 采集工具。先放一台在客厅左角落、一台在右角落。标定的时候先采集几轮无人数据做基线,再让家人分别在客厅、卧室、走廊等不同区域各停留两三分钟,同步标记下标签。模型用 RuView 仓库里的预训练权重做微调就行,不超过五十行代码就能跑通一个最初级的版本。这样你就有了一套自己家的「WiFi 雷达」。

类似的代表性工作

和 RuView 思路接近的还有几款学术界的方案也值得一看:WIFAR 用 CSI 做多房间人员计数,在公开数据集上误差不到 0.5 人;DeepFi 和 PhaseFi 则更多关注透过墙壁的人体姿态估计,虽然对硬件要求更高。如果你只是想在家里快速体验,这两个方案门槛偏高,反而是 RuView 这种 CSI+CNN 的组合最先能跑起来。

技术上有哪些难点

说起来简单,做起来还是有不少挑战的。需要留意的主要是下面三点:

多径效应是个大问题。WiFi 信号在室内会经过多次反射,同一条信号可能走多条路径到达接收端。这些叠加在一起的信号混在一起,要从中提取出有用的信息不容易。尤其当房门、家具材质变化后,多径特征也会跟着变,所以长时间运行的话需要某种程度的自动校准机制。

信号衰减的非线性也是挑战。WiFi 信号随距离增加不是均匀衰减的,被人体遮挡时的衰减更是难以用简单的数学模型来描述。RuView 的做法是用深度神经网络来学习这个非线性映射,而不是试图用物理公式硬算。这里隐含着另一个问题:训练数据的特征分布和实际环境不一致时,模型会退化明显——所以建议每搬家或重新布置家具之后,重新采集一轮校准数据。

不同设备的信号差异也需要处理。不同厂商的 WiFi 网卡对信号强度的采样方式不同,同样的物理距离测出来的 RSSI(信号强度指标)可能有明显差异。这个在做多节点部署时需要做归一化。如果你有旧路由器要当探测节点,最好先单独测几下确认一下采样标定结果,免得所有设备"语言不一"。

适合什么场景

这个项目最有价值的地方在于隐私友好。因为它采集的是信号强度数据,不是图像,所以天然不涉及人脸识别、行为录像这类隐私问题。

智能家居是个自然的落地场景。比如检测到房间里没人就自动关灯关空调,检测到人回来就自动调节温度和灯光。比用摄像头做同类事情心理负担小得多。再比如结合智能音箱,可以根据人在房间的位置来调整音量——人在哪个房间,哪个房间的音箱就自动播放音乐。

老人看护也有潜力。不需要在老人家里装摄像头,通过 WiFi 信号就能监测老人的活动状态——今天在房间里活动了多少时间、有没有长时间没动静(可能摔倒了)。对于独居老人的家属来说,这种方案无论是成本还是心理接受度都更容易。而且这种"无感监测"不会改变老人的日常生活习惯,不需要他们学习任何新设备的使用方法。

办公室空间管理也可以用到。哪些会议室正在使用、每个工位有没有人……这些信息对优化办公空间利用率很有价值。而且 RuView 的数据可以接入现有的 BMS(楼宇管理系统)或 IoT 平台,不需要大屏改造就能数据驱动地调整空调、照明等。

局限性也要说清楚

这个技术目前定位精度还做不到摄像头那么高,大概在亚米级到米级之间。如果你需要精确到厘米级的定位,还是得用其他方案。

另外,这个系统需要针对特定环境做训练和校准。换一个房子、换一个房间布局,模型表现可能就不太行了,需要重新采集数据微调。而且参加的人数越多、动作越复杂,识别难度也越大。目前 RuView 最适合的场景还是单房间、少量人员的检测。

值得关注的理由

虽然还有很多不完美的地方,但我觉得这个方向是对的——用更低隐私成本的方式实现空间感知。技术在进步,信号处理和深度学习的能力都在提升,这类方案的精度和实用性只会越来越好。

如果你对这个方向感兴趣,RuView 是开源的(Python 实现),可以自己玩玩看。需要准备几台支持 Linux 的边缘设备(树莓派就行)作为信号采集节点,然后跑它提供的脚本收集 RSSI 数据。门槛不算太高。即使最终不用在实际项目中,了解这个技术本身也是对"无线感知"这个前沿领域的一个很好的入门体验。