首页> 中国专利> 基于集成隐马尔可夫模型学习方法的人体运动数据的识别方法

基于集成隐马尔可夫模型学习方法的人体运动数据的识别方法

摘要

本发明公开了一种基于集成隐马尔可夫模型学习方法的人体运动数据的识别方法。本方法对人体运动捕获数据提取二维几何特征,然后引入非线性流型学习的降维方法对运动特征数据进行有效的降维,最后采用基于自适应的推进算法的隐马尔可夫集成学习器对运动数据库里的运动进行学习,实现常规运动类型快速检索。该方法提取的二维几何特征很好的表达了运动的本质属性,扩展的非线性流形学习的降维方法成功地将高维运动特征映射到能反映数据间内在联系的低维空间中,从而极大的消除了数据冗余。同时本发明通过对降维数据用集成的隐马尔可夫模型学习的方法进行学习,使得运动能够在高精度的基础上自动地被识别和归类。

著录项

  • 公开/公告号CN101034441A

    专利类型发明专利

  • 公开/公告日2007-09-12

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200710067684.7

  • 发明设计人 庄越挺;向坚;吴飞;

    申请日2007-03-29

  • 分类号G06K9/62(20060101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人张法高

  • 地址 310027 浙江省杭州市浙大路38号

  • 入库时间 2023-12-17 19:07:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    未缴年费专利权终止 IPC(主分类):G06K9/62 授权公告日:20090506 终止日期:20140329 申请日:20070329

    专利权的终止

  • 2009-05-06

    授权

    授权

  • 2007-11-07

    实质审查的生效

    实质审查的生效

  • 2007-09-12

    公开

    公开

说明书

技术领域

本发明涉及多媒体人体三维动画领域,尤其涉及一种基于集成隐马尔可夫模型学习方法的人体运动数据的识别方法。

背景技术

二十世纪九十年代以来,随着运动捕获技术的兴起,以及设备技术的进步,大量的三维人体运动捕获数据生成,并被广泛的应用在计算机动画,游戏,医学仿真,电影特技等领域。随着海量三维人体运动捕获数据库的出现,使得如何从复杂的人体运动中找到能正确表达运动信息的本质特征,如何对运动数据进行正确高效的识别和对海量运动数据进行高效处理,从而有效利用运动捕获数据库成为一个新的挑战。

运动是各关节点信号的和谐组合,在检索过程中需要合理的运动特征描述机制,因此,提取什么样的运动特征,以及用什么样的表达方式来表达运动特征会对运动处理的效果和效率会有极大的影响。本发明中所采用的二维几何特征方法不同于传统的运动特征提取方法,考虑运动的几何结构能够较真实地反映运动内在属性。

从运动数据中提取的特征维数通常都非常高,每个数据之间的距离将因为中央极限定律而变得近乎相同,无法区分彼此,产生高维灾难(Curse ofDimensionality)问题。因此从高维特征中寻找“有意义”的低维特征,可以避免导致较高的时间和空间复杂度,提高检索效率。而非线性流形学习(ISOMAP)算法使用最近邻图中最短路径得到近似的测地线距离,代替不能表示内在流形结构的欧氏(Euclidean)距离,然后输入到多维尺度分析(MDS)中处理,进而发现嵌入在高维空间的低维坐标。

而通过隐马尔可夫模型(HMM)的学习方法对人体运动数据库里的运动进行学习,可以自动的为绝大部分常见的运动类型的每一个二维几何特征建立一个连续的隐马尔可夫模型。而因为单个弱学习器的精度非常低,因此本发明引入集成学习的方法。集成学习(ensemble learning)通过训练基学习器(base learner)的多个版本来对一个问题进行求解,可以显著地提高学习系统的泛化能力。最近几年,国际上神经网络、机器学习、统计学等领域的很多研究者都投入到集成学习的研究中,使得该领域成为了一个相当活跃的研究热点。通过采用自适应的推进算法(Adaboost)对弱隐马尔可夫学习器的集成,我们提高了学习器的精度,从而提高了运动识别的准确性。

发明内容

本发明的目的在于提供一种基于集成隐马尔可夫模型学习方法的人体运动数据的识别方法。

基于集成隐马尔可夫模型学习方法的人体运动数据的识别方法包括如下步骤:

(1)从三维人体运动数据中,提取一种能反映局部几何关系的二维几何特征;

(2)采用非线性流形学习的降维算法,把高维原始数据投影到一个低维的子空间里,通过这个低维空间揭示人体运动的内在结构,实现数据降维;

(3)采用学习主成分特征核函数来对降维进行逼近,实现非线性流形学习算法的扩展,使之能够处理训练集之外的新运动数据;

(4)对于降维之后的运动数据采用隐马尔可夫模型进行学习,得到基于二维几何特征的常见运动类型的隐马尔可夫模型参数;

(5)采用自适应的推进算法,对弱隐马尔可夫模型建立了一个加强型的集成学习器,完成对运动的识别。

所述的从三维人体运动数据中,提取一种能反映局部几何关系的二维几何特征:用布尔函数来表示:F:∏→{0,1};对于f个布尔函数组成的向量,得到一个混合函数F:∏→{0,1}f,把F看作是一个特征函数,向量F(p)则是特征向量或者简单的说是姿势p∈∏的一个特征,通过组合FοD应用到运动捕获数据D:[1:T]→∏上,其中,FοD表达了运动循环的两个峰值,通过峰值能够很轻易的得到运动的速度,特征F对于全局位置和朝向,骨骼尺寸大小,不同的局部空间变形以及腿部的垂直移动具有不变性。

所述的采用非线性流形学习的降维算法,把高维原始数据投影到一个低维的子空间里,通过这个低维空间揭示人体运动的内在结构,实现数据降维:采用非线形流形学习算法先构建一个邻接图,每个点只和自己相邻的点相连,邻域内两点的流形距离由他们的欧式距离逼近,不在同一个邻域中的两点的流形距离由他们在邻接图上的最短Dijkstra距离逼近,随后非线形流形学习基于这个邻接矩阵,直接计算低维流形的嵌入,使得如下目标函数最小化:

>>E>=>>>|>|>D>-ver>>D>~>>|>|>>>L>2>>>>>

其中Dij表示流形上的点的某种距离测度,表述嵌入空间点对之间的距离,L2表示矩阵的Frobenius范数, >>>>|>|>A>|>|>>>L>2>>>=>>>Σ>>i>,>j>>sup>>A>ij>2sup>>>.>>>

所述的非线性流形学习算法的步骤如下:

1)建立邻接矩阵G.,主要有两种办法确定邻接矩阵的边,ε邻域和K邻域.当点j在点i,或点i落在点j的ε或K邻域时,在i和j之间建立一条权重为dx(i,j)的边。

2)利用Dijkstra或者Flyod算法,计算点对之间的最短距离,得到矩阵DG,其中的所有元素都是G中每对点的最短路径

                          DG={dG(i,j)}

3)建立一个d维子空间嵌入:让λp是矩阵τ(DG)的前p个特征值(特征值按降序排列),vpi是第p个特征向量的第i个分量;d维子空间的坐标向量yi的第p个分量就等于

所述的采用学习主成分特征核函数来对降维进行逼近,实现非线性流形学习算法的扩展,使之能够处理训练集之外的新运动数据:让D={x1,x2,...,xn}是未知分布的一个采样数据集,其连续密度为p,让P为其对应的经验分布。考虑一个Hilbert空间的内积函数表达如下:

      <f,g>p=∫f(x)g(x)p(x)dx

其中,p(x)是权重函数,这样核函数K在空间中和一个线性算子Kp联系如下:

                   (Kpf)(x)=∫K(x,y)f(y)p(y)ddy

然后用经验分布P取代未知分布p重新定义一个“经验”Hilbert空间核函数产生一个基于D的对称矩阵其中 >>ver>>M>~>>ij>>=ver>>K>~>>>(>>x>i>>,>>x>j>>)>>;>>>让特征向量,特征值对(vk,λi)作为 >>ver>>K>~>>p>>>f>k>>=sup>>λ>k>′sup>>>f>k>>>>的解;让 >>>e>k>>>(>x>)>>=>>y>k>>>(>x>)>>>>λ>k>>>>>用来表示新数据x到低维空间的映射,扩展非线性流形学习,使其能够运用到新数据上:

>>>e>k>>>(>x>)>>=>>1>>2>>>λ>k>>>>>>Σ>i>>>v>ik>>{>>E>>x>′>>>[>ver>>D>~>>2>>>(>>x>′>>,>>x>i>>)>>]>->ver>>D>~>>2>>>(>>x>i>>,>x>)>>}>>>

用足够数量的运动数据去估计空间上Kp的特征函数,就得到一个非训练数据映射。

所述的对于降维之后的运动数据采用隐马尔可夫模型进行学习,得到基于二维几何特征的常见运动类型的隐马尔可夫模型参数:对于第j个二维几何特征,为每一种运动类型学习一个隐马尔可夫模型λi(i=1,2,...,M);给定一个观测序列O,为每一个隐马尔可夫模型利用前向后向算法计算P(O|λ);基于第j个二维几何特征的运动识别就通过寻找有着最大P(O|λ)值的运动类型i来实现的表达式如下:

>>action>>(>O>)>>=>>>arg>max>>>i>:>i>=>1>,>·>·>·>,>M>>>>(>P>>(>O>|>>λ>i>>)>>>>>>

通过以上表达式,M个运动类型和N个二维几何特征组成了一个M×N的隐马尔克夫模型矩阵,把第i种运动类型的第j个关节点的隐马尔可夫模型表示为HMMi,j,对应参数为λi,j。列j所对应的隐马尔科夫模型集合对应第j个二维几何特征的分类器;

需要计算给定状态s在t时刻观测事件Ot的概率P(Ot|st=s);连续隐马尔可夫模型用概率密度函数来计算P(Ot|st=s),表达式如下:

>>over>>Σ>>m>=>1>>3over>>(>>w>sm>>>1>>>>(>2>π>)>>>d>2>>>>>|>>Σ>sm>>|>>>1>2>>>>>>e>>->>1>2>>>(>>O>t>>->>μ>sm>>)>sup>>Σ>sm>>->1>sup>>>>(>>O>t>>->>μ>sm>>)>>T>>>>)>>.>>>

所述的采用自适应的推进方法对弱隐马尔可夫模型进行加强,得到一个能反映人体整体运动信息的加强型集成分类器,实现正确高效的运动识别:给定n个训练样本(x1,y1),...,(xn,yn)的训练集,其中yi=|0,1|,(i=1,2,...,n)对应样本识别的错误和正确,样本中有u个错误样本,v个正确样本;待分类运动的每个关节点的空间特征表示为fj(·),其中1≤j≤16;对于第i个训练样本xi,它的特征为fj(xi);第j个关节点的空间特征的弱分类器hj(x)由一个特征fj,一个阀值θj和一个指示不等式方向的偏置值pj构成:

>>>h>j>>>(>x>)>>=> >>>1>,>>p>j>>>f>j>><>>p>j>>>θ>j>>>>>>0>,>otherwise>>> >>>

通过对正反例进行分析,选择错误率最低的T个弱分类器,最优化组合成一个强分类器。

本发明具有的有益的效果是:

(1)提取了能很好反映人体整体运动的二维几何特征,并采用非线性流形学习的降维算法,把高维特征数据投影到一个低维的子空间里,通过这个低维空间揭示人体运动的内在结构,实现数据降维,消除数据冗余,减少后续的计算量;

(2)采用学习主成分特征核函数来对降维进行逼近,实现非线性流形学习算法的扩展,使之能够处理训练集之外的新运动数据,提高了非线性流形学习方法的普遍适用性;

(3)对降维之后的运动数据采用隐马尔可夫模型进行学习,得到基于二维几何特征的常见运动类型的隐马尔可夫模型,采用自适应的推进方法对弱隐马尔可夫模型进行加强,得到一个能反映人体整体运动信息的加强型集成分类器,实现对人体运动的自动,快速的识别。

附图说明

图1用走路运动风格为例显示了本发明中运动二维几何特征的特点;

图2是本发明中采用的非线性流形学习的降维方法在三维子空间的运动投影;

图3本发明训练人体运动数据得到的隐马尔可夫模型矩阵,每一个隐马尔可夫模型有三个隐藏的状态,每一个状态包含三个混合高斯分量;

图4是针对人体走路运动采用本发明中的方法和采用弱隐马尔可夫模型的方法得到的运动识别精度的比较;

图5是针对人体拳击运动采用本发明中的方法和采用弱隐马尔可夫模型的方法得到的运动识别精度的比较。

具体实施方式

本发明采用集成学习的隐马尔可夫模型的方法,对通过扩展的非线性流形学习的降维方法实现特征数据降维的人体运动二维几何特征进行学习,得到不同运动类型的学习器,从而实现人体运动高精度的快速自动识别。

为了实现发明目的,本方法采用如下的技术方案:

步骤1:从三维人体运动数据中,提取一种能反映局部几何关系的二维几何特征:

为了有效地表达人体运动,我们提取运动的二维几何特征。因此利用运动姿势中各个关节点的几何关系来提取运动的特征,得到的二维几何特征能够很好地解决运动数据的逻辑相似问题,我们引入布尔特征的概念,并用一个布尔函数来表示:F:∏→{0,1},显然布尔函数的任何布尔表达式都是它本身。对于f个布尔函数组成的向量,我们可以得到一个混合函数F:∏→{0,1}f。如上所述,我们把F看作是一个特征函数,向量F(p)则是特征向量或者简单的说是姿势p∈∏的一个特征。特征函数通过组合FοD应用到一个运动捕获数据D:[1:T]→∏上,

设定j1=’root’,j2=’lankle’,j3=’lhip’,and j4=’rtoes’,这样二维结构特征可以表示为 >>>F>r>>:>=sup>>F>plane>>(>>j>1>>,>>j>2>>,>>j>3>>;>>j>4>>)>sup>>.>>>j1,j2,j3所决定的平面,很明显对于一个人自然站立的姿势来说,特征Fr(P)的值为1。而对于走路或者跑步运动来说,如果右脚移动到身后或者左脚移动到前方,则特征为0。交换特征Fr的定义点的左右位置并翻转平面的朝向,我们得到了另外一个特征Fl。现在让我们来研究一下特征函数组合F:=Fr∧Fl,F的值为1当且仅当Fr,Fl都为1,即左脚趾和右脚趾都位于所对应平面的前方。可以看出,函数F非常适合对走路,跑步等这类脚步循环运动类型进行表达。如果一个运动数据D:[1:T]→∏描述的是这种类型的运动,那么FοD则表达了运动循环的两个峰值,通过峰值能够很轻易的得到运动的速度。另一方面,特征F对于全局位置和朝向,骨骼尺寸大小,不同的局部空间变形(比如侧身)以及腿部的垂直移动来说来说是不变的,

Fplanej1,j2,j3;j4中的四个点可以通过各种不同的方法来挑选。比如,当j1=’root’,j2=’l shoulder’,j3=’rshoulder’,j4=’lwrist’时,特征表示左手是否位于身体的前面或者后面。通过一些合适的补偿,我们可以使特征更加的鲁棒。我们通过实验以及先验知识,还定义了一系列其他类型的二维几何特征。与三个点来定义一个平面不同的是可以通过两个点给定的法向量得到基准平面。比如,与从“胸口”到“脖子”的向量正交的平面,通过这个平面,可以很方便的判断头部在脖子上面还是下面,

另外一类几何特征则检查两个关节点,两个身体段,或者一个关节点和一个身体段是否在一个很近的区域内,换句话说就是是否足够靠近。这里需要考虑的诸如两个手互相接触,或者一个手去接触身体的头,腿的情况,所以需要对靠近区域确定一个足够大的阀值,来保证尽可能的避免错误。二维几何特征还被用来判断身体的特定部位比如手臂,腿或者躯干是否弯曲或者伸展。这样的几何特征是利用合适身体段的夹角来表示的,比如大腿和小腿,上臂和前臂或者脊骨和左右大腿之间的夹角。实验结果显示120的角度是一个很好的阀值,可以用来区分肢体的不同部分是否弯曲(<120)或者伸展(>120)。最后,还需要用一些非几何的特征来补偿整个特征集合,比如一些关节点的绝对速度和相对速度等等,二维几何特征示意图如表1所示:

                                表1二维几何特征示意

  特征几何  特征以及对应的表达含义  Fl  Fl1/Fl2表示左/右脚在前面,Fl3/Fl4表示左/右脚抬起,Fl5/Fl6表示左右膝  盖弯曲,Fl7/Fl8表示左/右脚侧伸,  Fu  Fu1/Fu2表示左/右手在前面,Fu3/Fu4表示左/右手抬起,Fu5/Fu6表示左右手  弯曲,Fu7/Fu8表示左/右手侧伸,  Fm  Fm1/Fm2表示左/右手接触任意一只脚,Fm3/Fm4表示左/右手接触头或脖子,  Fm5/Fm6表示左右手接触臀部,Fm7表示躯干弯曲

步骤2:采用非线性流形学习的降维算法,把高维原始数据投影到一个低维的子空间里,通过这个低维空间揭示人体运动的内在结构,实现数据降维:采用非线形流形学习算法先构建一个邻接图,每个点只和自己相邻的点相连,邻域内两点的流形距离由他们的欧式距离逼近,不在同一个邻域中的两点的流形距离由他们在邻接图上的最短Dijkstra距离逼近,随后非线形流形学习基于这个邻接矩阵,直接计算低维流形的嵌入,使得如下目标函数最小化:

>>E>=>>>|>|>D>-ver>>D>~>>|>|>>>L>2>>>>>

其中Dij表示流形上的点的某种距离测度,表述嵌入空间点对之间的距离,L2表示矩阵的Frobenius范数, >>>>|>|>A>|>|>>>L>2>>>=>>>Σ>>i>,>j>>sup>>A>ij>2sup>>>,>>>这一优化可以通过经典的多维尺度分析方法解决,

非线性流形学习算法的步骤如下:

1)建立邻接矩阵G.,主要有两种办法确定邻接矩阵的边,ε邻域和K邻域.当点j在点i,或点i落在点j的ε或K领域时,在i和j之间建立一条权重为dx(i,j)的边;

2)利用Dijkstra或者Flyod算法,计算点对之间的最短距离,得到矩阵DG,其中的所有元素都是G中每对点的最短路径

                        DG={dG(i,j)};

3)建立一个d维子空间嵌入:让λp是矩阵τ(DG)的前p个特征值(特征值按降序排列),vpi是第p个特征向量的第i个分量;d维子空间的坐标向量yi的第p个分量就等于

步骤3:采用学习主成分特征核函数来对降维进行逼近,实现非线性流形学习算法的扩展,使之能够处理训练集之外的新运动数据:

为了让非线性流形学习算法能够对新数据进行处理,我们通过学习主成分特征核函数来对降维进行逼近,让D={x1,x2,...,xn}是未知分布的一个采样数据集,其连续密度为p,让P为其对应的经验分布。考虑一个Hilbert空间的内积函数表达如下:

                   <f,g>p=∫f(x)g(x)p(x)dx

这里p(x)是权重函数,

这样核函数K可以在空间中和一个线性算子Kp联系如下:

                   (Kpf)(x)=∫K(x,y)f(y)p(y)ddy

然后我们用经验分布P取代未知分布p重新定义一个“经验”Hilbert空间核函数产生一个基于D的对称矩阵其中 >>ver>>M>~>>ij>>=ver>>K>~>>>(>>x>i>>,>>x>j>>)>>.>>>让特征向量,特征值对(vk,λi)作为 >>ver>>K>~>>p>>>f>k>>=sup>>λ>k>′sup>>>f>k>>>>的解。这样我们让 >>>e>k>>>(>x>)>>=>>y>k>>>(>x>)>>>>λ>k>>>>>用来表示新数据x到低维空间的映射,这样就有以下几个等式:

>sup>>λ>k>′sup>>=>>1>n>>>λ>k>>,>>f>k>>>(>x>)>>=>>>n>>>λ>k>>over>>Σ>>i>=>1>>nover>>>v>ik>ver>>K>~>>>(>x>,>>x>i>>)>>,>>>

>>>f>k>>>(>>x>i>>)>>=>>n>>>v>ik>>,>>y>k>>>(>x>)>>=>>>>f>k>>>(>x>)>>>>n>>>=>>1>>λ>k>>over>>Σ>>i>=>1>>nover>>>v>ik>ver>>K>~>>>(>x>,>>x>i>>)>>>>

>>>y>k>>>(>>x>i>>)>>=>>y>ik>>,>>e>k>>>(>x>)>>=>>>λ>k>>>>y>k>>>(>x>)>>,>>e>k>>>(>>x>i>>)>>=>>e>ik>>.>>>

下面我们利用以上方程式对非线性流形学习算法进行扩展。DG(a,b)为已知训练数据集中两点之间的最短距离。我们得到一个标准核函数如下:

>ver>>K>~>>>(>a>,>b>)>>=>->>1>2>>{>>D>G>>>(>a>,>b>)>>->>E>x>>[sup>>D>G>2sup>>>(>x>,>b>)>>]>->>E>>x>′>>>[sup>>D>G>2sup>>>(>a>,>>x>′>>)>>]>+>>E>>x>,>>x>′>>>>[sup>>D>G>2sup>>>(>x>,>>x>′>>)>>]>}>>>

这样以下方程式就可以用来扩展非线性流形学习算法,使其能够运用到新数据上:

>>>e>k>>>(>x>)>>=>>1>>2>>>λ>k>>>>>>Σ>i>>>v>ik>>{>>E>>x>′>>>[>ver>>D>~>>2>>>(>>x>′>>,>>x>i>>)>>]>->ver>>D>~>>2>>>(>>x>i>>,>x>)>>}>>>

如果我们用足够数量的运动数据去估计空间上Kp的特征函数,那么就可以得到一个最佳的非训练数据映射,

由上所述,原来只能处理训练集内部的已知数据的经典非线性流形学习方法就被扩展到能够将新的数据映射到低维子空间。

步骤4:对于降维之后的运动数据采用隐马尔可夫模型进行学习,得到基于二维几何特征的常见运动类型的隐马尔可夫模型参数:对于第j个二维几何特征,为每一种运动类型学习一个隐马尔可夫模型λi(i=1,2,...,M);给定一个观测序列O,为每一个隐马尔可夫模型利用前向后向算法计算P(O|λ);基于第j个二维几何特征的运动识别就通过寻找有着最大P(O|λ)值的运动类型i来实现的表达式如下:

>>action>>(>O>)>>=>>>arg>max>>>i>:>i>=>1>,>·>·>·>,>M>>>>(>P>>(>O>|>>λ>i>>)>>>>>>

通过以上表达式,M个运动类型和N个二维几何特征组成了一个M×N的隐马尔克夫模型矩阵,把第i种运动类型的第j个关节点的隐马尔可夫模型表示为HMMi,j,对应参数为λi,j。列j所对应的隐马尔科夫模型集合对应第j个二维几何特征的分类器,

需要计算给定状态s在t时刻观测事件Ot的概率P(Ot|st=s);连续隐马尔可夫模型用概率密度函数来计算P(Ot|st=s),表达式如下:

>over>>Σ>>m>=>1>>3over>>(>>w>sm>>>1>>>>(>2>π>)>>>d>2>>>>>|>>Σ>sm>>|>>>1>2>>>>>>e>>->>1>2>>>(>>O>t>>->>μ>sm>>)>sup>>Σ>sm>>->1>sup>>>>(>>O>t>>->>μ>sm>>)>>T>>>>)>.>>>

步骤5:采用自适应的推进方法对弱隐马尔可夫模型进行加强,得到一个能反映人体整体运动信息的加强型集成分类器,实现正确高效的运动识别:给定n个训练样本(x1,y1),...,(xn,yn)的训练集,其中yi=|0,1|,(i=1,2,...,n)对应样本识别的错误和正确,样本中有u个错误样本,v个正确样本;待分类运动的每个关节点的空间特征表示为fj(·),其中1≤j≤16;对于第i个训练样本xi,它的特征为fj(xi);第j个关节点的空间特征的弱分类器hj(x)由一个特征fj,一个阀值θj和一个指示不等式方向的偏置值pj构成:

>>>h>j>>>(>x>)>>=> >>>1>,>>p>j>>>f>j>><>>p>j>>>θ>j>>>>>>0>,>otherwise>>> >>>

通过对正反例进行分析,选择错误率最低的T个弱分类器,最优化组合成一个强分类器,

由于集成学习的方法的思想是重点训练那些难分的样本,这样,每轮循环结束后,被错误分类的样本的权重增加,进入下一轮循环的时候,这些错分样本将会被重点训练从而使得这些样本变得容易被正确分类,但是我们在针对物理特征使用集成学习方法的时候,虽然对识别率提高有贡献,但是提高的空间并不很大,分析原因,主要和弱分类器本身的准确性有很大的关系,由于物理特征的数据存在大量的噪声样本,这些都是难以被正确分类的,因此会被重点训练,在这些噪声样本被正确分类前,他们的权重会被增加到一个很大的值,相比之下,那些被正确分类的样本的权重反而被置成非常小的数,这其实违背事实的准则,过于轻视已经正确分类的工作。所以我们用二维几何特征,从而消除了物理特征存在的大量噪声,使得分类器能够清晰的识别。

实施例1

训练样本包括150个各种类型的走路运动,附图4给出了利用弱隐马尔可夫模型和集成的隐马尔可夫模型两种学习方法对走路运动识别精度的比较。下面几何本发明的方法详细说明该实例实施的具体步骤如下:

(1)以步骤1所描述的方法提取出走路运动的所有二维几何特征:提取一个二维几何特征用来表达走路运动中一个右脚趾位于左脚踝,左臀部以及root节点组成的平面的前方的固定姿势。我们定义1≤i≤4是四个三维点,其中<p1,p2,p3>表示前三个点所确定的基准平面,而朝向则取决于三个点的顺序。然后我们定义如下:

通过以上定义,我们对任意四个相邻关节点定义一个特征函数如下:

>sup>>F>plane>>(>>j>1>>,>>j>2>>,>>j>3>>;>>j>4>>)>sup>>>(>P>)>>:>=>B>>(>>P>>j>1>>>,>>P>>j>2>>>,>>P>>j>3>>>;>>P>>j>4>>>)>>>>

其中 >sup>>F>plane>>(>>j>1>>,>>j>2>>,>>j>3>>;>>j>4>>)>sup>>:>>Π>→>{>0,1>}>.>>>

(2)对人体运动的二维几何特征数据采用步骤2所描述非线性流型学习的方法进行降维,通过对矩阵的谱分解得到高维特征数据的低维子空间,步骤如下:

①建立邻接矩阵G,主要有两种办法确定邻接矩阵的边,ε邻域和K邻域。当点j在点i,或点i落在点j的ε或K邻域时,在i和j之间建立一条权重为dx(i,j)的边;

②利用Dijkstra或者F1yod算法,计算点对之间的最短距离,得到矩阵DG,其中的所有元素都是G中每对点的最短路径

                         DG={dG(i,j)};

③建立一个d维子空间嵌入:让λp是矩阵τ(DG)的前p个特征值(特征值按降序排列),vpi是第p个特征向量的第i个分量;d维子空间的坐标向量yi的第p个分量就等于

(3)采用步骤3所描述的方法将非线性流形学习方法扩展到非训练数据集:

利用学习主成分特征核函数对非线性流形学习进行扩展。DG(a,b)为已知训练数据集中两点之间的最短距离。我们得到一个标准核函数如下:

>ver>>K>~>>>(>a>,>b>)>>=>->>1>2>>{>>D>G>>>(>a>,>b>)>>->>E>x>>[sup>>D>G>2sup>>>(>x>,>b>)>>]>->>E>>x>′>>>[sup>>D>G>2sup>>>(>a>,>>x>′>>)>>]>+>>E>>x>,>>x>′>>>>[sup>>D>G>2sup>>>(>x>,>>x>′>>)>>]>}>>>

这样以下方程式就可以用来扩展非线性流形学习的算法,使其能够运用到新数据上:

>>>e>k>>>(>x>)>>=>>1>>2>>>λ>k>>>>>>Σ>i>>>v>ik>>{>>E>>x>′>>>[>ver>>D>~>>2>>>(>>x>′>>,>>x>i>>)>>]>->ver>>D>~>>2>>>(>>x>i>>,>x>)>>}>>>

如果我们用足够数量的运动数据去估计空间上Kp的特征函数,那么就可以得到一个最佳的非训练数据映射。

(4)采用步骤4所描述的方法对人体运动数据用隐马尔可夫模型进行学习:

对于第j个二维几何特征,我们为每一种运动类型学习一个隐马尔可夫模型λi(i=1,2,...,M)。给定一个观测序列O,我们为每一个隐马尔可夫模型利用前向后向算法(Forward-Backward)计算P(O|λ)。基于第j个二维几何特征的运动识别就可以通过寻找有着最大P(O|λ)值的运动类型i来实现,如下所示:

>>action>>(>O>)>>=>>>arg>max>>>i>:>i>=>1>,>·>·>·>,>M>>>>(>P>>(>O>|>>λ>i>>)>>>>>>

通过以上表达式,M个运动类型和N个二维几何特征组成了一个M×N的隐马尔克夫模型矩阵,如附图3所示,我们把第i种运动类型的第j个关节点的隐马尔可夫模型表示为HMMi,j,对应参数为λi,j。列j所对应的隐马尔科夫模型集合对应第j个二维几何特征的分类器。

(5)采用步骤5所描述的自适应的推进方法对一系列弱隐马尔可夫学习器进行集成,得到强学习器,步骤如下:

步骤1:设ωt,i为第t次循环中第i个样本的误差权重。对训练样本中的误差权重按如下公式初始化:对于yi=0的样本, >>>ω>>1>,>i>>>=>>1>>2>u>>>;>>>对于yi=1的样本,

>>>ω>>1>,>i>>>=>>1>>2>v>>>;>>>

步骤2:for t=1 to T权重归一化,使得 >>>ω>>t>,>i>>>=>>>ω>>t>,>i>>>over>>Σ>>j>=>1>>nover>>>ω>>t>,>j>>>>>;>>>

步骤3:对于每个关节点,训练出其弱隐马尔可夫模型的分类器,确定阀值θj,偏置值pj,使得目标函数 >>>ϵ>j>>=over>>Σ>>i>=>1>>nover>>>ω>>t>,>j>>>|>>h>j>>>(>>x>i>>)>>->>y>i>>|>>>达到最小;

步骤4:从上面的弱分类器中,找到一个具有最小错误εt的分类器ht,对所有样本的权重进行更新: >>>ω>>t>+>1>,>i>>>=>>ω>>t>,>i>>sup>>β>t>>1>->>ϵ>i>>sup>>;>>>

步骤5:确定ei,如果刚才xi被hi正确的识别,ei=0;反之ei=1; >>β>=>>>ϵ>t>>>1>->>ϵ>t>>>>>>能保证后面训练提取的弱分类器会更加强化这些识别错误样本训练;

步骤6:最后得到基于自适应推进算发的,所有关节点的弱分类器集成的强分类器:

>>h>>(>x>)>>=> >>>1>,>>over>>Σ>>t>=>1>>Tover>>>α>t>>>h>t>>>(>x>)>>≥>0.5over>>Σ>>t>=>1>>Tover>>>α>t>>>>>>0>,>>>otherwise>>> >>>

其中 >>>α>t>>=>log>>1>>β>t>>>.>>>

(6)采用训练好的隐马尔可夫模型对新运动进行识别,步骤如下:

步骤1:给定一个新的运动序列O=O1O2...OT

步骤2:搜索所有的运动类型,计算P(O|λi,j);

步骤3:返回最大值所在的运动类型,完成走路运动的识别。

实施例2

训练样本包括110个各种类型的拳击运动,附图5给出了利用弱隐马尔可夫模型和集成的隐马尔可夫模型两种学习方法对拳击运动识别精度的比较。下面几何本发明的方法详细说明该实例实施的具体步骤如下:

(1)以步骤1所描述的方法提取一个二维几何特征用来表达拳击运动中一个右手位于左肩部,左臀部以及root节点组成的平面的前方的固定姿势。我们定义1≤i≤4是四个三维点,其中<p1,p2,p3,>表示前三个点所确定的基准平面,而朝向则取决于三个点的顺序。然后我们定义如下:

通过以上定义,我们对任意四个相邻关节点定义一个特征函数如下:

>sup>>F>plane>>(>>j>1>>,>>j>2>>,>>j>3>>;>>j>4>>)>sup>>>(>P>)>>:>=>B>>(>>P>>j>1>>>,>>P>>j>2>>>,>>P>>j>3>>>;>>P>>j>4>>>)>>>>

其中 >sup>>F>plane>>(>>j>1>>,>>j>2>>,>>j>3>>,>>j>4>>)>sup>>:>Π>→>{>0,1>}>.>>>

(2)对人体运动的二维几何特征数据采用步骤2所描述非线性流型学习的方法进行降维,通过对矩阵的谱分解得到高维特征数据的低维子空间,步骤如下:

①建立邻接矩阵G,主要有两种办法确定邻接矩阵的边,ε邻域和K邻域。当点j在点i,或点i落在点j的ε或K邻域时,在i和j之间建立一条权重为dx(i,j)的边;

②利用Dijkstra或者Flyod算法,计算点对之间的最短距离,得到矩阵DG,其中的所有元素都是G中每对点的最短路径

                         DG=dG(i,j)};

③建立一个d维子空间嵌入:让λp是矩阵τ(DG)的前p个特征值(特征值按降序排列),vpi是第p个特征向量的第i个分量;d维子空间的坐标向量yi的第p个分量就等于

(3)采用步骤3所描述的方法将非线性流形学习方法扩展到非训练数据集:

利用学习主成分特征核函数对非线性流形学习进行扩展。DG(a,b)为已知训练数据集中两点之间的最短距离,我们得到一个标准核函数如下:

>ver>>K>~>>>(>a>,>b>)>>=>->>1>2>>{>>D>G>>>(>a>,>b>)>>->>E>x>>[sup>>D>G>2sup>>>(>x>,>b>)>>]>->>E>>x>′>>>[sup>>D>G>2sup>>>(>a>,>>x>′>>)>>]>+>>E>>x>,>>x>′>>>>[sup>>D>G>2sup>>>(>x>,>>x>′>>)>>]>}>>>

这样以下方程式就可以用来扩展非线性流形学习的算法,使其能够运用到新数据上:

>>>e>k>>>(>x>)>>=>>1>>2>>>λ>k>>>>>>Σ>i>>>v>ik>>{>>E>>x>′>>>[>ver>>D>~>>2>>>(>>x>′>>,>>x>i>>)>>]>->ver>>D>~>>2>>>(>>x>i>>,>x>)>>}>>>

如果我们用足够数量的运动数据去估计空间上Kp的特征函数,那么就可以得到一个最佳的非训练数据映射。

(4)采用步骤4所描述的方法对人体运动数据用隐马尔可夫模型进行学习:

对于第j个二维几何特征,我们为每一种运动类型学习一个隐马尔可夫模型λi(i=1,2,...,M)。给定一个观测序列O,我们为每一个隐马尔可夫模型利用前向后向算法计算P(O|λ)。基于第j个二维几何特征的运动识别就可以通过寻找有着最大P(O|λ)值的运动类型i来实现,如下所示:

>>action>>(>O>)>>=>>>arg>max>>>i>:>i>=>1>,>·>·>·>,>M>>>>(>P>>(>O>|>>λ>i>>)>>>>>>

通过以上表达式,M个运动类型和N个二维几何特征组成了一个M×N的隐马尔克夫模型矩阵,如附图3所示,我们把第i种运动类型的第j个关节点的隐马尔可夫模型表示为HMMi,j,对应参数为λi,j列j所对应的隐马尔科夫模型集合对应第j个二维几何特征的分类器。

(5)采用步骤5所描述的自适应的推进方法对一系列弱隐马尔可夫学习器进行集成,得到强学习器,步骤如下:

步骤1:设ωt,i为第t次循环中第i个样本的误差权重。对训练样本中的误差权重按如下公式初始化:对于yi=0的样本, >>>ω>>1>,>i>>>=>>1>>2>u>>>;>>>对于yi=1的样本,

>>>ω>>1>,>i>>>=>>1>>2>v>>>;>>>

步骤2:for t=1 to T权重归一化,使得 >>>ω>>t>,>i>>>=>>>ω>>t>,>i>>>over>>Σ>>j>=>1>>nover>>>ω>>t>,>j>>>>>;>>>

步骤3:对于每个关节点,训练出其弱隐马尔可夫模型的分类器,确定阀值θj,偏置值pj,使得目标函数 >>>ϵ>j>>=over>>Σ>>i>=>1>>nover>>>ω>>t>,>j>>>|>>h>j>>>(>>x>i>>)>>->>y>i>>|>>>达到最小;

步骤4:从上面的弱分类器中,找到一个具有最小错误εt的分类器ht,对所有样本的权重进行更新: >>>ω>>t>+>1>,>i>>>=>>ω>>t>,>i>>sup>>β>t>>1>->>ϵ>i>>sup>>;>>>

步骤5:确定ei,如果刚才xi被hi正确的识别,ei=0;反之ei=1; >>β>=>>>ϵ>t>>>1>->>ϵ>t>>>>>>能保证后面训练提取的弱分类器会更加强化这些识别错误样本训练;

步骤6:最后得到基于自适应推进算法的,所有关节点的弱分类器集成的强分类器:

>>h>>(>x>)>>=> >>>1>,>>over>>Σ>>t>=>1>>Tover>>>α>t>>>h>t>>>(>x>)>>≥>0.5over>>Σ>>t>=>1>>Tover>>>α>t>>>>>>0>,>>>otherwise>>> >>>

其中 >>>α>t>>=>log>>1>>β>t>>>.>>>

(6)采用训练好的隐马尔可夫模型对新运动进行识别,步骤如下:

步骤1:给定一个新的运动序列O=O1O2...OT

步骤2:搜索所有的运动类型,计算P(O|λi,j);

步骤3:返回最大值所在的运动类型,完成拳击运动的识别。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号