基于CNN-LSTM网络模型的散打动作辨识方法

2022-10-18 06:36何磊赵柏山周凯
微处理机 2022年5期
关键词:神经元卷积神经网络

何磊,赵柏山,周凯

(沈阳工业大学信息科学与工程学院,沈阳 110870)

1 引言

近年来体育运动可穿戴设备发展迅速,体育项目中的人体运动状态识别成为研究热点之一。通过佩戴在运动员身上的微传感器,收集运动时的人体不同节点惯性信息,如加速度、角速度等,再结合运动项目特征,使用合理的算法辨识技术动作[1],可在辅助运动员训练的同时,还能评估运动员的表现。目前国内外研究面向不同体育运动及识别方法展开研究并取得了丰富的成果。张学锋等人使用集成学习分类器对乒乓球挥拍动作进行辨识,平均识别准确率为94.5%[2],但特征筛选需要专业背景知识。雷玉超等建立了隐马尔可夫模型,通过分析固定在羽毛球拍上的加速度信息,对常见的八种击球动作辨识度到达了94%[3],但对一些非击球动作存在误判。郝振东等通过皮划艇运动员佩戴加速度等传感器,使用支持向量机来对皮划艇动作进行技术分析,区分划水相位[4],识别率可达94.5%,但信息为离线采集,无法实时分析。

针对上述研究中的问题,在此以散打运动的招式动作为实例,采用多传感器数据融合的方式,利用卷积神经网络(CNN)和长短期记忆网络(LSTM)进行时序特征的提取,由惯性传感器节点传回的惯性数据进行建模,实现散打运动的实时识别。

2 散打动作数据采集与预处理

2.1 数据采集

数据采集平台以惯性传感器为基础,面向散打运动动作捕捉系统,主要由一系列无线数据采集节点和一个无线收发主机组成,上位机软件通过USB线缆与主机实时通信。动作捕捉系统如图1所示。

各传感节点佩戴在躯干、左臂、右臂等关键部位,如图2所示。采集运动员在一段时间内做出左右勾拳、左右摆拳、左右直拳动作,共6种运动模式,传感器以100Hz的采样频率采集x、y、z轴的数据,并实时传输到PC机进行保存、识别。

图2 传感器佩戴示意图

2.2 数据预处理

2.2.1 小波去噪

使用小波去噪对原始数据进行去噪处理。小波变换是一种空间和频率的局部变换,将信号分解为低频信号(主要特征)和高频信号(噪声和干扰)[5-6]。小波滤波过程如图3所示。

图3 多尺度小波分解

对原始信号S进行分解,得到低频信号A、高频信号D。以同样步骤可继续对低频信号进行多尺度细分分解得到要求效果。最终信号S可以表示为S=An+D1+D2+K+Dn。其中n表示分解层数。

2.2.2 数据标准化

数据标准化是为了限定数据的幅值范围,便于不同单位或量级指标之间进行比较,能起到提升模型收敛速度和识别精度的作用。以下三式分别为x、y、z轴加速度数据的标准化表达式:

式中,下标“norm”表示相应坐标轴值已标准化;μ表示平均值;σ为方差。

3 CNN-LSTM神经网络架构

3.1 卷积层

传感器时序序列首先要经过CNN处理,再接入LSTM层。CNN为输入信号的不同分类器采用不同的特征学习方法,相当于消除异常值、清洗数据的过滤器[7],这样便可以有效地实现对传感器数据的特征提取。每个卷积层输出为一组特征映射,对其结果加上偏差使用ReLU函数激活,如下式所示:

在本模型中,采用一维卷积核对传感器的一维原始数据进行卷积运算[8],输入数据连续接入两个卷积层,卷积核尺寸大小为3,对卷积输出的特征向量进行池化处理。

3.2 LSTM层

LSTM主要的作用是针对网络隐藏层对其前向及后向传播进行网络计算,通过门控制信息避免梯度爆炸问题[9]。LSTM神经元内部结构如图4所示。

图4 LSTM神经元内部结构图

LSTM神经元由细胞状态和“门”机制(遗忘门it、输入门ft、输出门ot)组成。图中ct表示细胞状态,代表长期记忆,通过门结构在t上增加或删除状态信息,控制将修改后的状态信息传递给下一时刻[10],各个LSTM单元激活情况由以下各式计算:

其中,Wx是输入向量xt的连接权重矩阵;Wh是与短期状态ht-1的连接权重;b为偏置项矩阵;σ表示sigmoid激活函数;σh表示为tanh激活函数。本文构建的模型中,CNN处理后的数据经过Dropout层后连接到有100个神经元的LSTM层。

3.3 神经网络结构设计

本设计的CNN-LSTM模型内部结构如图5所示。它包含输入层、隐藏层、2个1D CNN层、1个LSTM层、Dropout层,此外还有池化层、全连接层和输出层。各层详情如下:

图5 神经网络结构示意图

输入层:经过预处理后的数据,以128个时间步长为子序列供CNN模型处理,输入的是每个9轴惯性传感器x、y、z轴的所有数据,特征个数是27。CNN输入数据格式为[样本数,时间步数,输入特征个数],此处具体为[4296,128,27]。

第一层CNN层:对数据进行特征提取,其核心参数特征图(filters)是对事物的描述次数,卷积核(kernel)大小则为每次处理的时间长度。

第二层CNN层:来自第一层CNN的结果将被馈送到第二CNN层,在第一层卷积的特征图上执行相同的操作,继续进行特征提取。

池化层:保持有效特征不变,减小数据大小、参数数量,以此达到降低计算量的目的。

LSTM层:对传入的信息选择性忘记,LSTM内部神经元数为100。分类任务无需每个时间步长都输出,将最后一个步长的输出作为全连接层的输入。

Dropout层:每个批次的训练随机丢弃一些神经网络层的输入,避免过拟合,最后得到融合的模型预测平均概率[11]。

全连接层:神经元数量100,选择Relu激活函数。

输出层:采用softmax分类器,输出为判断六类散打动作的概率值。如下式:

式中:i为散打动作类别,yt、yi为散打动作的概率集合,选择概率最大的类别作为输出。

3.4 模型的训练

将9轴惯性传感器x轴、y轴、z轴的全部数据作为散打动作的特征输入到CNN-LSTM神经网络中,将左右勾拳、左右摆拳、左右直拳6个散打类别作为输出,以损失函数来估量预测值对真实值的偏差,选择最小化损失函数,如下式:

4 实验和结果分析

实验环境为Windows10系统,CPU型号为Intel Core i5-8500H,8GB内存。GPU为NVIDIA MX150图形处理器。数据采集软件基于Qt开发,算法基于TensorFlow后端的Keras框架实现,使用Pycharm集成开发环境。

4.1 数据样本集

首先对数据进行降噪和标准化处理,经过反复比对,最终选择Coif5小波基函数对数据进行5层多尺度分解。x轴加速度数据小波去噪比对曲线如图6所示。

图6 传感器x轴加速度去噪

标准化数据如图7所示,可以看出处理后的数据保持了原有的特征,同时减小了幅度。

图7 标准化数据与原始数据曲线对比

滑动窗口将数据分割成固定长度,加上标签后成为一个样本。根据散打运动的技法特点和传感器采样频率,经对照实验,最终选取窗口宽度为128,每64个样本点滑动一次,即50%重叠率,如图8所示。其中S代表滑动步长64。

图8 滑动窗口对数据切片处理

经过数据处理和滑动窗口分割,最终得到样本集如表1。使用80%数量用做训练,20%用做测试。

表1 6种散打动作样本数

4.2 实验及结果分析

为了减小随机性,对模型验证进行15次实验后取平均值。对模型的超参选择,通过对CNN-LSTM模型进行不同参数的对比分析,记录测试数据和训练数据的准确率和损失值,然后选出最佳参数。

4.2.1 窗口分割长度对模型性能的影响

根据散打运动的击打节奏,选取了3种滑动窗口分割方法的分类识别结果进行对比,具体方法为:

①窗口长度为64个采样点,相邻窗口无重叠。

②窗口长度为128个采样点,相邻窗口无重叠。

③窗口长度为128个采样点,相邻窗口有50%的重叠数据。

采用上述三种窗口分割方法,后续进行相同的处理和参数配置,识别结果如图9所示。

图9 不同窗口分割方法识别结果对比

可以看出,由于64窗口长度由于无法包含完整的散打动作数据区间,识别率最低,而128窗长度无重叠时,对动作信息包含不全面,识别率低于重叠窗口分割方法。所以选取长度为128,相邻窗口数据有50%重叠的分割窗口。

4.2.2 神经元参数对模型性能的影响

神经元参数直接影响神经网络模型的精度,对比了filter分别为8、16、32、64、128时的模型准确率,结果如图10所示。可以看出,filters=64时,分类精度最佳。此外随着参数的增长,模型的训练参数和训练时间激增。综合考虑识别率和训练时间,选择神经元的个数为64。

图10 不同filters参数分类精度

Kernel的大小是神经网络另一个的重要参数。使用相同的实验设置并测试一组不同的kernels值:[2,3,5,7,11],进行训练。最终的训练结果如图11所示。结果表明,当kernel大小为3时,拥有较好的性能和稳定性,故选择kernel大小为3作为模型的kernel参数。

图11 不同kernel大小分类精度

4.2.3 模型评估

在确定好模型的相关参数后(时间步长n=128,Dropout参数 为0.4,filters个数为64,kernel大小为3),进行训练,得到训练过程曲线如图12所示。可以看出,随着迭代不断进行,模型识别准确率不断提升,模型收敛快速;迭代第10次时趋于稳定,每次epoch的平均训练时间为1.49s,对于测试集的识别时间为0.0056s,准确率达到98.5%。

图12 模型训练过程曲线

混淆矩阵是评价分类效果的可视化方法,它提供了模型总体分类率[13]。在方差范围内,此处选取与平均值最接近的一次实验结果绘制的混淆矩阵,如图13所示,以此可观察模型对不同类别的散打动作分类的准确性。图中对角线中表示判断正确的样本数,可以看出模型对6类散打动作均能很好识别,但对左摆拳和左勾拳这两个动作模式存在辨识错误,二者的错误分类主要是因为运动员做出了个别惯性信息相似性较高的动作,导致识别错误。

图13 模型的混淆矩阵

5 结束语

研究面向散打运动,研制了一套散打动作捕捉系统,构建了一个用于验证算法的散打上肢技法动作数据库,设计了一种基于CNN神经网络和LSTM循环神经网络的散打技法识别方法,实验结果获得98.5%的准确率。在下一步工作中,将继续研究基于惯性信息的散打运动技法的分析方法,用于帮助散打运动的辅助训练和数据分析,最终目的是设计一套完善的散打运动辅助训练系统,不但可以准确识别散打的技术动作、用于运动员训练辅助还可评估运动表现和预防运动损伤,具备较好的应用前景。

猜你喜欢
神经元卷积神经网络
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
AI讲座:神经网络的空间对应
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
仿生芯片可再现生物神经元行为
基于傅里叶域卷积表示的目标跟踪算法
这个神经元负责改变我们的习惯