一种基于Kinect的视角不变性步态识别方法转让专利

申请号 : CN201610635061.4

文献号 : CN106295544B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙建德王宇飞李静

申请人 : 山东师范大学

摘要 :

本发明提出了一种基于Kinect的视角不变性步态识别方法。利用Kinect可以实时准确估计人体关节空间位置信息的优势,将其作为步态数据采集设备,采集行走过程中每帧的关节空间坐标信息。选取了8段关节间的距离作为静态特征,定义并对比了上下肢体关节摆动的角度,选择出识别效果最好的一组角度变化作为动态特征。将两种特征分别用欧式距离与DTW算法与模板进行匹配,并使其在匹配层进行特征融合后利用最近邻分类器完成分类识别。本方法算法简单,具有较强的实时性,且具有视角不变的特性。

权利要求 :

1.一种基于Kinect的视角不变性步态识别方法,其特征在于包括以下步骤:(1)骨骼关节三维空间位置坐标的获取,即利用Kinect提供的SDK自动捕获进入视野范围内的人体,并将行走过程中每帧的关节位置信息的三维空间坐标(x,y,z)保存在列表数据结构中;

(2)静态特征的选择与获取,具体步骤包括:

a.设置人体距离Kinect的阈值,获取具有准确稳定关节信息所在的置信帧;

b.定义8组关节之间的距离作为静态特征,根据置信帧中每帧关节的三维坐标信息,利用欧式距离计算各段距离,并将这8段距离组成一个8维的静态特征向量,其中所述8组关节之间的距离依次是:右大腿、右小腿、右大臂、右小臂、脊柱、肩宽、颈长、头纵距;

c.根据置信帧的帧数,对以上得到的静态特征向量进行统计平均运算,将结果作为最终的静态特征向量;

(3)动态特征的选择与获取,具体步骤包括:

a.定义共8个关节的摆动角度作为动态角度特征,并计算其在每帧的角度值,得到8个动态角度序列,其中所述8个关节的摆动角度分别为:左右大臂、左右小臂、左右大腿、左右小腿在某一平面的摆动角度;

b.将得到的8个角度序列按照同名关节分组,将每组关节的左右角度序列数据进行差分运算,再对差分序列进行零点检测,将零点对应与左右角度序列中的帧标记出来,并将这些帧当作周期分割帧,进行周期提取,最终得到包含一个周期信息的四组动态角度序列;

c.将得到的四组动态角度序列分别作为动态特征,单独测试识别效果,最终确定识别率最高的那一组动态角度序列作为最终的动态特征向量;

(4)特征的匹配与融合,具体步骤包括:

a.利用欧式距离计算静态特征向量样本与模板之间的距离,并以此距离作为匹配分值;

b.利用动态时间规整DTW算法计算动态特征向量样本与模板之间的距离,并以此距离作为匹配分值;

c.将a和b步骤中得到的两种特征的匹配分值分别归一化之后,按照线性加权原则进行特征融合,其中权重与每种特征单独的正确识别率正相关;

(5)分类识别,即根据特征融合之后的匹配分值作为最终样本与模板之间的相似性度量标准,采用最近邻分类准则进行分类识别。

说明书 :

一种基于Kinect的视角不变性步态识别方法

技术领域

[0001] 本发明利用Kinect采集到的深度信息和骨骼信息进行人体步态识别,属于计算机视觉与生物特征识别领域。

背景技术

[0002] 步态识别是一种新兴的生物特征识别方法,是依据人走路的姿势进行个人的身份验证。与其他生物特征识别技术相比,步态识别具有非接触远距离和不易伪装的特点。根据解剖学的研究,每个人生理结构的差异性、不同的肌肉强度、不同的骨骼长度等,共同决定了人体的步态具有唯一性,这也是步态识别作为生物特征识别的理论基础。步态识别技术涉及到了计算机视觉及模式识别等多项技术领域,由于其所具有其他生物特征所不具有的优势和特点,在监控、医疗、人机交互等方面应用前景广阔。因此,国内外众多研究者将研究热情投入于步态识别中,并逐渐将步态识别技术推向生物特征识别领域的前沿。
[0003] 在现如今的步态识别领域,基本可以分为2D方法和3D方法。2D方法一般是分析由摄像机从某一特定视角得到的行走视频,首先使用背景差分等算法将视频段中运动的人体从背景中分离出来,得到步行者的轮廓图,随后再通过建模或图像处理的方法提取不同的步态特征。3D方法通常会通过深度相机或经过标定的多相机来间接重构出人体的在行走过程中的3D信息,然后再提取有用的步态特征进行识别。基于2D视频的方法使用方便,配置简单,一般只需要普通的摄像机,不需要其他辅助器材,具有很大的应用市场。但现在的方法中,光照的变化、衣着的变化,尤其是视角的变化,都会给识别效果造成巨大影响。而基于3D的方法中,虽然对视角的变化不敏感,但现有的大多数方法中主要面临以下两方面挑战:1)在利用多相机构建3D信息的方法中,由于需要对多相机进行标定,步骤复杂,且实际应用性较差。2)在利用深度相机的3D方法中,虽然省去了相机标定的步骤,但部分方法使用的深度相机价格昂贵,市场推广性较差。
[0004] 近年来,随着Kinect等新型深度传感器的问世,深度相机趋于商业化、廉价化。这些深度相机不仅不易受光线影响,而且易于利用深度信息分割运动人体与背景信息,同时可以较为便利高效的获取人体关节3D信息,从而为步态识别的应用开启了一扇新的大门。

发明内容

[0005] 本发明充分利用Kinect所具有的优势,将Kinect作为步态数据采集设备,利用其可以方便准确的估计人体关节三维空间位置信息的特点,构建出合适的步态运动模型。我们选取了关键骨骼段的长度作为静态特征,肢体摆动的角度变化作为动态特征,并使其进行特征融合后完成分类识别。本方法算法简单,具有较强的实时性,且提取的步态特征具有视角不变的特性。
[0006] 本发明采用的技术方案如下:
[0007] 一种基于Kinect的视角不变性步态识别方法,其特征在于,包括以下步骤:
[0008] (1)骨骼关节三维空间位置坐标的获取,即利用Kinect提供的SDK自动捕获进入视野范围内的人体,并将行走过程中每帧的关节位置信息的三维空间坐标(x,y,z)保存在列表数据结构中;
[0009] (2)静态特征的选择与获取,具体步骤包括:
[0010] a.设置人体距离Kinect的阈值,获取具有准确稳定关节信息所在的置信帧;
[0011] b.定义了8组关节之间的距离作为静态特征,根据置信帧中每帧关节的三维坐标信息,利用欧式距离计算各段距离,并将这8段距离组成了一个8维的静态特征向量;
[0012] c.根据置信帧的帧数,对以上得到的静态特征向量进行统计平均运算,将结果作为最终的静态特征向量;
[0013] (3)动态特征的选择与获取,具体步骤包括:
[0014] a.定义了上下四肢共8个关节的摆动角度作为动态角度特征,并计算其在每帧的角度值,得到8个动态角度序列;
[0015] b.将得到的8个角度序列按照同名关节分组,将同组关节的左右角度序列数据进行差分运算,再对差分序列进行零点检测,将零点对应与左右角度序列中的帧标记出来,并将这些帧当作周期分割帧,进行周期提取,最终得到包含一个周期信息的四组动态角度序列;
[0016] c.将得到的四组动态角度序列分别作为动态特征,单独测试识别效果,最终确定识别率最高的那一组动态角度序列作为最终的动态特征向量。
[0017] (4)特征的匹配与融合,具体步骤包括:
[0018] a.利用欧式距离计算静态特征向量样本与模板之间的距离,并以此距离作为匹配分值;
[0019] b.利用动态时间规整DTW算法计算动态特征向量样本与模板之间的距离,并以此距离作为匹配分值;
[0020] c.将以上a和b步骤中得到的两种特征的匹配分值分别归一化之后,按照线性加权原则进行特征融合,其中权重与每种特征单独的正确识别率正相关。
[0021] (5)分类识别,即根据特征融合之后的匹配分值作为最终样本与模板之间的相似性度量标准,采用最近邻分类准则进行分类识别。
[0022] 特别地,所述步骤(2)中考虑到人体骨骼长度左右对称的特点,选定的8组关节之间的距离依次是:右大腿、右小腿、右大臂、右小臂、脊柱、肩宽、颈长、头纵距。
[0023] 特别地,所述步骤(3)中8个关节的摆动角度分别为:左右大臂、左右小臂、左右大腿、左右小腿在某一平面的摆动角度。

附图说明

[0024] 图1是本发明方法的整体框架图;
[0025] 图2是实验环境俯视图;
[0026] 图3是作为静态特征所定义的8段骨骼长度示意图;
[0027] 图4是作为动态特征所定义的8个关节摆动角度示意图;
[0028] 图5是左右角度动态变化图;
[0029] 图6是四组动态特征的正确识别率图。

具体实施方式

[0030] 图1给出了本发明方法的框架图,按所示流程,包括如下具体步骤:
[0031] (1)获取每帧关节点坐标。
[0032] 为了尽可能多的获取步态过程中关节骨骼位置信息,我们在如附图2所示的实验环境下进行步态数据的采集与测试工作。采集过程中Kinect被放置在高度为1.0米的三脚架上,人从距离Kinect 4.5米远之外的地方面向Kinect行走,如图中方向箭头①所示,这个方向可以保证将全部关节位置信息完整清晰的保留下来。当人体进入Kinect视野范围之内时,我们利用Kinect提供的SDK可以自动将行走过程中每帧的所需关节位置信息的三维空间坐标(x,y,z)保存在列表数据结构中,其中三维坐标的单位是米。在测试阶段,由于本方法具有视角不变性,所以测试者可以从附图2中所示的其他任意方向行走,包括横向行走。
[0033] (2)提取静态特征
[0034] 我们根据步骤(1)中提取到的关节空间位置信息来提取静态特征并形成静态特征向量。具体过程如下:
[0035] (2-1)提取静态特征
[0036] 为了提取到更稳定准确的静态特征,我们首先对步骤(1)中提取到的关节信息进行了筛选。我们通过实验发现当人体距离Kinect 1.8米到3.0米范围内,对关节点位置的估测精度最高。因此我们通过设置距离的上下限,只获取在此距离范围内的帧。我们将头部(HEAD)关节点作为人体距离Kinect的代表点,根据下面的公式提取置信帧:
[0037] {fa}={Hf|Hf,z>1.8∩Hf,z<3.0}
[0038] 其中,{fa}是所选置信帧的集合,Hf代表头部的关节点,Hf,z代表头部关节点的z坐标值,即为距离Kinect的深度值。
[0039] 我们选取了8组关节之间的距离,即骨骼长度作为静态特征,如附图3所示。将这8段距离组成了一个8维的静态特征向量(d1,d2,d3,d4,d5,d6,d7,d8)。这个静态特征向量的8个分量如下表所示:
[0040]向量分量 关节点1 关节点2
d1 HIP_RIGHT KNEE_RIGHT
d2 KNEE_RIGHT ANKLE_RIGHT
d3 SHOULDER_RIGHT ELBOW_RIGHT
d4 ELBOW_RIGHT WRIST_RIGHT
d5 SPINE_SHOULDER SPINE_BASE
d6 SHOULDER_RIGHT SHOULDER_LEFT
d7 SPINE_SHOULDER NECK
d8 NECK HEAD
[0041] 这里关节之间的距离采用欧式距离。在筛选得到的置信帧{fa}集合中,每一帧我们都会得到相应关节的三维坐标,我们根据以下公式每帧的这8个骨骼长度。
[0042]
[0043] 其中di表示表格中特征向量的各个分量,即相应关节之间的距离,i取1到8。(x1,y1,z1)和(x2,y2,z2)分别代表表格中对应关节点1和关节点2当前帧的三维空间坐标。
[0044] (2-2)构成静态特征向量
[0045] 我们对在步骤(2-1)中置信帧{fa}范围下得到的静态特征向量,根据置信帧{fa}的帧数,对向量求平均得到最终的静态特征向量(d1,d2,d3,d4,d5,d6,d7,d8)。
[0046] (3)提取动态特征
[0047] 我们根据步骤(1)中提取到的关节空间位置信息来提取动态特征并形成动态特征向量。具体过程如下:
[0048] (3-1)定义动态特征并提取
[0049] 我们选取了两组手臂关节的摆动角度,两组腿部关节的摆动角度,如附图4所示,一共有a1到a8,8个角度的变化情况。假设关节点HIP_RIGHT在当前帧下的坐标是(x,y,z),关节点KNEE_RIGHT在当前帧下的坐标是(x′,y′,z′),我们可以根据下面的公式计算得到每帧a1的角度。
[0050]
[0051] 根据上述公式,我们以此类推得到其余关节摆动角度a2到a8每帧的角度值。最终我们可以到的8个动态角度序列({a1},{a2},{a3},{a4},{a5},{a6},{a7},{a8})。
[0052] (3-2)步态周期提取
[0053] 本方法通过结合左右肢体的动态特征,来准确地进行步态周期提取。首先,我们将步骤(3-1)中得到的8个角度序列按照同名关节分组,即可以分为HIP({a1},{a3}),KNEE({a2},{a4}),SHOULDER({a5},{a7}),ELBOW({a6},{a8})4组。每组中分别包含这个关节的左侧及右侧摆动角度。我们将这4组角度的动态变化情况绘制出来,如附图5所示。从图中我们可以发现左右数据的交点是比较稳定的步态周期分界点。我们将每组关节的左右角度序列数据进行差分运算,再对差分序列进行零点检测。由于差分序列是离散序列,无法得到零点,因此我们通过设置阈值,检测差分序列中在阈值范围内的点作为候选零点。具体的,我们在实验中将阈值设置在(﹣3°,﹢3°)。候选零点都是在某段范围内相邻或接近的点,我们将某段范围内的局部最小值点作为此段范围内最终的零点,从而得到各段的零点。将这些零点对应与左右角度序列中的帧标记出来,并将这些帧当作周期分割帧,进行周期提取。最后我们得到提取周期后的4组角度序列HIP({a1T},{a3T}),KNEE({a2T},{a4T}),SHOULDER({a5T},{a7T}),ELBOW({a6T},{a8T}),其中下标T表示一个周期内的角度序列。
[0054] (3-3)构成动态特征向量
[0055] 在步骤(3-2)中得到的4组角度序列,我们分别将其当作4种独立的动态特征并对它们进行了识别率的考察,从而选择出最佳的动态特征。我们统计了这4组动态特征的正确识别率,如附图6所示。从图中我们可以看到,以a2为代表的KNEE({a2T},{a4T})这一组动态特征,识别率明显优于其他3组动态特征,最终我们确定将({a2T},{a4T})这一组动态角度序列作为最后的动态特征向量。其中,我们称{a2T}为右动态特征向量,{a4T}为左动态特征向量。
[0056] (4)静态与动态特征匹配
[0057] 在测试阶段,我们首先需要分别对静态特征与动态特征分别与数据库中的相应特征进行模板匹配,具体分为:
[0058] (4-1)静态特征匹配
[0059] 我们将步骤(2)中得到的测试样本的8维静态特征向量与数据库中用同样方法采集到的静态特征向量模板分别计算距离,这里的距离是欧式距离,并将得到的距离进行归一化处理。最后将测试样本与各个模板归一化之后的距离作为测试样本与各个模板之间的匹配分值。
[0060] (4-2)动态特征匹配
[0061] 我们将步骤(3)中得到的测试样本的左(右)动态特征向量与数据库中用同样方法采集到的左(右)动态特征向量模板分别采用DTW算法进行模板匹配,具体过程如下:
[0062] a)创建两个n×m的矩阵D和d,分别为累积距离矩阵和维数匹配距离矩阵,这里n和m为测试模板与参考模板中动态特征向量的维数。
[0063] b)通过一个循环计算两个模板的维数匹配距离矩阵d。接下来进行动态规划,为每个格点(i,j)都计算其三个可能的前续格点的累积距离D1、D2和D3。
[0064] c)利用最小值函数min,找到三个前续格点的累积距离的最小值作为累积距离,与当前帧的匹配距离d(i,j)相加,作为当前格点的累积距离,直到计算过程一直达到终点(n,m),并将D(n,m)输出。
[0065] 需要注意的是,由于在某些行走方向下,远离Kinect一侧的身体会被靠近一侧的身体所遮挡,造成数据不准确,本方法中,系统会自动判断并选择靠近Kinect一侧的身体的特征,如左侧靠近时会使用左动态特征向量{a4T},同理,右侧靠近时则会使用右动态特征向量{a2T}。
[0066] (5)特征融合
[0067] 将步骤(4)中得到的两种匹配分值按照线性归一化的方式归一至[0,1]区间,其中线性归一化公式如下:
[0068]
[0069] 其中,S是归一化之前的矩阵,其元素为s,这里代表各个待归一化的匹配分值,是归一化矩阵,其元素是 将归一化之后的两个分值根据加权求和原则进行融合,其中加权求和公式如下:
[0070]
[0071] 其中F代表融合后的分值,R代表需要融合的特征的个数,这里R=2。ωi表示第i个特征的权值,si表示第i个特征的匹配分值。权重ωi是根据第i个特征单独进行识别时的正确识别率Ci所求得,这样就可以根据某个特征识别率的高低来分配特征融合时的权值。
[0072] (6)分类识别
[0073] 将步骤(5)中特征融合之后的匹配分值F作为最终样本与模板之间的相似性度量标准,采用最近邻分类准则,即将样本与每个模板的匹配分值F按从小到大的顺序升序排序,将测试样本分到与其匹配分值最小的那个模板类中。
[0074] 表1是在我们采集的数据库下实验测试的正确识别率(%)。此数据库中包含28位男性与24位女性,一共52位个体。每个人都有在6个方向(0°,90°,135°,180°,225°,270°)上的行走数据,我们用180°方向的数据作为模板数据进行训练,用其他行走方向的数据作为测试。我们分别单独测试了静态特征、动态特征,最后测试了特征融合之后的分类结果。可以从图中看到,特征融合之后的识别率优于使用单一特征的识别效果。
[0075] 表1
[0076]
[0077] 综上所述,本发明提出了一种利用Kinect作为数据采集设备进行实时步态识别的方法。利用Kinect得到的人体关节三维空间位置信息,我们选取了8段关键的骨骼长度作为静态特征,对比并最终确定了腿部膝盖的摆动角度变化作为动态特征,并使其在匹配层进行特征融合后利用最近邻分类器完成分类识别。本方法算法简单,具有较强的实时性,且提取的步态特征具有视角不变的特性。