基于耳机的保护隐私的颈椎运动识别方法及系统

文档序号:26502021发布日期:2021-09-04 02:59阅读:187来源:国知局
基于耳机的保护隐私的颈椎运动识别方法及系统

1.本发明属于机辅助颈椎病预防技术领域,特别涉及基于耳机的保护隐私的颈椎运动识别方法及系统。


背景技术:

2.颈椎在人们的生活中起着重要的作用,然而随着社会节奏的加快,低头族和办公族的流行,颈椎病发生呈上升趋势。而通过检测和识别颈部运动,加以提醒干预,可以辅助预防颈椎病。
3.首先,考虑到不同的颈部运动导致头部产生不同的震动方式,这种震动可以被现有商用耳机搭载的加速度计捕捉到,从而检测识别颈部运动。以此为基础,本发明提出了一个新的系统,csear,使用耳机的内置加速计来识别颈部运动。如图1所示,12种颈椎动作包括伸展ne和伸展恢复rne、屈曲nf和屈曲恢复nfr、右倾ri和右倾恢复rri、左倾li和左倾恢复rli、右旋rr和右旋恢复rrr、左旋lr和左旋恢复rlr。然而现有工作没有提出一个完整的方案识别包括走路和休息状态下的这12种颈部运动,同时也没有考虑到用户的隐私保护等问题。因此现有工作并不充分。


技术实现要素:

4.本发明的目的在于提供基于耳机的保护隐私的颈椎运动识别方法及系统,以解决上述问题。
5.为实现上述目的,本发明采用以下技术方案:
6.基于耳机的保护隐私的颈椎运动识别方法,包括以下步骤:
7.耳机内设置加速计,通过加速计采集加速度信号,设置隐私隔离区,区分当前为步行或休息状态;
8.处于静止状态使用子窗口合并算法来检测颈部运动,处于行动状态时通过pca的分量提取、漂移消除、基于信号斜率的包络计算、分量选择和子窗口合并来确定颈部运动的边界;
9.通过数据扩充来增加样本量,避免过拟合,然后将数据输入cnn以识别颈部运动。
10.进一步的,区分当前为步行或休息状态:
11.首先,利用高通滤波器消除重力和随机噪声的影响,然后根据均方根rms
i
阈值确定用户的状态;如果用户处于步行状态,则通过低通滤波器去除原始信号中的步态信息,没有用户隐私的数据传输到云端;如果用户处于静止状态,原始数据将与去掉重力信息的高通滤波数据一起发送到云端;
[0012][0013]
进一步的,使用子窗口合并算法来检测颈部运动,如公式:
[0014][0015]
处于行动状态时,计算如下:
[0016]
d=[lx

,ly

,lz

,rx

,ry

,rz

]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0017][0018]
c=d
*
×
(d
*
)
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0019]
y=r
×
d(r为c的特征向量矩阵)
ꢀꢀꢀꢀꢀꢀ
(5)
[0020]
y

k
=y
k

f
k
,k∈{1,2,

n}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0021]
y
k
=|δy

k
(t)=y

k
(t)

y

k
(t

1)|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0022][0023][0024][0025]
进一步的,耳机内置加速度传感器采集数据;设置隐私隔离区,通过滤波去除步态信息,保护用户隐私。
[0026]
进一步的,分量提取:
[0027]
首先利用主成分分析(pca)方法将六轴数据重组为不相关的成分;在进行pca分析前,对六轴数据进行归一化处理,以抵消不同维度的影响;
[0028]
d=[lx

,ly

,lz

,rx

,ry

,rz

]
[0029][0030]
式中lx

,ly

,lz

,rx

,ry

,rz

表示巴特沃思低通滤波器处理的六轴数据;d是这六个列向量的矩阵;d*是d的一个归一化矩阵,其维数为len
×
6,其中len表示采样点数;根据公式c=d*
×
(d*)
t
计算d的相关系数矩阵c;求解出c的特征向量,并将特征向量按行放入矩阵r中;通过公式y=r
×
d可以得到每个pca分量;在y中,每一行表示原始数据在每个分量上的投影。
[0031]
进一步的,漂移去除:首先,基于最小二乘法得到各分量线性拟合的趋势项;然后从成分中减去趋势项,以集中分析数据本身的波动;
[0032]
y

k
=y
k

f
k
,k∈{1,2,

n}
[0033]
其中,y

k
是去除漂移后的分量,f
k
是分量y
k
的趋势项。n是分量的总数。
[0034]
进一步的,包络计算:通过下面的公式放大这个斜率差来区分随机噪声中的每个分量;
[0035]
y
k
=|δy

k
(t)=y

k
(t)

y

k
(t

1)|
[0036]
其中y
k
为求解的分量信号斜率的绝对值,通过希尔伯特变换提取斜率信号y
k
的包络a
k
,抑制噪声信号的干扰,平滑各分量信号;
[0037][0038]
其中h为斜率信号y
k
经过希尔伯特变换后的值,n是分量的总数。
[0039]
进一步的,分量选择:对于不同的颈部运动,信噪比最大的包络对应的分量也不同,需要选择信噪比最大的包络进行分析:
[0040][0041][0042]
其中snr
k
为包络a
k
的信噪比,为信噪比最大的包络的分量数;n是分量的总数;利用子窗口合并算法,对选定的包络信号进行分割,确定颈部运动信号边界后,再将边界内的低通滤波后的六轴加速度信号输入颈部运动识别模块进行分类。
[0043]
进一步的,基于耳机的保护隐私的颈椎运动识别系统,包括:
[0044]
隐私隔离区设置模块用于通过加速计采集加速度信号,设置隐私隔离区,区分当前为步行或休息状态;
[0045]
颈部运动检测模块用于处于静止状态使用子窗口合并算法来检测颈部运动,处于行动状态时通过pca的分量提取、漂移消除、基于信号斜率的包络计算、分量选择和子窗口合并来确定颈部运动的边界;
[0046]
颈部运动识别模块用于通过数据扩充来增加样本量,避免过拟合,然后将数据输入cnn以识别颈部运动。
[0047]
与现有技术相比,本发明有以下技术效果:
[0048]
本发明设计了两种不同的有效提取颈部运动的算法,根据用户的不同状态来检测颈部运动。尤其在走路中,由于步态信号和颈部动作信号严重混叠在一起,导致颈部动作信号难以检测和提取,而以往的基于可穿戴的颈椎运动识别并没有完全解决这个问题。因此,本文设计了颈部运动检测算法,实现了无论在走路还是休息时都可以检测12种不同的颈部运动。同时,为了减少过度拟合,本发明使用数据增强,利用定制的卷积神经网络建立颈部运动识别模型。从而实现在现有商业耳机上完成颈部动作的识别。
附图说明
[0049]
图1为颈部的12种运动示意图;(伸展ne和恢复rne、屈曲nf和恢复nfr、右倾ri和恢复rri、左倾li和恢复rli、右旋rr和恢复rrr、左旋和lr恢复rlr。)
[0050]
图2颈部运动的原始加速信号;
[0051]
图3系统的流程图;
[0052]
图4利用高通滤波器对线性加速度信号进行滤波;
[0053]
图5行走过程中颈部运动检测算法的技术流程;
[0054]
图6颈部运动识别的网络结构;
[0055]
图7 12种颈部运动,包括行走状态和静息状态的假阳性率和假阴性率;
[0056]
图8不同核大小和层数下的精度比较;
[0057]
图9 12种颈部运动的混淆概率矩阵;
[0058]
图10系统的鲁棒性评价;
具体实施方式
[0059]
以下结合附图对本发明进一步说明:
[0060]
智能手机隐私隔离区
[0061]
如图2所示,颈部运动的加速度数据受到重力和行走的影响。本发明不能通过窗口函数直接检测颈部运动信号。利用傅立叶变换在频域对信号进行分析。步态信号分量的频率相对于重力分量处于一个高频频段。因此,可以使用巴特沃斯滤波器来分离这两种混合成分。过程如下。
[0062]
首先用高通滤波器去除低频重力分量。如图4所示,在消除重力的干扰后,本发明使用固定宽度窗口提取噪声信号,根据噪声信号的均方根值rms分析用户状态。
[0063][0064]
其中lx,ly,lz为左耳机的三个轴加速度。rx,ry,rz为右耳机的三轴加速度。本发明可以设定一个阈值来区分散步和休息。
[0065]
当用户处于行走状态时,将六轴原始加速度信号通过低通滤波器进行滤波,去除步态信号,避免身份信息泄露。没有步态信息的数据被传输到云端。如果用户处于静止状态,原始数据和高通过滤后的数据一起被发送到云端。所有的滤波器都使用截止频率为0.45hz的二阶巴特沃思滤波器。
[0066]
2.颈部运动检测
[0067]
2.1静息状态颈部运动检测
[0068]
根据线性加速度信号,利用窗函数提取静息状态下的颈部运动。然而,传统的固定滑动窗口算法,通常具有一个固定的窗宽。如果窗宽设置不合理,容易发生截断和包含冗余信号。因此,本发明基于子窗合并算法,使用小尺寸子窗的连续检测并合并,以覆盖整个脖颈动作信号。如果子窗口颈部运动的rms大于随机噪声的rms,子窗口将被保留。考虑到子窗口重叠率为50%,每个子窗口只保留前个采样点。
[0069][0070]
其中e是合并后的窗口中的信号。通过该算法,确定动作信号的边界。然后将该边界内的六轴原始加速度数据提取出来,用于后续的分类建模。
[0071]
2.2行走状态下颈部运动检测
[0072]
由于重力方向是垂直向下的,当用户移动颈部时,重力方向与加速度计设备坐标系的夹角会发生变化。因此,重力分量对加速度信号有影响。而对于颈部运动lr、rlr、rr和rrr,重力分量对加速度信号的三个轴影响不大,步态分量起主要作用。角度的变化也非常小。去除步态信号也会导致颈部运动信号严重失真。在行走过程中很难检测到颈部lr、rlr、rr和rrr的运动。为了解决这一问题,本发明设计了一种行走时颈部运动的检测算法。算法
流程如图5所示。
[0073]
分量提取:颈部的不同运动对加速度信号的各轴有不同程度的影响。本算法的目标是找到受脖颈动作影响最大的轴进行轴。首先利用主成分分析(pca)方法将六轴数据重组为不相关的成分。在进行pca分析前,对六轴数据进行归一化处理,以抵消不同维度的影响。
[0074]
d=[lx

,ly

,lz

,rx

,ry

,rz

]
[0075][0076]
式中lx

,ly

,lz

,rx

,ry

,rz

表示巴特沃思低通滤波器处理的六轴数据;d是这六个列向量的矩阵;d*是d的一个归一化矩阵,其维数为len
×
6,其中len表示采样点数。根据公式c=d*
×
(d*)
t
计算d的相关系数矩阵c。求解出c的特征向量,并将特征向量按行放入矩阵r中。通过公式y=r
×
d可以得到每个pca分量。在y中,每一行表示原始数据在每个分量上的投影。
[0077]
漂移去除:由于检测时间的增加和噪声的干扰,计算出的分量会出现漂移。因此需要去除每个分量的趋势项,以消除漂移。首先,基于最小二乘法得到各分量线性拟合的趋势项;然后从成分中减去趋势项,以集中分析数据本身的波动。
[0078]
y

k
=y
k

f
k
,k∈{1,2,

n}
[0079]
其中,y

k
是去除漂移后的分量,f
k
是分量y
k
的趋势项。n是分量的总数。
[0080]
包络计算:与随机噪声相比,颈部运动引起的加速度信号波动更大,导致斜率更大。尤其对于左旋和右旋等颈部动作lr、rlr、rr和rrr,由于颈部旋转的平面很难严格垂直于重力的方向,重力分量在信号中仍然起作用,信号中也会有一个斜率。因此颈部运动信号相对于噪声信号具有更大的斜率。本算法可以通过下面的公式放大这个斜率差来区分随机噪声中的每个分量。
[0081]
y
k
=|δy

k
(t)=y

k
(t)

y

k
(t

1)|
[0082]
其中y
k
为求解的分量信号斜率的绝对值,即使如此,噪声信号的斜率也有较大的波动。为了更方便地检测颈部运动信号,本算法通过希尔伯特变换提取斜率信号y
k
的包络a
k
,抑制噪声信号的干扰,平滑各分量信号。
[0083][0084]
其中h为斜率信号y
k
经过希尔伯特变换后的值。n是分量的总数。
[0085]
分量选择:但同一颈部运动时,各分量包络信号的信噪比(snr)是不同的。对于不同的颈部运动,信噪比最大的包络对应的分量也不同。为了更有效地检测信号,需要选择信噪比最大的包络进行分析。
[0086][0087][0088]
其中snr
k
为包络a
k
的信噪比,为信噪比最大的包络的分量数。n是分量的总数。最
后,本算法利用子窗口合并算法,对选定的包络信号进行分割。确定颈部运动信号边界后,再将边界内的低通滤波后的六轴加速度信号输入颈部运动识别模块进行分类。
[0089]
3.颈部运动识别
[0090]
在颈部运动检测后,本发明首先扩展训练样本以避免过拟合,然后建立基于cnn的颈部运动识别模型。
[0091]
3.1数据增强
[0092]
由于时间和成本的限制,不可能收集到涵盖所有人的动作数据样本。所以,本发明使用数据增强方法生成更多的样本,提升模型泛化性。为了模拟颈部在不同速度下的运动,使用时间扭曲处理来变换信号的时域位置。为了模拟不同力下的颈部运动,使用振幅失真处理来随机改变数据的振幅。为了模拟不同振幅的颈部运动,使用时间缩放来改变信号的宽度。旋转处理可以模拟耳机在不同角度下的数据采集。为了模拟颈部在不同噪声环境下的运动,在数据中加入随机噪声。为了模拟不同段的信号,使用置换来改变信号在窗口中的时间位置。最后,将扩展后的数据输入定制的cnn网络。
[0093]
3.2分类
[0094]
数据准备:在将数据输入到cnn网络进行模型训练之前,需要将过滤后的信号映射为一个h
×
w张量的二维数据格式。h为数据通道数,因有六轴数据,此处设置为6。w为每个通道上颈部运动的时域宽度。由于大部分人脖颈动作都在6秒以内完成,将其设置为600(频率为100hz)。对于超过6秒的实例样本,将其截断为6秒。对于不足6秒的样本,用0来补充至6秒。张量数据标签以one

hot方式进行编码。采用z分数标准化方法对二维张量进行预处理,消除数据量纲的影响。
[0095]
网络结构:如图6所示,网络结构包括四个卷积层,四个池化层,一个完全连接层和一个softmax层。每个卷积层有800个卷积核,用于特征提取。每个卷积核的大小是1
×
4。每个卷积核的移动步长为1
×
1。激活函数relu对卷积层的输出进行处理,以提高模型的表达能力。然后提取1
×
4移动窗口内的最大值进行特征降维。除最后一个卷积层的移动步长设置为1
×
2之外,其他卷积层的移动步长均设置为1
×
4。将最后一个卷积层输出的数据进行平坦化后,再通过全连接层和softmax层输出每个类的预测概率。基于预测的脖颈姿势类别与真实类别求解根均方误差rmse,并将该误差反向传播回网络中,使用adam梯度下降法更新网络参数,其中学习率设置为0.0001。
[0096]
4.评价
[0097]
本发明根据用户的状态设计了两种不同的信号检测算法,然后利用cnn建立了颈部运动识别模型。最后,本发明设计实验,从不同的方面对颈部运动检测识别模块进行评估,验证模型的有效性和鲁棒性。本发明使用精度,准确率,召回率,f1值,混淆概率矩阵评价模型性能。
[0098]
有效性:如图7所示,实验结果显示,静息状态下颈部运动的平均假阳性率为3.71%,平均假阴性率为3.08%。行走状态下颈部运动的平均假阳性率为7.59%,平均假阴性率为6.46%。
[0099]
如图8所示,当卷积核尺寸为4时,层数为4(2个卷积层+2个池化层)、6层、8层和10层模型的准确率分别为79%、86%、93%和92%。模型性能可以随着网络层数量的增加而提高。当层数为8时,卷积核尺寸为2、4、8和16的模型的准确率分别为83%、93%、92%和88%。
随着卷积核大小的增大,模型的识别性能先增大后减小。因此,本发明选择8层的cnn,卷积核尺寸为4来获得最好的性能。
[0100]
如图9所示,脖颈动作rr与rrr的错误率分别为6.9%和3.5%。脖颈动作lr与rlr的错误率分别为6.6%和6.7%。这些错误率相对较高,因为它们彼此相似。然而模型的平均识别准确率超过93%。其中行走w的识别准确率为93.2%。证明了即使在行走过程中存在假阳性率,仍然可以通过分类模型很好地区分行走和颈部运动。因此,模型具有良好的颈部运动识别性能。
[0101]
鲁棒性:如图10(a)所示,模型的准确率为91.7%,召回率为91.8%,f1值为92%。分别比模型在平坦的地面上行走时略低。当坡度较大时,身体摇晃得更剧烈。这使得颈部运动信号更难被检测到。而坡度对识别性能的影响较小,说明该模型对地面坡度具有较好的鲁棒性。
[0102]
如图10(b)所示,通过比较不同比例的训练集大小的性能,可以发现,当每个类5个样本训练模型时,准确率为73.1%,召回率为73.3%,f1值为73.4%。当训练集大小为20时,模型的性能最好。当训练集大小超过15时,模型的性能趋于稳定。因此,本发明收集的数据足够构建csear模型。
[0103]
结果如图10(c)所示。未进行数据增强处理的模型精密度为86.3%,查全率为86.4%,f1值为86.6%。结果表明,有数据增强的模型比没有数据增强的模型性能提高了7%。因此,即使不能获得大量的训练样本,也可以使用数据增强的方法来覆盖颈部运动的变化,避免过拟合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1