一种新型基于Kinect的步态识别系统的制作方法

文档序号:11458860阅读:1192来源:国知局
一种新型基于Kinect的步态识别系统的制造方法与工艺

本发明涉及人体识别智能监控系统设计,具体说来先建立步态特征向量提取系统,利用wpf程序应用界面通过kinect采集步态特征向量,再通过asp.net来开发分类识别系统。



背景技术:

随着社会和经济的飞速发展,步态识别技术被广泛应用于安全防范领域如银行、商场等视频监控区域,可为安保部门提供侦破盗窃案件的线索。



技术实现要素:

本发明的目的是开发一种步态识别分类系统,旨在自动识别出现在银行、商场等视频监控区域的人员。

本发明的目的是按以下方式实现的,首先提取步态特征向量;然后对步态特征向量进行筛选,找出适合用于分类识别的步态特征向量;最后设计步态识别分类系统。具体算法如下:

首先,提取步态特征向量:利用wpf程序应用界面通过kinect采集人体骨骼点的三维坐标,使用空间向量法来计算获得步态特征向量。

然后,筛选步态特征向量:选取每个步态序列中的每一个步态特征分量的最大值来作为分类识别的特征向量的分量。

最后,设计步态识别分类系统:通过asp.net来开发分类识别系统,利用bp神经网络分类算法实现系统分类。

本发明的优异效果如下:选择使用kinect传感器作为步态数据采集设备,提取人体骨骼点的三维坐标,进而使用空间向量法来计算获得步态特征向量,不但可以避免复杂的人体模型提取过程,对衣服、光照、背景环境也不具有敏感性,而且提取的步态特征向量数据非常精确;选取每个步态序列中的每一个步态特征分量的最大值来作为分类识别的特征向量的分量,这样不但可以降低特征向量数据样本的冗余度,而且避免了步态周期的测量;采用bp神经网络分类算法的步态识别系统具有%98以上的识别率。

附图说明

图1步态识别分类系统整体流程图

图2kinect坐标系

图3骨骼节点在kinect坐标系中的向量表示

图4提取步态特征的程序运行界面

图5两层神经网络的简化表示

图6bp网络算法的流程图

图7目标查询显示界面

具体实施方式

参照说明书附图对本发明作以下详细地说明。

首先,提取步态特征向量:利用wpf程序应用界面通过kinect采集人体骨骼点的三维坐标来获得步态特征向量。

步态特征向量包括左右胳膊的长度、左右腿的长度、身高、动态步长、左大臂和脊柱之间夹角、右大臂和脊柱之间夹角、左小臂和脊柱之间夹角、右小臂和脊柱之间夹角、左大臂和左小臂之间的夹角、右大臂和右小臂之间的夹角、左大腿和左小腿之间的夹角、右大腿和右小腿之间的夹角、上身部位质心分别到左右胳膊质心的距离、上身部位质心分别到左右腿部质心的距离。利用空间向量法计算步态特征向量的具体方法如下:

胳膊由大臂和小臂组成,因此胳膊长度的计算公式如下所示:

darm=d1+d2公式(1)

d1、d2分别表示大臂的长度与小臂的长度,d1可以通过肩关节(shoulder)与肘关节(elbow)组成的向量求得,d2可以通过肘关节(elbow)与腕关节(wrist)组成的向量求得。其中各个关节点之间的距离d可以利用下式计算得到:

xi、yi、zi分别表示前一个骨骼关节点的三维坐标,xj、yj、zj分别表示后一个骨骼关节点的三维坐标。

腿部由大腿和小腿组成,因此腿部长度的计算公式如下所示:

dleg=d1+d2公式(3)

d1表示大腿的长度,d2表示小腿的长度,d1可以通过臀关节(hip)与膝关节(knee)组成的向量计算得到,d2可以通过膝关节(knee)与踝关节(ankle)组成的向量计算得到,其中各个关节点之间的距离d可以利用公式(2)计算得到。

由于人体在行走的过程中,穿款式不同的鞋子对于身高也是有一定的影响的,在计算身高的时候要将踝关节点(ankle)与脚关节点(foot)之间的距离除去。身高的近似值可以通过以下公式求得:

dheight=(d1+d2)/2公式(4)

d1指的是头部关节点(head)和左脚踝关节点(ankleleft)之间的距离,d2指的是头部关节点(head)和右脚踝关节点(ankleright)之间的距离。

步长dfoot通过左踝关节点(ankleleft)和右踝关节点(ankleright)求得,连接两点之间向量的模值即为步长,可以通过公式(2)求得。

左大臂、右大臂、左小臂、右小臂分别和脊柱之间的夹角θ1、θ2、θ3、θ4可以通过公式(5)求得。

其中左右大臂向量通过肩关节点(shoulder)和肘关节点(elbow)得到,左右小臂向量通过肘关节点(elbow)和腕关节点(wrist)得到,脊柱向量可以通过肩部中央点(shouldercenter)和脊柱(spine)得到。

其中θ为向量之间的夹角,a点的坐标值为(ax,ay,az),b点的坐标值为(bx,by,bz)。

左大臂和左小臂之间的夹角θ5、右大臂和右小臂之间的夹角θ6、左大腿和左小腿之间的夹角θ7、右大腿和右小腿之间的夹角θ8也可以通过公式(5)求得。

其中左右大臂向量通过肩关节点(shoulder)和肘关节点(elbow)得到,左右小臂向量通过肘关节点(elbow)和腕关节点(wrist)得到,左右大腿向量通过臀关节点(hip)和膝关节点(knee)得到,左右小腿向量通过膝关节点(knee)和踝关节点(ankle)得到。

上身部位质心cupper到左右胳膊质心的距离dc1、dc2可以通过公式(9)求得。

上身部位质心cupper到左右腿部质心cleg的距离dc3、dc4可以也可以按照公式(9)的形式求得。

其中身体上部由左肩膀(shoulderleft)、右肩膀(shoulderright)、双肩中央(shouldercenter)、左臀部(hipleft)、右臀部(hipright)围成,因此身体上部质心的三维坐标值可以通过公式(10)求得;

xupperc、yupperc、zupperc分别表示身体上部质心cupper的三维坐标,xi、yi、zi依次表示左肩膀、右肩膀、双肩中央、左臀部、右臀部在kinect坐标系中的三维坐标的x值、y值、z值,其中i=1…5。

左右胳膊均由肩部关节shoulder、肘关节elbow、腕关节wrist围成,因此左右胳膊质心的三维坐标值可以通过公式(11)求得;

其中xarmc、yarmc、zarmc分别表示胳膊质心carm的三维坐标,xj、yj、zj依次表示肩部关节、肘关节、腕部关节三维坐标的x值、y值、z值,其中j=1,2,3。

左右腿部均由臀部关节hip、膝关节knee、踝关节ankle围成,左右腿部质心的三维坐标值的计算公式可以按照公式(11)的形式来定义求得。

如此得到的步态特征向量为18维,这样得出的特征向量维数比较高,考虑到系统的高效性和准确性,有必要对特征向量进行降维。由于人体本身是左右对称的,因此可以用某些特征的左右平均值来表示相应特征,例如胳膊长度可以用左右胳膊长度的平均值来表示,大臂和小臂之间的夹角可以用左右胳膊夹角的平均值表示。因此最终的步态特征集合为10维,包括胳膊的长度、腿部的长度、身高、左右两脚之间的步幅跨距、大臂和脊柱之间的夹角、小臂和脊柱之间的夹角、大臂和小臂的夹角、大腿和小腿之间的夹角、上身部位质心到胳膊质心的距离、上身部位质心到腿部质心的距离。

然后,筛选步态特征向量:选取每个步态序列中的每一个步态特征分量的最大值来作为分类识别的特征向量的分量。

人体在行走的过程中,每个步态特征分量的最大值是唯一的,可以作为识别人体目标的特征分类向量。通过wpf程序可以从每个步态序列帧当中筛选出所有特征分量相应的最大值来做为该特征向量的分量值。例如对于每个人体采集5个视频序列,其中身高特征分量有5个值,即每一个视频序列采集出一个身高特征分量用于分类识别。这样不但可以降低特征向量数据的冗余度,而且避免了步态周期的测量。

人体在kinect之前行走的范围大约为2米,实验确定人体走完这段距离用时平均约2秒,并且序列帧频率为30帧/秒,则在这段距离内可以采集到的步态序列大约为60帧。因此在程序中设置每个步态序列为60帧,在其中找出每个步态特征分量的最大值作为分类识别的特征向量集合。用fclasify来表示分类向量:

fclasify={dmaxarm,dmaxleg,dmaxheight,dmaxfoot,θmax1,θmax2,θmax3,θmax4,dmaxc1,dmaxc2}公式(12)

其中在每个步态序列中,dmaxarm表示手臂的最大长度,dmaxleg表示腿部的最大长度,dmaxheight表示身高的最大值,dmaxfoot表示最大步长,θmax1表示大臂和脊柱之间的最大夹角,θmax2表示小臂和脊柱之间的最大夹角,θmax3表示大臂关节部位和小臂关节部位之间的最大夹角,θmax4表示大腿和小腿之间的最大夹角,dmaxc1表示上身部位质心到胳膊质心的最大距离,dmaxc2表示上身部位质心到腿部质心的最大距离。

最后,设计步态识别分类系统:通过asp.net来开发分类识别系统,利用bp神经网络分类算法实现系统分类。

系统主要是通过sqlserver2008数据库连接visualstudio2010在windows10操作系统下,搭建asp.net开发环境,利用c#语言来开发分类系统。

bp神经网络分类算法的具体实现步骤如下:

第一步:在神经网络的结构确定之后,设置神经网络的第k次迭代计算的权值和偏置值为wm(k),bm(k);

第二步:在神经网络接收到输入向量以后,根据确定的权值和偏置值计算出神经网络的实际输出向量a:

a0(k)=p公式(13)

am+1(k)=fm+1(wm+1(k)am(k)+bm+1(k)),m=0,1,…,m-1公式(14)

a(k)=am(k)公式(15)

其中a0表示神经网络从外部环境获取的输入向量p,m表示神经网络的层数,am表示第m层神经网络的实际输出,am代表整个神经网络的最终实际输出。

第三步:通过目标输出向量和实际输出向量计算得到均方误差值,判断均方误差值是否达到预先设定的水平,如果达到则停止计算,如果没有达到,继续进行以下计算:

其中为近似均方误差,t是目标输出向量,a是实际输出向量。

第四步:根据神经网络的目标输出向量和实际输出向量计算得到神经网络的敏感性sm

第五步:将计算得到的敏感性值代入近似最速下降法公式,得到第k+1次迭代的权值和偏置值:

wm(k+1)=wm(k)-αsm(k)(am-1(k))t公式(20)

bm(k+1)=bm(k)-αsm(k)公式(21)

其中α为学习速率。

第六步:返回第一步进行计算。

最后说明的是,以上所述仅为本发明的较佳实例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改,等同替换和改进等,均应包含在本发明的保护范围之内。

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