基于运动历史点云生成的深度运动图的人体行为识别方法与流程

文档序号:15518684发布日期:2018-09-25 18:54阅读:432来源:国知局

本发明属于计算机视觉和图像处理技术领域,具体涉及一种基于运动历史点云(mhpc)生成的深度运动图(dmm)的人体行为识别方法。



背景技术:

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

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



技术实现要素:

为了解决上述问题,本发明的目的在于提供一种基于运动历史点云生成的深度运动图的人体行为识别方法。

为了达到上述目的,本发明提供的基于运动历史点云生成的深度运动图的人体行为识别方法包括按顺序进行的下列步骤:

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

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

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

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

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

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

将mhpc投影到笛卡尔坐标平面上,根据投影后同一坐标下重叠点的分布情况,生成灰度图像dmm;将x,y,z坐标值进行归一化后作为生成dmm的坐标值;若投影到xoy平面、yoz平面、xoz平面的运动历史点云中,同一坐标下有m个重叠的点,相应地将其相邻两点的z坐标值、x坐标值、y坐标值进行差分运算并取绝对值累加,作为dmm的像素值;计算公式如下,其中i为当前坐标下第几个重叠的点:

利用旋转公式将mhpc沿顺时针和逆时针方向绕x轴、y轴和z轴中的任一轴旋转θ度至少一次,然后投影到笛卡尔坐标系的xoy平面,生成dmmθ,每一次旋转后投影生成至少两个dmm。

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

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

本发明提供的基于运动历史点云生成的深度运动图的人体行为识别方法首先将深度图像生成运动历史点云,然后将旋转的和未旋转的运动历史点云投影到笛卡尔坐标系平面生成深度运动图,增加了每个人体动作的深度运动图数量,获得了更多视角下的运动信息,增加了对人体动作角度变化的鲁棒性。将运动历史点云进行投影生成深度运动图,使得4维的人体形状和动作信息编码到深度运动图上,能够更加方便地提取特征来表征人体动作类别,极大地降低了计算复杂度。另外由运动历史点云投影后点的特点生成的深度运动图,在生成时进行坐标归一化,增加了对人体动作类内差异的鲁棒性。

附图说明

图1为本发明提供的基于运动历史点云生成的深度运动图的人体行为识别方法流程图。

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

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

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

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

图6为生成的dmm效果图。

具体实施方式

下面结合附图和具体实施例对本发明提供的基于运动历史点云生成的深度运动图的人体行为识别方法进行详细说明。

如图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平面,生成三个dmm,然后将mhpc沿顺时针和逆时针方向绕x轴、y轴和z轴中的任一轴旋转θ度至少一次并投影到笛卡尔坐标系的xoy平面,每一次旋转后投影生成至少两个dmm;

具体方法如下:

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

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

然后利用下面的旋转公式可将mhpc分别沿顺时针和逆时针方向绕x轴、y轴和z轴旋转θ度至少一次并投影到笛卡尔坐标系的xoy平面,每一次旋转投影后分别生成至少两个dmmθ;本发明中只绕y轴旋转,并且θ选择±25°,±45°,因此mhpc经过旋转投影到xoz平面后共生成四个dmm,记为dmmθ,θ∈(±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°。

深度图像能够提供人体动作的形状和运动信息,将一个深度图像视频序列中的每一帧深度图像投影到三个正交的笛卡尔坐标平面上,即xoy平面、yoz平面、xoz平面,相应地得到前视图mapf,侧视图maps,俯视图mapt,这三个投影视图的像素值分别为深度图像中点的z,x,y坐标值。将上述得到的三个投影视图序列的相邻帧进行差分运算,然后取绝对值累加,得到深度运动图(dmm),其计算公式为:

其中,i为帧的索引,begin表示起始帧,end表示终止帧,mapvi表示第i帧在视角v下的投影视图,v∈{f,s,t}。dmm能够捕获运动的能量,表现为不同的外形与形状,因此能够很好地表示人体动作类别。本发明不再是从最初的深度图像生成dmm,而是将深度图像生成的mhpc进行投影获得dmm。

由于投影之后的点云在同一坐标下有好多重叠的点,这些重叠的点可能来自于同一帧深度图像,那么这些点的帧号p.h是相同的。这些重叠的点也可能来自于不同帧的深度图像,那么这些点的帧号p.h是不同的。利用这些重叠的点的分布情况我们生成dmm。在投影到xoy平面、yoz平面、xoz平面的运动历史点云中,同一坐标系下有m个重叠的点(投影的平面不同,m值不一定相同),相应地将其相邻两点的z坐标值、x坐标值、y坐标值进行差分运算,然后取绝对值累加作为dmm的像素值。计算公式如下,其中i为第几个重叠的点:

将没有旋转的mhpc投影到xoy平面、yoz平面、xoz平面,然后根据投影后点的分布特点生成dmm,依次记为dmmf、dmms、dmmt。同理将旋转θ度的mhpc投影到xoy平面生成的dmm记为dmmθ。由于映射到相机坐标系中点的x,y,z坐标值属于实数,并且变化范围较小,不能直接将其作为dmm图像的坐标,所以将其进行归一化为固定值作为dmm的坐标,这样能够极大地减小类内差异。

将上述投影后的mhpc生成dmm,捕获了人体动作的空间能量分布,产生了不同的形状与外形,能够用此来表征人体动作类别。相比与之前dmm生成的方法,由历史运动点云生成的dmm不仅增加了不同视角下的运动信息,而且在生成dmm之前进行归一化操作,能够减少由人体形态和动作幅度多样性产生的类内差异。增加由旋转后的mhpc投影生成的dmm的数量,会增加不同视角下的动作信息,因此dmm的数量对动作描述的充分性有影响,需经过实验来确定旋转的角度以此来确定生成的dmm的数量。

在本发明中,将所有动作样本的y坐标值都归一化到0-1023,将x,z坐标值都归一化到0-511。旋转后的mhpc反映的是角度变化后的动作信息,所以旋转角度后生成的dmm包含不同视角下的动作信息,本发明中未经过旋转的mhpc生成3个dmm,mhpc绕y轴左右旋转θ度各两次,在xoz平面生成4个dmm,由上述7个dmm来表示1个mhpc。最后我们生成的dmmf,s,θ尺寸为512×1024,dmmt尺寸为512×512,在后续提取特征时将尺寸分别调整到64×128和64×64大小,生成的分别与图5(a)-(e)对应的dmm效果图如图6(a)-(e)所示。

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

梯度方向直方图(histogramoforientedgradient,hog)是一种用于人体检测的特征描述子,后来被广泛应用于图像处理和模式识别中。hog特征向量提取采用将图像分块分单元的方法,既可以描述图像的局部形状信息,也可以表征局部像素点之间的关系。dmm中像素点(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)分别表示dmm中像素点(x,y)处的水平方向梯度、垂直方向梯度和像素值。像素点(x,y)处的梯度幅值g(x,y)和梯度方向α(x,y)为:

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

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

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

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

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

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

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