一种基于时空分布图的人体行为识别方法与流程

文档序号:15493093发布日期:2018-09-21 21:02阅读:467来源:国知局

本发明属于计算机视觉和图像处理技术领域,具体涉及一种基于时空分布图(stdm)的人体行为识别方法。



背景技术:

人体行为识别在智能视频监控、视频内容检索、人体运动分析、辅助医疗等领域有着广泛的应用,国内外的专家学者对此进行了大量的研究。最初行为识别的方法大多是基于传统的rgb信息,产生了人体关键姿态、剪影、时空特征等方法。但是由于rgb信息易受光照、相机角度、背景变化等因素的影响,使得行为识别仍然面临着挑战。近些年来随着深度传感器的发展,使得深度图像获取技术得到普及。相比于彩色图像,深度图像仅与物体的空间位置有关,能够直接反映物体表面的三维特征,并且不易受光照变化、颜色和纹理的影响。利用深度图像的人体行为识别方法大致包括,将深度图像进行投影生成深度运动图像(depthmotionmap,dmm)的方法、将深度图像映射为点云数据后提取特征的方法。

将一个深度图像序列中的每一帧深度图像投影到三个正交的笛卡尔坐标平面上,可相应地得到前视图mapf,侧视图maps,俯视图mapt。将上述得到的三个投影视图序列的相邻帧做差分运算,然后取绝对值累加,可得到深度运动图像(dmm)。dmm计算简单,但是只包含三个视角下的动作信息,因此不能方便地获得其他视角下的动作信息。动作的空间和时间信息对动作识别有重要的影响,但是dmm捕获的只是运动过程中动作的空间能量分布,缺少动作的时间能量分布。将深度图像映射为点云数据进行人体行为识别的方法,由于得到的点云数据量庞大,给提取点云特征带来极大的困难。中国专利第201610208016.0中公开了一种生成三维的运动历史体对动作进行表示的方法,该方法采用harris3d对运动历史体进行特征点检测,利用三维梯度方向直方图来描述特征点得到特征描述子,然后对描述子进行聚类生成单词包,利用词频分布直方图来分类。这种方法虽然提取了点云的特征,但是算法过于繁琐,计算复杂度高。



技术实现要素:

为了解决上述问题,本发明的目的在于提供一种基于时空分布图的人体行为识别方法。

为了达到上述目的,本发明提供的时空分布图的人体行为识别方法包括按顺序进行的下列步骤:

(1)将每个人体动作样本中已经提取前景的多帧深度图像通过坐标映射得到每帧深度图像的点云,然后将其填充到mhpc中,直到遍历完所有帧的深度图像得到该动作的mhpc,以记录动作发生的空间与时间信息;

(2)将mhpc直接投影到三个正交的笛卡尔坐标平面,分别是xoy平面、yoz平面和xoz平面,生成三个stdm,然后将mhpc沿顺时针和逆时针方向绕x轴、y轴和z轴中的任一轴旋转θ度至少一次并投影到笛卡尔坐标系的xoy平面,每一次旋转后投影生成至少两个stdm;

(3)从上述人体动作样本的所有stdm中提取出hog特征向量,并进行串联而组合成该人体动作样本最终的hog特征向量;

(4)选取所有人体动作样本中的部分样本为训练样本,剩余样本为测试样本,将训练样本的hog特征向量输入到kelm分类器中进行训练,然后将测试样本得到的hog特征向量输入上述已训练好的kelm分类器中进行测试,得到分类结果。

在步骤(1)中,所述的将每个人体动作样本中已经提取前景的多帧深度图像通过坐标映射得到每帧深度图像的点云,然后将其填充到mhpc中,直到遍历完所有帧的深度图像得到该动作的mhpc的方法是:将一个人体动作序列作为一个人体动作样本,每个人体动作样本中包含n帧深度图像,将该人体动作样本中已经提取前景的深度图像从图像坐标系映射到相机坐标系得到各自的点云,运动历史点云是由每帧深度图像得到的点云填充而生成。

在步骤(2)中,所述的将mhpc直接投影到三个正交的笛卡尔坐标平面,分别是xoy平面、yoz平面和xoz平面,生成三个stdm,然后将mhpc沿顺时针和逆时针方向绕x轴、y轴和z轴中的任一轴旋转θ度至少一次并投影到笛卡尔坐标系的xoy平面,每一次旋转后投影生成至少两个stdm的方法是:在生成stdm的过程中需将x,y,z坐标值进行归一化后作为stdm的坐标值;首先将mhpc投影到笛卡尔坐标xoy平面上,根据投影后同一坐标下重叠点的分布情况,生成rgb图像stdm;其r通道是在当前坐标系下z坐标值不同点的个数,g通道是相邻点的z坐标值进行差分运算并取绝对值叠加,b通道是相邻点的帧号进行差分运算并取绝对值叠加;将mhpc投影到yoz平面和xoz平面上生成stdm的过程类似,只需将上述z坐标值相应地变成x坐标值和y坐标值即可,由此依次得到stdmf、stdms、stdmt;然后利用旋转公式将mhpc沿顺时针和逆时针方向绕x轴、y轴和z轴中的任一轴旋转θ度至少一次并投影到笛卡尔坐标系的xoy平面,每一次旋转后投影生成至少两个stdm。

在步骤(3)中,所述的从上述人体动作样本的所有stdm中提取出hog特征向量,并进行串联而组合成该人体动作最终的hog特征向量的方法是:首先将一个stdm分成若干块,每一块分成若干单元,每一单元包含若干像素点,然后按上式计算各像素点的水平方向梯度和垂直方向梯度;之后由像素点的水平方向梯度和垂直方向梯度计算出该像素点的梯度幅值和梯度方向;通过统计每一单元中像素点的梯度幅值和梯度方向分布情况,得到该单元内梯度直方图,将每一块中各单元的梯度直方图归一化,得到该块的梯度直方图,然后将所有块的梯度直方图进行串联而得到该stdm最后的hog特征向量;最后采用特征层融合的方法,将一个mhpc产生的所有stdm的hog特征向量进行串联,组合生成该人体动作的hog特征向量,用来进行分类识别。

在步骤(4)中,所述的选取所有人体动作样本中的部分样本为训练样本,剩余样本为测试样本,将训练样本的hog特征向量输入到kelm分类器中进行训练,然后将测试样本得到的hog特征向量输入上述已训练好的kelm分类器中进行测试,得到分类结果的方法是:根据不同的验证方法,采用留一交叉验证或交叉验证方法确定人体动作样本中训练样本与测试样本的比例;将经过步骤(3)得到的训练样本的hog特征向量输入到kelm分类器中进行训练,然后将经过步骤(3)得到的测试样本的hog特征向量输入到上述已经训练好的kelm分类器中进行分类测试,kelm分类器的输出即为人体动作分类结果。

本发明提供的基于时空分布图的人体行为识别方法首先将深度图像生成运动历史点云,然后将旋转的和未旋转的运动历史点云投影到笛卡尔坐标系平面生成时空分布图,能够获得人体动作不同视角下的信息,增加了对动作角度变化的鲁棒性。另外,时空分布图不仅能够捕获动作的空间能量分布,而且还可捕获动作的时间能量分布以及动作的空间密度分布情况,用时空分布图来表示人体动作要比深度运动图像更加全面,提取的特征也更加有区别力。另外由运动历史点云投影后点的特点生成的时空分布图,在生成时进行坐标归一化,增加了对类内差异的鲁棒性。由运动历史点云投影后生成时空分布图,使得4维的人体形状和动作信息编码到时空分布图上,可以提取更加丰富的特征(如hog特征、lbp特征、颜色特征等),使得提取特征的方法和提取的特征都充满了多样性,解决了利用点云提取特征复杂的问题。因为采用了基于高斯核函数的极限学习机,具有分类精度高,学习速度快的优点。

附图说明

图1为本发明提供的基于时空分布图的人体行为识别方法流程图。

图2为运动历史点云生成框图。

图3为msraction3d数据库中高手挥舞动作样本。

图4为高手挥舞动作生成的mhpc图。

图5为投影后的mhpc效果图。

图6为生成的stdm效果图。

具体实施方式

下面结合附图和具体实施例对本发明提供的基于时空分布图的人体行为识别方法进行详细说明。

如图1所示,本发明提供的基于时空分布图的人体行为识别方法包括按顺序进行的下列步骤:

(1)将每个人体动作样本中已经提取前景的多帧深度图像通过坐标映射得到每帧深度图像的点云,然后将其填充到运动历史点云(mhpc)中,直到遍历完所有帧的深度图像得到该动作的mhpc,以记录动作发生的空间与时间信息;

具体方法如下:

所述的人体动作样本选自msraction3d数据库。msraction3d数据库中的深度图像是用rgbd摄像头进行采集的,分辨率为320×240。整个数据库由20个人体动作类别构成,每个动作类别由10个演员执行2—3次,总共有567个动作样本。

运动历史点云(mhpc)是将一个动作序列压缩成一个包含空间信息与时间信息的点的集合,公式为mhpc={p1,p2,...,pnum},其中num表示mhpc中点的个数。点云中任一点的坐标定义为pj(x,y,z,h),j∈(1,num),其中pj.x,pj.y,pj.z是指在相机坐标系下点的x,y,z坐标值,用来记录动作的发生位置;pj.h指深度图像的帧号,用来记录该点的发生时间。将一个人体动作序列作为一个人体动作样本,每个人体动作样本中包含n帧深度图像,将该人体动作样本中已经提取前景的深度图像从图像坐标系映射到相机坐标系得到各自的点云,运动历史点云是由每帧深度图像得到的点云填充而生成,具体过程如图2所示。具体过程如图2所示。msraction3d数据库中高手挥舞动作样本如图3所示。

(2)将mhpc直接投影到三个正交的笛卡尔坐标平面,分别是xoy平面、yoz平面和xoz平面,生成三个stdm,然后将mhpc沿顺时针和逆时针方向绕x轴、y轴和z轴中的任一轴旋转θ度至少一次并投影到笛卡尔坐标系的xoy平面,每一次旋转后投影生成至少两个stdm;

具体方法如下:

mhpc的坐标系方向如图4所示,以屏幕右方为x轴正方向,屏幕上方为y轴正方向,垂直屏幕向外为z轴正方向。

将mhpc直接投影到三个正交的笛卡尔坐标平面,分别是xoy平面、yoz平面、xoz平面,依次记为stdmf、stdms、stdmt。

然后利用下面的旋转公式可将mhpc分别沿顺时针和逆时针方向绕x轴、y轴和z轴旋转θ度至少一次并投影到笛卡尔坐标系的xoy平面,每一次旋转投影后分别生成至少两个stdmθ;本发明中只绕y轴旋转,并且θ选择±25°,±45°,因此mhpc经过旋转投影到xoz平面后共生成四个stdm,记为stdmθ,θ∈(±25°,±45°)。此操作相当于是将从θ角度下观察的人体动作投影到xoy平面上,这样可以补充偏离摄像头θ视角下的动作信息。在xoz平面投影后的点云效果如图5所示,其中将mhpc直接投影到三个正交的笛卡尔坐标平面的效果图如图5中的(a)-(c)所示;将mhpc绕y轴左右旋转45度,然后投影到xoz平面上的效果图如图5中的(d)、(e)所示。

mhpc是一个三维的立体,利用旋转公式可以将其旋转任意角度。根据mhpc的坐标系,利用下式将mhpc绕x轴旋转θ度:

利用下式将mhpc绕y轴旋转θ度:

利用下式将mhpc绕z轴旋转θ度:

通过旋转可以得到不同视角下的mhpc,将mhpc绕x轴旋转θ度,可以补充上下偏离摄像头θ视角下的运动信息;将mhpc绕y轴旋转θ度,可以补充左右偏离摄像头θ视角下的动作信息;同理也可以将mhpc绕z轴旋转一定角度,补充的是航偏角θ下的运动信息,由此获得不同视角下整个人体动作的状态。至于旋转轴和旋转角度θ的确定,要根据实际情况和实验确定。本发明中只绕y轴旋转,并且θ选择±25°,±45°。

由于投影之后的点云在同一坐标下有好多重叠的点,这些重叠的点可能来自于同一帧深度图像,那么这些点的帧号p.h是相同的。这些重叠的点也可能来自于不同帧的深度图像,那么这些点的帧号p.h是不同的。利用这些重叠的点的分布情况我们生成stdm。stdm定义为一个三通道的彩色图像,不同的通道记录动作样本的时间或空间能量信息。这些时间与空间能量信息在stdm上表现为不同的颜色与形状和纹理特征,可以用来表征动作类别。

下面以mhpc投影到xoy平面上生成的stdm为例进行说明,stdm的r通道是在当前坐标系下z坐标值不同的点的个数,反映了动作的空间密度分布情况;g通道是相邻点的z坐标值进行做差运算并取绝对值叠加,捕获的是动作的绝对空间能量分布;而b通道是相邻点的帧号p.h进行做差运算并取绝对值叠加,捕获的是动作的时间能量空间分布。假设在由投影到xoy平面生成的stdm图像坐标系下有m个重叠的点,那么这个点的定义公式如下:

mhpc投影到yoz平面和xoz平面生成stdm的定义与投影到xoy平面生成stdm的定义类似,只需将定义中的z坐标值相应地变成x坐标值和y坐标值即可。由于映射到相机坐标系中点的x,y,z坐标值属于实数,并且变化范围较小,不能直接将其作为stdm的坐标,所以将其进行归一化为固定值后作为stdm的坐标,这样能够极大地减小类内差异。在本发明中,将所有动作样本的y坐标值都归一化到0-1023,将x,z坐标值都归一化到0-511。旋转后的mhpc反映的是角度变化后的动作信息,所以旋转角度后生成的stdm包含不同视角下的动作信息,本发明中未经过旋转的mhpc生成3个stdm,mhpc绕y轴左右旋转θ度各两次,在xoz平面生成4个stdm,由上述7个stdm来表示1个mhpc。最后生成的stdmf,s,θ尺寸为512×1024,stdmt尺寸为512×512,在后续提取特征时将尺寸分别调整到64×128和64×64大小,生成的分别与图5(a)-(e)对应的stdm效果图如图6(a)-(e)所示。

由此可见,stdm增加了两个通道用来记录投影后同一坐标系下重叠点的不同特性,是对深度图像信息的补充。stdm不仅捕获了人体运动的空间能量分布,而且还捕获了人体运动的时间能量分布,并且让时间信息与空间信息在同一张图像上展示出来,表现出丰富的颜色信息和纹理信息,可以更加全面地表征人体动作的运动信息。

(3)从上述动作样本的所有stdm中提取出hog特征向量,并进行串联而组合成该人体动作样本最终的hog特征向量;

梯度方向直方图(histogramoforientedgradient,hog)是一种用于人体检测的特征描述子,后来被广泛应用于图像处理和模式识别中。hog特征提取采用将图像分块分单元的方法,既可以描述图像的局部形状信息,也可以表征局部像素点之间的关系。设stdm中像素点(x,y)的梯度计算过程为:

gx(x,y)=h(x+1,y)-h(x-1,y)

gy(x,y)=h(x,y+1)-h(x,y-1)

式中,gx(x,y),gy(x,y),h(x,y)分别表示stdm中像素点(x,y)处的水平方向梯度、垂直方向梯度和像素值。像素点(x,y)处的梯度幅值g(x,y)和梯度方向α(x,y)为:

在本发明中,经过步骤二的操作每个mhpc可以得到7个stdm,即stdmf,s,t,±25°,±45°,为了利用这些stdm来表征人体动作类别,我们从每一个stdm中提取出hog特征向量,具体方法是首先将一个stdm分成若干块,每一块分成若干单元,第一单元包含若干像素点,然后按上式计算各像素点(x,y)的水平方向梯度和垂直方向梯度。然后由像素点的水平方向梯度和垂直方向梯度计算出该像素点的梯度幅值和梯度方向。通过统计每一单元中像素点的梯度幅值和梯度方向分布情况,得到该单元内梯度直方图,将每一块中各单元的梯度直方图归一化,得到该块的梯度直方图,然后将所有块的梯度直方图进行串联而得到该stdm最后的hog特征向量;最后采用特征层融合的方法,将一个mhpc产生的所有stdm的hog特征向量进行串联,组合生成该人体动作的hog特征向量,用来进行分类识别。

在本发明中,从stdm中提取hog特征时,将单元大小设置为8×8个像素点大小,块的大小设置为4×4个单元,所以stdmf,s,θ被划分为2×4个互不重叠的块,stdmt被划分为2×2个互不重叠的块,因此得到的hog特征向量为1536维或768维。最后,将每个人体动作的7个stdm(即dmmf,s,t,±25°,±45°时)的hog特征向量串联起来生成该人体动作的hog特征向量。

(4)选取所有人体动作样本中的部分样本为训练样本,剩余样本为测试样本,将训练样本的hog特征向量输入到kelm分类器中进行训练,然后将测试样本得到的hog特征向量输入上述已训练好的kelm分类器中进行测试,kelm分类器的输出即为人体动作分类结果。

极限学习机(extremelearningmachine,elm)是在单隐含层前馈神经网络(slfns)的基础上发展起来的一种高效学习算法。本发明使用基于高斯核函数(rbf)的elm,即kelm进行分类。与elm相比,kelm不仅具有更好的性能,而且更加稳定。

根据不同的验证方法,采用留一交叉验证或交叉验证方法确定人体动作样本中训练样本与测试样本的比例;将经过步骤(3)得到的训练样本的hog特征向量输入到kelm分类器中进行训练,然后将经过步骤(3)得到的测试样本的hog特征向量输入到上述已经训练好的kelm分类器中进行分类测试,kelm分类器的输出即为人体动作分类结果。

假设人体动作样本共有c个类别的动作,每个类别的标签定义为yk∈{0,1}(1≤k≤c),这样该人体动作样本的类别就可以表示为y=[y1,…,yk,…yc],对于给定的训练样本其中n是训练样本个数,xi∈rm,yi∈rc。kelm分类器的输出函数为fl(x),它能估计出输出类别标签的准确率,取最大的准确率对应的类别标签为最终的分类结果。

在本发明中,采用交叉验证的方法将msraction3d数据库中的1、3、5、7、9号演员的人体动作样本作为训练样本,剩下的2、4、6、8、10演员的人体动作样本作为测试样本。采用kelm分类器进行分类,达到了94.45%的识别效果。本发明方法与一些现有方法的识别结果比较见表1。

表1.本发明方法与现有方法的识别结果比较(%)

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1