发明内容
从实验中我们发现,节点所部属的位置需要对不同目标进行区分,或者说不同目标利用同一种特征得出的识别率各不相同,因此有必要对节点位置的选取给出依据。此外,强度值往往是摔倒行为识别的重要特征类型,然而在单节点识别系统中,如果只采用强度值作为特征,则难以将高强度运动行为(如蛙跳、快速下蹲、折返跑等)与摔倒行为区分开。因此本发明基于惯性器件IMU采集的三轴加速度值,通过计算在七种特征值——加速度强度值、标准差、协方差、香农熵、最大峰峰导数、偏度系数、峰度系数中选择合适的特征参数及参数组合,经参数评估后给出最优组合;随后通过测试数据计算不同部属位置(胸口、手腕和大腿侧)的漏检率和错检率,经加权求和后给出最优位置。
为了达到上述目的,本发明提供如下技术方案:
一种面向户外摔倒监测的穿戴式单节点的特征选取方法,包括如下步骤:
步骤1:在人体上部署单节点;
步骤2:通过单节点采集原始三轴加速度值ax,ay,az,并去除因传感器原因引起的奇异值;
步骤3:对剔除奇异值的ax,ay,az做线性补偿,补偿值由加速度计标定值确定;
步骤4:通过滑动窗口化处理方法将数据样本切分为Xi组,依次代入第一梯度特征计算;
步骤5:计算ax,ay,az的强度值α,计算ax,ay,az各自的标准差σ,计算(ax,ay)、(ay,az)和(ax,az)的协方差Λ,计算ax,ay,az各自的香农熵Η;
步骤6:保存计算后的特征值,将特征值代入特征计算与优化方法进行计算。
步骤7:将计算后的结果进行判定,若已经满足检出率SE要求,则直接进入参数排序与选择模块,否则进入第二梯度计算;
步骤8:计算ax,ay,az最大峰峰导数η,计算ax,ay,az各自的偏度系数ρ,计算ax,ay,az各自的峰度系数τ;
步骤9:返回步骤6;
步骤10:按特征计算与优化方法给出的结果进行参数排序,选择排名最前的3种参数。
进一步的,所述滑动窗口化处理方法包括如下步骤:
步骤a:获取采集的N个样本数据;
步骤b:读取当前设定的滑动窗口宽度值T;
步骤c:读取当前设定的滑动步长sp和当前窗口起止时间t;
步骤d:分别提取窗口宽度内的ax,ay,az;
步骤e:分布存储与窗口分组列表Lxyz i中;
步骤f:对当前t值做出判定,若t=T-1,则结束窗口化,退出该模块;若t≤T-1,则t=t+20,即窗口向右移动20ms,宽度不变,然后继续设定提取窗口内ax,ay,az,并存储。
进一步的,所述特征计算与优化方法包括如下步骤:
步骤a:获取特征集合;
步骤b:将特征集合进行分组:[α,σ,Λ,Η]为第一梯度组,[α,σ,Λ,Η,η,ρ,τ]为第二梯度组,并相应拆分为个组合;
步骤c:进入SVM模型训练,选用SVM分类器C-SVC,核函数为RBF,输出为该样本模型数据集;
步骤d:进行数据集交叉验证,输出最佳参数组合;
步骤e:若组合全部完成交叉验证,则讲最优组合进入SVM参数优化得出γ值;若未全部完成,则继续建立样本集,然后进入SVM模型训练和交叉验证;
步骤f:根据优化后的γ值和c值,给出最优识别率;
步骤g:存储相应的参数组合及识别率。
一种面向户外摔倒监测的穿戴式单节点的最佳位置选择方法,包括如下步骤
步骤1:获取面向户外摔倒监测的穿戴式单节点的特征选取方法中得到的优化后的特征组合,读取优化后的SVM参数;
步骤3:构建SVM摔倒数据样本集,并进行训练,输出SVM模型;
步骤4:根据模型对测试集进行预测,统计预测后的漏检率和错检率;
步骤5:按公式Δ=k1(1-FNR)+k2(1-FPR)计算最大值,k1、k2为权重系数;
步骤6:比较不同位置的Δ,输出最大Δ对应的部属位置。
与现有技术相比,本发明具有如下优点和有益效果:
能够根据目标个体差异在7种最能代表摔倒特征的参数中给出最优参数组合,并能够进一步得出最优节点部属位置,从而可以更合理地针对不同的穿戴者,在不同的户外环境中,利用不同的硬件平台采集的数据实时判别危险的行为,为老年人、体弱者等需要及时获知摔倒发生的人群提供理论依据。由于本发明利用支持向量机SVM作为参数评估来源,而SVM特别适合小样本和二元分类的模式识别场合,因此本方法更容易移植入能效优先的可穿戴设备中,并能够实时地对危险行为作出准确判决。实验数据证明,利用本方法输出的最优参数组合及SVM核参数能够得到94%以上的检出率,检出率高、鲁棒性好。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
本发明所涉及的方法是针对户外场合常见的四种摔倒行为(绊倒、滑倒、晕倒和撞倒)。图1为摔倒行为分类示意图。图中给出了典型的老人摔倒类型,其中包括被绊倒(2显示)、滑倒(3显示)、晕倒(4显示)、撞倒(5显示),老人在户外日常活动中(1显示)由于主观或客观原因,会出现这些摔倒行为,需要针对这些行为构建合理的特征组合,通过一定的分类器(例如支持向量机)将摔倒行为和非摔倒行为区分开。
而摔倒行为数据的采集则要依赖于图2所示的面向户外摔倒监测的节点部署系统,该系统包括穿戴在身体上的节点1、便携式终端2、移动通信基站3、个人计算机4和云数据库5。图中示出了典型的身体节点部属位置,分别为胸部、上臂、手腕、大腿、脚踝,单节点即指只在身体的某一个位置上部署一个节点装置。节点可以与图中便携式终端2无线连接,并进行数据收发,节点1中设有三轴加速度计,能够采集到三轴加速度数据。便携式终端2一般为用户的智能手机,无线连接方式一般为低功耗蓝牙通信(BLE 4.0以上),便携式终端能够获取节点1上采集到的三轴加速度数据。图中移动通信基站3和个人计算机4均可以获取便携式终端汇总的数据包并重新转发至医疗云数据库9。通过该系统,测试者的危险行为,比如户外摔倒数据可以实时的被采集并进行远程传输,这样户外摔倒可以实时的被侦测,并及时将报警信息传输至云端,便于及时救助。
针对节点采集到的三轴加速度数据,本发明首先通过低通滤波去除原始样本奇异值,并对数据集做漂移补偿;通过滑动窗口逐步将样本数据进行分段,采用等距等步长滑窗法,将原始信号分为若干个数据样本集。在对样本数据进行分析的过程,我们选用7种最能代表摔倒特征的参数,分别为:强度值、标准差、协方差、香农熵、最大峰峰导数、偏度系数和峰度系数。由于体感网穿戴式节点需要长时间工作,对能耗要求较高,因此算法需要考虑满足检出率的前提下,尽可能节约计算量从而降低能耗。例如,偏度系数和峰度系数要求对样本数据做三阶矩和四阶距运算。因此,根据参数计算复杂度的不同,我们将其分为两个梯度,先对第一梯度特征的四种计算能耗较低的特征值进行分析,分别为加速度强度值、标准差、协方差和香农熵,经过特征计算与优化模块得出检出率满足要求,则直接进入参数排序并保存;若未能达到检出率要求,则进入第二类参数计算,该类参数的计算量较大,包括最大峰峰导数、偏度系数和峰度系数。本发明的流程图如图3所示,具体包括如下步骤:
步骤1:节点在人体某处部署完毕后,进入系统初始化。
步骤2:采集原始三轴加速度值ax,ay,az,并去除因传感器原因引起的奇异值,本例中我们将[-7.99g,-7g]和[+7g,+7.99g]范围内测量值定义为奇异值,其中ax,ay,az为三轴加速度计测量值,量程为正负8G,单位为g。
步骤3:通过漂移补偿模块对剔除奇异值的ax,ay,az做线性补偿,补偿值由加速度计标定值确定。
步骤4:通过滑动窗口化处理模块将数据样本切分为Xi组,依次代入第一梯度特征计算,Xi为数据样本窗后化后组数,Xi=sp×N/T,单位为个。
其中,滑动窗口化处理模块用于为对原始数据按预设宽度和步长进行分组,并存储至列表中。为了实时判别目标摔倒行为的发生,需要对采集的数据按一定步长滑动数据窗,截取等距数据,从而进行实时特征计算和分类。滑动窗口样本数据的整体处理流程如图4所示,其具体步骤如下:
步骤a:对于每次采集的N个样本数据,首先执行初始化命令,其中N为单次获取的样本总数,本例中N取值为300,单位为个。
步骤b:读取当前设定的滑动窗口宽度值T,其中T为滑动窗口宽度值,实验中T取值为2000,单位为ms。
步骤c:读取当前设定的滑动步长sp和当前窗口起止时间t,其中sp为当前设定步长,即窗户滑动最小单位,取值为20,单位为ms,t为当前窗后起始位时刻,单位为ms;。
步骤d:分别提取窗口宽度内的ax,ay,az。
步骤e:分布存储与窗口分组列表Lxyz i中,Lxyz i为第i组ax,ay,az列表,3行100列矩阵,i取值范围为[0,N*sp/T]。
步骤f:对当前t值做出判定,若t=T-1,则结束窗口化,退出该模块;若t≤T-1,则t=t+20,即窗口向右移动20ms,宽度不变,然后继续设定提取窗口内ax,ay,az,并存储。
步骤5:计算ax,ay,az的强度值α,计算ax,ay,az各自的标准差σ,计算(ax,ay)、(ay,az)和(ax,az)的协方差Λ,计算ax,ay,az各自的香农熵Η,
其中,α为加速度强度值,可描述样本数据能量值,公式为:单位为g;
σ为标准差,可描述加速度样本离散程度,公式为:其中μ为样本均值,xi为第i组加速度值,N为窗口内加速度值总数,σ单位为g;
Λ为协方差,可描述X轴、Y轴、Z轴加速度值两两之间的相关程度。公式为:Λ=E[XY]-E[X]E[Y],X=[ax,ay,az],Y=[ax,ay,az]T,无单位;
Η为香农熵,可描述加速度样本内不确定度。公式为:定义超过均值μ的随机变量总数为n,因摔倒行为是随机概率事件,则变量概率密度函数为1/n,熵为 无单位。
图5为滑动窗口数据分段示意,图中曲线代表3轴加速度强度值,计算公式为其中ax,ay,az分别代表当前X轴、Y轴、Z轴的加速度值。该数据是通过美国德州仪器生产的SensorTag节点获得,设定的采样频率为50Hz,设定的量程为正负8G,通过实时采集软件BLE DEVICE MONITOR连续获取目标数据。图中1的位置代表滑动窗口工作起始点,图中2代表滑动窗口,图中3代表检测出摔倒行为发生的窗口,图中4代表发生摔倒行为时的强度变化。经过实验计算得知,窗口值设定为1000ms至3000ms之间均可,但由于窗口宽度越大,单次迭代计算量越大,因此在检出灵敏度和能耗方面做出平衡,选择测试窗口宽度为2000ms,步长为20ms,即:行为总耗时为6000ms时,窗口化分段为300组样本数据。
步骤6:保存计算后的特征值,将特征值代入特征计算与优化模块。为了量化摔倒行为识别中所选择的7种特征,我们采用支持向量机识别器进行交叉验证,将输入的特征分组,依次进入SVM模型训练,找出最优参数及该参数的识别率。
特征计算与优化模块是基于支持向量机(SVM)分类器的参数选择模块,该模块首先对参数集合分组,建立相应样本,通过SVM模型训练并对不同组合的参数进行交叉验证,并对SVM模型关键参数做出优化,输出不同组合的SVM识别率并保存。特征计算与优化的流程图如图6所示,它是为图3所示的特征选择流程提供计算依据的方法,其具体步骤如下:
步骤a:首先将特征集合输入模块缓冲区,清除所有标记参数。
步骤b:将特征集合进行分组:[α,σ,Λ,Η]为第一梯度组,[α,σ,Λ,Η,η,ρ,τ]为第二梯度组,并相应拆分为个组合。
步骤c:进入SVM模型训练,选用SVM分类器C-SVC,核函数为RBF,输出为该样本模型数据集,其中RBF为SVM径向基内核函数,C-SVC为多分类SVM型标记。
步骤d:进行数据集交叉验证,输出最佳参数组合。
步骤e:若组合全部完成交叉验证,则讲最优组合进入SVM参数优化得出γ值;若未全部完成,则继续建立样本集,然后进入SVM模型训练和交叉验证,其中γ值为RBF核参数。
步骤f:根据优化后的γ值和c值,给出最优识别率,其中c值为惩罚因子。
步骤g:存储相应的参数组合及识别率。
步骤7:将计算后的结果进行判定,若已经满足检出率SE要求,则直接进入参数排序与选择模块,否则进入第二梯度计算,其中,SE为正检率,可描述数据集中的预测正确率,公式为:SE=TP/(TP+FN)%,TP为正真值,FN为负假值,单位为%。
步骤8:计算ax,ay,az最大峰峰导数η,计算ax,ay,az各自的偏度系数ρ,计算ax,ay,az各自的峰度系数τ;
其中,η为最大峰峰值导数,描述加速度相邻最大值变化率,公式为:η=(apeak-apeak-1)/Δtp-p,其中apeak为最大波峰,apeak-1最邻近波峰,Δtp-p为两者时间差,单位为g/s;
ρ为偏度系数,可以描述加速度值曲线左右偏斜程度,公式为:E[(X-μ)/σ]3,,σ是标准差,E是期望算子,μ为样本均值,X=[ax,ay,az],无单位。
τ:峰度系数,可以描述加速度值曲线波峰尖锐程度。公式为:τ=(m4/σ)-3,即加速度值的四阶中心矩与方差平方的比值(高斯分布得峰度系数为3,因此此处为相对值),无单位。
步骤9:返回步骤6。
步骤10:按特征计算与优化模块给出的结果进行参数排序,选择排名最前的3种参数。
本例由多名22岁左右的学生在身体的不同位置穿戴节点后模拟老人摔倒,将采集到的数据通过上述步骤1~10进行计算,图7为图6中交叉验证模块和参数优化模块执行后的效果图,图中若干黑线条为参数逼近过程演示,由下而上找到最优;下图中粗黑线条代表摔倒与非摔倒行为的判决边界。包含7种参数的特征集合[α,σ,Λ,Η,η,ρ,τ]进入交叉验证,经实验计算得出:最高准确率为89.47370,对应的参数为η,即最大峰峰值导数;输出的3种最优特征分别为:最大峰峰值导数,峰度系数和强度值。将最优特征代入SVM训练模型并对参数γ,c优化,实验结果为c=512,γ=0.0078125准确度可达94.7368%。必须说明的是,利用本发明方法给出的参数优化及位置排序结果会因个体差异而不同,同时也受惯性器件误差、实验环境、实验方式的差异而不同。因此,在真实环境中,由于个体存在差异,经本方法输出的最优特征组合也会改变。
图8显示的为身体部属位置与对应的姿态数据分布示意图。图中人体上三处标记分别代表胸口、手腕和大腿侧,是体感网中典型的穿戴位置,具有一定的部属代表性。数据分布图中X轴为时间,单位为20ms;Y轴为加速度值,单位为g。从三处的原始3轴加速度值分布可以看出,在摔倒发生的窗口中,均出现不同幅度的剧烈变化,也就是说,三处部属位置理论上均可以检测出摔倒行为的发生。但是,由于个体存在差异,以及摔倒类型不同,需要根据合理的选取依据给出不同目标的最优部属位置。
在特征选取方法选好最优特征组合的基础上,本发明还能根据通过已经选择好的参数判断最优部属位置,通过优化后的SVM参数和已输出的特征组合,构建摔倒测试集,经SVM模型预测机,输出漏检率和误检率。本发明采用机器学习性能评估常用的指标“漏检率”和“错检率”来衡量,其中漏检率描述了真摔倒行为未被检出的百分比,错检率描述了非摔倒行为被检测为摔倒的百分比,在日常环境中,漏检率危害较大,因此在综合评估中我们增加漏检率的权重,按加权求和值给位置选择的排序结果。节点部属位置选择的流程图如图9所示,具体步骤如下:
步骤1:位置寻优模块初始化,漏检率FNR值复位,错检率FPR值复位,其中,FNR=FN/(TP+FN),TP为样本正检数,FN为样本漏检数;FPR=FP/(FP+TN),FP为样本错检数,TN为样本负检数。
步骤2:读取前述步骤得到的优化后的特征组合,读取前述步骤得到的优化后的SVM参数。
步骤3:构建SVM摔倒数据样本集,并进行训练,输出SVM模型。
步骤4:根据模型对测试集进行预测,统计预测后的漏检率和错检率。
步骤5:按公式Δ=k1(1-FNR)+k2(1-FPR)计算最大值,k1、k2为权重系数,由测试环境和用户要求决定,本例中分别取0.7和0.3。
步骤6:比较不同位置的Δ,输出最大Δ对应的部属位置。
通过上述步骤,能够得到单节点应在人体上部署的最佳位置。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。