RF-Pose3D:使用射频信号构建3D人体骨骼.
- paper:RF-Based 3D Skeletons
- website:link
作者提出了一套使用射频信号构建具有$14$个关节点的3D人体骨骼的系统:RF-Pose3D,该系统主要由三部分构成:
- 卷积神经网络CNN:该模块接收人体反射的射频信号,并使用卷积网络推断人体的3D骨骼。由于射频信号具有空间和时间的$4$维信息,4D卷积运算所需资源过多,且大部分深度学习平台没有直接提供支持。作者将4D卷积分解为两个平面和一个时间轴上的3D卷积的组合。
- 区域提议网络RPN:为估计场景中所有人的骨骼,需要一个模块将每个个体的信号分离。传统的定位分离方法有较大的定位误差,且容易受多路径效应的影响。作者使用一个深度神经网络放大来自特定个体的射频信号并将其与来自其他个体的信号分离。
- 一个多相机子系统:网络训练需要标记数据。作者使用了由$12$个相机组成的系统,获取人体三维骨骼的位置。具体地,每个相机使用OpenPose从图像中提取二维骨骼,通过计算创建三维骨骼。
RF-Pose3D使用多天线FMCW结构,包括一个发射天线和两个接收天线线阵,一个位于水平位置,另一个位于垂直位置。射频信号可以探测空间不同三维体像素的位置,从位置$(x,y,z)$反射的射频信号可以计算为:
\[a(x,y,z,t) = \sum_{k}^{} \sum_{i}^{} s_{k,i}^{t} \cdot e^{j2 \pi \frac{d_k(x,y,z)}{\lambda_i}}\]其中$s_{k,i}^{t}$表示$t$时刻第$k$个接收天线接收到的第$i$个FMCW扫描样本。
探测空间的范围是$10m \times 10m \times 3m$,空间分辨率为$1cm^3$。对每个空间体像素每秒收集$30$帧信号,每次采样进行$3s$。因此在该数据中的4D卷积所需的计算量为$O(XYRT) = 1000 \times 1000 \times 300 \times 90 = 27G$。这需要非常庞大的计算量。
作者提出了一种模型分解的方法,能够将模型的计算复杂度从$O(XYRT)$降低为$O(XRT+YRT)$。FMCW接收阵列由一个水平阵列和一个垂直阵列组成,其收集到的3D张量是平面可分解(planar decomposable)的。该3D张量可以分解成两个2D张量经过广播之后的代数和。,其计算如下图所示。
由于卷积的可加性,对原3D张量使用的4D卷积可以被拆分成两个3D卷积,拆分后的卷积计算量降低为$O(XRT+YRT) = (1000 + 1000) \times 300 \times 90 = 54M$。
作者使用RPN网络解决多人检测的问题,该网络并不是直接在原始射频信号中进行空间的划分,而是参考目标检测中的思想,在卷积中间层特征中进行区域划分。不直接使用原始信号的原因是原始信号具有杂波,且不同的人之间会相互影响。
模型训练需要标注数据集,即成对的4D射频张量和3D人体骨骼。作者设计了一套光学子系统获取这些数据。该系统有$12$个相机组成,通过校准获取全局坐标。每个相机使用OpenPose生成对应位置的2D人体骨骼,将这些骨骼关联起来,生成最终的3D坐标。