WiPose:使用WiFi重构3D人体姿态.
- paper:Towards 3D Human Pose Construction Using WiFi
- MobiCom2020:link
本文提出了一套利用WiFi信号重构3D人体姿态的系统:WiPose。该系统将人体骨骼的先验知识引入重构过程中,从WiFi信号中提取通道状态信息CSI作为输入,从而捕捉三维空间中的运动情况,并采用RNN和平滑损失构造姿态骨骼。系统使用VICON光学系统收集数据并进行人工标注,从而为训练提供人体关节点坐标标签。
直接从WiFi信号中独立地回归人体的关节点坐标是困难的。因为WiFi信号具有较低的空间分辨率和容错率,无法得到准确的估计,导致构造的人体骨骼不够真实。因此作者将人类骨骼的先验知识编码到姿势构建过程中,以确保估计的关节满足人体结构。具体地,作者将人体骨骼建模成一个树,其节点是人体关节,边是人体的身体段。由于边的长度是固定的,为推断每个关节的位置,只需要估计其相对于父节点的旋转。作者采用正向运动学(forward kinematics)求解这一问题。
WiPose的模型结构如上图所示。作者将WiFi信号中提取的CSI信息作为输入数据序列,首先通过$4$层卷积神经网络分别对其提取空间特征。由于身体运动通常跨越多个时间间隔,因此连续的数据样本之间存在很高的时间依赖性,这种依赖关系是通过一个LSTM网络捕捉的。网络学习的特征应用于给定的骨骼结构中,递归地通过估计身体片段的旋转来构造人体姿态。其正向运动学公式为:
\[p^i = p^{parent(i)} + R^i(\overline{p}^i-\overline{p}^{parent(i)})\]其中$p^i$是关节点$i$的三维坐标,$p^{parent(i)}$是$p^i$的父节点,$\overline{p}^i$和$\overline{p}^{parent(i)}$是它们的初始位置。$R^i$是旋转矩阵。正向运动学的输入是人体的初始骨骼结构和从LSTM中学习到的特征。将这些特征视为关节的旋转,然后将其应用到给定的骨骼结构中,以构建实际的关节位置。
损失函数是由位置损失函数$L_p$、平滑损失函数$L_s$和旋转损失函数$L_r$组成的:
\[J = L_p + \beta L_s + \gamma L_r\]$L_p$衡量预测关节点$\hat{p}_t^i$和实际关节点$p_t^i$坐标之间的差异,用$L_2$损失计算:
\[L_p = \frac{1}{T} \sum_{t=1}^{T} \frac{1}{N} \sum_{i=1}^{N} || \hat{p}_t^i - p_t^i ||_2\]$L_p$独立地处理每个时间点上的预测结果,可能会导致关节随着时间的运动不平滑,引起估计姿态的抖动。引入$L_s$约束姿态的连续性:
\[L_s = \frac{1}{T-1} \sum_{t=2}^{T} \frac{1}{N} \sum_{i=1}^{N} || (\hat{p}_t^i-\hat{p}_{t-1}^i) - (p_t^i-p_{t-1}^i) ||_H\]其中$|| \cdot || _H$是Huber范数,计算如下:
\[|| z ||_H = \frac{1}{n} \sum_{n}^{i=1} \text{huber}(z_i)\] \[\text{huber}(z_i) = \begin{cases} 0.5z_i^2 \quad \text{if }|z_i|<1 \\ |z_i|-0.5 \quad \text{otherwise} \end{cases}\]由于关节的位置是递归地从根节点不断旋转推断出来的,因此会逐渐地累计误差。$L_r$用于惩罚关节点相对于父节点的相对位置误差:
\[L_r = \frac{1}{T} \sum_{t=1}^{T} \frac{1}{N-1} \sum_{i=2}^{N} || (\hat{p}_t^i-\hat{p}_{t}^{parent(i)}) - (p_t^i-p_{t}^{parent(i)}) ||_H\]在系统的实际部署中,WiFi信号会受到不同的环境、不同的被测试者影响,因此需要解决系统对环境的适应性问题。为实现跨领域的泛化性,一个可行的方案是使用GAN构造与环境无关的特征,但这种方法会增加数据收集和模型训练的开销。作者提出了一种在信号水平上解决模型泛化能力的方法。具体地,使用身体坐标速度剖面(body-coordinate velocity profile, BVP)描述不同运动速度下的功率分布,其可以将身体姿态特征和环境物体分离。BVP特征可以捕捉人体姿态的动力学特征,能够直接从CSI信号中提取出来。
作者使用具有$21$个VICON Vantage相机的运动捕捉系统生成人体的三维姿态骨骼,作为训练的标签。人为设定人体的$17$个关节点,系统的采样率设置为$10 Hz$,定位精度小于$2mm$。