一种新型基于Kinect的目标行人轨迹跟踪方法与流程

文档序号:11408123阅读:385来源:国知局
一种新型基于Kinect的目标行人轨迹跟踪方法与流程

本发明涉及人体识别智能监控系统设计,具体说来先建立人体步态数据库,再开发分类识别系统,进而查询到目标行人对其进行轨迹跟踪。



背景技术:

通过对目标行人进行轨迹跟踪不但可以帮助安保部门从大量的监控视频当中识别出已经出现过的可疑人员,而且可以确定该人员的行动范围,为安保部门侦破案件提供线索。

然而现如今对于目标行人的轨迹跟踪大多是采用传统的直接对于视频的跟踪处理算法,大大增加了视频处理的复杂度,在实际应用当中往往不能及时地对目标行人进行轨迹跟踪。



技术实现要素:

本发明的目的是开发一种步态识别分类系统,旨在帮助安保部门从大量的监控视频当中识别出已经出现过的可疑人员,对目标行人进行实时地轨迹跟踪,进而确定该人员的行动范围,为安保部门侦破案件提供线索。

本发明的目的是按以下方式实现的,首先建立步态数据库;然后开发步态识别分类系统;最后对目标行人进行轨迹跟踪。具体算法如下:

首先,建立步态数据库:开启sdk的骨骼跟踪功能,编写获取步态特征的wpf程序,获得步态特征的特征向量数据,输出这些数据到txt文本文档中,并且输出同一时间经过骨骼跟踪标定的彩色图像,以及同一时间的彩色视频流。

然后,开发步态识别分类系统:通过c++来开发分类识别系统,利用改进的最近临分类算法实现系统分类。

最后,对目标行人进行轨迹跟踪:根据识别出的同一时间的目标步态数据找到同一时间目标行人所在的视频段来实现。

本发明的优异效果如下:使用kinect进行步态识别可以利用其骨骼跟踪功能实时获得20个骨骼点的三维坐标,获得人体的步态特征向量进而建立步态数据库,避免了传统图像处理的繁琐,降低了特征提取的难度,而且提取的步态特征向量数据非常精确;采用最近邻分类算法的步态识别系统不但具有非常高的识别率,而且计算简单,计算效率比较高;根据识别出的同一时间的目标步态数据找到同一时间目标行人所在的视频段来实现目标行人轨迹跟踪,与传统的直接对于视频的跟踪处理算法相比,大大降低了计算量和实现的复杂度。

附图说明

图1目标行人轨迹跟踪流程图

图2kinect硬件结构分布图

图3获取步态数据库wpf程序运行界面

图4骨骼节点标定的目标行人的彩色图片

图5目标行人的标记过程

具体实施方式

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

首先,建立步态数据库:开启sdk的骨骼跟踪功能,并且编写获取步态特征的wpf程序,获得步态特征的特征向量数据,输出这些数据到txt文本文档中,并且输出同一时间经过骨骼跟踪标定的彩色图像,以及同一时间的彩色视频流。

1)编写wpf程序获得步态特征向量数据

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

利用空间向量法来计算关节之间的角度以及关节部位长度的步骤分为三步,第一步是先求得kinect坐标系中各个关节点的三维坐标点,第二步利用两个相邻骨骼关节点坐标用向量来表示骨骼关节部位,第三步是通过余弦公式来计算两个关节部位之间的夹角,利用向量模值求得关节部位的长度。

利用空间向量法来计算身体某个部位的质心与质心之间的距离的步骤为:第一步是先求得kinect坐标系中各个关节点的三维坐标点,第二步求得质心在kinect坐标系中的坐标值,第三步用向量来连接两个质心,利用向量模值求得两个质心之间的距离。

获得步态特征向量数据步骤分为四步:第一步在mainwindows窗体上增加一系列label控件,命名为相应的数据变量表示名称,例如lspine0、lspine1、lspine2分别表示脊柱部位关节点的x,y,z空间坐标值;第二步注册骨骼跟踪事件,按照上述计算步态特征值的方法获得相应的步态特征向量,第三步在mainwindows窗体上增加一个button控件按钮;第四步注册button_click事件,使用streamwriter类将通过数据处理部分计算得到的最近的60帧内的步态特征向量值以double类型的形式保存到文本文档中,并且通过datetime类以计算机的当前时间格式命名文档名,进而将不同时刻采集到的数据保存在不同的文档中,以此来区分不同序列的数据。

2)编写wpf程序获得彩色视频流

第一步在mainwindows窗体上增加一个image控件,命名为imagecamera;第二步注册彩色视频流事件,一般通过writeablebitmap方法将将彩色视频流图像读取出来,并且将图片数据与imagecamera控件绑定,同时利用opencv计算机视觉库进行视频的录制,同样也通过datetime类以计算机的当前时间格式命名视频文件,进而将不同时刻采集到的视频流数据保存在不同的avi文件中,以此来区分不同序列的视频流数据。

3)编写wpf程序获得经过骨骼跟踪标定的彩色图像

获得经过骨骼跟踪标定的彩色图像步骤分为三步:第一步在mainwindows窗体上增加一个画布canvas控件,命名为canas;第二步注册骨骼跟踪事件,对骨骼跟踪事件进行处理、将骨骼关节点坐标映射到彩色图像坐标中去,将canvas控件叠加到image控件中去进而在彩色视频流图像中显示出骨骼跟踪信息,视频中用红色圆点标定kinect跟踪到的骨骼关节点,总共用20个红色圆点标定的位置来代表20个人体骨骼关节点的位置。第三步在前面获得步态特征向量数据部分注册的button_click事件的基础上继续编写触发事件,利用filestream类将视频流数据以“.png”格式保存到图片中,并且也通过datetime类以计算机的当前时间格式命名图片名,进而将不同时刻采集到的视频流数据保存在不同的png图片中,以此来区分不同序列的图片数据。

然后,开发步态识别分类系统:通过c++来开发分类识别系统,利用改进的最近临分类算法实现系统分类。

考虑到待分类数据的特点:步态特征向量数据库中总共有n个特征类别,每个类别包含m个样本,每一个样本向量的维数为10,每个特征分量值的大小的取值范围均为(0,2)。现在定义以下改进的最近邻公式用于计算待检测样本与数据库中数据之间的距离。

其中xi表示待检测样本数据的第i维特征值,μki表示数据库中的第k(k=1,2,…,n)类数据的m个样本的第i维特征值的平均值。

分类步骤:

第一步,通过公式(2)逐一求出数据库中第k类数据的5个样本的第i维特征值的平均值μki。

第二步,通过公式(1)逐一求出待检测样本数据的第i维特征值xi与μki之间的差的平方,再对其求和开平方,进而逐一得到待检测样本与数据库中数据之间的n个距离l(k)。

第三步,对n个距离l(k)进行排序处理,找出最小的距离值,则将待检测样本数据归类到该最小距离值所属的类别中。

最后,对目标行人进行轨迹跟踪:根据识别出的同一时间的目标步态数据找到同一时间目标行人所在的视频段来实现。

研究表明:虽然kinect传感器可以精确捕获到人体骨骼流数据的视场范围是有限的,但是足以利用有效的分类数据通过步态识别系统找到目标向量数据。此外通过kinect可以采集到彩色视频流的范围是很广的。因此可以利用kinect传感器的这一优势来实现目标行人的轨迹跟踪。

行人面向kinect走来,当行人未走到骨骼追踪的范围内时,行人不会被标记,但是可以采集到彩色视频图像。

因此目标行人轨迹跟踪的步骤:

第一步,在小范围内通过分类识别系统找出待检测行人的目标步态数据;

第二步,根据该步态数据采集的时刻t找到t时刻的目标彩色图片;

第三步,根据目标彩色图片存储的时刻t找到t时刻的目标彩色视频流;

第四步,在包含有目标行人的整个彩色视频流中查询到大范围内的目标行人,进而确定目标行人的行动范围。

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

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