一种基于关键帧和边界约束DTW的实时动态手势识别方法与流程

文档序号:11251329阅读:693来源:国知局
一种基于关键帧和边界约束DTW的实时动态手势识别方法与流程

本发明涉及一种基于关键帧和边界约束dtw的实时动态手势识别方法,属于人机交互技术领域。



背景技术:

随着人机交互技术逐渐成熟,手势识别技术被广泛应用到手语识别、智能交通、游戏娱乐等诸多领域。根据手势采集设备的不同,目前的手势识别技术可以分为基于数据手套的手势识别技术和基于视觉的手势识别技术。其中,基于视觉的手势识别技术不需要穿戴笨重的手套设备,能够以一种更加灵活、自然的方式进行人机交互,已成为目前的研究热点。该技术主要分为手势分割、手势特征提取和手势识别三个阶段,其中,手势特征提取用于表达手势,是进行手势识别的依据,而手势识别用于区分手势,是实现手势交互的重要途径。因此,手势特征提取算法和手势识别算法是决定手势识别技术准确性和实时性的关键因素。

动态手势特征提取是指消除手势图像中的重复数据,得到能够描述手势本质属性的一系列用数值表示的特征,并通过这些特征来表达手势。ganapathyraju等人提出一种基于凸包缺陷的动态手势特征提取算法,对于凸包中的每一个凸包缺陷,根据它的起始点、中心点、距离最远点以及最远点到凸包的距离四个特征之间的相互关系,判断是否存在指尖点。但该算法只能计算出指尖的个数,并不能获取指尖点的位置信息,并且易受到噪声数据的干扰,对于相似的手势识别正确率较差。李博男等人提出一种改进k曲率的手势特征提取算法,在筛选出曲率较大的指尖点集后,采用聚类算法将候选指尖点划分成多个子集,并选择每个子集的中位点表示指尖位置。但是该算法需要依赖人为设置的曲率阈值,并且对候选指尖特征点进行聚类过滤需要消耗较长的计算时间。pathak等人提出一种基于关键帧的手势特征提取算法,通过计算和比较相邻帧手势图像的质心距离,将距离大于阈值的手势图像作为关键帧进行特征提取。但是该算法的关键帧选取阈值的设置依赖人为的先验知识,由于不同动态手势的运动速率存在差异,很难确定合适的阈值大小。丁洪丽等人提出一种关键帧选取算法,通过计算整个视频的相邻帧图像像素差的均值和方差确定关键帧选取阈值大小,但是在手势识别过程中,动态手势视频长度是未知的,因此该算法不能用于动态手势的关键帧手势图像选取。

动态手势识别是指通过某种方式计算出手势运动轨迹与预设模板的相关系数来判断手势的交互语义。基于dtw的动态手势识别算法作为一种非线性时间规整的模板匹配算法,通过弯曲输入手势序列的时间轴使之与手势模板之间达到最大程度的重叠,可以消除手势之间的时间差异,提高手势识别的准确性,但是该算法的计算复杂度较高,计算量较大,识别时间受到模板匹配次数和手势序列长度的影响,难以实现实时手势识别。郑旭为了减少dtw距离的计算次数,提出一种dtw下界距离的计算方法,利用基于小波熵的时间序列分段聚合近似表示方法,将长度不同的序列降维成等长的序列,再通过改进的dtw下界距离函数过滤相似可能性较低的序列之间的dtw距离计算,但是该算法不能用于计算手势序列之间的dtw下界距离。何超等人提出在dtw距离的计算过程中,为手势数据设置固定的边界宽度,从而减少dtw距离的计算量。但是边界宽度的设置依赖于人的先验知识,若边界宽度过小,则可能造成dtw距离偏差过大,导致错误的识别,反之则缩短的时间可以忽略不计。

综上所述,现有的动态手势识别技术中对动态手势进行特征提取需要从手势视频的每帧手势图像中提取出能够表达该手势运动轨迹和外形结构的信息,计算量较大,会增加手势特征提取的时间。同时,在手势识别阶段,采用基于dtw的动态手势识别算法计算复杂度较高,识别时间受到模板匹配的次数和手势序列长度的影响,降低了手势识别的实时性。



技术实现要素:

本发明所要解决的技术问题是提供一种基于关键帧和边界约束dtw的实时动态手势识别方法,根据动态手势的运动特性以及手势指尖的局部极值性,提取出动态手势的轨迹特征和结构特征,并通过构造dtw下界距离和设置手势数据的边界宽度,计算出待识别手势与手势模板的dtw距离,在得到手势识别结果的同时,缩短手势识别的时间。

本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于关键帧和边界约束dtw的实时动态手势识别方法,其特征在于,包括如下步骤:

步骤1)根据动态手势运动特性,针对待识别动态手势图像序列,选取关键帧手势图像;

步骤2)获得各个关键帧手势图像的指尖特征点,并结合关键帧手势图像的质心,构建该帧手势图像的手势特征向量,然后进一步构建待识别动态手势所对应的动态手势特征向量;

步骤3)针对动态手势特征向量,分别计算手势模板库中各个动态手势模板特征向量与待识别动态手势特征向量之间的dtw下界距离,获得满足预设要求的dtw下界距离所对应的各个动态手势模板特征向量;

步骤4)针对满足预设要求的dtw下界距离所对应的各个动态手势模板特征向量,分别计算各个动态手势模板特征向量与待识别动态手势特征向量之间dtw距离,基于dtw距离,实现针对待识别动态手势的识别。

作为本发明的一种优选技术方案,所述步骤1)中,根据如下步骤,针对待识别动态手势图像序列,选取关键帧手势图像;

步骤101)设动态手势图像序列为iinput={i1,i2,...,in},n为动态手势图像序列的长度,it,t∈[1,n],it表示第t帧手势图像;gt'表示第t帧手势图像的质心,表示第t帧手势图像的质心坐标;δt表示第t帧手势图像的关键帧手势图像选取阈值;表示第t1帧手势图像与第t2帧手势图像之间的质心距离;

步骤102)针对动态手势图像序列,计算相邻帧手势图像之间质心偏移角度θt的正弦值和余弦值:

步骤103)针对动态手势图像序列,计算相邻帧手势图像之间的相对运动方向dirt:

步骤104)针对手势图像it,判断dirt≠dirt-1是否成立,是则将该手势图像it作为关键帧手势图像;否则进一步针对该手势图像it,判断判断dist(t,t-1)>δt-1是否成立,是则将将该手势图像it作为关键帧手势图像;否则将该手势图像it不作为关键帧手势图像;

步骤105)根据

更新关键帧手势图像选取阈值δt。

作为本发明的一种优选技术方案,所述步骤2)包括如下步骤:

步骤201)设csk表示第k个关键帧手势图像的手势轮廓点集,nk表示第k个关键帧手势图像中手势轮廓点个数,ck,λ表示为第k个关键帧手势图像中第λ个手势轮廓点,ck,λ=(xk,λ,yk,λ)表示为第k个关键帧手势图像中第λ个手势轮廓点坐标,λ∈[1,nk],gk为第k个关键帧手势图像的质心;

步骤202)分别针对各个关键帧手势图像,根据如下公式:

计算关键帧手势图像中各个手势轮廓点ck,λ分别与对应关键帧手势图像的质心gk之间的距离dist(ck,λ,gk);

步骤203)分别针对各个关键帧手势图像,进一步分别针对关键帧手势图像中的各个手势轮廓点ck,λ,首先获得该关键帧手势图像所有手势轮廓点中满足|ck,λ-ck,λ'|<ε的手势轮廓点ck,λ',然后判断所获各个手势轮廓点ck,λ',是否均满足dist(ck,λ’,gk)≤dist(ck,λ,gk),是则将该手势轮廓点ck,λ加入该关键帧手势图像所对应的类指尖特征点集中,否则不对该手势轮廓点ck,λ进行任何处理,如此完成针对该关键帧手势图像中各个手势轮廓点的上述操作,获得该关键帧手势图像所对应的类指尖特征点集,进而获得各个关键帧手势图像所对应的类指尖特征点集;其中,ε>0,ε表示预设范围阈值;

步骤204)分别针对各个关键帧手势图像,计算获得关键帧手势图像所对应的凸包曲线hullk,进而获得各个关键帧手势图像分别所对应的凸包曲线hullk;

步骤205)分别针对各个关键帧手势图像,进一步分别针对关键帧手势图像所对应类指尖特征点集中的各个类指尖特征点,若类指尖特征点属于该关键帧手势图像所对应的凸包曲线,则将该类指尖特征点添加到该关键帧手势图像所对应的指尖特征点集,如此完成针对该关键帧手势图像所对应类指尖特征点集中各个类指尖特征点的上述操作,获得该关键帧手势图像所对应的指尖特征点集,进而获得各个关键帧手势图像所对应的指尖特征点集;

步骤206)分别针对各个关键帧手势图像,获得关键帧手势图像所对应指尖特征点集中指尖特征点个数,结合该关键帧手势图像的质心,构建该关键帧手势图像的手势特征向量,然后进一步构建待识别动态手势所对应的动态手势特征向量。

作为本发明的一种优选技术方案,所述步骤3)中,分别针对手势模板库中的各个动态手势模板特征向量,执行如下步骤,分别计算手势模板库中各个动态手势模板特征向量与所获待识别动态手势特征向量之间的dtw下界距离,并针对dtw下界距离进行判断,进而获得满足预设要求的dtw下界距离所对应的各个动态手势模板特征向量;

步骤301)设待识别的动态手势特征向量为其中μ∈[1,n],n为vi的长度;为vi中所有质心坐标的集合,为gi在水平方向上的投影,为gi在垂直方向上的投影;为vi中所有指尖特征的集合;手势模板库中动态手势模板特征向量为其中k∈[1,m],m为vt的长度;为vt中所有质心坐标的集合,为gt在水平方向上的投影,为gt在垂直方向上的投影;为vt中所有指尖特征的集合。max为n和m的最大值,min为n和m的最小值;

步骤302)重定位gi和gt,得到起始点相同的手势轨迹序列gi'和gt';

步骤303)采用插值法在gi'和gt'的起始位置分别添加max+1-n和max+1-m个起始点坐标得到长度为max+1的手势序列gi+={gi*,gi'},和gt+={gt*,gt'},

步骤304)计算gi+在水平方向和垂直方向上的变化程度:

diff_x=max(xi+)-min(xi+),diff_y=max(yi+)-min(yi+)

其中max()表示序列中的最大值,min()表示序列中的最小值;

步骤305)若diff_x≥diff_y,则采用lb_kough算法计算xi+和xt+的dtw下界距离lb_d(xi+,xt+);否则计算yi+和yt+的dtw下界距离lb_d(yi+,yt+);

步骤306)判断lb_d(xi+,xt+)或lb_d(yi+,yt+)是否大于当前预设最小dtw距离,是则该动态手势模板特征向量不满足预设要求,否则该动态手势模板特征向量满足预设要求。

作为本发明的一种优选技术方案,所述步骤4)中,针对满足预设要求的dtw下界距离所对应的各个动态手势模板特征向量,基于如下定义,执行如下步骤,并基于dtw距离,实现针对待识别动态手势的识别;

定义手势方向序列fg={subfg1,...,subfgα},subfg={dirω,lenω,bandω},ω∈{1,...,α},其中,α为子序列的个数,dirω为第ω个子序列的运动方向,lenω为具有相同运动方向的连续轨迹数据的个数,bandω为该子序列的边界宽度;

步骤401)计算gi'中相邻手势轨迹数据g'μ和g'μ-1之间的向量坐标,再利用freeman-4链码计算该向量的方向码值c'μ:

最后将gi'中所有码值相同的连续手势数据进行合并,得到若干手势方向子序列subfgi',组合后得到gi'的手势方向序列fgi',同理构造gt'的手势方向序列fgt';

步骤402)比较fgi'和fgt'中具有相同下标的子序列,若子序列的方向码值相同,则选择这两个子序列中较大的长度作为候选边界宽度cband,再将cband与允许的边界宽度上界iband比较,通常设置选择二者最小值作为该子序列对应的所有手势数据的边界宽度;否则设置该子序列的对应的所有手势数据的边界宽度为iband;

步骤403)基于动态规划的思想在每个手势数据的边界宽度范围内寻找最优弯曲路径,得到gi'和gt'的dtw距离dtw(gi',gt');

步骤404)针对计算得到的所有dtw距离进行降序排序,若存在某个dtw距离与最小dtw距离的绝对差值小于阈值,跳到步骤405);否则将最小dtw距离对应的动态手势模板作为识别结果;

步骤405)计算ci和ct之间的结构距离,沿用相同的dtw最优弯曲路径,对路径节点上的进行异或,并对异或结果进行累加,得到ci和ct的结构距离cd(ci,ct),最后选择结构距离最小的动态手势模板作为识别结果。

本发明所述一种基于关键帧和边界约束dtw的实时动态手势识别方法采用以上技术方案与现有技术相比,具有以下技术效果:

(1)本发明设计的基于关键帧和边界约束dtw的实时动态手势识别方法,考虑了动态手势的运动方向和运动速率,本发明通过比较相邻帧手势图像之间的运动方向,将运动方向发生改变的手势图像也作为关键帧图像进行特征提取;同时通过计算当前帧手势图像之前所有质心距离的平均值,动态调整关键帧手势图像选取阈值的大小,从而减少动态手势的关键信息的丢失,提高手势特征提取的准确性和实时性;

(2)本发明设计的基于关键帧和边界约束dtw的实时动态手势识别方法,考虑到手势指尖点具有局部极值性,本发明通过构造距离函数并结合凸包过滤,寻找手势轮廓曲线上的局部极值点,确定手势中存在的指尖特征,可以降低指尖特征提取的时间复杂度,在保证较高准确性的同时,缩短指尖特征提取的时间;

(3)本发明设计的基于关键帧和边界约束dtw的实时动态手势识别方法,给出一种将不等长的二维手势序列转换成等长的一维手势序列的方法,可以通过计算dtw下界距离减少相似可能性较低的手势序列之间的dtw距离计算,缩短手势识别的时间;

(4)本发明设计的基于关键帧和边界约束dtw的实时动态手势识别方法,根据动态手势序列运动方向之间的关系,利用freeman链码确定手势序列中每个手势数据的配对范围,从而减少dtw距离的计算量,缩短手势识别的时间。

附图说明

图1是本发明所设计基于关键帧和边界约束dtw的实时动态手势识别方法的流程示意图;图2为本发明一实施例中进行指尖特征提取的示意图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。

如图1所示,本发明设计了一种基于关键帧和边界约束dtw的实时动态手势识别方法,实际应用过程当中,具体包括如下步骤:

步骤1)根据动态手势运动特性,采用如下步骤,针对待识别动态手势图像序列,选取关键帧手势图像。

步骤101)设动态手势图像序列为iinput={i1,i2,...,in},n为动态手势图像序列的长度,it,t∈[1,n],it表示第t帧手势图像;gt'表示第t帧手势图像的质心,表示第t帧手势图像的质心坐标;δt表示第t帧手势图像的关键帧手势图像选取阈值;表示第t1帧手势图像与第t2帧手势图像之间的质心距离。

步骤102)针对动态手势图像序列,计算相邻帧手势图像之间质心偏移角度θt的正弦值和余弦值:

步骤103)针对动态手势图像序列,计算相邻帧手势图像之间的相对运动方向dirt;

步骤104)针对手势图像it,判断dirt≠dirt-1是否成立,是则将该手势图像it作为关键帧手势图像;否则进一步针对该手势图像it,判断判断dist(t,t-1)>δt-1是否成立,是则将将该手势图像it作为关键帧手势图像;否则将该手势图像it不作为关键帧手势图像。

步骤105)根据

更新关键帧手势图像选取阈值δt。

步骤2)获得各个关键帧手势图像的指尖特征点,并结合关键帧手势图像的质心,构建该帧手势图像的手势特征向量,然后进一步构建待识别动态手势所对应的动态手势特征向量。

上述步骤2)具体包括如下步骤:

步骤201)设csk表示第k个关键帧手势图像的手势轮廓点集,nk表示第k个关键帧手势图像中手势轮廓点个数,ck,λ表示为第k个关键帧手势图像中第λ个手势轮廓点,ck,λ=(xk,λ,yk,λ)表示为第k个关键帧手势图像中第λ个手势轮廓点坐标,λ∈[1,nk],gk为第k个关键帧手势图像的质心。

步骤202)分别针对各个关键帧手势图像,根据如下公式:

计算关键帧手势图像中各个手势轮廓点ck,λ分别与对应关键帧手势图像的质心gk之间的距离dist(ck,λ,gk)。

步骤203)分别针对各个关键帧手势图像,进一步分别针对关键帧手势图像中的各个手势轮廓点ck,λ,首先获得该关键帧手势图像所有手势轮廓点中满足|ck,λ-ck,λ'|<ε的手势轮廓点ck,λ',然后判断所获各个手势轮廓点ck,λ',是否均满足dist(ck,λ’,gk)≤dist(ck,λ,gk),是则将该手势轮廓点ck,λ加入该关键帧手势图像所对应的类指尖特征点集中,否则不对该手势轮廓点ck,λ进行任何处理,如此完成针对该关键帧手势图像中各个手势轮廓点的上述操作,获得该关键帧手势图像所对应的类指尖特征点集,进而获得各个关键帧手势图像所对应的类指尖特征点集;其中,ε>0,ε表示预设范围阈值。

步骤204)分别针对各个关键帧手势图像,计算获得关键帧手势图像所对应的凸包曲线hullk,进而获得各个关键帧手势图像分别所对应的凸包曲线hullk。

步骤205)分别针对各个关键帧手势图像,进一步分别针对关键帧手势图像所对应类指尖特征点集中的各个类指尖特征点,若类指尖特征点属于该关键帧手势图像所对应的凸包曲线,则将该类指尖特征点添加到该关键帧手势图像所对应的指尖特征点集,如此完成针对该关键帧手势图像所对应类指尖特征点集中各个类指尖特征点的上述操作,获得该关键帧手势图像所对应的指尖特征点集,进而获得各个关键帧手势图像所对应的指尖特征点集。

步骤206)分别针对各个关键帧手势图像,获得关键帧手势图像所对应指尖特征点集中指尖特征点个数,结合该关键帧手势图像的质心,构建该关键帧手势图像的手势特征向量,然后进一步构建待识别动态手势所对应的动态手势特征向量。

步骤3)分别针对手势模板库中的各个动态手势模板特征向量,执行如下步骤,分别计算手势模板库中各个动态手势模板特征向量与所获待识别动态手势特征向量之间的dtw下界距离,并针对dtw下界距离进行判断,进而获得满足预设要求的dtw下界距离所对应的各个动态手势模板特征向量。

步骤301)设待识别的动态手势特征向量为其中μ∈[1,n],n为vi的长度;为vi中所有质心坐标的集合,为gi在水平方向上的投影,为gi在垂直方向上的投影;为vi中所有指尖特征的集合;手势模板库中动态手势模板特征向量为其中k∈[1,m],m为vt的长度;为vt中所有质心坐标的集合,为gt在水平方向上的投影,为gt在垂直方向上的投影;为vt中所有指尖特征的集合。max为n和m的最大值,min为n和m的最小值。

步骤302)重定位gi和gt,得到起始点相同的手势轨迹序列gi'和gt'。

步骤303)采用插值法在gi'和gt'的起始位置分别添加max+1-n和max+1-m个起始点坐标得到长度为max+1的手势序列gi+={gi*,gi'},和gt+={gt*,gt'},

步骤304)计算gi+在水平方向和垂直方向上的变化程度:

diff_x=max(xi+)-min(xi+),diff_y=max(yi+)-min(yi+)

其中max()表示序列中的最大值,min()表示序列中的最小值。

步骤305)若diff_x≥diff_y,则采用lb_kough算法计算xi+和xt+的dtw下界距离lb_d(xi+,xt+);否则计算yi+和yt+的dtw下界距离lb_d(yi+,yt+)。

步骤306)判断lb_d(xi+,xt+)或lb_d(yi+,yt+)是否大于当前预设最小dtw距离,是则该动态手势模板特征向量不满足预设要求,否则该动态手势模板特征向量满足预设要求。

步骤4)针对满足预设要求的dtw下界距离所对应的各个动态手势模板特征向量,基于如下定义,执行如下步骤,并基于dtw距离,实现针对待识别动态手势的识别。

定义手势方向序列fg={subfg1,...,subfgα},subfg={dirω,lenω,bandω},ω∈{1,...,α},其中,α为子序列的个数,dirω为第ω个子序列的运动方向,lenω为具有相同运动方向的连续轨迹数据的个数,bandω为该子序列的边界宽度。

步骤401)计算gi'中相邻手势轨迹数据g'μ和g'μ-1之间的向量坐标,再利用freeman-4链码计算该向量的方向码值c'μ:

最后将gi'中所有码值相同的连续手势数据进行合并,得到若干手势方向子序列subfgi',组合后得到gi'的手势方向序列fgi',同理构造gt'的手势方向序列fgt'。

步骤402)比较fgi'和fgt'中具有相同下标的子序列,若子序列的方向码值相同,则选择这两个子序列中较大的长度作为候选边界宽度cband,再将cband与允许的边界宽度上界iband比较,通常设置选择二者最小值作为该子序列对应的所有手势数据的边界宽度;否则设置该子序列的对应的所有手势数据的边界宽度为iband。

步骤403)基于动态规划的思想在每个手势数据的边界宽度范围内寻找最优弯曲路径,得到gi'和gt'的dtw距离dtw(gi',gt')。

步骤404)针对计算得到的所有dtw距离进行降序排序,若存在某个dtw距离与最小dtw距离的绝对差值小于阈值,跳到步骤405);否则将最小dtw距离对应的动态手势模板作为识别结果。

步骤405)计算ci和ct之间的结构距离,沿用相同的dtw最优弯曲路径,对路径节点上的进行异或,并对异或结果进行累加,得到ci和ct的结构距离cd(ci,ct),最后选择结构距离最小的动态手势模板作为识别结果。

本发明技术方案中涉及到的lb_kough算法以及freeman链码均为现有技术,详细内容可参考文献[keoghe,ratanamahatanaca.exactindexingofdynamictimewarping[j].knowledgeandinformationsystems,2005,7(3):358-386],[freemanh.computerprocessingofline-drawingimages[j].acmcomputingsurveys(csur),1974,6(1):57-97.]。

上述技术方案所设计基于关键帧和边界约束dtw的实时动态手势识别方法,考虑了动态手势的运动方向和运动速率,本发明通过比较相邻帧手势图像之间的运动方向,将运动方向发生改变的手势图像也作为关键帧图像进行特征提取;同时通过计算当前帧手势图像之前所有质心距离的平均值,动态调整关键帧手势图像选取阈值的大小,从而减少动态手势的关键信息的丢失,提高手势特征提取的准确性和实时性;而且考虑到手势指尖点具有局部极值性,本发明通过构造距离函数并结合凸包过滤,寻找手势轮廓曲线上的局部极值点,确定手势中存在的指尖特征,可以降低指尖特征提取的时间复杂度,在保证较高准确性的同时,缩短指尖特征提取的时间;并且给出一种将不等长的二维手势序列转换成等长的一维手势序列的方法,可以通过计算dtw下界距离减少相似可能性较低的手势序列之间的dtw距离计算,缩短手势识别的时间;不仅如此,根据动态手势序列运动方向之间的关系,利用freeman链码确定手势序列中每个手势数据的配对范围,从而减少dtw距离的计算量,缩短手势识别的时间。

将本发明所设计基于关键帧和边界约束dtw的实时动态手势识别方法,应用到具体实施例中,首先对待识别的动态手势进行特征提取,然后对其进行手势识别。设待识别的动态手势是一个长度为10的手势视频,其每帧手势图像的质心坐标分别为(20,20),(20,22),(20,23),(20,27),(20,30),(20,32),(22,32),(24,32),(25,32),(28,32)。从第一帧手势图像开始,计算相邻帧手势图像之间的运动方向和质心距离,并不断调整关键帧手势图像选取阈值的大小,最终得到的关键帧手势图像为第1帧、第2帧、第4帧、第5帧、第7帧和第10帧。然后对每一个关键帧手势图像进行指尖特征提取,提取出的指尖特征如图2,其中a、b、c、d、e、f、h、i为手势轮廓上的轮廓点,g为手势质心。首先计算手势轮廓上每个轮廓点与质心的距离,由于轮廓点a、b、c、d、e、f、h与质心的距离大于与它们相邻的ε个轮廓点与质心的距离,因此,将这些轮廓点添加到类指尖特征点集中。然后计算该手势的凸包曲线,因为类指尖特征点a、b、c、d、e都处在凸包曲线上,因此,将它们作为该手势的指尖特征点。最后,构造待识别手势的特征向量为:

vi={{(20,20),5},{(20,22),5},{(20,27),5},{(20,30),5},{(22,32),5},{(28,32),5}}。

然后根据提取出的特征向量进行动态手势识别。设手势模板库中存在三种动态手势类型,分别为单指、先向下后向右;五指、先向下后向右;五指、向上。每种手势类型的特征向量如下:

v1={{(45,28),1},{(45,30),1},{(45,35),1},{(45,38),1},{(47,40),1},{(53,40),1}};

v2={{(45,28),5},{(45,30),5},{(45,35),5},{(45,38),5},{(47,40),5},{(53,40),5}};

v3={{(45,28),5},{(45,26),5},{(45,24),5},{(45,21),5},{(47,15),5},{(53,13),5}}。

则动态手势识别的过程为:

(1)首先对vi进行重定位,得到与v1起始坐标相同的手势序列vi={{(45,28),5},{(45,30),5},{(45,35),5},{(45,38),5},{(47,40),5},{(53,40),5}}

(2)计算vi和v1的dtw距离。利用freeman-4链码,计算得到vi和v1的手势方向序列fgi={{1,4,0},{0,2,0}}和fg1={{1,4,0},{0,2,0}}。通过比较fgi和fg1中具有相同下标的子序列,得到fgi中两个子序列的候选边界宽度分别为cband1=4和cband2=2。由于允许的边界宽度上界cband1>iband,cband2<iband,因此,fgi对应的所有手势数据的边界宽度为3,对应的所有手势数据的边界宽度为2。最后在边界宽度范围内进行dtw距离计算,得到vi和v1的dtw距离dtw(vi,v1)=0。因此,设置此时的最小dtw距离min_dtw为0,识别结果为v1

(3)计算vi和v2的dtw下界距离。首先采用与步骤(1)相同的方法对vi重定位,得到与v2具有相同起始坐标的手势序列。由于vi在垂直方向上的变化程度大于在水平方向上的变化程度,因此计算出vi和v2在垂直方向上投影集合的dtw下界距离lb_d(yi,y2)=0。

(4)计算vi和v2的dtw距离。因为lb_d(yi,y2)=min_dtw,因此采用与步骤(2)相同的方法计算出vi和v2的dtw距离dtw(vi,v2)=0。由于|dtw(vi,v2)-min_dtw|=0,因此分别计算vi和v1、vi和v2的结构距离cd(ci,c1)=6,cd(ci,c2)=0。因为cd(ci,c1)>cd(ci,c2),因此更新最小dtw距离min_dtw=0,识别结果为v2

(5)计算vi和v3的dtw下界距离。首先采用与步骤(1)相同的方法对vi重定位,得到与v3具有相同起始坐标的手势序列。然后计算vi和v3在垂直方向上投影集合的dtw下界距离lb_d(yi,y3)=72。因为lb_d(yi,y3)>min_dtw,因此跳过vi和v3的dtw距离计算。

(6)最终得到最小dtw距离min_dtw=0,识别结果为v2对应的动态手势类型,即五指、先向下后向右。

由于这个例子较为简单,实际情况中若进行dtw下界距离计算的动态手势序列长度不同,需要采用插值法将不同长度的手势序列转换成长度相同的手势序列,再进行dtw下界距离计算。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

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