一种人体行为视频识别方法与流程

文档序号:12121158阅读:188来源:国知局
一种人体行为视频识别方法与流程
本发明属于模式识别领域,涉及一种人体行为视频识别方法,可以应用到图像检索、手势识别、行为识别等模式识别领域。
背景技术
:人体行为识别研究具有重要的理论研究价值,其涉及计算机视觉、传感器技术、模式识别和人工智能等多个学科。传统的行为识别对于人体行为的识别全都是对全部的视频帧信息进行识别,这样人体行为包含的信息多,需要处理的信息量大,人体行为识别的任务重,识别时间长。除此之外,对于硬件的要求也较苛刻。SchindlerandGool发现包含有很少帧数(1-10帧)的视频帧片段所含有的信息量和整个视频序列所包含的信息量相差无几。因此,从大量的视频帧中提取具有少量的代表性的图片(及关键帧)不仅具有实际需求而且具有充足的理论依据。BJFreyDueck2007年发表的“ClusteringbyPassingMessagesBetweenDataPoints”首次提出的一种新的聚类算法——AP聚类。该算法无需事先定义类数,在迭代过程中不断搜索合适的聚类中心,自动从数据中获得类中心(exemplars)及个数,使所有的数据点到最近的类代表点的相似度之和最大。避免了聚类结果受限于初始类代表点的选择,同时对于相似度矩阵的对称性没有要求,并在处理多类数据时运算速度快。然而,该算法并没有考虑到对于数据点每一维度对相似度产生的影响,即每一维度对聚类结果产生的作用差异。例如与数据点计算相似度时,利用简单的欧氏距离进行相似度计算时效果不好,聚类结果不能体现数据维度之间(如)的差异。因此我们需要考虑数据维度之间的差异。技术实现要素:本发明的目的在于提供一种新的人体行为视频识别方法,通过添加自适应权值计算因子提出了自适应加权近邻仿射聚类算法(SWAP),并用于提取人体行为视频关键帧。为此,本发明采用了以下技术方案:一种人体行为视频识别方法,包括人体视频关键帧提取,通过添加自适应加权因子改进近邻仿射聚类得到自适应加权的近邻仿射聚类算法,所述人体视频关键帧提取包括如下步骤:(1)通过能量特征进行人体行为表示;(2)采用SWAP聚类得到关键帧。进一步地,通过发现欧氏距离计算存在数据不同维度无法差异对待的缺陷,提出所述自适应加权因子,使得数据点进行距离计算时可以自适应调节每一维度对距离计算的作用。对于数据点与SWAP中自适应加权因子ωk的计算公式如下:进一步地,所述人体行为表示采用3D摄像头获取人体骨架20个关节点的空间三维坐标Ji,t(xi,t,yi,t,zi,t),Ji,t是t时刻第i个关节点的三维坐标;然后将关节点划分到四肢和躯干五个部分;最后,分别计算这五部分的动能特征和势能特征,获取每帧图像的十维人体行为能量特征。进一步地,所述的人体骨架20个关节点具体为:J1.头节点,J2.肩中心节点,J3.脊节点,J4.髋中心节点,J5.右手节点,J6.右腕节点,J7.右肘节点,J8.右肩节点,J9.左手节点,J10.左腕节点,J11.左肘节点,J12.左肩节点,J13.右脚节点,J14.右踝节点,J15.右膝节点,J16.右髋节点,J17.左脚节点,J18.左踝节点,J19.左膝节点,J20.左髋节点。进一步地,所述的将人体关节点划分为五个部分具体为::躯干,包括头节点、肩中心节点、脊节点、髋中心节点;F2:右上肢,包括右手节点、右腕节点、右肘节点、右肩节点;F3:左上肢,包括左手节点、左腕节点、左肘节点、左肩节点;F4:右下肢,包括右脚节点、右踝节点、右膝节点、右髋节点;F5:左下肢,包括左脚节点、左踝节点、左膝节点、左髋节点。进一步地,所述的动能特征和势能特征具体为:将在t时刻人体5个生理结构划分表示为表示t时刻的第i1骨骼节点坐标,n取不同值代表人体的5部分,每一身体部分(Fn,t)的动能计算式如下:其中,是关节点集合,eK,t是集Fn,t中所有关节点在t时刻的动能之和,vj,t是j关节点在t时刻的速度,Pj,t(xj,t,yj,t,zj,t)是关节点j在t时刻的位置,Pj,t-1(xj,t-1,yj,t-1,zj,t-1)是j关节点在t-1时刻的位置,K=[Kx,Ky,Kz]是参数向量;人工设定,采用向量[1,1,1],通过动能计算公式得到每一人体部分的动能eK1,eK2,eK3,eK4,eK5,它们依次代表躯干、右上肢、左上肢、右下肢、左下肢的动能;每一身体部分(Fn,t)的势能计算式如下:其中,eP,t是关节点集合中所有关节点在t时刻势能总和,Pj,0(xj,0,yj,0,zj,0)代表第j个关节点的初始位置,Pj,t(xj,t,yj,t,zj,t)是i关节点在t时刻的位置,L=[l1,l2,l3]是参数向量,采用向量[1,1,1];通过势能计算公式我们得到每一人体部分的势能eP1,eP2,eP3,eP4,eP5,它们依次代表躯干、右上肢、左上肢、右下肢、左下肢的势能。进一步地,所述的十维人体行为能量特征多能量特征表达式为:Gn(EK,EP)=Gn(EK1,EK2,EK3,EK4,EK5,EP1,EP2,EP3,EP4,EP5)其中动能EK(EK1,EK2,EK3,EK4,EK5)和势能EP(EP1,EP2,EP3,EP4,EP5)分别是动能eK(eK1,eK2,eK3,eK4,eK5)和势能eP(eP1,eP2,eP3,eP4,eP5)各自归一化后的动能势能表达,动能势能归一化公式表示为NewValue=(OldValue-MinValue)/(MaxValue-MinValue),其中NewValue,MinValue分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。MaxValue、MinValue分别为样本的最大值和最小值。进一步地,所述采用SWAP聚类得到关键帧是将每一个十维能量特征作为SWAP聚类的输入,以此计算相似度矩阵S来启动算法,通过信息迭代公式得到每一次迭代计算后的可信度R和可信值A,迭代计算即进行数据点之间可信度R和可信值A的消息传递;不满足聚类结果不变或一定次数不变的停止条件则继续利用迭代公式进行下一次迭代计算,当满足停止条件时,输出聚类中心及其数目;相似度矩阵S,适选矩阵R和代表矩阵A都是N×N矩阵,聚类中心对应的图像即是关键帧图像,SWAP聚类通过参考值p来调节输出聚类中心的数量,p值由实验得出,一般取为相似度矩阵中值的整倍数;所述相似度矩阵,具体为,对任意数据点与表示第i个数据点的第k维数据,其相似度矩阵计算公式如下:所述可信度R和可信值A,具体为,所述聚类中心判断条件,具体为,数据点k是否为聚类中心判断公式如下:R(j,j)+A(j,j)>0(j=1,...,N)所述信息迭代公式R(i,j),A(i,j)迭代公式,具体为:R(i,j)=(1-λ)*R(i,j)+λ*R(i-1,j)A(i,j)=(1-λ)*A(i,j)+λ*A(i-1,j)所述算法终止条件,具体为:若每次迭代的聚类结果连续迭代I次不变或算法迭代公式达到了最大迭代次数maxI则算法停止,其中算法最大迭代次数maxI是人为设定的。由于采用了上述技术方案,与现有技术相比,本发明具有以下优点:自适应权值计算因子利用了数据每一维之间的信息自动调整数据不同维度之间的权值,SWAP聚类算法体现了每个数据点中每维数据元之间的差异,使得聚类结果更加具有代表性。将自适应加权的近邻仿射聚类算法应用到关键帧提取中,可以充分体现不同人体部分对人体动作参与的差异性,因此可以提取的关键帧更加具有代表性,大大提高了视频识别的速度和精度。附图说明:图1为SWAP算法流程图;图2为kinect人体骨架图;图3示出了喝水动作一个周期内的关键帧。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明是通过添加自适应权值计算因子ωk来实现自适应加权的近邻仿射聚类算法。结合图1所示,本发明包括如下步骤:1:计算相似度矩阵。N个数据点聚类时,任意两点与通过添加自适应加权因子ωk,计算相似度矩阵SN×N(Sij=S(i,j))2:初始化参数。适选矩阵即A(i,j)=0(i,j=1,2,...,N),N代表N个数据点,代表矩阵R(i,j)=0(i,j=1,2,...,N),适选矩阵R和代表矩阵A都是N×N矩阵。阻尼参数λ(0.5~1),阻尼参数起到迭代收敛作用,当λ较小时,迭代前后R和A变化较大,迭代次数较少就可以输出稳定的聚类结果,当λ较大时,迭代前后R和A变化较小,迭代次数较多。参考值P(i)=2×median(S),结果连续迭代次数I,结果连续迭代次数人为设定,一般选取50及以上,算法最大迭代次数maxI,算法最大迭代次数人为设定,一般选取100及以上。3:计算适选矩阵A,代表矩阵RR(i,j)=S(i,j)-maxk,s,t,k≠j{R(i,k)+S(i,k)}(2.3)4:更新R(i,j),A(i,j),i,j=1,2,...,Ni≠j,R(i,j)=(1-λ)*R(i,j)+λ*R(i-1,j)(2.5)A(i,j)=(1-λ)*A(i,j)+λ*A(i-1,j)(2.6)5:判断每个数据点k,k=1,2,...,N是否是聚类中心,式(2.7)满足时认为是一个聚类中心。R(k,k)+A(k,k)>0k=1,2,...,N(2.7)6:算法结束判断:若每次迭代的聚类结果(即聚类中心)连续迭代I次不变或算法达到了最大迭代次数maxI(即算法中迭代公式迭代次数达到maxI),跳到步骤7,反之到步骤3。7:记录聚类中心和聚类数目。SWAP聚类算法应用在人体行为视频关键帧提取上是通过以下技术方案实现的,包括如下步骤:首先,采用Kinect摄像头获取人体20个骨架关节点位置信息,将人体关节点划分表示到四肢和躯干五个部分;然后,分别计算四肢和躯干五部分的动能特征和势能特征,将每部分的动能特征和势能特征表示成十维的人体行为能量特征,每个特征代表一帧图像。最后,将每一能量特征对应为十维高维空间中的数据点,对应后的数据点作为SWAP聚类的输入,通过SWAP聚类方法得到聚类中心,聚类中心即是关键帧图像。所述的将人体关节点划分为5部分具体为:F1:躯干(头节点,肩中心节点,脊节点,髋中心节点)F2:右上肢(右手节点,右腕节点,右肘节点,右肩节点)F3:左上肢(左手节点,左腕节点,左肘节点,左肩节点)F4:右下肢(右脚节点,右踝节点,右膝节点,右髋节点)F5:左下肢(左脚节点,左踝节点,左膝节点,左髋节点),具体划分参见图2,其中:J1:头节点J2:肩中心节点J3:脊节点J4:髋中心节点J5:右手节点J6:右腕节点J7:右肘节点J8:右肩节点J9:左手节点J10:左腕节点J11:左肘节点J12:左肩节点J13:右脚节点J14:右踝节点J15:右膝节点J16:右髋节点J17:左脚节点J18:左踝节点J19:左膝节点J20左髋节点人体结构划分(以t时刻为例,划分与时间无关):F1,t:躯干(J1,J2,J3,J4)F2,t:右上肢(J5,J6,J7,J8)F3,t:左上肢(J9,J10,J11,J12)F4,t:右下肢(J13,J14,J15,J16)F5,t:左下肢(J17,J18,J19,J20)所述的计算人体五部分的动能特征和势能特征,将每部分动能特征和势能特征表示成十维人体行为能量特征,每个特征代表一帧图像,具体为:将在t时刻人体5个生理结构划分表示为表示t时刻的第i1骨骼节点坐标,n取不同值代表人体的5部分,如躯干F1,t(J1,t,J2,t,J3,t,J4,t),,右上肢部分F2,t(J5,t,J6,t,J7,t,J8,t),,见图2。每一身体部分(Fn,t)的动能计算式如下:其中,是关节点集合,eK,t是集Fn,t中所有关节点在t时刻的动能之和,vj,t是j关节点在t时刻的速度,Pj,t(xj,t,yj,t,zj,t)是关节点j在t时刻的位置,Pj,t-1(xj,t-1,yj,t-1,zj,t-1)是j关节点在t-1时刻的位置,K=[Kx,Ky,Kz]是参数向量;人工设定,采用向量[1,1,1],通过动能计算公式得到每一人体部分的动能eK1,eK2,eK3,eK4,eK5,它们依次代表躯干、右上肢、左上肢、右下肢、左下肢的动能;每一身体部分(Fn,t)的势能计算式如下:其中,eP,t是关节点集合中所有关节点在t时刻势能总和,Pj,0(xj,0,yj,0,zj,0)代表第j个关节点的初始位置,Pj,t(xj,t,yj,t,zj,t)是i关节点在t时刻的位置,L=[l1,l2,l3]是参数向量,采用向量[1,1,1];通过势能计算公式我们得到每一人体部分的势能eP1,eP2,eP3,eP4,eP5,它们依次代表躯干、右上肢、左上肢、右下肢、左下肢的势能。其中,十维的人体行为能量特征,具体为,能量特征表达式:Gn(FK,EP)=Gn(EK1,EK2,EK3,EK4,EK5,EP1,EP2,EP3,EP4,EP5)(2.10)其中动能EK(EK1,EK2,EK3,EK4,EK5)和势能EP(EP1,EP2,EP3,EP4,EP5)分别是动能eK(eK1,eK2,eK3,eK4,eK5)和势能eP(eP1,eP2,eP3,eP4,eP5)各自归一化后的动能势能表达,动能势能归一化公式表示为NewValue=(OldValue-MinValue)/(MaxValue-MinValue),其中NewValue,MinValue分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。MaxValue、MinValue分别为样本的最大值和最小值。所述的将每一能量特征对应到十维高维空间中的数据点,对应后的数据点作为SWAP聚类的输入,通过SWAP聚类方法得到聚类中心,聚类中心即是关键帧图像。下面利用康奈尔人体行为数据库CAD-60中人体行为动作对本发明的实施例做详细说明。实施例1通过CAD-60的喝水动作对SWAP聚类算法及其在关键帧提取上的应用进行说明。实施例2通过CAD-60中的六个动作对本发明可以提供人体行为识别速度的作用进行说明。CAD-60是通过3D摄像头采集获取的人体行为动作数据库。该数据库包含12个日常人体行为动作和相应动作的人体骨架关节点信息。本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。实施例1通过人体骨架关节点信息将人体关节点划分为五个部分;然后分别获取每帧图像的人体行为能量特征。最后,通过SWAP对人体行为动作图像序列进行聚类得到聚类中心,聚类中心即是图像的关键帧。本实施例包括如下步骤:将人体20个骨架关节点划分到人体五个部分:F1,t:躯干(J1,J2,J3,J4)F2,t:右上肢(J5,J6,J7,J8)F3,t:左上肢(J9,J10,J11,J12)F4,t:右下肢(J13,J14,J15,J16)F5,t:左下肢(J17,J18,J19,J20),具体划分参见图2。2.分别计算五部分的动能和势能,通过获取10维的人体行为能量特征,每个特征代表一帧图像。动能eK,t、势能eP,t计算公式如下:根据动能、势能获得10维的人体行为特征表示Gn(FK1,EK2,EK3,EK4,EK5,EP1,EP2,EP3,EP4,EP5)得到该动作所有图片对应的10维特征如下:3.将每一能量特征作为10维高维空间中的数据点,将数据点作为SWAP聚类的输入,获取相似度矩阵SN×N,启动SWAP聚类算法。设置初始化参数λ=0.5,聚类结果不变迭代次数I=50,最大迭代次数maxI=2000,该喝水动作包含1583帧图片,即对应SWAP聚类输入1583个数据点,因此相似度矩阵为1583×1583矩阵。根据以下公式得到相似度矩阵SN×N。得到相似度矩阵SN×N如下:4.启动SWAP聚类算法,最后输出聚类中心与聚类数目。实施例2如表1、图3所示,为实施例的关键帧提取结果。表1对喝水动作提取的关键帧数进行了说明。由表1看出,该实施例对含有1583帧图像的喝水动作提取出37张关键帧。图3是关键帧提取结果,因该喝水动作是循环动作,包含多次喝水动作,故图3展示了喝水动作一个周期的关键帧提取结果,该周期内含有9张关键帧。表1人体行为库CAD-60说明本实施例通过CAD-60中六个动作(切菜,喝水,漱口,站立,打电话,黑板上写字)对本发明可以提高人体行为识别速度进行说明。通过实施例步骤可以对六个动作提取关键帧,表2列出了六个动作包含的原始动作帧数和关键帧提取后的关键帧数。表26个动作原始帧数和关键帧数动作动作原始帧数关键帧数切菜156137喝水158337漱口174231站立102548打电话152249黑板上写字178976本实施例通过SVM对六个动作原始帧和关键帧分别进行人体行为识别,通过表3的识别结果可以看出,通过关键帧进行人体行为识别,虽然在关键帧上进行人体行为识别需要额外的人体行为关键帧提取时间,但总的人体行为识别时间为119.30+33.81s=153.11s,这比在原始视频所有视频帧上进行人体行为识别的时间554.40s大大减少。因此在关键帧上进行人体行为识别,识别精度基本不变但是识别时间大大缩短。表3基于原始视频帧与关键帧上的人体行为识别对比当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1