将 WiFi 信号转化为空间智能。 无需摄像头,即可穿透墙壁、在黑暗中实现人员检测、呼吸与心率监测、移动追踪以及房间监控。一切仅依靠无线电物理原理。
WiFi 信号会在人体表面发生反射。当人呼吸时,胸部的起伏会带动空气流动,从而使 WiFi 信号产生细微变化。而当人行走时,这种信号变化则更为明显。该模型通过一块价值 9 美元的 ESP32 芯片,学习解读这些信号变化。
| 感知内容 | 性能表现 | 无需 |
|---|---|---|
| 是否有人存在? | 100% 准确率 | 无需摄像头 |
| 人员是否在移动? | 可区分打字、行走与站立状态 | 无需可穿戴设备 |
| 呼吸频率 | 6-30 BPM,非接触式 | 无需胸带 |
| 心率 | 40-120 BPM,可穿透衣物 | 无需智能手表 |
| 人数统计 | 1-4 人,通过子载波图谱分析 | 无需计数摄像头 |
| 穿透墙壁 | 可穿透干墙、木材、织物 | 无需视线接触 |
| 睡眠质量 | 深度/浅度/快速眼动/清醒状态分类 | 无需床垫传感器 |
| 跌倒检测 | <2 秒警报 | 无需 Pendant 设备 |
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 划分。
| 文件 | 大小 | 用途 |
|---|---|---|
csi-embed-v2.safetensors | ~40 KB | fp32 训练编码器 |
csi-embed-v2-int4.bin | 4.56 KB | 4 位打包编码器 + fp16 标准化器 — 满足 8 KB ESP32 SRAM 预算 |
csi-embed-v2.py | <1 KB | Enc 定义 + 加载器 |
csi-embed-v2-metrics.json | — | 完整真实指标 + 量化尺度 |
3b37bca66e6050c50ccbc0f6e0501824f258bfdd8675dc0f4541b1e2e96feecdpython aether-arena/staging/train_csi_embed.pydata/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.safetensors | 48 KB | 完整对比编码器(128 维嵌入) |
model-q4.bin | 8 KB | 推荐 — 4 位量化,8 倍压缩 |
model-q2.bin | 4 KB | 超紧凑,适用于 ESP32 边缘推理 |
model-q8.bin | 16 KB | 高质量 8 位版本 |
presence-head.json | 2.6 KB | 存在检测头(准确率 100%) |
node-1.json | 21 KB | 房间/节点 1 的 LoRA 适配器 |
node-2.json | 21 KB | 房间/节点 2 的 LoRA 适配器 |
config.json | 586 B | 模型配置 |
training-metrics.json | 3.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 10WiFi 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 维嵌入:
| 维度 | 特征 | 捕获内容 |
|---|---|---|
| 0 | Presence | WiFi 信号受干扰程度 |
| 1 | Motion | 信号变化速率(行走 > 打字 > 静止) |
| 2 | Breathing | 胸部运动对 6-30 BPM 子载波相位的调制 |
| 3 | Heart rate | 脉搏在 40-120 BPM 产生的微多普勒效应 |
| 4 | Phase variance | 信号质量 — 数值越高表示移动越多 |
| 5 | Person count | 通过最小割图实现的独立运动聚类 |
| 6 | Fall detected | 突发相位加速度后伴随静止状态 |
| 7 | RSSI | 信号强度 — 指示与传感器的距离 |
未使用任何摄像头。 采用自监督对比学习进行训练:
基于这些嵌入构建(RuView):
核心:存在检测、人数统计、射频扫描、SNN 学习、CNN 指纹识别
健康:睡眠监测、呼吸暂停筛查、压力检测、步态分析
环境:房间指纹识别、材料检测、设备指纹识别
多频率:射频层析成像、无源雷达、材料分类、穿墙运动
| 组件 | 成本 | 用途 |
|---|---|---|
| ESP32-S3 (8MB) | ~$9 | WiFi CSI 感知 |
| Cognitum Seed(可选) | $131 | 持久存储、kNN、见证链、AI 代理 |
@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}
}