AI 可以让 WIFI 实现监控室内人体位置和姿态,无需摄像头?
最近一个叫的项目登上了趋势榜,这个项目看起来就很反直觉,。简单来说,就是通过那到这里你应看出来了,它的关键不在于硬件,而在于其复杂的看完了大家觉得如何?看起来很高大上,实际上就是对特征数据的暴力整合,为什么这个信号特征是睡着,为什么这个信号特征是蹲着,这些标签都需要数据提供。但是,,所以我突然很好奇,这个项目是怎么飙升到趋势榜的。
最近一个叫 wifi-densepose 的项目登上了趋势榜,这个项目看起来就很反直觉,它主要是通过分析室内已有的 WiFi 信号来感知人的位置和姿态,从而实现“无摄像头”的监控。
简单来说,就是通过 CSI(Channel State Information) 数据来替代原本的 RSSI ,具体原理大概是:
- 当 WiFi 信号在室内传播时,会遇到墙壁、家具和人体,人体作为障碍物,会引起信号的反射、折射和散射
- 人的不同动作(如走动、坐下、举手)会以特定的方式改变 WiFi 信号的幅度(Amplitude)和相位(Phase),所以可以通过算法得到一个人的“指纹”
- 项目甚至表示可以捕捉微小的动作,如呼吸(4-60 BPM)和心跳,技术上是通过分析信号频率的微小偏移(微多普勒)实现的

那到这里你应看出来了,它的关键不在于硬件,而在于其复杂的 AI 神经网络算法,因为这里的核心是需要将无线信号“翻译”成了视觉元素:
- 模态转换:需要有一个转换实现,接收 WiFi 信号数据,通过编码器转换为 2D 的“类视觉特征图”
- DensePose 整合:文档说的是用一种改进的 DensePose-RCNN 模型,原本这种模型是为摄像头设计的,但在这里它被训练来识别由 WiFi 信号生成的特征,并将这些特征映射到人体表面的 keypoints(关键点)上
- 实时处理:通过 Rust 系统可以将处理延迟控制在 50 毫秒以内,实现每秒 30 帧的实时姿态追踪
- 除此之外,用多个路由器的情况下,形成交叉覆盖区域来提高精度,通过 MIMO 从不同角度“观察”人体

所以从代码层面,它的核心流程:
- CSI 数据采集: 系统利用 WiFi 设备获取底层的 CSI 数据,这个数据主要是记录了信号在多径传播中(被墙壁、人体反射后)的幅度 (Amplitude) 和 相位 (Phase) 的变化
- 信号预处理:
- 去噪与归一化:移除环境杂波干扰
- Hamming Window 处理 :减少频谱泄漏,使信号更稳定
- 相位校准:处理 WiFi 信号固有的相位偏移问题
- **模态转换 **: 模型接收 CSI 原始张量,通过编码器映射为类似视觉特征的 2D 图像张量
- DensePose: 利用深度学习中的 DensePose Head 架构(
densepose_head.py),对生成的特征图进行两类回归:- 人体部位分割:识别躯干、四肢等不同部位
- UV 坐标回归:将人体表面映射到 2D 坐标系,实现精细到皮肤表面的 3D 姿态拟合

看完了大家觉得如何?看起来很高大上,实际上就是对特征数据的暴力整合,也就是这个项目的核心其实是训练数据 :
为什么这个信号特征是睡着,为什么这个信号特征是蹲着,这些标签都需要数据提供。
但是,从开源代码上看,其中需要进行 WiFi 信号处理和姿态预测的核心功都还没实现,所以我突然很好奇,这个项目是怎么飙升到趋势榜的。
因为从原理上我们可以看出来,计算 WiFi 感知对于躯干定位较准,但在肢体(手指、四肢末端)的细节捕捉肯定没办法精准,除非你有大量的精准特征数据,而且原理对环境依赖相当敏感,也就是环境发生变化,你数据就要进行校准,不然无法剔除静态物体的反射干扰。
最重要的是,当室内人的数量多一点时,信号散射会极度混乱。
所以作者怎么解决这些问题呢?嗯,作者没有解决。
是的,作者没有解决或者没有开源这些能力,尽管 README 文件和文档充写了很多功能,指标数据也写的很好看,但是代码里很多都没有实现,而且有一堆 mock 数据,作者没有提供数据集,你不用 mock 就要自己去标注和做数据。

最过分的是,真实硬件接口是"占位符",RouterInterface 中的真实 CSI 采集函数 _collect_real_csi_data() 直接打印警告并返回 None,完全没有实际实现

CSI 解析器也用随机数代替真实数据 ESP32CSIParser 的 amplitude/phase 解析直接用 np.random.rand 生成随机数,注释写着 “simplified for now”:

就算是在非 mock 模式下,estimate_poses() 方法内部仍也是用 np.random.randn 生成随机 CSI 数据:

训练权重和数据也没有,看下里的感觉就是:
整个代码库就像是 Vibe Coding 写的样板代码,几乎看到完整实现的核心功能
再深挖可以发现,这个项目大概率是基于 “DensePose From WiFi”(ArXiv:2301.00250)的论文实现,而这个过程作者应该是直接让 AI 复现论文,只是没有数据集和更新信息的情况下, AI 根本复现不了,就复现了一个高大上的 README,和一个工程原型壳子。
所以,最后一个问题:大家 star 和 fork 的时候都不看代码实现吗?直接一个 README 就嗨起来了?感觉这更像是一场 AI 的「皇帝的新衣」。
项目地址
https://github.com/ruvnet/wifi-densepose
更多推荐



所有评论(0)