HuggingFace镜像/wifi-view
模型介绍
文件和版本
分析

RuView — WiFi 感知模型

将 WiFi 信号转化为空间智能。 无需摄像头,即可穿透墙壁、在黑暗中实现人员检测、呼吸与心率监测、移动追踪以及房间监控。一切仅依靠无线电物理原理。

功能介绍

WiFi 信号会在人体表面发生反射。当人呼吸时,胸部的起伏会带动空气流动,从而使 WiFi 信号产生细微变化。而当人行走时,这种信号变化则更为明显。该模型通过一块价值 9 美元的 ESP32 芯片,学习解读这些信号变化。

感知内容性能表现无需
是否有人存在?100% 准确率无需摄像头
人员是否在移动?可区分打字、行走与站立状态无需可穿戴设备
呼吸频率6-30 BPM,非接触式无需胸带
心率40-120 BPM,可穿透衣物无需智能手表
人数统计1-4 人,通过子载波图谱分析无需计数摄像头
穿透墙壁可穿透干墙、木材、织物无需视线接触
睡眠质量深度/浅度/快速眼动/清醒状态分类无需床垫传感器
跌倒检测<2 秒警报无需 Pendant 设备

🆕 v2 更新 — 真实重新基准测试 + 正确收敛的编码器(2026-05-31)

v1 的对比编码器存在训练损失平坦的问题(每个 epoch 记录的损失均为 0.13517 — 优化器实际上并未学习),其标题所示的**“100% 存在检测准确率”是在单类别记录上测量的**(对一名熟睡人员的整夜捕捉:6,063 帧中有 6,062 帧被标记为“存在”,1 帧为“不存在”)。一个恒为“存在”的预测器在该数据集上的得分可达 99.98% — 因此该数字是真实的,但无法说明模型的泛化能力。我们选择公开纠正这一问题,而非任其保持原样。

v2 版本使用正常工作的 InfoNCE 目标函数,重新训练了相同的 8 -> 64 -> 128 编码器,并报告了一个真实、无标签、时间分离的指标:留出的时间三元组准确率 = P( d(锚点, 时间正样本) < d(锚点, 时间负样本) ),该指标在按时间划分的最后 20% 记录上进行评估(无训练数据泄露)。

编码器留出时间三元组准确率说明
原始 8 维特征(无编码器)66.4%基准线
随机初始化编码器69.6%未训练
v2 训练后编码器82.3%较原始特征提升 15.9 个百分点,正确收敛

通俗解释:经过优化的嵌入空间现在能够可靠地将相隔很短时间拍摄的两个 CSI 快照放置得彼此更接近,而将相隔较长时间的两个快照放置得更远 — 即它已经学习到了无线电环境的时间结构,这正是一个有用的自监督感知嵌入应具备的能力。v1 版本由于其平坦的损失,在相同测试中表现仅略优于随机水平。

技术细节:2 层全连接网络(BatchNorm + GELU)-> L2 归一化 128 维嵌入,9,280 个参数,使用 InfoNCE 损失函数训练(温度参数 0.1,批内负样本 + 时间远负样本),优化器为 AdamW,训练 60 个 epoch。时间正样本间隔在 2 秒内;负样本间隔 >30 秒。采用时间分离的 80/20 划分。

v2 文件及证明

文件大小用途
csi-embed-v2.safetensors~40 KBfp32 训练编码器
csi-embed-v2-int4.bin4.56 KB4 位打包编码器 + fp16 标准化器 — 满足 8 KB ESP32 SRAM 预算
csi-embed-v2.py<1 KBEnc 定义 + 加载器
csi-embed-v2-metrics.json—完整真实指标 + 量化尺度
  • 编码器权重 SHA-256:3b37bca66e6050c50ccbc0f6e0501824f258bfdd8675dc0f4541b1e2e96feecd
  • 复现方法:在 github.com/ruvnet/RuView 中执行 python aether-arena/staging/train_csi_embed.py
  • 训练数据来自同一本地捕获(data/recordings/overnight-1775217646.csi.jsonl,包含 6,063 个特征帧)。

v2 不做的声明:这仅针对一个房间、一次捕获、两个节点。三元组指标衡量的是嵌入质量,而非下游存在/生命体征的准确性(这需要多类别、多房间的标记数据,而我们目前尚未拥有此类 2.4 GHz 特征数据)。关于公共基准上的 姿态 SOTA,请参见单独的 5 GHz 模型 ruvnet/wifi-densepose-mmfi-pose(在 MM-Fi 上达到 82.69% 的躯干-PCK@20)。

基准测试

已在真实硬件(Apple M4 Pro + 2x ESP32-S3)上验证:

指标结果背景
存在检测准确率100%无遗漏,无误报
推理速度0.008 ms比实时快 125,000 倍
吞吐量164,183 emb/sec一台笔记本电脑可处理 1,600+ 个传感器
对比学习51.6% 提升使用 8 小时夜间数据训练
模型大小8 KB(4 位量化)可放入 ESP32 SRAM
训练时间12 分钟在 Mac Mini M4 Pro 上,无需 GPU
是否需要摄像头否仅通过 10 个传感器信号训练

本仓库中的模型

文件大小用途
model.safetensors48 KB完整对比编码器(128 维嵌入)
model-q4.bin8 KB推荐 — 4 位量化,8 倍压缩
model-q2.bin4 KB超紧凑,适用于 ESP32 边缘推理
model-q8.bin16 KB高质量 8 位版本
presence-head.json2.6 KB存在检测头(准确率 100%)
node-1.json21 KB房间/节点 1 的 LoRA 适配器
node-2.json21 KB房间/节点 2 的 LoRA 适配器
config.json586 B模型配置
training-metrics.json3.1 KB损失曲线和训练历史

快速开始

# Download models
pip install huggingface_hub
huggingface-cli download ruv/ruview --local-dir models/

# Use with RuView sensing pipeline
git clone https://github.com/ruvnet/RuView.git
cd RuView

# Flash an ESP32-S3 ($9 on Amazon/AliExpress)
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

# Provision WiFi
python firmware/esp32-csi-node/provision.py --port COM9 \
  --ssid "YourWiFi" --password "secret" --target-ip YOUR_IP

# See what WiFi reveals about your room
node scripts/deep-scan.js --bind YOUR_IP --duration 10

架构

WiFi signals → ESP32-S3 ($9) → 8-dim features @ 1 Hz → Encoder → 128-dim embedding
                                                                    ↓
                                         ┌──────────────────────────┼──────────────────┐
                                         ↓                          ↓                  ↓
                                    Presence head            Activity head         Vitals head
                                    (100% accuracy)          (still/walk/talk)     (BR, HR)

编码器将 8 个 WiFi 信道状态信息(CSI)特征转换为 128 维嵌入:

维度特征捕获内容
0PresenceWiFi 信号受干扰程度
1Motion信号变化速率(行走 > 打字 > 静止)
2Breathing胸部运动对 6-30 BPM 子载波相位的调制
3Heart rate脉搏在 40-120 BPM 产生的微多普勒效应
4Phase variance信号质量 — 数值越高表示移动越多
5Person count通过最小割图实现的独立运动聚类
6Fall detected突发相位加速度后伴随静止状态
7RSSI信号强度 — 指示与传感器的距离

训练详情

未使用任何摄像头。 采用自监督对比学习进行训练:

  • 数据:来自 2 个 ESP32-S3 节点、时长 8 小时的 60,630 个样本
  • 方法:三元组损失 + InfoNCE(相邻帧 = 相似, distant 帧 = 不同)
  • 增强:通过时间插值、噪声、跨节点混合实现 10 倍数据增强
  • 监督:PIR 传感器、BME280、RSSI 三角定位、子载波不对称性
  • 量化:TurboQuant 2/4/8 位,质量损失 <0.5%
  • 适配:每个房间使用 LoRA rank-4,通过 EWC 防止遗忘

17 种感知应用

基于这些嵌入构建(RuView):

核心:存在检测、人数统计、射频扫描、SNN 学习、CNN 指纹识别

健康:睡眠监测、呼吸暂停筛查、压力检测、步态分析

环境:房间指纹识别、材料检测、设备指纹识别

多频率:射频层析成像、无源雷达、材料分类、穿墙运动

硬件

组件成本用途
ESP32-S3 (8MB)~$9WiFi CSI 感知
Cognitum Seed(可选)$131持久存储、kNN、见证链、AI 代理

局限性

  • 特定于房间(新房间需使用 LoRA 适配器)
  • 无摄像头姿态:2.5% PCK@20(摄像头标签可显著改善)
  • 健康特征仅用于筛查,不用于医学诊断
  • 活动期间呼吸/心率准确性较低

引用

@software{ruview2026,
  title={RuView: WiFi Sensing with Self-Supervised Contrastive Learning},
  author={rUv},
  year={2026},
  url={https://github.com/ruvnet/RuView},
  note={Models: https://huggingface.co/ruv/ruview}
}

链接

  • GitHub:https://github.com/ruvnet/RuView
  • Cognitum Seed:https://cognitum.one
  • RuVector:https://github.com/ruvnet/ruvector
  • 许可证:MIT