本发明属于模式识别中的生物特征识别领域,具体是一种融合了不同类型步态特征的步态识别方法。
背景技术:
步态识别是远距离下最具潜力的生物特征识别技术之一,它能够在不考虑服饰、视角和肤色等因素的条件下根据人走路的方式及动力学特征来实现身份识别。步态识别的基本步骤是:首先,从包含待检测目标步态信息的视频中将步态图像抽取出来形成图像序列,并通过背景减除等预处理技术进行提取和轮廓优化。其次,进行步态周期的检测,筛选出完整的周期性图像序列。由于每个人的周期的图像数量不相同,所以通常采用等间隔采样使每个人的各半周期中图像数量一致。然后,从周期性图像序列中提取步态特征。步态特征的选取和精确提取是步态识别中最重要的环节之一,将直接影响后续的识别正确率。最后,选取适当的分类方法进行步态分类。
相比于人脸识别、指纹识别等技术,由于步态识别的发展时间相对较短,目前的步态识别技术和一些算法仍处于研究的阶段,缺少系统的方法和理论。
技术实现要素:
为了解决现有技术中存在的上述技术问题,本发明提供了一种基于静动态特征融合的可变视角步态识别方法,包括如下步骤:
步骤一、基于整个人体区域的像素个数变化情况进行半步态周期提取;
步骤二、跟半步态周期提取结果,基于区域平均距离提取静态步态特征和通过双向光流预测和误差度量自适应提取动态步态特征;
步骤三、基于K近邻思想,将静态步态特征和动态步态特征融合进行步态分类与识别。
进一步的,步骤一中,在对每一个人的图像序列进行处理时,根据步态周期检测结果,去除序列两边多余的非半周期的图像。
进一步的,步骤二中,所述提取静态步态特征为:
经过前景检测和二值化的人体轮廓图像可以表示为:
E(x,y)的值表示坐标为(x,y)的像素点是否属于前景区域,即在图像中是否属于人体所在区域;
计算当前人体区域的重心:
这里,n表示图像中人体区域的像素个数:
获得人体区域重心后,以重心为原点建立二维直角坐标系,一张图像的部分特征变量表示如下:
这里,Ηθ表示属于(θ,θ+Δθ)角度范围内的人体区域像素集,表示在此区域内的像素总个数,d(θ)表示在此范围内的人体区域中所有像素到重心的平均距离;
通过积分来计算某角度范围内的所有像素点到人体重心的平均距离和一个区域内的距离总和为:
一个区域的面积为:
根据上面的公式(6)和公式(7)计算所得的数据,计算出该区域所有像素到重心的平均距离为:
进一步的,步骤二中,所述提取动态步态特征:
在一个半步态周期的第t帧提取m个轮廓区域特征点{Pi|i=1,2,...,m},然后从第t帧图像的特征点Pi跟踪到第t+1帧图像的预测点Pi',最后从第t+1帧图像的Pi'反向跟踪到第t帧图像的反馈点Pi".从而对于{Pi|i=1,2,...,m}中的每个特征点,生成了前向和后向两个轨迹{Pi'|i=1,2,...,m},{Pi"|i=1,2,...,m},如公式(9)和(10)所示:
Pi'=g(Ft,Ft+1,Pi), (9)
Pi"=g(Ft,Ft+1,Pi'), (10)
这里,g为光流函数,Ft和Ft+1分别为第t和t+1帧图像;
然后通过度量预测轨迹和反馈轨迹之间的匹配程度,得到反馈误差D:
Di={||Pi”-Pi|||i=1,2,...,m}, (11)
这里,||||表示欧几里德距离;
定义基于高斯分布的动态权重函数w:
这里,Dmin最小距离,σ2是标准方差;
在半步态周期的基础上,动态步态特征提取算法流程如下:
(1)在一个半步态周期内的第t帧图像中提取m个特征点{Pi|i=1,2,...,m},并通过光流法预测出这些点在第t+1帧的位置{Pi'|i=1,2,...,m},从而得到每一点的运动位移{ΔPi|i=1,2,...,m};
(2)从第t+1帧图像的Pi'反向跟踪到第t帧图像的反馈点Pi",得到后向反馈轨迹点{Pi"|i=1,2,...m},,并进一步根据公式(12)计算每一点的动态权重{wi|i=1,2,...,m}.
(3)计算人体中心点的初始位移。在步态周期内的第t帧图像中计算出人体中心位置C0,并通过光流法预测出第t+1帧的位置则人体中心点的初始位移为:
(3)确定动态步态特征的概率密度函数,如公式(14)所示:
m为特征点个数,wi为第i个特征点的动态权重值;
(4)采用梯度下降法搜索ΔPi密度最大的点,估计出最优的位移即速度特征;
(5)同理可以根据第t+2帧图像,得到最优的位移从而得到加速度特征:
进一步的,步骤四中,采用加权KNN算法进行步态分类,具体如下:
1)提取训练集S和待识别步态X的步态特征,所述步态特征包括静态步态特征和动态步态特征;
2)根据欧式距离的定义,计算距离待识别步态X最近的K个近邻步态,K取值为步态数据库中人的数量的1/3;
3)求取这K个近邻步态的加权系数Wi和对应步态大类的后验概率
Wi=(dmax-di)/dmax (16)
这里,dmax为K个近邻步态与X的最大距离,Ci为K个近邻中属于每个大类的概率;i=1,2,…,n;
本发明的基于动静态特征相结合的可变视角步态识别方法。该方法使用了两类步态特征:基于面积平均距离的静态步态特征和基于光流法的动态步态特征。在步态识别的阶段,采用了特征融合算法进行步态分类,提高了步态识别率。
附图说明
图1是步态序列人体区域面积变化图;
图2是人体划分图;
图3是部分特征计算区域图;
图4是实验1中几种方法的识别率比较,其中图4a是平均识别率,图4b是识别率标准差;
图5是实验2中几种方法的识别率比较,其中图5a是平均识别率,图5b是识别率标准差。
具体实施方式
下面结合附图对本发明作进一步说明。
相对于现有技术,本发明具有如下特点:
一、基于整个人体区域的像素个数变化情况实现的半步态周期提取。
如图1所示,根据常识,当人在跨步且两脚掌贴地时,侧面看过去人体的面积将达到最大值,将侧面视角下人体面积达到最大时作为半周期的分界线。在对每一个人的图像序列进行处理时,根据步态周期检测结果,去除序列两边多余的非半周期的图像。
二、基于区域平均距离的静态步态特征提取。
经过前景检测和二值化的人体轮廓图像可以表示为:
E(x,y)的值表示坐标为(x,y)的像素点是否属于前景区域,即在图像中是否属于人体所在区域。接下来,我们计算当前人体区域的重心:
这里,n表示图像中人体区域的像素个数:
获得人体区域重心后,以重心为原点建立二维直角坐标系,一张图像的部分特征变量表示如下:
这里,Ηθ表示属于(θ,θ+Δθ)角度范围内的人体区域像素集,表示在此区域内的像素总个数,d(θ)表示在此范围内的人体区域中所有像素到重心的平均距离。
如图2和图3所示,本申请通过积分来计算某角度范围内的所有像素点到人体重心的平均距离。一个区域内的距离总和为:
一个区域的面积为:
根据上面的公式(6)和公式(7)计算所得的数据,我们可以很容易地计算出该区域所有像素到重心的平均距离为:
为了较详细地描述每张图片的特征,我们将Δθ的值取地稍微小一点,选为10°,那么每张图片的特征将是一个36维的向量。用区域的平均距离来代替轮廓检测提取的特征,不但能够降低计算的时间复杂度,而且还能避免轮廓不完整导致的误差。
三、通过双向光流预测和误差度量自适应提取动态步态特征。
在基本光流法的基础上,提出了一种新的动态步态特征提取算法,通过双向光流预测和误差度量自适应地提取行人步态特征。该算法以轮廓图像为基础,其基本思想为:在一个半步态周期的第t帧提取m个轮廓区域特征点{Pi|i=1,2,...,m},然后从第t帧图像的特征点Pi跟踪到第t+1帧图像的预测点Pi',最后从第t+1帧图像的Pi'反向跟踪到第t帧图像的反馈点Pi".从而对于{Pi|i=1,2,...,m}中的每个特征点,生成了前向和后向两个轨迹{Pi'|i=1,2,...,m},{Pi"|i=1,2,...,m},如公式(9)和(10)所示。
Pi'=g(Ft,Ft+1,Pi), (9)
Pi"=g(Ft,Ft+1,Pi'), (10)
这里,g为光流函数,Ft和Ft+1分别为第t和t+1帧图像。然后通过度量预测轨迹和反馈轨迹之间的匹配程度,得到反馈误差D:
Di={||Pi”-Pi|||i=1,2,...,m}, (11)
这里,|| ||表示欧几里德距离。从公式(11)可以看出,Di越小,对应于特征点Pi的预测轨迹和反馈轨迹匹配程度越高,此时Pi对步态分类的贡献越大。因此,我们定义了基于高斯分布的动态权重函数w:
这里,Dmin最小距离,σ2是标准方差.
在半步态周期的基础上,本申请提出的动态步态特征提取算法流程如下:
(1)在一个半步态周期内的第t帧图像中提取m个特征点{Pi|i=1,2,...,m},并通过光流法预测出这些点在第t+1帧的位置{Pi'|i=1,2,...,m},从而得到每一点的运动位移{ΔPi|i=1,2,...,m};
(2)从第t+1帧图像的Pi'反向跟踪到第t帧图像的反馈点Pi",得到后向反馈轨迹点{Pi"|i=1,2,...m},,并进一步根据公式(12)计算每一点的动态权重{wi|i=1,2,...,m}.
(3)计算人体中心点的初始位移。在步态周期内的第t帧图像中计算出人体中心位置C0,并通过光流法预测出第t+1帧的位置则人体中心点的初始位移为:
(3)确定动态步态特征的概率密度函数,如公式(14)所示。
m为特征点个数,wi为第i个特征点的动态权重值。
(4)采用梯度下降法搜索ΔPi密度最大的点,估计出最优的位移即速度特征。
(5)同理可以根据第t+2帧图像,得到最优的位移从而得到加速度特征:
四、基于K近邻思想的特征融合算法
本申请借鉴KNN算法的思想,提出了一种特征融合算法进行步态分类与识别。KNN算法的基本思想是:选择训练样本集中与待识别样本最接近的K个样本,如果这些样本中大多数属于某一类型,则待分类样本就判定为该类型。然而,传统KNN算法中,只利用了待分类样本中K个最近邻的样本信息,而没有考虑不同样本类别子集的内聚性对分类结果的影响,难以用于解决多视角步态识别问题。针对上述KNN算法存在的不足,本申请提出了加权KNN算法来降低多视角步态识别的误差。
本申请提出的加权KNN的步态分类算法表述如下:
1)提取训练集S和待识别步态X的步态特征(区分每个人对应的步态大类和每个人不同视角的步态小类,下面K个近邻是从小类中选取);
2)根据欧式距离的定义,计算距离待识别步态X最近的K个近邻步态(K取值为步态数据库中人的数量的1/3);
3)求取这K个近邻步态的加权系数Wi(定义为,其中)和对应步态大类的后验概率
Wi=(dmax-di)/dmax (16)
这里,dmax为K个近邻步态与X的最大距离,Ci为K个近邻中属于每个大类的概率;i=1,2,…,n;
实验设计:
实验1:采用CASIA步态数据库的B集中正常状态进行识别率比较
训练数据获取方法:选取正常状态下每个人90度视角的全部数据和其它视角1%、5%、10%、15%、20%、25%、30%、35%的随机选取数据用于训练,其它视角剩余的数据用于测试。8种情况下各执行1000次,实验结果如图4所示,横轴均为自适应数据占总测试数据的百分比,图4(a)中纵轴为平均识别率,图4(b)中纵轴为识别率的标准差。
实验2:采用CASIA步态数据库的B集中全部数据(包括穿大衣和携带包裹)进行识别率比较
训练数据获取方法:选取全部数据(包括穿大衣和携带包裹情况下的数据)中每个人90度视角的全部数据和其它视角1%、5%、10%、15%、20%、25%、30%、35%的随机选取数据用于训练,其它视角剩余的数据用于测试。8种情况下各执行1000次,实验结果如图5所示,横轴均为自适应数据占总测试数据的百分比,图5(a)中纵轴为平均识别率,图5(b)中纵轴为识别率标准差。