一种结合形状序列和线性时间归一化的步态身份识别的制作方法

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

本发明属于人身安全领域,具体涉及一种结合形状序列和线性时间归一化的步态身份识别。



背景技术:

2016年5月17日,中国互联网协会、国家互联网应急中心(cncert)在京首次联合发布了《中国移动互联网发展状况及其安全报告(2016)》。报告显示,2015年中国境内活跃的手机网民数量达7.8亿,占全国人口数量的56.9%。手机安全问题依然严峻,而用户身份识别是保护信息安全的首要步骤。人类的步态包含非常独特的模式,可用于身份的识别和验证。加速度传感器以其低廉的价格、高的灵敏度和较小的体积被广泛应用于智能手机中。其具有的独特优势使研究人员逐渐认识到它在步态身份识别领域的应用前景。步态加速度数据通常是一组有变化的加速度数值,易受到环境因素影响,并存在一定噪声。对步态的分类问题是身份识别中基本和关键的问题之一,而分类的关键在于对其进行相似性度量。通常,测量相似性的主要算法包括:欧式距离、动态时间弯曲距离(dynamictimewarping,dtw)(以及一些变形算法衍生dtw(derivativedtw,d-dtw)、加权dtw(weighteddtw,w-dtw)等)、线性时间归一化(lineartimenormalization,ltn)等。步态加速度序列数据的相似性是由序列中各个对应点间的距离决定的,如果点对间的距离小,表明序列越相似,否则不相似。因此,步态序列间的相似性的准确性很大程度上依赖于点对匹配校准的质量。处理点间匹配对齐的方法主要分为两类:刚性对齐和柔性对齐。欧式距离是典型的刚性对齐,要求被度量的两个序列长度必须严格相等,做到“一对一”的比较,这种对齐方式对噪声很敏感,而且距离会随着序列长度的增加而变大。与刚性对齐不同,柔性对齐可以将两个时间序列进行“一对多”的比较,dtw和ltn都是柔性对齐,不需要待匹配的序列长度相等,并且解决了欧式距离由于时间序列发生扭曲变形而匹配错误的问题,更能反映出两个序列之间的相似程度,因此被广泛的应用于语音识别、生物识别等领域。

但是ltn算法也存在不足,在处理时间序列的点校准对齐时,虽然考虑到了时间序列间的线性关系,但忽略了各点的局部上下文形状信息,造成点的错误匹配。假设两个不同时间序列上的两个点有相同的数值,但是一个是峰值点,另一个是谷值点,ltn在对齐的时候会错误的认为这两个点的距离为0,但是从形状角度考虑,峰值点和谷值点是不可能匹配的。理论上,一个理想的点对齐匹配方法不应该只考虑到数值的变化,同时也需要观察各点的形状是否相似。形状上下文(shapecontext,sc)是一种丰富的形状描述符,以其有效性和强鲁棒性而被广泛应用。它通过计算落在log-polar直方图中的相邻点个数来描述点的位置关系,利用点之间的位置关系描述形状特征。sc自从被提出来以后,因其在描述形状方面的优越特性,具有很多应用。例如人脸匹配、车牌识别、植物叶子图像匹配、以及步态识别等。



技术实现要素:

针对目前典型周期提取方法存在的不足,提出一种基于线性规则和形状上下文相结合的点对齐匹配方法,简称sc-ltn。和ltn相比sc-ltn在点匹配对齐方面获得的效果更好。处理时间序列点对齐时,将各点的局部形状特征和数值上的线性关系相结合,分别从点的数值和形状两个角度实现点的精确对齐。具体分为以下几步:1)首先计算时间序列上各个点的形状上下文信息,并得到log-polar直方图;2)通过形状上下文找出点对之间的最小代价值,以便找到点之间最优对齐方式;3)使用ltn中原始的距离计算方法计算最终的累积距离。因为形状上下文是基于卡方的检验,不能用作最终距离的度量。使用的形状上下文只是用来处理点的对齐,对于累积距离的计算仍然不变。

实现本发明的技术方案如下:

一种基于线性规则和形状上下文相结合的身份识别方法,包括典型周期提取的步骤和身份识别的步骤;

所述典型周期提取的步骤包括:

(1)数据获取:选用智能手机内置加速度传感器采集志愿者水平地面以正常步速行走约100米的加速度数据;

(2)数据预处理:在数据采集的过程中,手机传感器容易受到外界影响,导致数据含有许多高频噪声信号,需要对数据进行去噪等处理;

(3)一般周期分割:步态加速度数据通常表现为一组具有周期性特征的数据,其中一个周期在某种特殊位置时可以表示单个步态周期或单步;并且为了减少计算量,常常对步态数据进行周期分割,以此来提取典型周期,其中一般周期分割包括周期长度估计、周期检测、异常周期剔除三个步骤;

(4)典型周期提取:处理时间序列点对齐时,利用sc获取各点的局部形状特征以及利用ltn处理数据数值上的线性关系,分别从这两个角度实现周期间点的精确对齐,从而提取出典型周期;

所述身份识别的步骤包括:

1)计算模板:计算每一组数据的典型周期,将典型周期作为模板数据;

2)分类识别:knn算法最初是由cover和hart于1968年提出来的,已经是一个理论上非常成熟的方法,其思路非常简单直观,优点是易于快速实现,以及错误低。knn是一种无参分类器,对于一个测试样本,在训练样本的空间中搜索与之最近的k个样本,如果这k个样本中属于某一个最多,那么即认为该测试数据属于哪一类。使用最近邻分类(1nn),距离的度量为χ2距离,当测试数据与训练模板之间的距离最小时,就判断测试数据属于该训练数据类型。

进一步,所述步骤(3)中一般周期分割提取的具体步骤如下:

1)周期长度估计:步态周期的长度主要取决于被测用户的步行速度,通常一个步态周期的长度为80-140个数据点,为了估算每一个被测用户的步态周期长度,从整个步态数据中提取出一小部分子集,并且与其他具有相似长度的子集进行比较,找出与该子集距离最小的部分数据,基于这些子集间的距离分数,计算出一个平均周期长度;

2)周期检测:根据人在行走时地面的反向力和惯性力之间的相互作用使得加速度传感器z轴信号发生强烈的变化,形成了加速度的峰值(peak,p),即在单个步态周期中存在局部的最大值,将这些局部的最大值称之为真实的峰值(truepeak,tp),为了筛选出正确的tp,定义了一个阈值t,其中幅值比阈值t大的峰值点称为tp,所有符合条件的tp用集合r表示:

t=μ+σ(1)

r=∑tp={di∈p|di≥t}(2)

其中μ,σ分别表示为所有峰值p的均值、方差;

3)异常周期剔除:一组步态数据的所有步态周期被检测出来,但是由于外界的影响,并不是所有的步态周期都是有用的,需要去除一些非正常的的周期,否则将影响后期的特征提取和分类识别效果,因此,使用dtw计算周期间的距离,将那些距离相差较大的周期进行剔除;

进一步,所述步骤(4)中典型周期提取的具体步骤如下:

1)形状上下文:将任意两组步态周期序列看成两个曲线形状图,分别计算这两个步态周期曲线的形状上下文,利用形状上下文实现任意两个步态周期序列形状的点集匹配;

假设任意两个周期序列分别表示为:ia={x1,x2,...,xn}、ib={y1,y2,...,ym},其中取ia中任意一个点xi作为参考点,坐标为(xi,yi),距离参考点最大距离的点xk,坐标为(xk,yk),在计算这两个点之间的距离时,通常将笛卡尔坐标转换成对数极坐标:

以参考点为圆心,r为半径建立同心圆,并且划分为60个区域(bin,bin∈[1,60]),统计除参考点之外,其他点落入各个bin内的个数,获得统计分布直方图:

hi(k)=#{pj≠pi&pj∈bin(k)},i≠j,1≤k≤60(4)

其中hi(k)表示ia上点xi的形状直方图,pi、pj分别表示轮廓上任意一点i和参考点j,k表示bin的个数,将ia上各个点分别作为参考点,依次计算与剩下的n-1个点的直方图,最终得到n个形状直方图,对于ia,可用n(n-1)大小的矩阵表示其形状上下文信息,对于ib,矩阵大小为m(m-1),最后,将两个序列的点集进行匹配对齐,则ia和ib的代价矩阵:

匹配对齐的目的就是找到可以充当置换匹配π,使所有点的匹配代价和能得到最小值:

其中c值介于0与1之间,c值越小,则两个形状点的匹配代价越小,它们之间的相似度也越好,为了判断两个形状是否匹配,首先分别对两个形状的轮廓点进行逐点匹配,然后计算对应点间的c值,从而最终完成两个形状之间的匹配;

2)线性时间归一化:假设一组步态数据t被分割成n个周期:t={i1,i2,...,ii,...,in},1≤i≤n,其中ii表示t中的第i个周期,ti表示第i个周期内数据点的个数,rr、rt分别表示使用线性规则计算的数据点标号集合,首先使用线性规则匹配对齐周期序列ti和周期序列tj中的各个数据点,然后通过ltn计算任意两个周期间的距离:

其中使用线性规则匹配过后的点间的距离最小,则表明两个点之间是匹配对齐的,以此类推,完成任意两个完整周期内的各数据点匹配对齐操作;

3)形状上下文和线性时间归一化结合:首先计算出各个数据点间的ltn距离,找出具有最短距离的点对,先进行一轮的“数值”上的匹配对齐操作,其次利用sc对那些“数值”上形成匹配的点对进行局部“形状”的二次匹配,对具有n个周期的步态数据集,完成“数值”和“形状”匹配对齐后,会形成n×n的距离矩阵d:

其中di′j表示第i个周期和第j个周期进行sc和ltn处理后的各点集间的距离,得到周期序列间的距离矩阵后,需要找到距离矩阵d中每一行的最小值,组成集合j:

最后,计算出一组步态数据内周期间的最终距离,其中拥有最小距离所对应的周期作为该组步态数据的典型周期:

id=min(j)(10)

sc和ltn内的线性规则结合只是用来对齐各数据点,最终仍然通过ltn算法计算周期间的距离,并选择最小距离所对应的周期作为典型周期;

本方法的有益效果:

1、同时考虑到了步态序列的数值和形状的差异。并且也考虑了步态序列的线性关系。在ltn的基础上进行改进,将形状上下文的概念引入其中,提出了一种名为sc-ltn的方法来提取典型周期,该方法不仅解决点匹配错误问题,而且使得步态时间序列的所有点集严格按照点-点进行规整对齐,dtw在对步态数据进行点校准的时候通常按照点之间的坐标距离远近,但是仅仅按照其坐标值来匹配是不可靠且容易出错的,ltn在dtw的基础上进行改进,考虑到了点与点之间的线性对应关系,但是由于步态加速度数据这一特殊特性,ltn并没有考虑到步态数据的局部上下文信息,即ltn和dtw一样只考虑到了步态序列的数值,忽略了上下文和局部形状信息,sc-ltn在匹配过程中加入了点对点的局部结构信息来增强ltn;

2、对于时间序列的微小变化很敏感。通过形状上下文找出周期序列上各个数据点的对应关系,其中形状上下文本身只是一种用来描述形状的描述符,主要的目的就是捕获各个数据点在空间中的相对位置,使得点-点之间达到一种更加严格-更加精确的匹配,因此对于细小的变化都能检测到。

附图说明

图1线性时间归一化算法;

图2形状上下文算法;

图3线性时间归一化和形状上下文结合的算法。

具体实施方式

在典型周期提取方面:用户把手机放置在口袋,手机加速度传感器记录采集到的用户的三轴加速度序列,从中提取典型周期来表征整个步态数据的特征;在步态身份识别方面:通过1nn算法对步态数据进行训练归类,以识别出用户身份。

具体方案:

论文提出一种基于线性规则和形状上下文相结合的点对齐匹配方法,简称sc+ltn,从步态数据中提取典型周期来表征原始步态加速度序列信号,进而在典型周期中提取特征值实现身份识别。和ltn相比sc+ltn在点匹配对齐方面获得的效果更好。处理时间序列点对齐时,将各点的局部形状特征和数值上的线性关系相结合,分别从点的数值和形状2个角度实现点的精确对齐。具体分为以下几步:1)首先计算时间序列上各个点的形状上下文信息,并得到log-polar直方图;2)通过形状上下文找出点对之间的最小代价值,以便找到点之间最优对齐方式;3)使用ltn中原始的距离计算方法计算最终的累积距离。因为形状上下文是基于卡方的检验,不能用作最终距离的度量。论文使用的形状上下文只是用来处理点的对齐,对于累积距离的计算仍然不变。

下面结合附图对本发明作进一步说明。

一、典型周期提取:

考虑到步态加速度数据的周期性特征,考虑从多个步态周期中提取一个较为典型的步态周期来表征整个步态数据特征,这就需要比较各个周期间的距离,需要从中找出一个与其他周期间的距离最为相近的周期。目前常采用的比较周期间距离的方法有:将所有长度不一致的周期规整为固定长度,即所有周期的长度保持一致。该方法虽然计算简便,但是却未能充分的校正周期间的相位偏差错位问题。为了解决这个问题,目前使用动态时间规整(dynamictimenormalization,dtw)的方法进行周期对齐操作,同时对dtw进行改进,提出基于相位的self-dtw方法,dtw是一种非线性的匹配算法,适用于长度不一的序列间比较,考虑到即使同一个人每次步行时的行走速度总会存在差异,从而造成每次采集到的步态信号序列必定长短不一,在匹配计算时也会形成错误的动作匹配;

对于同一种运动,不同人或同一个人在不同时间下,每次的运动速度也不会相同。所以,即使对于同一个人的不同时刻的相同步态,在进行序列匹配时,如果秉承一贯的就近原则,那么最终会导致动作的错误匹配情况。dtw算法以及其一系列变种算法在用于计算时间序列间的距离时表现较为成熟,但dtw是一种非线性的匹配规整算法,适用于分解动作时间相对于整体动作时间的不规律性,尤其在语音识别领域效果最好,但是考虑到步态在周期内是线性的运动,则本文考虑使用基于线性匹配的线性时间归一化(lineartimenormalization,ltn)算法对长度不一的周期进行距离的计算,尽管ltn在能够较好的处理具有线性特性的步态序列匹配,但是ltn算法也存在不足,比如在处理时间序列的点校准对齐时,虽然考虑到了时间序列间的线性关系,但是忽略了时间序列上各点的局部上下文形状信息,也会造成点的错误匹配问题。假设2个不同时间序列上的2个点有相同的数值,但是一个是峰值点,另一个是谷值点,ltn在对齐的时候会错误的认为这2个点是匹配对齐的,但是从形状角度考虑,峰值点和谷值点是不可能匹配的,理论上,一个理想的点对齐匹配方法不应该只考虑到数值的变化,同时也需要观察各点的形状是否相似,需要做到真正的形状-数值双重匹配。

该部分涉及到的形状上下文的具体步骤如下:

①对数极坐标转换:将任意两组步态周期序列看成两个曲线形状图,分别计算这两个步态周期曲线的形状上下文,利用形状上下文实现任意两个步态周期序列形状的点集匹配;

假设任意两个周期序列分别表示为:ia={x1,x2,...,xn}、ib={y1,y2,...,ym},其中取ia中任意一个点xi作为参考点,坐标为(xi,yi),距离参考点最大距离的点xk,坐标为(xk,yk),在计算这两个点之间的距离时,通常将笛卡尔坐标转换成对数极坐标:

②分布直方图:以参考点为圆心,r为半径建立同心圆,并且划分为60个区域(bin,bin∈[1,60]),统计除参考点之外,其他点落入各个bin内的个数,获得统计分布直方图:

hi(k)=#{pj≠pi&pj∈bin(k)},i≠j,1≤k≤60(12)

其中hi(k)表示ia上点xi的形状直方图,pi、pj分别表示轮廓上任意一点i和参考点j,k表示bin的个数,将ia上各个点分别作为参考点,依次计算与剩下的n-1个点的直方图,最终得到n个形状直方图,对于ia,可用n(n-1)大小的矩阵表示其形状上下文信息,对于ib,矩阵大小为m(m-1),最后,将两个序列的点集进行匹配对齐,则ia和ib的代价矩阵:

③匹配代价:匹配对齐的目的就是找到可以充当置换匹配π,使所有点的匹配代价和能得到最小值:

其中c值介于0与1之间,c值越小,则两个形状点的匹配代价越小,它们之间的相似度也越好,为了判断两个形状是否匹配,首先分别对两个形状的轮廓点进行逐点匹配,然后计算对应点间的c值,从而最终完成两个形状之间的匹配;

该部分涉及到的线性时间归一化的具体步骤如下:

①线性规则:某一组步态数据中的任意两个周期的线性归一化过程,其中周期i内有t个数据点,周期j内有r个数据点,通常t≠r,由所有数据点所组成的一个集合为一个特征向量,其中一个周期中的数据点x通过线性规则与另一个周期中的数据点y相匹配:

②周期间距离:假设一组步态数据t被分割成n个周期:t={i1,i2,...,ii,...,in},1≤i≤n,其中ii表示t中的第i个周期,ti表示第i个周期内数据点的个数,rr、rt分别表示使用线性规则计算的数据点标号集合,首先使用线性规则匹配对齐周期序列ti和周期序列tj中的各个数据点,然后通过ltn计算任意两个周期间的距离:

其中使用线性规则匹配过后的点间的距离最小,则表明两个点之间是匹配对齐的,以此类推,完成任意两个完整周期内的各数据点匹配对齐操作;

该部分涉及到的形状上下文和线性时间归一化结合的具体步骤如下:

①距离矩阵:首先计算出各个数据点间的ltn距离,找出具有最短距离的点对,先进行一轮的“数值”上的匹配对齐操作,其次利用sc对那些“数值”上形成匹配的点对进行局部“形状”的二次匹配,对具有n个周期的步态数据集,完成“数值”和“形状”匹配对齐后,会形成n×n的距离矩阵d:

②典型周期:其中di′j表示第i个周期和第j个周期进行sc和ltn处理后的各点集间的距离,得到周期序列间的距离矩阵后,需要找到距离矩阵d中每一行的最小值,组成集合j:

最后,计算出一组步态数据内周期间的最终距离,其中拥有最小距离所对应的周期作为该组步态数据的典型周期:

id=min(j)(18)

sc和ltn内的线性规则结合只是用来对齐各数据点,最终仍然通过ltn算法计算周期间的距离,并选择最小距离所对应的周期作为典型周期;

二、身份识别:使用最近邻分类算法(1nn)进行分类识别;

1)计算模板:计算每一组数据的典型周期,将典型周期作为模板数据;

2)分类识别:knn算法最初是由cover和hart于1968年提出来的,已经是一个理论上非常成熟的方法,其思路非常简单直观,优点是易于快速实现,以及错误低。knn是一种无参分类器,对于一个测试样本,在训练样本的空间中搜索与之最近的k个样本,如果这k个样本中属于某一个最多,那么即认为该测试数据属于哪一类。使用最近邻分类(1nn),距离的度量为χ2距离,当测试数据与训练模板之间的距离最小时,就判断测试数据属于该训练数据类型。

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