自适应骨骼中心的人体行为识别方法与流程

文档序号:11287334阅读:407来源:国知局
自适应骨骼中心的人体行为识别方法与流程
本发明属于计算机视觉领域,特别涉及一种人体骨骼行为识别方法,可应用于监控、视频游戏和人机交互。
背景技术
:在人体骨骼行为识别过程中,首先需要对数据进行预处理,将数据处理成所需的形式,如矩阵或者向量,然后对处理的数据进行特征提取,随后对于特征进行描述,最后进行建模和分类,达到识别人体行为的效果。由于遮挡、光线变化、视角变化以及背景干扰,精确地识别人体行为仍存在诸多困难,在应用领域受到了极大的限制。但随着深度传感器变得经济实惠,受众面广,如微软kinect的出现,它不仅提供彩色图像数据,而且还提供三维深度图像信息,使行为识别研究出现了新机遇。在此基础上很多学者致力于行为识别的研究工作,提出了各种基于人体骨骼的行为识别方法,其中比较有代表性的是以下几种:第一种是lv等人2006年在eccv会议上发表的文章“recognitionandsegmentationof3-dhumanactionusinghmmandmulti-classadaboost”提出基于多个人体关节点相结合方式的空间局部特征方法。他们发现,仅仅使用姿态向量可能会引起一些相关信息的丢失,削弱模型的判定能力。所以,考虑使用人体不同部位的运动来提取持征。最终,他们构建了一个包含七类子特征的141维的特征向量,而且提出了一种基于动态规划的算法,能够从连续的骨架序列中提取包含一个行为的子序列。文中方法的缺点是只针对简单的动作识别结果较好,对于复杂的动作识别起来不是很理想,而且在归一化动作时使用单一的坐标中心,识别精度低。第二种是m等人2011年在iccv会议上发表的文章“accurate3dposeestimationfromasingledepthimage”提出了一种从单一的深度图估计人体姿态配置的系统,它把姿态检测和姿态细化相结合。主要贡献包括修改点云平滑技术,处理非常嘈杂的输入深度图,点云对齐和姿态搜索算法。文中方法的缺点是在计算上花费的时间较多,通过牺牲时间获得精度,而且在归一化动作时使用单一的坐标中心,识别精度低。第三种是yang等人2014年在可视化通信与图像显示杂志上发表的文章“effective3dactionrecognitionusingeigenjoints”上提出了通过使用朴素贝叶斯最近邻算法,然后基于特征节点进行动作识别的方法,文中方法的缺点是只专注一个人的行动,而不是多人交互的动作,而且在归一化动作时使用单一的坐标中心,识别精度低。技术实现要素:本发明的目的在于避免上述已有技术共有的不足,提出一种自适应骨骼中心的人体行为识别方法,通过参数化骨骼关节的运动特征,自主选择坐标中心,提高行为识别精度。实现本发明的技术思路通过分析人体骨骼,研究人体动作基本特征,根据特征数据,求出动作特征的阈值,判断动作对不同坐标中心的适应值,自主选择坐标中心,形成自适应骨骼中心的行为识别算法,其实现方案包括如下:1.一种自适应骨骼中心的人体行为识别方法,包括:(1)读取人体动作两个数据集utkinect和msraction3d中的骨骼动作序列帧,并去掉骨骼动作序列帧中的冗余帧,得到序列帧信息;再以臀部关节点h、颈部关节点n为坐标中心分别进行归一化,得到臀部中心坐标矩阵dh以及颈部中心坐标矩阵dn;(2)用两个相邻关节点构成一个刚体向量,两个相邻刚体向量构成一个关节角,根据步骤(1)得到两个坐标矩阵dh、dn,分别计算每个关节角的角速度和角加速度;(3)将根据两个坐标矩阵dh、dn计算出的所有关节角的角速度和角加速度使用选择排序方法分别进行排序,分别得到臀部关节角的角速度序列h1、角加速度序列h2和颈部关节角的角速度序列h3、角加速度序列h4;(4)确定关节角的角速度和角加速度阈值:将所述序列h1的最小值sfρ和最大值lfρ作为臀部关节角的角速度阈值[sfρ,lfρ],将所述序列h2的最小值pfρ和最大值qfρ作为臀部关节角的角加速度阈值[pfρ,qfρ],将所述序列h3的最小值mfρ和最大值nfρ作为颈部关节角的角速度阈值[mfρ,nfρ],将所述序列h4的最小值ufρ和最大值vfρ作为颈部关节角的角加速度阈值[ufρ,vfρ];(5)根据每个关节角臀部关节角的角速度的阈值[sfρ,lfρ]与颈部关节角的角速度阈值[mfρ,nfρ],得到臀部关节角的角速度适应值s1和颈部关节角的角速度适应值s2;根据每个关节角的臀部关节角的角加速度阈值[pfρ,qfρ]与颈部关节角的角加速度阈值[ufρ,vfρ],得到臀部关节角角加速度适应值s3和颈部关节角的角速度适应值s4;(6)根据步骤(5)得到的四个适应值s1、s2、s3和s4,依次确定每一个动作的坐标中心重新归一化,得到动作坐标矩阵;(7)将动作坐标矩阵输入支持向量机svm中,输出动作的识别结果。本发明与现有技术对比具有如下特点:1)本发明在表示人体骨骼数据时特征参数少,只有角速度和角加速度,整个过程相对简单,容易操作;2)本发明定义了两个坐标中心,根据角速度和角加速度相较于两个坐标中心的适应值自适应选择坐标中心,识别精度更高,应用面更广。附图说明图1是本发明的实现流程图;图2是本发明使用的人体动作的骨骼表示图;图3是本发明中的人体动作刚体关节角表示图;具体实施方式以下结合附图对本发明的技术方案和效果做进一步详细描述:参照图1,本发明自适应骨骼中心的人体行为识别方法,按如下步骤进行:步骤一:读取人体动作数据集的骨骼动作序列帧,去掉冗余帧,分别进行归一化,得到臀部中心坐标矩阵dh以及颈部中心坐标矩阵dn:读取人体动作两个数据集utkinect和msraction3d中的骨骼动作序列帧,并去掉骨骼动作序列帧中的冗余帧,得到序列帧信息;再以臀部关节点h、颈部关节点n为坐标中心分别进行归一化,得到臀部中心坐标矩阵dh以及颈部中心坐标矩阵dn:(1a)加载人体动作两个数据集utkinect和msraction3d中,读取数据集中的骨骼动作序列帧;(1b)提取文件中的帧数和关节点坐标信息,删除掉重复的帧以及和此帧对应的关节点坐标,得到序列帧信息;(1c)再以臀部关节点h、颈部关节点n为坐标中心分别进行归一化,得到臀部中心坐标矩阵dh以及颈部中心坐标矩阵dn;步骤二:设置人体骨骼特征参数,计算每个关节角的角速度和角加速度:现有的人体行为识别方法在设置人体特征参数时所用的方法包括:使用点云图的方式作为特征,或者使用人体不同部位的运动的骨骼关节点的方式,或者是使用刚体之间的相对位置关系,或者是同一帧序列下的骨骼序列关节点进行计算,而本发明在定义人体骨骼特征是通过使用多个连续动作帧序列的关系,求出刚体的角速度和角加速度的方法,来定义人体特征参数,具体过程如下:(2a)计算臀部关节角在第f帧的左刚体向量与右刚体向量和在第f+1帧时的左刚体向量和右刚体向量以及在第f+2帧时的左刚体向量和右刚体向量如图2所示,人体动作的骨骼包含16个关节点,分别用阿拉伯数字进行标注,其中关节点2是颈部关节点h,关节点8是颈部关节点h,相邻两个关节点构成一个刚体向量,可知由16个关节点可以构成15个刚体向量。使用现有的如下公式进行计算刚体向量:其中li、lj和lk分别为在第f帧时的第i个、第j个和第k个关节点,ni、nj和nk分别为在第f+1帧时的第i个、第j个和第k个关节点,mi、mj和mk分别为在第f+2帧时的第i个、第j个和第k个关节点,1≤i≤n,1≤j≤n,1≤k≤n,i≠j≠k,n为不同数据集下的骨骼关节点数目,li=[xi,yi,zi],lj=[xj,yj,zj],lk=[xk,yk,zk],ni=[θi,τi,εi],nj=[θj,τj,εj],nk=[θk,τk,εk],mi=[αi,βi,χi],mj=[αj,βj,χj],mk=[αk,βk,χk],xi,yi,zi表示关节点li的坐标,xj,yj,zj表示关节点lj的坐标,xk,yk,zk表示关节点lk的坐标,θi,τi,εi表示关节点ni的坐标,θj,τj,εj表示关节点nj的坐标,θk,τk,εk表示关节点nk的坐标,αi,βi,χi表示关节点mi的坐标,αj,βj,χj表示关节点mj的坐标,αk,βk,χk表示关节点mk的坐标,li、lj和lk在坐标矩阵dh的第f帧中,ni、nj和nk在坐标矩阵dh的第f+1帧中,mi、mj和mk在坐标矩阵dh的第f+2帧中,1≤f≤m,m表示帧总数目,矩阵dh中包含m帧人体动作序列,每一帧中含有一个动作的全部关节点坐标;(2b)根据(2a)的结果计算臀部关节角在第f帧时的关节角值αfh、在第f+1帧时的关节角值α(f+1)h和在第f+2帧时的关节角值α(f+2)h:如图3所示,由左刚体向量bij和右刚体向量bjk构成的刚体关节角αfh,图3中将刚体关节投影到笛卡尔直角坐标系中,使用现有的数学公式计算关节角:方法是,具体计算如下:(2c)根据(2b)的计算结果计算臀部关节角第f帧的关节角变化值δαfh和在第f+1帧的关节角变化值δα(f+1)h:δαfh=α(f+1)h-αfh,δα(f+1)h=α(f+2)h-α(f+1)h;(2d)根据(2c)的计算结果计算臀部关节角在第f帧的角速度vfh和在第f+1帧的角速度v(f+1)h:其中δt1=t2-t1,δt1=t3-t2,t1、t2、t3分别表示第f、f+1、f+2帧对应的时刻;(2e)根据(2d)的计算结果计算臀部关节角在第f帧时的角速度变化值δvfh:δvfh=v(f+1)h-vfh,(2f)根据(2e)的计算结果计算臀部关节角在第f帧时的角加速度afh:(2g)计算颈部关节角在第f帧的左刚体向量与右刚体向量和在第f+1帧时的左刚体向量和右刚体向量以及在第f+2帧时的左刚体向量和右刚体向量使用现有的如下公式进行计算刚体向量:其中ci、cj和ck分别为在第f帧时的第i个、第j个和第k个关节点,di、dj和dk分别为在第f+1帧时的第i个、第j个和第k个关节点,qi、qj和qk分别为在第f+2帧时的第i个、第j个和第k个关节点,1≤i≤n,1≤j≤n,1≤k≤n,i≠j≠k,n为不同数据集下的骨骼关节点数目,ci=[ai,bi,ci],cj=[aj,bj,cj],ck=[ak,bk,ck],di=[ei,oi,wi],dj=[ej,oj,wj],dk=[ek,ok,wk],qi=[δi,φi,ηi],qj=[δj,φj,ηj],qk=[δk,φk,ηk],ai,bi,ci表示关节点ci的坐标,aj,bj,cj表示关节点cj的坐标,ak,bk,ck表示关节点ck的坐标,ei,oi,wi表示关节点di的坐标,ej,oj,wj表示关节点dj的坐标,ek,ok,wk表示关节点dk的坐标,δi,φi,ηi表示关节点qi的坐标,δj,φj,ηj表示关节点qj的坐标,δk,φk,ηk表示关节点qk的坐标,ci、cj和ck在坐标矩阵dn的第f帧中,di、dj和dk在坐标矩阵dn的第f+1帧中,qi、qj和qk在坐标矩阵dn的第f+2帧中,1≤f≤m,m表示帧总数目,矩阵dn中包含m帧人体动作序列,每一帧中含有一个动作的全部关节点坐标;(2h)根据(2g)的结果计算颈部关节角在第f帧的关节角值αfn、在f+1帧时的关节角值α(f+1)n和在f+2帧时的关节角值α(f+2)n:使用现有的数学公式计算关节角,具体计算方法如下:(2i)根据(2h)的结果计算颈部关节角在第f帧时的角度变化δαfn和在第f+1帧时的角度变化δα(f+1)n:δαfn=α(f+1)n-αfn,δα(f+1)n=α(f+2)n-α(f+1)n;(2j)根据(2i)的结果计算颈部关节角在第f帧时的角速度vfn和在第f+1帧时的v(f+1)n:其中δt1=t2-t1,δt1=t3-t2,t1、t2、t3表示第f、f+1、f+2帧对应的时刻;(2k)根据(2j)的结果计算颈部关节角在第f帧时角速度的变化值δvfn:δvfn=v(f+1)n-vfn;(2l)根据(2k)的结果计算颈部关节角在第f帧时的角加速度afn:步骤三:将所有关节角的角速度和角加速度使用快速选择排序方法分别进行排序,分别得到相应的序列:现有的排序方法包含冒泡排序、直接插入排序、快速选择排序、希尔排序,本发明使用的快速选择排序方法,具体过程如下:(3a)将臀部关节角的所有角速度vfh的值,从第一个值开始每个值依次与该值后面的每一个值进行比较,若后一个值小于前一个值,则交换两个值的位置继续比较;若后一个值大于前一个值,则从后一个值开始继续向后比较,依次比较直到最后一个值,将这些臀部关节的角速度vfh值按照小到大的顺序排列,得到臀部关节角的角速度序列h1;(3b)将臀部关节角的所有角加速度afh的值,从第一个值开始每个值依次与该值后面的每一个值进行比较,若后一个值小于前一个值,则交换两个值的位置继续比较;若后一个值大于前一个值,则从后一个值开始继续向后比较,依次比较直到最后一个值,将这些臀部关节的角加速度afh值按照小到大的顺序排列,得到臀部关节角的角加速度序列h2;(3c)将颈部关节角的所有角加速度vfn的值,从第一个值开始每个值依次与该值后面的每一个值进行比较,若后一个值小于前一个值,则交换两个值的位置继续比较;若后一个值大于前一个值,则从后一个值开始继续向后比较,依次比较直到最后一个值,将这些颈部关节的角速度vfn值按照小到大的顺序排列,得到颈部关节角的角速度序列h3;(3d)将颈部关节角的所有角加速度afn的值,从第一个值开始每个值依次与该值后面的每一个值进行比较,若后一个值小于前一个值,则交换两个值的位置继续比较;若后一个值大于前一个值,则从后一个值开始继续向后比较,依次比较直到最后一个值,将这些颈部关节的角加速度afn值按照小到大的顺序排列,得到颈部关节角的角加速度序列h4。步骤四:确定关节角的角速度和角加速度阈值。(4a)将所述序列h1的最小值sfρ和最大值lfρ作为臀部关节角的角速度阈值[sfρ,lfρ];(4b)将所述序列h2的最小值pfρ和最大值qfρ作为臀部关节角的角加速度阈值[pfρ,qfρ];;(4c)将所述序列h3的最小值mfρ和最大值nfρ作为颈部关节角的角速度阈值[mfρ,nfρ];(4d)将所述序列h4的最小值ufρ和最大值vfρ作为颈部关节角的角加速度阈值[ufρ,vfρ]。步骤五:计算臀部关节角的角速度适应值s1和颈部关节角的角速度适应值s2以及计算臀部关节角的角加速度适应值s3和颈部关节角的角加速度适应值s4。(5a)计算臀部关节角的角速度适应值s1和颈部关节角的角速度适应值s2:(5a1)设置帧序列迭代终止条件f=m;(5a2)设置关节角迭代终止条件ρ=σ;(5a3)初始化第f帧的第ρ个臀部关节角的角速度适应值为s1=0,第f帧的第ρ个颈部关节角的角速度适应值为s2=0,初始值f=1,ρ=1;(5a4)将臀部关节角的角速度阈值[sfρ,lfρ]和颈部关节角的角速度阈值[mfρ,nfρ]进行比较,确定臀部关节角的角速度适应值s1和颈部关节角的角速度适应值s2:若满足条件lfρ-sfρ>nfρ-mfρ,则臀部关节角的角速度适应值s1=s1+1;若满足条件lfρ-sfρ≤nfρ-mfρ,则颈部关节角的角速度适应值s2=s2+1;(5a5)判断ρ≤σ是否成立,若成立,令ρ=ρ+1,返回(5a4),否则进入(5a6);(5a6)判断f≤m是否成立,若成立,令f=f+1,返回(5a4),否则终止迭代;其中,f为帧序列号,1≤f≤m,m表示帧总数目,ρ表示在第f帧的关节角序号,1≤ρ≤σ,σ为关节角数目。(5b)计算臀部关节角的角加速度适应值s3和颈部关节角的角加速度适应值s4:(5b1)设置帧序列迭代终止条件f=m;(5b2)设置关节角迭代终止条件ρ=σ;(5b3)初始化第f帧的第ρ个关节角的颈部关节角的角速度适应值为s3=0,第f帧的第ρ个关节角的颈部关节角的角速度适应值为s4=0,初始值f=1,ρ=1;(5b4)将臀部关节角的角加速度阈值[pfρ,qfρ]和颈部关节角的角加速度[ufρ,vfρ]进行比较,确定臀部关节角的角加速度适应值s3和颈部关节角的角加速度适应值s4:若满足条件qfρ-pfρ>vfρ-ufρ,则臀部关节角的角加速度适应值s3=s3+1;若满足条件qfρ-pfρ≤vfρ-ufρ,则颈部关节角的角加速度适应值s4=s4+1;(5b5)判断ρ≤σ是否成立,若成立,令ρ=ρ+1,返回(5b4),否则进入(5b6);(5b6)判断f≤m是否成立,若成立,令f=f+1,返回(5b4),否则终止迭代;其中,f为帧序列号,1≤f≤m,m表示帧总数目,ρ表示在第f帧的关节角序号,1≤ρ≤σ,σ为关节角数目。步骤六:根据步骤(5)得到的四个适应值s1、s2、s3和s4,依次确定每一个动作的坐标中心重新归一化,得到动作坐标矩阵。(6a)设置帧序列迭代终止条件f=m;(6b)将臀部关节角的角速度适应值s1、颈部关节角的角速度适应值s2、臀部关节角的角加速度适应值s3和颈部关节角的角加速度适应值s4进行比较,得到每个动作帧序列归一化的坐标中心:若满足条件s1+s3>s2+s4,选择臀部关节点h作为该动作帧序列归一化的坐标中心;若满足条件s1+s3≤s2+s4,选择颈部关节点n作为该动作帧序列归一化的坐标中心;(6c)判断f≤m是否成立,若成立,令f=f+1,返回(6b),否则终止迭代;(6d)按照步骤(6b)得到的每个动作帧序列的归一化的坐标中心,重新对所有动作进行归一化,得到动作坐标矩阵。步骤七:将动作坐标矩阵输入支持向量机svm中,输出动作的识别结果。(7a)将动作坐标矩阵使用dtw方法进行处理执行速率的变化。(7b)为了处理的时间错位和噪声问题,使用傅立叶时间金字塔表示ftp来去除动作坐标矩阵中的高频系数。(7c)将上述动作坐标矩阵使用svm进行分类,输出识别精度值。本发明的效果可以通过以下实验数据进一步说明。仿真1,在utkinect-action数据集上对人体动作帧序列分别用本发明与现有两种方法进行仿真,其中,一种是ho3dj2方法,该方法对所有动作都是以臀部关节点h为坐标中心进行归一化;另一种是combinedfeaturewithrfs,简称crf,该方法对所有动作都是以臀部关节点h为坐标中心进行归一化,三种方法的比较结果如表1。表1utkinect数据集:三种方法的每一个动作类型的精度对比(单位:%)从表1可见,在utkinect-action数据集上进行仿真,本发明的识别精度平均值为95.18%,高于ho3dj方法4.99个百分点,高于crf方法3.48个百分点。仿真2,在msraction3d数据集上对人体动作帧序列分别用本发明与现有4种方法进行仿真,这4种现有方法分别是ho3dj2方法、eigenjoints方法、profilehmm方法和rmrb3d+pgd方法,比较结果如表2。表2msraction3d数据集识别率与其他方法的对比(单位:%)方法as1as2as3综合识别率hoj3d288.085.563.378.9eigenjoints74.576.196.482.3profilehmm84.779.295.286.4rmrb3d+pgd86.6582.993.7387.76本发明91.1878.5494.9488.47表2中as1、as2和as3分别表示msraction3d数据集的三个子数据集。从表2可见,在msraction3d数据集上进行仿真,本发明的综合识别率88.47%,优于其他4种现有方法。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1