基于多通道组合的神经网络手势动作分类算法

文档序号:30931292发布日期:2022-07-30 00:30阅读:257来源:国知局

1.本发明涉及手势动作的模式识别与人工智能技术领域,特别是一种基于多通道组合的神经网络手势动作分类算法。


背景技术:

2.表面肌电信号被广泛应用于康复医疗和临床诊断,基于表面肌电信号的手势动作分类常用于手部偏瘫的治疗中。其中,表面肌电信号特征的提取是手势动作分类的关键,由于表面肌电信号存在串扰性和微弱性,良好的滤波处理又是得到优质表面肌电信号的前提条件。
3.目前主要的肌电信号滤波方式是使用传统滤波器在采集系统中进行处理,包括巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器等。但单一滤波器常会担心出现滤波效果不好的问题。而自适应滤波算法(lms)目前主要用于语音信号的滤波,以实际输出信号和期望信号的均方误差作比较,不断调整滤波参数,实现对期望信号的逼近。
4.目前常见的肌电信号特征值主要包括时域特征、频域特征、时频域特征以及非线性特征,时频域特征又包括小波变换、傅里叶变换、wigner-ville变换和gabor展开。专利201910614764.2使用积分肌电值、平均绝对值、方差和均方根值四种时域特征作为表面肌电信号分类特征的输入向量,虽然时域特征在实时手势识别延迟性方面表现较好,但不可避免地会使手势动作的识别准确率降低。


技术实现要素:

5.本发明的目的在于提供一种基于多通道组合的神经网络手势动作分类算法,以解决由于噪声干扰、特征分类效果不佳使表面肌电信号分类识别率低的问题。
6.实现本发明目的的技术解决方案为:
7.一种基于多通道组合的神经网络手势动作分类算法,包括以下步骤:
8.步骤1、通过多通道采集电路对不同手势动作的肌电信号进行提取,并进行滤波和放大;
9.步骤2、对提取的信号使用重叠移动窗口法划分窗口段,利用窗口段的数据代替这段采样时间内的信号;活动段信号的分割使用信号能量值,当该段窗口段信号幅值的平方大于阈值a时,认为该段窗口为活动段信号;当大于阈值a的通道数量大于设定值b时,判断这段信号采集时间段为活动段;将活动段信号分割出来,按窗口顺序依次排列,组成新的数据段;
10.步骤3、将步骤2活动段分割后的肌电信号通过lms滤波算法进行进一步滤波处理;
11.步骤4、对滤波后的信号计算窗口段信号的特征值,依次对每种手势动作的每个通道提取特征,对比每个特征的分类效果,分通道选择分类效果较好的特征进行组合,构成动作输入特性向量;
12.步骤5、主成分分析降维:取步骤4最后选择的组合特征作为指标,结合每个通道构
造样本矩阵,进行标准化处理并根据贡献率得到降维后的特征向量;
13.步骤6、将多种不同手势动作降维后的特征向量带入bp神经网络进行分类识别:构建多种手势动作类别标签,作为目标数据;使用降维后的特征向量作为分类器的输入数据;随机划分样本的训练集、验证集、测试集,初始化神经网络结构参数,进行分类训练。
14.本发明与现有技术相比,其显著优点是:提取的肌电信号存在的噪声干扰更小;活动段分割效果较好;相似动作的特征识别率较高。
15.(1)通过滤波电路和lms算法,实现对肌电信号的二次滤波,存在信号内的噪声更小。
16.(2)利用信号的同步性,通过投票机制的双阈值法,实现更好地分割出活动段信号与非活动段信号。
17.(3)通过小波包系数特征和时域特征相结合的方法,实现了对相似动作较好的识别率。
附图说明
18.图1为本发明方法总体流程图。
19.图2为重叠移动窗口法原理图。
20.图3为活动段分割算法流程图。
21.图4为小波包分解示意图。
22.图5为基于时域特征的手势动作分类散点图。
23.图6为基于小波包特征的手势动作分类散点图。
24.图7为bp神经网络示意图。
25.图8为不同手势动作分类混淆矩阵图。
具体实施方式
26.下面结合附图及具体实施例对本发明做进一步的介绍。
27.结合图1,本实施例的一种基于多通道组合的神经网络手势动作分类算法,包括以下步骤:
28.步骤1、本实施例中设计四通道采集电路对不同手势动作的肌电信号进行提取,采集电路中设置信号滤波器,包括前置差分放大电路、20hz高通滤波器、48~52hz带通滤波器、1000hz低通滤波器和二次放大电路。将用于采集信号的电极贴片布置在前臂指浅屈肌、拇长屈肌、尺侧腕屈肌和指深屈肌四个肌群位置,实验者依次做出屈拇指、屈拇指和食指、屈食指、屈四指、握拳、屈食指和中指以及屈中间三指七种不同手势动作。信号经采集电路滤波和放大约993倍后,输出给上位机。
29.步骤2、由于在采集实验过程中存在手势动作的保持和放松,因此需要使用多通道组合累加计数的方式分割活动段信号,去除静息信号,才能对实际动作信号进行计算处理。由于肌电信号存在突变性,使用重叠移动窗口法划分窗口段,利用窗口段的数据代替这段采样时间内的信号。活动段信号的分割使用信号能量值,即幅值的平方来判断,当该段窗口段信号幅值的平方大于阈值a时,认为该段窗口为活动段信号。设置阈值b,即通道数。利用肌电信号采集过程中四个通道的同步性,当大于阈值a的通道数量大于b时,判断这段信号
采集时间段为活动段。计算公式如下:
[0030][0031]
其中,n表示窗口段数据点总数;k1表示通道数,取值为1~4;m无意义,用于定义该值为第几个;表示通道k1第m数据点的能量值;表示窗口段能量值累加和;i表示大于阈值a的通道数目;semg
(n,m)
表示活动段信号,n表示窗口段。
[0032]
将活动段信号分割出来,按窗口顺序依次排列,组成新的数据段,用于后续处理。
[0033]
步骤3、将经过滤波电路的第一次滤波处理和活动段分割后的肌电信号通过lms滤波算法进行进一步滤波处理。
[0034]
分通道进行lms滤波。设置滤波初始权重参数w
(m)
=0,计算每一采样点t(t=1,2,

,n2)的滤波输出估计值y
(t)

[0035][0036]
其中,n2表示活动段信号个数;w
(t,m)
表示第t个采样点第m个权系数;semg
(t-m)
表示第t-m个活动段信号。
[0037]
计算估计误差e
(t)

[0038]e(t)
=d
(t)-y
(t)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0039]
其中d
(t)
表示期望值,即活动段信号的均值和。假设e
(t)
、d
(t)
、semg
(t)
统计平稳。利用迭代公式更新下一时刻权值w
(t+1,m)

[0040]w(t+1,m)
=w
(t,m)
+2ue
(t)
semg
(t)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0041]
其中u为学习率,取0.05。
[0042]
经过lms算法后的信号y
(t)
会变得更平滑,能有效滤除噪声。
[0043]
步骤4、对滤波后的信号y
(t)
,计算窗口段信号的特征值。涉及到的时域特征计算公式如下:
[0044]
(1)第j个窗口段的平均绝对值(mav):
[0045][0046]
(2)第j个窗口段的均方根(rms):
[0047][0048]
(3)第j个窗口段的方差(var):
[0049][0050]
(4)第j个窗口段的过零点数(zc):
[0051][0052]
其中,相邻值threshold取无动作信号幅值的1.4倍。
[0053]
涉及到的频域特征计算公式如下:
[0054]
(1)第j个窗口段的平均功率频率(mpf):
[0055][0056]
其中,f为频率;psdj(f)表示第j个窗口表面肌电信号功率谱密度函数。
[0057]
(2)第j个窗口段的中值频率(mf):
[0058][0059]
(3)第j个窗口段的频带宽度(bw):
[0060]
bwj=max[psdj(f)]-min[psdj(f)]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0061]
即第j个窗口段功率谱密度的上下限。
[0062]
(4)第j个窗口段的频带上限(bl):
[0063]
blj=max[psdj(f)]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0064]
即第j个窗口段功率谱密度的峰值。
[0065]
选择三层小波包分解,涉及到的小波包特征计算公式如下:
[0066]
缩放变化基本小波函数ψ(t)得到小波基函数ψ
a,b
(t):
[0067][0068]
其中,a,b∈r,a>0,a为伸缩因子,b为位移因子。t也为采样点。本发明直接选用dmey小波基。
[0069]
待测肌电信号y
(t)
的小波变换为:
[0070][0071]
表示对信号存在的整个区间内肌电信号y
(t)
与小波基函数之积求和,得到信号多尺度分解的逼近分量wt(a,b)。再按分类树的高低频分别通过小波包分解高低通滤波器,得到小波包分解系数c
o,j

[0072]
(1)第o层第j个窗口的系数最大值特征:
[0073]
max
o,j
=log2{max(c
o,j
)}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0074]
其中,c
o,j
表示第o层第j个窗口的小波包系数,并作对数处理。
[0075]
(2)第o层第j个窗口的系数能量特征:
[0076][0077]
依次对每种手势动作的每个通道提取上述特征。通过计算平均值和标准差,对比每个特征的分类效果,当不同动作之间的平均值相差较大,同一动作内的标准差较小,即认
为动作类与类之间分类效果更好。分通道选择分类效果较好的特征进行组合,构成动作输入特性向量,用于后续分类。
[0078]
最后选择通道一的小波包系数最大值、通道二和通道三的平均绝对值以及通道四的小波包系数最大值和系数能量值作为组合特征。
[0079]
步骤5、主成分分析降维。组合后的特征向量的维度过大,分类处理过程中的计算量较大,需要通过主成分分析的方式进行降维处理。其计算公式如下所示:
[0080]
取步骤4最后选择的组合特征指标,分别用x1,x2,

,x
p
表示,这p个指标构成的p维随机向量x=(x1,x2,

,x
p
),所以每个通道可构成大小为n3*p的样本矩阵x:
[0081][0082]
其中n3表示提取特征后的信号个数。
[0083]
对其进行标准化处理,按列计算均值(x
lc
表示第l行第c列的特征指标)和标准差原始样本矩阵经过标准化处理变为:
[0084][0085]
x为x标准化后的值。
[0086]
计算标准化样本的协方差矩阵:
[0087][0088]
其中为样本协方差矩阵计算公式。
[0089]
再计算r的特征值和特征向量,最终计算出主成分贡献率(λm表示每阶的贡献率)以及累计贡献率。一般认为累计贡献率大于90%时的这几个主成分可以代表原数据的绝大部分重要特征,计算得到主成分阶数为13时,累计贡献率达90.32%,特征向量降低到13维。
[0090]
步骤6、将七种不同手势动作的13维特征向量带入bp神经网络进行分类识别。构建七种手势动作类别标签,将其作为目标数据;使用降维后的特征向量作为分类器的输入数据。随机划分样本的70%为训练集、15%为验证集、15%为测试集,初始化神经网络结构参数,进行分类训练,其计算公式如下:
[0091]
(1)初始化bp神经网络的权值和阈值为0,最大迭代次数为1000,学习速率为0.1。
[0092]
(2)计算隐含层神经元的输入s
b2
和输出b
b2

[0093][0094]
其中,q表示隐含层数目,取18。n2为输入层数目,取13。am为输入向量,ω
mb2
为输入层与隐含层之间的权值矩阵元素,θ
b2
为输入层与隐含层之间的阈值矩阵。
[0095][0096]
其中,神经元激活函数f取sigmoid。
[0097]
(3)计算输出层输出y
k2

[0098][0099]sk2
为输出层输入;q表示输出层数,为7。
[0100][0101]
其中ω
b2k2
为隐含层与输出层之间的权值矩阵元素,θ
k2
为隐含层与输出层之间的阈值矩阵。
[0102]
(4)计算校正误差d
k2
和e
b2

[0103]
输出层:
[0104]dk2
=y
k2
(1-y
k2
)t
k2
(k2=1,2,

,q)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(24)
[0105]
其中t
k2
表示期望输出和实际输出的差。
[0106]
隐含层:
[0107][0108]
(5)逐层调整权值和阈值,计算各层之间的权重校正量δω
b2k2
、δω
mb2
和阈值校正量δθ
k2
、δθ
b2

[0109]
δω
b2k2
=αd
k2bb2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(26)
[0110]
δω
mb2
=βe
b2am
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(27)
[0111]
δθ
k2
=αd
k2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(28)
[0112]
δθ
b2
=βe
b2
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(29)
[0113]
其中α和β为学习速率。
[0114]
经过分类器训练后得到神经网络的两个权值矩阵ω
mb2
、ω
b2k2
和两个阈值矩阵θ
b2
和θ
k2
,利用这些参数去验证测试集和验证集的不同手势动作分类结果,得到不同手势动作
的分类识别率。
[0115]
附图2为重叠的移动窗口法,窗口宽度和滑动增量的大小将直接影响活动段分割的好坏。窗口宽度太小易受肌电信号突变性的影响,窗口宽度太大又会淹没静息信号;滑动增量的大小将影响同一数据点的使用次数。本发明选择窗口宽度取10,滑动增量取5。
[0116]
附图3为活动段分割算法流程图。具体地,为了排除采集过程中的噪声干扰,阈值a取无动作窗口信号平均能量的1.4倍,即0.0036uv2。阈值b选择2。
[0117]
附图4为小波包的分解过程。具体地,选择demy小波基,采样频率选择320hz,对应的奈奎斯特采样频率为160hz,每个频带对应的频率范围分别为20hz,从左到右依次由0-160hz递增。
[0118]
附图5-6为选择的分类七种手势动作效果较好的特征种类。
[0119]
主成分分析的结果一般认为当累计贡献率达到90%时,当前主成分已经能够表示原始数据的绝大部分特征。具体地,原始输入特征向量为26维,经过pca降维优化之后,当主成分阶数为13时,累计贡献率达到90.32%。
[0120]
附图7展示了bp神经网络分类器训练的总体过程。具体地,设置bp神经网络的初始权值和阈值为0,最大迭代次数为1000,学习速率为0.1。神经元激活函数选择sigmoid函数。由于输入特征向量为13维,输出动作种类为7种,因此输入层和输出层神经元分别为13和7,隐含层设置为18。训练集取70%,测试集和验证集各取15%。
[0121]
附图8展视了不同手势动作的分类结果,标签1~7分别代表屈拇指、屈拇指和食指、屈食指、屈四指、握拳、屈食指和中指以及屈中间三指七种不同手势动作,每一行表示判断为某一动作的数据实际为哪一动作;每一列表示实际为某一动作的数据被识别为各种手势动作的次数。分别绘制训练样本混淆矩阵、测试样本混淆矩阵、验证样本混淆矩阵和全部样本混淆矩阵。总体识别率达到91.1%。
当前第1页1 2 
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1