蒋留兵 魏光萌 车 俐
1(桂林电子科技大学广西无线宽带通信与信号处理重点实验室 广西 桂林 541004)2(桂林电子科技大学计算机与信息安全学院 广西 桂林 541004)
检测和识别人体动作对于安全监控、人机交互、辅助驾驶和人体健康监测等方面有着重要的意义[1]。目前的研究多是基于摄像头来进行识别[2-4],摄像头对于光照和视距等环境要求很高,且存在侵犯隐私的隐患。因此,有学者尝试用其他传感器[5-6]代替摄像头来感知动作。其中雷达[7-8]具有较好的前景,雷达对光线、视距等环境要求极低,甚至可以忽略静态障碍物实现穿墙识别[9],并且已有较成熟的应用[10]。
对人体动作的雷达回波进行特征选择和提取是识别的关键,根据雷达的微多普勒效应,当人体相对于雷达天线产生运动时,从回波信号中可以得到相应的微多普勒特征[11-12]。文献[13-15]通过提取微多普勒特征,采用不同的识别方法对多个人体动作进行识别,达到较高的准确率。文献[16]中通过融合距离-微多普勒二维特征,对四种手势动作实现了有效识别。但大多数基于多普勒雷达的研究没有充分地利用时间维的连续性特征。根据人体动作的特性,每个动作在持续的时间内是有时间相关性的,这种特性应该在识别中被考虑。超宽带雷达带宽比较大,距离分辨力较好,可以分辨人体的多个散射点,并返回各个散射点的距离特征。高距离分辨率的特点和良好的目标识别能力,使其很适合用来感知人体动作[17-18]。
近年来,机器学习和深度学习[19]算法给雷达动作识别的性能带来很大提升。文献[20]提取手势的微多普勒特征,采用深度卷积神经网络(DCNN)进行识别,对7种手势达到了93.1%的识别准确率。文献[21]中提出了一种利用三层深度卷积编码器来对12种人体动作进行识别的方法,相对于SVM(支持向量机)提高了17.3%的识别率。文献[22]中提出了一种基于3D-CNN的手势识别系统。但深度学习算法对于数据量的需求较大,易发生过拟合现象,导致识别效果不好。在雷达识别系统中,数据的采集和处理较繁琐,没有公开的数据集来训练模型,所以如何在较少数据量的基础上达到较高的识别准确率,也是当前的研究热点。
基于上述分析,本文提出了一种基于卷积神经网络的雷达人体动作识别方法,利用无载波超宽带雷达搭建实验系统,提取人体多个散射中心的距离信息和时间连续性特征,生成时间-距离二维特征图;再采用一种改进的卷积神经网络进行特征提取和识别。本文算法对8种典型动作进行识别,达到较高的识别准确率,具有可行性和应用价值。
超宽带雷达[22](Ultra-Wide-Band,UWB)也被称为脉冲雷达,在精确定位、目标识别等研究中得到广泛应用。超宽带是指这种雷达的一个主要技术特点——占用带宽非常大。超宽带雷达一般不使用载波,而是使用时域脉冲来传输信息。最常用的发射信号是窄脉冲形式的无载波信号,虽然这种信号受限于平均功率,所以限制了雷达的作用距离,但是很适用于目标特性研究。本文采用这种信号来感知并分析人体动作,理论研究中常采用高斯信号来表示窄脉冲形式无载波信号:
s(t)=Aexp[-a2(t-tm)2]
(1)
雷达信号的固有的距离分辨率的公式为C/(2B),其中,C为光速,B为信号带宽,距离分辨率取决于信号带宽,所以超宽带雷达的距离分辨率较高。本文充分利用超宽带雷达的这种特性,研究人体目标的多散射中心,对回波采用理想的多散射中心点模型,雷达回波中包括多个散射点的距离信息。回波模型为:
(2)
式中:h(t)表示接收的回波信号;M表示散射中心点的个数;Ai表示每个散射中心点的强度(幅度);τi表示时间延迟。脉冲响应用Dirac-delta函数来描述,其表达式为:
(3)
本文中使用的超宽带雷达实验平台为美国GSSI公司研发的SIR-20高性能探地雷达,是GPR系列中最新的产品。SIR-20系统预装了信号采集软件,由一台笔记本电脑控制。本文实验时的雷达参数如下:雷达天线中心频率为400 MHz,带宽为800 MHz,分辨率为5 ps,天线增益为约3 dBI,扫描速率设置为每秒100次,每次扫描采样点设置为512个。测试的数据可以保存在PC机上,图1为SIR-20雷达设备实物。
图1 SIR-20探地雷达
在实测过程中,雷达天线距离地面1 m,人体目标与雷达天线的距离为3.5 m,测试者身高为175 cm,采集8种动作数据,表1为动作描述,每种动作重复50次。图2为本文实验采集的原始回波数据示意图。
表1 8种人体动作
续表1
图2 原始雷达回波
超宽带雷达的人体动作原始回波信号中包括了人体多个散射中心点的距离信息,可以作为区别每个动作的依据,但是部分不同动作的距离信息相似度较大,单独的距离信息不足以对所有动作进行准确的分类,所以必须研究并提取新的动作特征。
为了避免单一距离特征的不足,本文采取将距离信息与时间维特征融合的方法,即提取距离信息随时间变化的特征信息。特征提取和数据处理步骤为:
第一步将回波中同一时刻的散射点距离信息转为序列信息,单一时刻序列反映多个散射点的距离信息;
第二步将距离信息序列在时间轴上排列,得到所有散射点距离信息序列随时间变化的二维特征;
第三步对二维特征数据进行归一化处理,消除幅度敏感性;
第四步将所有的动作特征数据统一为128×128大小的矩阵,经过处理的人体动作回波数据如图3所示。
(a) 向前走 (b) 向前摔倒
(c) 向后摔倒 (d) 原地摔倒
(e) 跳跃 (f) 原地坐下
(g) 原地旋转 (h) 静止站立图3 处理后的人体动作回波数据
因为在特征提取中考虑到时间维特征,所以处理后的数据不仅能够表现出人体所有散射中心的距离信息,并且可以体现出动作过程中的散射中心距离随时间变化的规律。从图3中可以看出,不同动作之间表现出了较明显的差异,显著增强了动作之间的可分性,为下一步的识别提供了基础。
通过对回波处理我们得到了人体动作的二维特征信息,接下来需要进一步提取深度特征以及识别。深度学习算法在学习目标特征和识别上具有很大优势,近几年被广泛应用在各个领域中,尤其是CNN在图像处理和识别领域表现出色。它可以通过独特的卷积计算和多层的网络结构提取目标的多层特征,并根据这些特征参数进行识别。与传统的特征提取方法相比,不但不需要人工去提取特征,省去了很多工作量,而且在识别率上也有较大的提升[19-20]。
卷积神经网络是神经网络的一种,因为在网络的内部采用了卷积计算而称为卷积神经网络。最简单的单层卷积神经网络一般包括卷积层、激活层和池化层。卷积层的作用是提取特征,通过预先设定的卷积核对输入的数据进行特征映射。第一个卷积层的输入为原始矩阵,后面的卷积层的输入为上一层的特征图,每个卷积核与输入进行卷积都会产生一个特征图。每层中输入都会与卷积核进行卷积计算,卷积核在输入矩阵上按照预设的步长滑动,滑动一次则进行一次卷积。假设输入的二维数据矩阵为A(m,n),卷积核为K(i,j),步长为1,那么这个卷积层的输出S为:
(4)
图4演示了矩阵上的卷积运算原理。
图4 卷积运算示意图
本文中采用深度卷积神经网络来对人体动作进行特征提取和识别,并且针对雷达回波信号处理生成的二维特征图,设计了一种改进的CNN网络模型。通过在网络中采用Drop-out层、添加L2正则化项、LRN(局部响应归一化)层等方法来避免过拟合和提高识别性能,使模型在数量较小的雷达数据集能够充分学习特征,达到不错的识别率。图5为本文所用CNN网络示意图。
图5 CNN网络示意图
网络大致上可以分为5个隐层结构,前4层是卷积层,包含卷积计算,并且在前两个隐层中加入LRN层,最后一个卷积层的输出通过全连接层,再通过Drop-out层来调整,最后通过全连接层连接到输出层,输出识别的类别。网络内部采用ReLU(修正线性单元)作为神经元的激活函数,输出层采用Softmax函数来得到最后的输出类别。
过拟合是指模型在训练集上准确率较高,但是在测试集上预测准确率较低,代表模型的“学习能力”太强,导致学习到了很多不重要的特征。在样本较少而网络内部参数较多时,容易产生过拟合现象,降低识别率。一般防止过拟合的思想是对模型的权重参数进行“惩罚”,或者对参数的数量进行严格的控制,这样的话这些参数的大小和数量就不会太大,越小或越少的参数代表模型越简单,相对于复杂的模型,简单的模型不易产生过拟合现象。为了抑制过拟合问题,本文采取以下几种方法来对卷积神经网络进行改进:
(1) 加入Dropout层。在神经网络的训练过程中,将网络单元的权重参数按照一定的概率将其暂时从网络中丢弃,即每个批次的训练过程中,都随机忽略一定的隐层节点参数。这样每次训练的网络是不一样的,通过训练大量不同的网络采用模型平均作为输出,可以平均识别的准确率。另外由于随机的忽略掉了一些参数,避免了某些特征只在固定的组合下才产生作用,可以让网络去学习数据集的共性而不是某些样本的一些特性,Dropout是CNN中防止过拟合现象提高准确率的一个较好的方法。
(2) 在损失函数后加上正则化项。损失函数是指训练过程中预测值与实际值的误差,神经网络迭代过程中通过计算梯度来使损失函数尽可能减小,当损失函数收敛时,表示模型已经在训练集上已经完成拟合。在深度神经网络的拟合过程中通常倾向于尽可能地减小权值,最后构造出一个所有参数都比较小的模型。因为参数值小的模型能适应不同的数据集,也在一定程度上避免了过拟合现象。若网络中的参数值很大,那么只要数据偏移一点点,就会对预测结果造成很大的影响,但如果参数值足够小,数据偏移对预测结果造成的影响较小。所以在损失函数后加入L2正则化项,假设参数为θ,hθ是目标函数(即预测值),hθ(x)即为输出值,未添加L2正则化项的损失函数J(θ)如下:
(5)
按照梯度下降法来迭代,学习率设为α,则参数θ的更新规律为:
(6)
如果在损失函数J(θ)之后加上L2正则化项:
(7)
式中:λ为正则化参数。那么θj的更新公式如下:
(8)
从式(8)可以看出,添加L2正则化项的参数每次迭代更新时,θj都要先乘上一个(0,1)区间的因子,所以θj不断减小,相对于未添加正则化项的迭代公式来说,参数θj更小。
(3) 加入局部响应归一化层(Local Response Normalization,LRN)。LRN借鉴了生物神经系统中的侧抑制概念(指被激活的神经元抑制相邻的神经元),对神经网络的局部神经元建立竞争机制,使得其中响应比较大的权值参数变得相对更大,并抑制其他反馈较小的神经元参数。这样可以使模型更关注那些对预测结果影响较大的特征,而忽略影响较小的特征,增强了模型的泛化能力,提高识别率。具体计算公式如下:
(9)
基于上述方法,搭建基于卷积神经网络的UWB人体动作识别系统,识别流程如图6所示,主要分为数据采集、数据处理和识别算法三个关键部分。通过雷达设备采集人体动作的回波,对回波信号进行预处理和特征提取,生成动作数据集。将数据集分为训练集和测试集,训练集用来训练卷积神经网络,学习人体动作特征,训练完成后使用测试集来测试性能,得到识别结果,并通过分析测试结果来调整卷积神经网络内部参数,以期达到更高的性能。识别算法验证环境采用Python 3.6编程语言和Google研发的TensorFlow深度学习框架。
图6 基于CNN的人体动作识别系统流程图
将实测的原始数据集按照3∶1的比例分为训练集和测试集,在单次实验中,训练集和测试集相互独立。为了减少因数据集划分产生的误差,保证实验结果的有效性,重复进行了5次训练和验证,每次实验都重新划分训练集和测试集。损失函数用来衡量网络模型收敛情况,本文中的损失函数使用交叉熵,当损失函数稳定在一个极小值附近,不再发生较大变化时,认为CNN模型已收敛,学习过程结束,训练完成。图7表示单次训练中损失函数(训练集误差)随迭代次数的变化,可以看出,经过多次训练,最后损失函数稳定在0.006左右,说明网络模型在训练集上经过训练已经收敛,达到稳定状态。
图7 损失函数变化情况
另外,在训练过程中从训练集中取出一部分数据作为验证集来实时检验模型在训练过程中的拟合情况,图8表示验证集的分类准确率随迭代次数变化的趋势,可以看出,最后在验证集上达到了超过99.9%的准确率。
图8 验证集准确率变化情况
在训练集上完成所有训练后,使用测试集来测试模型的识别性能,分别测试5次训练产生的模型,准确率如表2所示,得到平均正确识别率为99.2%。可以看出,本文方法识别准确率非常高,进而验证了本文方法的有效性。
表2 卷积神经网络识别结果
为了更好地验证本文方法的识别性能,将在本文的实测数据集上与文献[8,18]中的特征提取和识别算法进行对比,对处理过的回波信号特征矩阵采用主成分分析(PCA)方法提取主成分特征,再通过支持向量机(SVM)分类器进行分类识别。
首先用PCA对雷达回波特征矩阵进行降维,得到数个特征向量。对任意一个动作样本,将样本数据向特征向量投影,得到的投影系数作为动作的特征表示,最后使用SVM分类器对这些不同的投影系数向量分类,来进行动作识别。PCA会根据各个主成分特征对应的方差进行排序,方差较大的特征对于样本数据的贡献率较大。图9显示了对雷达回波特征图使用PCA方法后提取的多个主成分特征,为了选择贡献率较大的前n个主成分。图10显示了前50个主成分特征所对应的方差。
图9 主成分特征
图10 主成分排序图
由图10可以看出,越往前的特征的贡献率较大,而越往后的特征贡献率越小,通过多次实验对比,发现采用前15个主成分特征作为分类特征时效果较好。将数据集按照3∶1的比例分为训练集和测试集,得到数据集的投影系数,利用训练集的投影系数训练出SVM分类器,再用测试集来进行识别,验证性能。本文的SVM分类器中核函数采用性能较好的高斯核,分类器中的惩罚因子C和gamma参数值采用网格搜索的方式选择最优值。
实验结果如表3所示,经过多次实验,PCA+SVM的特征提取和识别算法平均识别准确率为93%,将不同动作分别分析,发现该识别算法虽然对于部分动作达到了接近100%的准确率,但对向前摔倒、向后摔倒,原地摔倒等区分度较小的动作识别率较低,无法提取不同动作中的细微差异,直接导致总体识别率不高。
表3 PCA+SVM实验结果
在相同数据集的基础上,对比本文与文献[7-8,18]之间的识别算法和性能差异,结果如表4所示。
表4 实验结果对比
通过对比实验结果可知,相对于文献[7]来说,本文采用的优化的DCNN算法识别性能更好,提取的雷达回波中的人体动作特征更准确;相对于采用文献[8,18]中的特征提取和识别方法来处理本文的实测数据集来说,本文采用算法效果更好,并且对于区分度较低的相似动作也能准确识别。
与文献中已有的利用雷达来识别人体动作的方法进行综合对比,从特征选取和识别方法两个角度来分析,表5列出了多个参考文献中的人体动作识别系统。
表5 基于雷达的动作识别方法对比
图11为上述方法的识别准确率对比,可以看出,本文所提出的基于超宽带雷达的人体动作识别方法性能较好。从特征选取角度分析,采用时间-距离特征作为识别依据的方法均可以达到90%以上的识别准确率,证明了本文特征选取的合理性。此外,在本文所用的特征数据集上,基于深度卷积神经网络的识别效果优于文献[7]以及3.2节中的对比实验。
图11 识别准确率对比
经过算法对比和综合分析可知,本文方法具有较高的识别性能,可以实现准确的人体动作识别。此外,由于本文所用的人体动作数据集规模较小,在实际应用中,为了加强模型的泛化性和实用性,可适当增大数据集的范围,或者采用多个不同人体目标的动作作为训练集。
本文通过研究动态人体目标散射点特征,结合超宽带雷达的特性,提出了一种基于卷积神经网络的雷达人体动作识别方法。采用超宽带雷达感知人体动作,提取出人体动作的雷达回波中的时间—距离特征,生成二维特征图像矩阵,再将特征矩阵输入到卷积神经网络模型中进行训练和识别。实验证明该方法在实测的8种真实动作数据上达到了99.2%的识别准确率,系统可以对人体动作进行准确识别,验证了本文方法的可行性和有效性。与传统方法相比,本文方法不但提高了总体识别准确率,而且提高了对多种相似动作的识别准确率,识别性能更好。