# WiFi感知人体姿态监测:基于双节点CSI的去重与定位方案
## 概述
本文介绍一种基于商用WiFi芯片(ESP32)的双节点CSI(Channel State Information)人体感知方案,实现室内环境下的人体存在检测、姿态识别与跌倒监测。
与传统穿戴式设备(手环、手表)或摄像头方案不同,本方案被动感知,无需佩戴任何设备,也无需担心隐私问题(无图像/视频数据采集)。
## 系统架构
```
┌─────────────┐ UDP/5005 ┌──────────────┐
│ ESP32-A │ ──────────────────→│ │
│ (卧室) │ │ CareBear │
│ │ │ 后端服务 │────────→ Web Dashboard
│ ESP32-B │ UDP/5005 │ (Python) │
│ (客厅) │ ──────────────────→│ │
└─────────────┘ └──────────────┘
```
两枚ESP32开发板(成本约¥30/枚)分别部署在不同房间,持续采集WiFi CSI数据(每秒约10-20帧)。后端Python服务接收UDP数据后进行:
1. **相位清洗** — 去缠绕、去野点、滑动平均平滑
2. **双节点相关性分析** — 判断两个节点检测到的是否为同一人体
3. **特征提取** — Enhanced值(相位能量)和Drift值(帧间变化)
4. **姿态判定** — 静止/走动/跌倒
5. **人数估计** — 基于相关性去重的独立目标计数
## 核心技术点
### 1. 相位增强与清洗
原始CSI相位数据包含大量噪声。我们采用了类RuView风格的相位清洗管道:
- **去缠绕(Unwrap)**:消除相位周期性跳变
- **野点剔除**:超过3倍标准差的异常值替换为均值
- **滑动平均(窗口=5)**:平滑短期波动
处理后得到的 `enhanced` 值反映人体对WiFi信道的综合影响强度。
### 2. 双节点相关性去重
当同一个人在室内活动时,两个ESP32节点都能感知到信号变化。但同一事件应在两个节点上表现出时间相关性。
我们实现的去重逻辑:
- 两帧到达时间在300ms以内,视为同一事件
- 比较两节点的enhanced值变化方向(同向或反向)
- 利用**信号比(A/B)**辅助定位:根据两节点的信号强度比值判断人体位置
### 3. 呼吸检测防误判
静止状态下(躺、坐),两节点的enhanced值保持稳定,但存在微弱的呼吸波(约0.2-0.5Hz)。
关键技术细节:
- **快速傅里叶变换(FFT)**检测呼吸频率成分
- 检测到呼吸时,即使enhanced值较高仍判定为"躺"而非"空"
- 有效区分"人躺着"和"房间空着"两种场景
### 4. 基于标注数据的分类器
采集了13个场景的标注数据(不同位置/姿态组合),包括:
| 场景 | 位置 | 姿态 |
|------|------|------|
| bedroom_lie | 卧室 | 躺着 |
| bedroom_sit | 卧室 | 坐 |
| bedroom_walk | 卧室 | 走动 |
| livingroom_sit | 客厅 | 坐 |
| livingroom_walk | 客厅 | 走动 |
| bathroom_sit | 卫生间 | 坐 |
| bathroom_walk | 卫生间 | 走动 |
| doorway_stand | 门口 | 站立 |
| bigroom_lie | 大房间 | 躺着 |
| ... | ... | ... |
分类器基于**均值+标准差**的模板匹配策略:
- 计算每个场景两节点的enhanced均值和标准差
- 实时传入的两节点值与模板库一一匹配,选最接近的场景
- 输出位置、姿态、活动类型和置信度
### 5. 跌倒检测
跌倒检测的双重判定标准:
- **Enhanced值骤变**:2秒内enhanced值变化超过6.0
- **Drift检测**:帧间变化率超过阈值
- 两节点均检测到异常事件以提高可信度
## 硬件部署
| 节点 | 位置 | 芯片 | 成本 |
|------|------|------|------|
| ESP32-A | 小卧室 | ESP32-WROOM-32 | ≈¥15 |
| ESP32-B | 客厅 | ESP32-WROOM-32 | ≈¥15 |
| 可选外壳 | - | 3D打印 | ≈¥6 |
## 与现有方案的对比
| 特性 | 本方案 | 摄像头方案 | 穿戴设备 | 雷达方案 |
|------|--------|------------|----------|----------|
| 隐私性 | ✅ 无图像 | ❌ 隐私问题 | ✅ 仅佩戴者 | ✅ 无图像 |
| 被动感知 | ✅ 无需穿戴 | ✅ 无需穿戴 | ❌ 需佩戴 | ✅ 无需穿戴 |
| 硬件成本 | ✅ ¥30 | ❌ ¥100+ | ❌ ¥100+ | ❌ ¥200+ |
| 跌倒检测 | ✅ 支持 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| 多人区分 | ⚠️ 有限 | ✅ 强 | ❌ 仅个人 | ⚠️ 有限 |
| 全天候 | ✅ 光线无关 | ❌ 暗光受限 | ✅ | ✅ 光线无关 |
## 总结与展望
本方案以极低成本实现了WiFi感知人体姿态监测,在隐私保护、被动感知和成本方面具有显著优势。
**下一步计划:**
- 引入更丰富的特征(呼吸波形、CSI幅值谱)
- 增加3号节点改善房间级定位精度
- 基于更多标注数据优化分类器
- 跌倒检测的真实场景验证
---
*本文首发于[小九AI技术站](https://xiaojiuai.cn/),记录CareBear看护公仔项目的技术实现细节。*
加载回复中...