基于商用 WiFi 路由器实现穿墙毫米级人体姿态追踪,是近年来感知领域的一项突破性进展。以 InvisPose 为代表的生产级系统,通过提取信道状态信息(CSI)并利用深度学习模型,已能实现实时全身体态估计。然而,穿墙环境带来的信号衰减与复杂的多径反射,严重制约了最终姿态估计的精度。信号衰减可达 20-40dB,而多径效应则导致 CSI 的幅度和相位产生严重畸变,使得直接用于姿态估计的原始信号信噪比低下。因此,在原始 CSI 数据输入到姿态估计网络之前,设计一个高效、实时的信号补偿层,对多径干扰进行建模与滤除,成为提升系统性能的关键。本文将聚焦于该补偿层的核心实现:多径建模的参数化工程方法,以及自适应滤波算法的选型、调参与系统集成。
多径建模:从理论到可部署的参数化模型
理想的多径信道模型,如经典的 Saleh-Valenzuela 模型,将信道冲激响应描述为多个到达簇的叠加,每个簇内包含多条径,每条径有其独立的复增益、时延和到达角。然而,在嵌入式路由器上实时求解如此高维的参数是不现实的。工程实践中,必须进行合理的简化与参数化。
一种有效的思路是采用低维状态空间表示。将每个时刻从所有子载波、所有天线收集到的 CSI 向量视为观测值。通过主成分分析(PCA)或其在线变种,提取前 K 个主成分作为 “信道状态” 的压缩表示。这个低维状态向量即表征了当前时刻主导的多径结构。其状态转移可以建模为一阶自回归过程:x[n] = A * x[n-1] + q[n],其中 x[n] 是低维状态,A 是状态转移矩阵(通常接近单位阵,表示信道缓慢变化),q[n] 是过程噪声。观测方程则为 y[n] = C * x[n] + r[n],y[n] 是观测到的 CSI 向量,C 是观测矩阵(即 PCA 的载荷向量),r[n] 是观测噪声。
这种方法的优势在于,它将复杂的多径物理参数估计问题,转化为了一个低维状态的跟踪问题,极大降低了计算复杂度。状态维度 K 的选择是关键参数:过小会丢失关键多径信息,过大则增加计算负担且易引入噪声。对于典型的 3 天线、56 子载波的 802.11n/ac 系统,K 取 3 到 8 通常能在精度与效率间取得良好平衡。
自适应滤波算法选型与关键参数调优
有了多径的状态空间模型,下一步是采用自适应滤波算法对状态进行实时估计与更新,从而分离出 “相对稳定” 的多径背景和 “快速变化” 的信号成分(其中包含人体运动信息)。常用的算法有 LMS/NLMS 和卡尔曼滤波。
1. 归一化最小均方(NLMS)滤波
NLMS 算法实现简单,计算量小,非常适合在资源受限的设备上对每个子载波独立运行。其核心迭代公式为:w_k[n+1] = w_k[n] + μ * (e_k[n] * u_k[n]) / (||u_k[n]||^2 + ε)。其中,w_k 是第 k 个子载波的滤波器权向量,u_k[n] 是由过去 L 个时刻的 CSI 值构成的输入向量,e_k[n] 是预测误差。
关键参数包括:
- 步长 μ:控制收敛速度与稳态误差。经验值在 0.01 到 0.1 之间。在系统启动或环境突变时,可采用较大的 μ(如 0.1)以快速收敛;进入稳态后,切换为较小的 μ(如 0.01)以降低稳态误差。
- 滤波器长度 L:决定了滤波器记忆的时长。L 太短无法有效建模多径时延扩展,太长则响应迟钝且计算量增大。对于室内典型时延扩展(~100ns),对应约 2-4 个采样点(假设 CSI 采样率 200-400Hz)。建议 L 初始设为 4。
- 正则化常数 ε:防止输入向量功率过小导致数值不稳定,通常设为一个小正数,如 1e-6。
2. 卡尔曼滤波(KF) 如果采用了前述的低维状态空间模型,卡尔曼滤波是更自然且最优(在高斯假设下)的选择。它不仅能给出状态估计,还能提供估计误差的协方差。在 CSI 补偿场景中,需要对标准卡尔曼滤波进行两项关键工程调整:
- 自适应噪声协方差:过程噪声协方差矩阵 Q 和观测噪声协方差矩阵 R 不能设为固定值。建议采用指数加权移动平均(EWMA)在线估计 R:
R_hat[n] = β * R_hat[n-1] + (1-β) * (y[n] - C*x_hat[n|n-1])*(...)‘。β 可取 0.95-0.99。当残差能量持续较大时,可适当调高 Q,增强滤波器跟踪快速变化的能力。 - 异常值抑制:CSI 数据中常伴有硬件引入的突发异常值。在卡尔曼滤波的更新步骤中,可引入一个 Huber 损失函数或对残差进行幅度裁剪,以防止少数异常样本导致滤波器发散。
算法选型建议:若系统计算资源极其紧张,且对精度要求不是极端苛刻,优先选择每子载波 NLMS。若已构建低维状态空间模型,且追求更高精度的多径抑制与状态跟踪,则选择卡尔曼滤波。一个折中方案是,在系统启动阶段用一段数据训练出 PCA 矩阵 C 和初始状态,之后固定 C,仅用卡尔曼滤波跟踪状态向量 x,这比完全自适应的卡尔曼滤波计算量更小。
系统集成、性能评估与工程挑战
在 InvisPose 这类系统中,补偿层应作为数据预处理管道的一个模块嵌入。其输入是经过初步校准(去除公共相位误差、采样时钟偏移等)的原始 CSI 张量,输出则是经过多径抑制后的 “纯净” CSI,或直接输出用于姿态估计的残差信号(即自适应滤波器的误差信号 e[n])。有研究表明,残差信号中包含了更集中的人体运动引起的微多普勒特征。
集成后需从两个维度评估性能:
- 信号质量提升:计算补偿前后 CSI 的时域平滑度(如相邻样本差分方差)、信噪比(可通过静态时段方差估计)等指标。有效的补偿应显著提升平滑度、降低静态噪声方差。
- 下游任务精度提升:将补偿前后的数据分别输入到训练好的 InvisPose 姿态估计网络,比较关节点定位误差(如 MPJPE)。这是最终的验收指标。实验表明,一个设计良好的补偿层可将穿墙场景下的姿态估计精度提升 15%-30%。
然而,工程落地面临严峻挑战:
- 实时性约束:从 CSI 采集到姿态估计结果输出,全程延迟需控制在 50-100ms 以内,以满足交互应用需求。补偿层(尤其是卡尔曼滤波)的计算耗时必须严格预算。在嵌入式路由器(如基于 ARM Cortex-A53 的 SoC)上,需对矩阵运算进行高度优化,或采用定点算术。
- 环境自适应:家具移动、门窗开合会改变多径结构。补偿层必须具备在线学习能力。可以设置一个 “背景模型更新” 线程,当检测到系统处于长期无人状态时,用新数据缓慢更新 PCA 矩阵 C 和滤波器噪声参数,实现模型的渐进式适应。
结论与展望
面向穿墙 WiFi 姿态追踪的信号补偿层,其核心在于通过参数化的多径建模降低问题复杂度,并利用精心调参的自适应滤波算法实现实时干扰抑制。NLMS 和卡尔曼滤波是两种各具优势的可选技术路径,工程师需根据具体硬件资源和精度要求进行权衡选择。成功集成后,该层能显著提升下游姿态估计的鲁棒性与精度。
未来的优化方向包括:探索更轻量级的神经网络(如 TinyML)直接学习从原始 CSI 到补偿后 CSI 的映射,以替代传统滤波算法;研究联邦学习框架,使多个路由器协同学习并适应整个建筑内的多径环境;以及设计硬件感知的算法,充分利用现代 WiFi 芯片集成的基带处理能力,将部分补偿计算下放到硬件层面,从根本上解决实时性瓶颈。
资料来源
- ruvnet/wifi-densepose: Production-ready implementation of InvisPose. GitHub.
- Zhou, G. et al. "WiFi Sensing with Channel State Information: A Survey." ACM Computing Surveys, 2019. (本文在撰写过程中,参考了上述资料中关于 CSI 挑战、多径模型及滤波技术的论述,并进行了工程化解读与参数引申。)