一种基于多传感器数据融合的人体动作识别方法与流程

文档序号:16405590发布日期:2018-12-25 20:24阅读:295来源:国知局
一种基于多传感器数据融合的人体动作识别方法与流程
本发明涉及人体动作识别领域,尤其涉及一种基于多传感器数据融合的人体动作识别方法。
背景技术
人体动作识别技术是近几十年来兴起的一种新的人机交互方式,已经逐渐成为了国内外学者们研究的一个热点问题。人体动作主要是指人体行动的方式,以及人对环境或物体的反应,人体通过肢体的复杂运动,来描述或表达复杂的人体动作。可以说,人体的动作多数是需要通过人体肢体的运动来体现出来。通过对人体的运动来研究探索人体的动作就成为分析人体动作的一个非常有效的途径。基于惯性传感器的人体动作识别是模式识别领域的一个新兴研究领域,其本质是首先通过一个或多个惯性传感器获取人运动时产生的运动信号,然后对数据进行预处理、特征提取和选择,最后根据提取的特征对运动进行分类和识别。利用惯性传感器研究人体动作识别的过程中,利用单一的分类算法并不能适用于所有的人体动作的识别。这是因为每个单分类器都存在一定的决策误差,利用单一的分类器一定不能解决所有的实际问题;另外,在实际条件下,动作具有随意性以及无序性,这就大大增加了识别的难度。许多研究者在识别一些复杂动作时通常采用多分类器融合技术对实际应用中的人类活动进行监控。结合多分类器进行决策(或称为决策融合)对提高识别性能有很大的影响。决策融合可以有效地提高识别系统的分类性能,提高识别系统的鲁棒性。技术实现要素:本发明主要解决现有技术单一的分类算法并不能适用于所有的人体动作的识别,单分类器存在一定的决策误差等技术问题,提出一种基于多传感器数据融合的人体动作识别方法,能够有效的克服单分类器在识别过程中的弊端,利用本发明所提出的分层融合模型所获得的识别结果明显优于传统识别方法。本发明提供了一种基于多传感器数据融合的人体动作识别方法,包括以下步骤:步骤100,利用分别固定于人体不同部位的n个惯性传感器节点,采集人体动作数据;步骤200,利用滑动窗口分割技术对每个传感器节点所采集的人体动作数据进行窗口分割,得到每个传感器节点的多个动作数据片段;步骤300,对每个传感器节点的动作数据片段进行特征提取,得到相应的特征向量;步骤400,利用rlda算法对获得的每个传感器节点的特征向量进行特征降维;步骤500,将每个传感器节点降维后的特征向量作为训练数据进行参数训练以及建模,得到相应的分层融合模型,包括步骤501至506:步骤501,通过k折交叉验证方法,对于每个传感器节点的降维后的特征向量进行验证,得到每个动作对于每个分类器的贡献率;步骤502,根据贡献率建立如下分类器融合层的评价矩阵:其中,y表示评价矩阵,c表示动作类别,k表示分类器数量,i表示第i个惯性传感器节点,mij表示相对于第i个惯性传感器节点的第j个分类器,yqj表示为第q个动作在第j个分类器下的贡献率;步骤503,根据步骤502得到的评价矩阵,利用如下公式得到每一个分类器的香农熵:其中,ej表示香农熵,η是一个常数,且η=1/log2(c);根据香农熵,并利用如下公式得到此分类器的冗余量:rj=1-ej其中,rj表示冗余量;通过如下公式得到第i个传感器节点、第j个分类器的权重值:其中,表示第i个传感器节点、第j个分类器的权重值;通过以下公式得到第i个传感器节点的输出结果:其中,λi,q表示测试样本x被分到了q类;步骤504,对于第i个传感器节点中的降维后的特征向量,通过以下公式得到第q个动作类的识别率:其中,表示第q个动作类的识别率;步骤505,根据识别率建立如下传感器融合层的评价矩阵:步骤506,根据步骤505得到的评价矩阵,利用如下公式得到每一个传感器的香农熵:根据香农熵,并利用如下公式得到此传感器的冗余量:通过如下公式每个传感器节点的输出权重:得到如下分层融合模型:其中,λq表示测试样本被分到q类;步骤600,利用得到的分层融合模型,进行人体动作识别。优选的,利用滑动窗口分割技术对每个传感器节点所采集的人体动作数据进行窗口分割,包括:对于第i个传感器节点,令分割窗口的大小为l,若运动数据矩阵的长度为则运动数据矩阵ai可以分割为个数据窗口,每个窗口内的分割数据矩阵大小为(l×6)维且每两个相邻的数据窗口有50%的重复率。优选的,对每个传感器节点的动作数据片段进行特征提取,提取的特征包括:三轴加速度数据和三轴角速度数据的均方根、绝对均方差、峰度、协方差、过零率和能量。优选的,利用rlda算法对获得的每个传感器节点的特征向量进行特征降维,包括以下步骤:步骤401,对于第i个传感器节点所对应的特征向量空间,得到相应的类内散布矩阵以及类间散布矩阵:其中,sω表示类内散布矩阵,sb表示类间散布矩阵,μa表示第a类中所有特征向量和的均值,μ表示特征向量空间xi的所有特征向量和的平均;步骤402,根据矩阵的合同定理以及矩阵基本变换求解可逆矩阵,得到如下公式:ptsωp=in其中,p表示可逆矩阵,为sb的特征值,而in表示n维单位矩阵;步骤403,根据步骤402所得结果,利用费舍尔判定准则得到如下最优投影矩阵:φopt=kpt其中,φopt表示最优投影矩阵,k=φ(pt)-1,表示待求解的投影矩阵;步骤404,利用最优投影矩阵进行特征降维。本发明提供的一种基于多传感器数据融合的人体动作识别方法,主要利用了矩阵论中的合同定理对传统的lda算法进行了改进,改进后的特征降维算法可以有效的降低由于在估计类内散布矩阵的特征值的逆时由于微小的偏差而产生的巨大扰动,从而有利于提高算法性能;在动作识别层面,本发明主要提出了一种新的分层融合算法,该融合算法主要包括两层,第一层为分类器融合层,第二层为传感器融合层,而每一层的输出权重主要熵值法获得。本发明提出的算法通过熵值法进行全中的确定,可以有效的提高分类模型的鲁棒性,通过分层结构的设计可以有效的提高动作的识别精度。附图说明图1是本发明基于多传感器数据融合的人体动作识别方法的实现流程图;图2是本发明的分层融合模型示意图。具体实施方式为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。图1是本发明基于多传感器数据融合的人体动作识别方法的实现流程图。如图1所示,本发明实施例提供的基于多传感器数据融合的人体动作识别方法,具体过程如下:步骤100,利用分别固定于人体不同部位的n个惯性传感器节点,采集人体动作数据。具体的,首先把n个惯性传感器节点分别固定于人体的n个部位,每个传感器节点分别包括一个三轴加速度计和一个三轴陀螺仪,并借助于接收节点把采集的动作数据上传到上位机数据处理平台;然后利用n个传感器节点采集人体动作数据,如站、跑、上楼等人体动作的数据。人体动作数据包括每个传感器节点的三轴加速度数据以及三轴角速度数据。对于第i(i∈{1,2,···,n})个传感器节点,其采集的人体动作数据包括x轴,y轴和z轴的加速度数据ai=[aix,aiy,aiz]和x轴,y轴和z轴的角速度数据angi=[angix,angiy,angiz],则对于第i个传感器节点,三轴加速度数据以及三轴角速度数据组成具有6列的原始运动数据矩阵ai=[ai,angi]=[aix,aiy,aiz,angix,angiy,angiz]。步骤200,利用滑动窗口分割技术对每个传感器节点所采集的人体动作数据进行窗口分割,得到每个传感器节点的多个动作数据片段。当获取步骤100中所采集的动作数据后,对动作数据进行窗口分割。本实施例主要采用滑动窗口分割技术对动作数据进行窗口划分:首先选择固定长度的窗口大小,然后移动窗口对动作数据进行分割,相邻的两个窗口有50%的重复率。特别地,对于第i个传感器节点,令分割窗口的大小为l,若运动数据矩阵的长度为则运动数据矩阵ai可以分割为个数据窗口,每个窗口内的分割数据矩阵大小为(l×6)维且每两个相邻的数据窗口有50%的重复率。步骤300,对每个传感器节点的动作数据片段进行特征提取,得到相应的特征向量。当每个传感器所对应的原始数据被分割成多个数据窗口后,需要对每个窗口内的分割数据矩阵进行特征提取,提取的特征主要包括以下6种:1、三轴加速度数据的均方根(rootmeansquare,rms)以及三轴角速度数据的均方根,表达式分别为其中t={x,y,z}表示三轴方向,i表示第i个传感器;2、三轴加速度数据的绝对均方差(meanabsolutedeviation,mad)以及三轴角速度数据的绝对均方差,表达式分别为其中,t={x,y,z}表示三轴方向,i表示第i个传感器;3、三轴加速度数据的协方差(covariance)以及三轴角速度数据的协方差,其分别表示为其中t1,t2={x,y,z}表示三轴方向,i表示第i个传感器;4、三轴加速度数据的峰度(kurtosis)和三轴角速度数据的峰度,其公式主要表示为其中t={x,y,z}表示三轴方向,i表示第i个传感器,表示窗口内加速度数据的均值,表示窗口内加速度数据的方差,表示窗口内角速度数据的均值,表示窗口内角速度数据的方差;5、三轴加速度数据的过零率以及三轴角速度数据的过零率其中t={x,y,z}表示三轴方向,i表示第i个传感器;6、三轴加速度数据的能量以及三轴角速度数据的能量,其公式分别表示为和其中t={x,y,z}表示三轴方向,i表示第i个传感器,xang,t,j表示原始数据矩阵ait快速傅立叶变换后所得到的系数,xang,t,j表示原始数据矩阵angit快速傅立叶变换后所得到的系数。经过对以上6种特征提取后,对应于第i个传感节点的第j个数据窗口,可获得如下特征向量:步骤400,利用rlda算法对获得的每个传感器节点的特征向量进行特征降维。具体的,对于每个传感器节点采集的动作数据提取完特征后,本发明提出了rlda算法用于对特征空间进行降维。其主要步骤如下:步骤401,对于第i个传感器节点所对应的特征向量空间xi,计算相应的类内散布矩阵sω以及类间散布矩阵sb,计算公式分别为:其中,sω表示类内散布矩阵,sb表示类间散布矩阵,μa表示第a类中所有特征向量和的均值,μa表示第a类中所有特征向量和的均值,μ表示特征向量空间xi的所有特征向量和的平均。步骤402,根据矩阵的合同定理以及矩阵基本变换求解可逆矩阵p,使得下式成立:ptsωp=in其中,p表示可逆矩阵,为sb的特征值,而in表示n维单位矩阵。步骤403,根据步骤402所得结果,对费舍尔判定准则进行初等变化,得到求解最优投影矩阵。具体的,费舍尔最大化准则表示为:其中,表示待求解的投影矩阵,由于sb和sω都是半正定的,另外,又根据线性判别分析(lineardiscriminantanalysis,lda)理论可知sω为正定矩阵。则根据矩阵的合同定理可知一定存在一个可逆矩阵p,使得ptsωp=in,这里,是矩阵sb的特征值,in表示n维单位矩阵。则费舍尔最大化准则可以转化为如下形式:令k=φ(pt)-1,则费舍尔最大化准则可以转化为:则线性判别分析的最优投影矩阵可以由下式取得φopt:φopt=kpt。其中,φopt表示最优投影矩阵。步骤404,利用最优投影矩阵进行特征降维。步骤500,将每个传感器节点降维后的特征向量作为训练数据进行参数训练以及建模,得到相应的分层融合模型。图2是本发明的分层融合模型示意图。参照图2,本发明实施例的分层融合模型用以识别人体多种动作,该融合算法主要包括两层。第一层可以称之为分类器融合层,其基本思想就是利用多数投票法则的思想融合多个分类器的分类结果,融合的策略主要是结合权重的思想,而相应的决策结果的权重主要通过熵值法得到。第二层称之为传感器融合层,主要就是融合绑定在身体多个部位的传感器的输出结果,融合的策略依然是由熵值法得到的权重值进行决策。其具体步骤如下:步骤501,通过k折交叉验证方法,对于每个传感器节点的降维后的特征向量进行验证,得到每个动作对于每个分类器的贡献率。对于从一个传感器获得的降维后的训练数据集,通过k折交叉验证方法,训练数据集可以被随机的分成k份。然后通过这k组数据,我们可以得分别到k个基本分类器相对于c个动作类别的识别精确率,这k个识别精确率被标记为c,yqj表示为第q个动作在第j个分类器下的识别精确率。这里yqj可以被认为是第q个动作对于第j个分类器的贡献率。步骤502,根据贡献率建立如下分类器融合层的评价矩阵y:其中,y表示评价矩阵,c表示动作类别,k表示分类器数量,i(0≤i≤n)表示第i个惯性传感器节点,mij表示相对于第i个惯性传感器节点的第j(0≤j≤k)个分类器,yqj表示为第q(0≤q≤c)个动作在第j个分类器下的贡献率;步骤503,根据步骤502得到的评价矩阵,利用如下公式得到每一个分类器的香农熵:其中,ej表示香农熵,j表示第j个分类器,η是一个常数,且η=1/log2(c)。然后根据香农熵,并利用如下公式得到此分类器的冗余量rj:rj=1-ej并通过如下公式得到第i个传感器节点、第j个分类器的权重值通过以下公式得到第i个传感器节点的输出结果:其中,λi,q表示测试样本x被分到了q类。步骤504,对于第i个传感器节点中的降维后的特征向量(训练数据),通过以下公式得到第q个动作类的识别率其中,表示第q个动作类的识别率。步骤505,根据识别率建立如下传感器融合层的评价矩阵步骤506,根据步骤505得到的评价矩阵,利用如下公式得到每一个传感器的香农熵然后根据香农熵,并利用如下公式得到此传感器的冗余量并通过如下公式每个传感器节点的输出权重得到如下分层融合模型:其中,λq表示测试样本被分到q类。对于测试样本,最后的决策结果λq,可以由层融合模型得到。步骤600,利用得到的分层融合模型,进行人体动作识别。当测试数据输入到相应的分层融合模型中,便可以得到相应的分类结果,进而实现人体动作识别。下面以实例的形式对本发明做进一步的解释说明:例如,通过五个传感器节点采集人体动作数据,每个传感器节点包含一个三轴加速度计和一个三轴陀螺仪,采样频率为50hz。实验对象一共8人,年龄在24—34岁之间。五个传感器节点分别放在实验对象的右手手腕,左手手臂,腰部,右脚脚踝,左脚大腿处。另外,本实验所设计的动作包括:走(在健身房跑步机上执行,设定的速度分别为3km/h,5km/h,执行时间每次大约3分钟);跑(在健身房跑步机上执行,设定的速度分别为6km/h,8km/h,12km/h,执行时间每次大约3分钟);跳绳,(实际执行);骑自行车(校园中执行,执行时间为3分钟);上楼梯(校园中执行);下楼梯(校园中执行);体操(实际执行)。另外,采集的原始数据会在matlab中进行处理,并且结合编写的识别算法,得到最后的识别结果。本实例一共采集了(8人×5传感器×10动作)400个动作序列,每个动作序列约为10000个采样点。每个动作序列都包含三轴加速度数据以及三轴角速度数据。然后,对采集的动作序列进行窗口分割。例如,对于第i(i=1,2,3,4,5)个传感器节点,取分割窗口的大小为256,即每256个采样点为一个数据窗口。若运动数据矩阵的长度为则每个运动数据序列可以分割为个数据窗口,每个窗口内的分割数据矩阵大小为256×6维且每两个相邻的数据窗口有50%的重复率。获取数据窗口后,对每一个数据窗口需要进行特征提取,如前面所述,提取的特征包括:均方根,绝对均方差、峰度、协方差、过零率以及能量。对于每一个数据窗口内,提取三轴加速度度数据以及三轴角速度数据的特征,提取的特为:每个数据窗口内的特征的维数为(36×1)维,每个特征向量被看作是一个数据样本,然后再对数据样本进行识别与分类。当提取完特征后,无论对于测试数据以及训练数据,需要数据集进行降维处理。降维的方法即为本发明所提出的rlda算法。对于每个传感器所获得的数据样本,每个样本的特征维数为36,利用rlda算法把每个传感器数据所获得的数据样本的特征维数降低到9维以下。对于降维后的运动数据,利用本发明中提出的分层融合算法对测试数据进行识别分类,用以评估本发明中所提出的算法性能。融合算法中所使用的单分类器主要包括:最近邻分类器(knn),朴素贝叶斯分类器(nb),决策树c4.5分类器(c4.5),支持向量机(svm),隐马尔科夫分类器(hmm)。融合算法内所使用的分类器都是相同的。本实例主要利用留一验证法对算法进行评价。首先取出1名实验对象的数据作为测试数据,其余7个人的数据作为训练数据,然后依次循环。最后的实验结果对8个测试数据的结果取平均值从而得到最终的结果。表1给出了在不同的识别方法下所获得的分类精确度。其中本实例给出了直接利用单分类器直接进行识别测试样本时所获得的识别结果;另外本实例还给出了经典的分类器融合算法—多数投票法(mv)所获得的识别结果。从结果上可以看出,本发明提出的方法可以获得最高的识别精度,达到96.96%。表1不同的识别方法下所获得的分类精确度方法knnnbsvmc4.5hmmmv本发明平均识别率84.55%84.79%87.59%82.48%89.17%94.77%96.96%本实施例提供的基于多传感器数据融合的人体动作识别方法,首先结果合同变换对传统的线性判别分析算法进行了改进,提出了一种新的特征选择算法—rlda,该算法们主要利用矩阵的合同变换对类内散布矩阵逆的特征值进行重新估计,从而减少了由于对较小的特征值估计不精确而产生的误差扰动,提高了算法精度。本发明还提出了一种分层融合模型用以识别多种人体动作,该融合算法主要包括两层。第一层为分类器融合层,第二层为传感器融合层每一层的决策权重主要通过熵值法获得。本发明提出的融合算法有两个优势,第一分层结构的使用可以使得最终的输出结果更加的准确,在一定程度上可以发挥强分类器的优势,另外算法中上熵值法的使用可以保证本分类算法具有较强的鲁棒性。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1