基于CNN-SVM的调频连续波毫米波雷达人体姿势识别研究

2022-10-10 01:23邓泽夫
软件工程 2022年10期
关键词:姿势准确率雷达

邓泽夫

(上海理工大学机械工程学院,上海 200093)

1 引言(Introduction)

人体姿势作为人类传递信息的一种方式,广泛应用于生命体征检测、生产安全和人机交互等多个领域。不同的人体姿势可以表达人体当前的状态或者需求。目前普遍的姿势识别是通过摄像机来完成的,然而出于个体的隐私考虑,许多人不愿意在家或工作中使用摄像头,并且基于视觉的系统在夜间或是恶劣的天气条件下,目标识别能力会严重下降。与基于视觉的系统相比,毫米波雷达传感器是一种不侵害隐私的非侵入式技术,可以在恶劣的环境中依旧保持良好的性能。

卷积神经网络(Convolutional Neural Network,CNN)在图像数据的处理中较其他神经网络更有优势,因为该网络可以直接提取图片的特征,简化了前期对图像的处理。周义凯等使用CNN对五种人体姿势进行识别,得出相较于机器学习,CNN识别性能更优。查毅等使用CNN建立通用的优化模型,实现人体运动姿势分析识别系统。ZHOU等提出一种基于毫米波的人体睡眠姿势识别方法,并设计了一种带有初始残差模块的轻量级多通道CNN,对多通道雷达回波特征进行学习和分类。不过上述研究对人体姿势的识别仅采用单一的CNN识别算法。

本文提出一种融合CNN和支持向量机(Support Vector Machine,SVM)的方法对毫米波雷达数据生成的人体姿势距离角度图进行识别,以期当数据量很大时在识别分类中获得更快的训练和收敛速度。

2 基本理论(Basic theory)

2.1 主成分分析

为了降低人体姿势距离角度图的复杂多样性对特征提取和训练的影响,提高训练的速度和可靠性,需要对数据进行主成分分析(Principal Component Analysis,PCA)处理。主成分分析是一种基于统计学的特征提取方法,该方法使用正交变换的方法将数据中线性相关的变量转换成少数几个线性无关的变量,即数据经过主成分分析后变成几个彼此不相关的数据。具体的处理步骤如下所述。

(1)计算数据的每个维度均值。

(2)数据去均值处理。

(3)计算所有图像的协方差矩阵Cov。

(4)构造并计算协方差矩阵Cov对应的特征值和特征向量。

(5)将计算得到的特征值按从大到小顺序排列,特征值对应的特征向量也以同样顺序排列成变换矩阵。

(6)将变换矩阵与输入图像做矩阵乘法运算,得到经过主成分分析后的结果。

2.2 CNN

CNN是实现各种计算机视觉任务(如图像识别和图像分类)的最著名的深度学习模型之一。对比传统的神经网络,CNN具有权值共享的特点。权值共享是指在特征提取过程中,一个模型在多个权值的位置只需要使用相同的权值,也就是可以将CNN中输入的每个位置都用上卷积核的元素,只要权值参数被计算出来就可以应用在整个网络的图片元素中,这是CNN不可或缺的优点。但CNN也有劣势,比如当数据集的量较小时,往往会影响精度和过拟合,通常解决该问题的做法是扩充数据集或者使用迁移学习。

在结构上,标准的CNN一般由输入层、卷积层、池化层、全连接层构成。输入的图像数据在卷积层与卷积核进行卷积,得到若干特征图,接着经过池化层压缩信息,保证留下的信息最能表达图像的特征。将池化后所有的特征图输入全连接层,经过Softmax运算实现图像分类。

2.3 SVM

SVM是一种常见的监督学习优化算法。它使用边界(超平面)来描述数据,使其更容易查看、分类和区分数据类的不同实例。超平面的任一侧分隔两个数据类,因此SVM是一种二值分类算法,在面对多分类问题时,可以构造多个二值分类问题来解决。

使用SVM处理维数据时,若存在-1 维超平面使数据可分,则该数据称为线性可分数据。在处理复杂的线性不可分问题时,通常需要选择核函数。其原理是将维数据通过核函数映射到维空间,其中大于,直到新的维数据存在-1 维超平面线性可分数据。常见的核函数有线性核函数、多项式核函数和高斯核函数等。

SVM的优点也很明显,该算法具有其模型复杂度不受训练数据中遇到的特征数量影响,非常适合处理特征数量相对于训练实例数量较大的学习任务。同时,该算法泛化能力强,较之其他机器学习算法更加稳健。

3 改进的CNN和SVM混合模型(Hybrid model of improved CNN and SVM)

本文结合毫米波雷达的数据特征,提出基于CNN和SVM结合的网络模型来实现对人体姿势的识别,模型结构如图1所示,它包括六个CNN网络结构(两个卷积层、一个归一化层、一个最大池化层、数据拼接和一个全连接层)和一个SVM分类器。由于生成的人体姿势距离角度图有两个方向,分别是水平角和俯仰角,所以需要对两个不同平面的数据分别进行数据特征的提取。

图1 CNN和SVM结合模型的网络结构Fig.1 Network structure of the combined model of CNN and SVM

在本模型中,CNN起的主要作用是提取数据的特征,将提取出来的特征送入分类器中训练。SVM比传统CNN中Softmax分类器具有更加优越的分类性能,所以选用SVM代替Softmax来实现分类。

4 实验结果分析(Analysis of experimental results)

为了验证所提出的CNN-SVM模型的性能,本文使用毫米波雷达实测的数据作为输入的数据集。

4.1 实验设备及环境

整个实验数据处理系统包括雷达板、数据采集装置及笔记本。使用TI公司的IWR6843ISK-ODS毫米波雷达评估板和DCA1000EVM雷达数据采集板进行数据采集。该雷达传感器的工作频率为60 GHz,具有3.92 GHz的扫频带宽。使用三个L形配置的发射天线和四个矩形配置的接收天线,在方位角和俯仰角上都有120 度的雷达视野。实验采用的PC配置为Windows 10 64位操作系统,Intel i5 4核CPU,16 GB内存,NVIDIA GeForce GTX 1650显卡,环境Python 3.7。

选择一间安静的办公室作为实验场地,室内除了桌子和实验设备外没有其他物品。房间大小为3 米×5 米,雷达位于房间左侧的中心,离地约为1 米。在房间的右侧并排放置三张铁制桌子,桌子尺寸约为1.2 米×0.6 米×1 米。实验者身高约为1.75 米,距离雷达1.5 米,正对雷达摆出六种姿势,分别为大字、弓步、马步、坐、站和躺。

4.2 数据集的采集和处理

本部分讨论从原始雷达信号生成雷达距离角度图像的方法。完整的过程包括距离维快速傅里叶变换(Fast Fourier Transform,FFT)和最小方差无失真响应(Minimum Variance Distortionless Response,MVDR)角度估计算法,具体的流程如图2所示。

图2 毫米波雷达数据处理流程Fig.2 Data processing flow of millimeter-wave radar

调频连续波(Frequency Modulated Continuous Wave,FMCW)毫米波雷达发射chirp信号,该信号由发射天线发射,并在遇到人体目标后反射回来。接收天线收到反射信号的调频脉冲后,将其与本地发射信号进行混合、放大和滤波,最后进行采样和数模转换。采集到人体姿势的原始数据后,对chirp信号时域采样数据进行距离维快速傅里叶变换得到该chirp信号中的频谱分布,即信号频谱图,通过频率与距离的对应公式可以计算目标与雷达之间的径向距离,发射信号如式(1)所示,接收信号如式(2)所示:

假设被测物体静止,径向距离不变,则中频信号频率不变为定值,因此可以通过对中频信号进行频谱分析得到距离信息,中频信号如式(3)所示:

然后对距离维傅里叶变换后的雷达数据进行MVDR角度估计。MVDR算法是一种常见的数字波束成形算法,其原理是在空间中形成窄带滤波器,使用具有特定形状的光束选择性地通过目标信号,同时在一定程度上抑制干扰信号。经过MVDR角度估计算法后的人体姿势距离角度图像如图3所示,分别表示六种姿势的距离角度图。

图3 六种人体姿势的距离角度图Fig.3 Range and angle images of six human postures

4.3 PCA降维与模型训练参数设置

本研究设计了大字、弓步、马步、坐、站和躺这六种姿势,每个姿势分为水平方向和俯仰方向的距离角度图,每个方向各100 组数据,共计1,200 组数据。每组数据大小是64×120,其中我们可以将120看成是数据的维度,使用PCA在不显著减少数据信息量的同时减小数据的维度,从而达到优化数据集的目的。在本研究中为了显著降低数据维度,在[2,20]区间中寻找最佳数据维度。如图4所示,横坐标表示维度,纵坐标表示可解释性方差,即数据信息量。可以看出在维度为10时,可解释性方差已趋于平缓接近100%,即数据集的维度降至10 维时,已经包含了原始数据中大部分的信息。于是本文将数据的维度设置为10,同时遍历所有的姿势数据将数据的大小统一为64×10,最后把1,200 组64×10的数据输入改进的深度学习模型中训练。

图4 在[2,20]维度中的数据信息量曲线Fig.4 Data information volume curve in [2,20] dimension

在深度学习模块中,本文使用TensorFlow搭建1D-CNN网络模型。首先需要对输入的数据进行预处理,即分别将水平方向的数据和俯仰方向的数据拼接起来,对其进行特征工程,包含随机采样和标签编码等,接着划分训练集和测试集,其中80%的数据为训练集,20%的数据为测试集,然后分别训练水平方向的数据和俯仰方向的数据,将池化后两个方向的数据特征拼接起来展开成一维数据进行全连接,最后输出给分类器,具体参数如表1所示。

表1 CNN模型参数Tab.1 The CNN model parameters

另外,CNN模型中卷积层和全连接层的激活函数均为ReLU,使用categorical_crossentropy作为损失函数,批处理量为32,迭代次数为20。通过Adam算法进行优化,对每一个参数进行优化调整,使模型具有较强的泛化性。在全连接最后部分,将集成在全连接层上的Softmax分类器替换为SVM,其中SVM的参数如表2所示。

表2 SVM参数Tab.2 SVM parameters

4.4 实验结果

根据第三节提出的模型使用自建的数据集进行了模拟,分别用准确率曲线和损失函数曲线来评价两个模型。准确率(ACC)表示正确识别姿势的数量与姿势总数的比例,是衡量分类效果的重要指标。损失函数曲线是用来评价深度学习训练好坏的指标,这里主要看测试集的损失函数,期望的目标是训练集的损失函数与测试集的损失函数都收敛并且两者之间相差较小,实验具体结果如图5所示。

图5 单独CNN模型和CNN-SVM模型的准确率和损失函数曲线Fig.5 Accuracy rate and loss function curves of single CNN model and CNN-SVM model

图5(a)显示单独使用CNN模型的准确率曲线,其中带有方形的线条表示训练集的准确率曲线,带有三角形的线条表示测试集的准确率曲线。从图中不难看出训练到第七轮时模型实现拟合,准确率为99%。图5(b)显示单独使用CNN模型的损失函数曲线,同样带有方形的线条表示训练集的损失函数曲线,带有三角形的线条表示测试集的损失函数曲线。从图中发现模型在第八轮时损失函数曲线趋于平稳接近于0。图5(c)显示CNN-SVM模型的准确率曲线,模型在第五轮时已经实现收敛,准确率为100%,模型的准确率比单独使用CNN提高了1%,收敛速度也比单独使用CNN快。图5(d)显示CNNSVM模型的损失函数曲线,模型在第五轮时已经趋于平稳接近于0,损失函数的收敛速度亦快于单独使用CNN的模型。

5 结论(Conclusion)

本文提出了一种基于调频连续波毫米波雷达距离角度图的人体姿势识别算法。通过主成分分析实现数据维度的降低,从而加快模型的收敛。我们设计的CNN-SVM模型,提高了识别准确率并进一步提高了收敛速度。实验结果显示,由于数据集较小,在准确率方面CNN-SVM与单独使用CNN的差别不明显,但依然提升1%,在测试集中实现了100%的测试精度。未来,我们将尝试使用更丰富的姿势数据,并通过提高数据集的大小来进一步评价本文的模型。

猜你喜欢
姿势准确率雷达
有雷达
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
倒挂在树上,我的主要姿势
看书的姿势
解锁咳嗽的正确姿势
雷达
高速公路车牌识别标识站准确率验证法
基于空时二维随机辐射场的弹载雷达前视成像
现代“千里眼”——雷达