首页 / 专利库 / 视听技术与设备 / 运动补偿时间滤波 / 基于双目视觉的IPT模拟训练手势识别方法

基于双目视觉的IPT模拟训练手势识别方法

阅读:957发布:2020-05-11

专利汇可以提供基于双目视觉的IPT模拟训练手势识别方法专利检索,专利查询,专利分析的服务。并且本 发明 公开一种基于 双目视觉 的IPT模拟训练 手势识别 方法,根据VR应用的特点改进其交互方式,分别在手势分割、手势 跟踪 及手势识别三个方面进行创新性改进;手势分割时通过背景建模、目标运动趋势估计等方法来补偿由于 运动模糊 产生的前景分割图像中目标丢失现象,手势跟踪时利用 色度 信息和深度信息的组合,通过轮廓拟合实现在操作飞行 模拟器 时的运动手势的跟踪,手势识别时提出扩展Haar-like特征和改进的Adaboost方法并用于手形分类,并定义“状态区”,获得了良好的动态手势识别率,提高了操作时的使用体验,使操作人员能够精准的查看操作时的手部动作,有效提高操作训练效率,降低训练成本。,下面是基于双目视觉的IPT模拟训练手势识别方法专利的具体信息内容。

1.基于双目视觉的IPT模拟训练手势识别方法,其特征在于,包括以下步骤:
步骤1、图像采集:采集待识别手势的左右图像对,并对其进行滤波和降噪处理以获得高清图像;
步骤2、手势分割:基于双目视觉技术对步骤1所采集的左右图像对进行处理,以获得其深度信息,并基于Codebook背景建模算法从高清图像中分割出运动过程中的手部图像;
步骤3、手势跟踪:对分割出的手部图像进行轮廓提取,并采用基于轮廓的Level Sets算法进行手部轮廓曲线拟合,得到手部的三维位姿信息;
步骤4、手势识别:基于改进Haar-like特征和Adaboost算法对手势跟踪得到的手形信息进行分类,得到手形的类别信息,并定义“状态区”将动态手势转换为不同模式的状态变化串实现手势动态识别;
步骤5、虚实交互:将手势识别得到的手势类别信息作为指令和虚拟环境中的物体进行交互,进而驱动虚拟手进行相应的位姿变化,实现IPT训练模拟。
2.根据权利要求1所述的基于双目视觉的IPT模拟训练手势识别方法,其特征在于:所述步骤2中进行手势分割时具体采用以下方式:
步骤21、获取深度图像:对采集的左右图像对进行立体校正,得到校正后的立体图像对,然后基于立体匹配和三计算得到深度图像;
步骤22、获取前景掩码图:首先选择至少一左图像建立CodeBook背景模型,并检测前景,即运动中的手部;然后更新CodeBook背景模型,并对CodeBook背景模型进行过滤,得到前景掩码图;
步骤23、获取深度前景图像和深度缺失图像:通过深度图像和参照物所在的位置的深度信息生成深度前景图像和深度缺失图像;
步骤24、获取动态深度缺失图像:通过获取的前景掩码图和深度缺失图像进行“与”运算,得到动态深度缺失图像;
步骤25、获取并更新动态屏蔽图像:通过对加入动态深度缺失图像中的每个像素在序列帧中出现的时间顺序进行计数以获取动态屏蔽图像,并将动态屏蔽图像中所有不小于“0”的像素点的值减去1来更新动态屏蔽图像;
步骤26、获取运动补偿图像:通过动态深度缺失图像和动态屏蔽图像获取运动补偿图像:
若动态深度缺失图像任一位置像素的值为“1”,且动态屏蔽图像中对应位置像素的值等于“0”,则运动补偿图像所对应位置像素的值赋为“1”,同时将动态屏蔽图像中对应的位置的值设为阈值C,其中,C大于0;
若动态深度缺失图像任一位置像素的值为“1”,且动态屏蔽图像中对应位置像素的值不等于“0”,则运动补偿图像所对应位置像素的值为“0”,同时将动态屏蔽图像中对应位置像素的值同样设为阈值C;
若动态深度缺失图像所对应的位置的值为“0”,则运动补偿图像所对应位置赋为“0”,动态屏蔽图像中对应位置像素的值维持原值;
步骤27、计算被跟踪目标的深度信息,计算并标记前景运动行:
逐行扫描深度前景图像,找到像素值连续为“1”的串,记录该行最长串的特征,并将该行标记为“前景运动行”,通过深度图获取该行中存在的跟踪目标深度信息;
步骤28、计算被跟踪目标的缺失的深度信息,生成运动补偿候补集合L;
步骤29、补偿深度前景图像:在运动补偿候补集合L中,筛选出与第k-1帧处理后得到的对应行的结果最为相似的特征值,并将其作为图像缺失补充值,填充到深度前景图像对应的位置,获得补偿后的深度前景图像,从而在当前深度实时前景图像中分割出手部图像。
3.根据权利要求1所述的基于双目视觉的IPT模拟训练手势识别方法,其特征在于:所述步骤3中,进行手势跟踪时主要采用以下方式:
步骤31、基于手势分割后的手部图像进行轮廓提取;
步骤32、对步骤31所提取的轮廓进行曲线平滑处理,基于双循环算法来近似轮廓演化过程,同时消除离散函数计算产生的误差;
步骤33、获取三维手势信息,实现手势跟踪。
4.根据权利要求3所述的基于双目视觉的IPT模拟训练手势识别方法,其特征在于:所述步骤31中,具体包括:
(1)建立目标跟踪模型:在传统Level Sets方法颜色模型基础上,将颜色模型和深度模型用一个比例因子α(0<α<1)进行线性组合形成最终的融合了深度信息的表观模型;
(2)基于所构建的目标跟踪模型,采用Level Sets算法求解轮廓曲线:
将要输出的手部轮廓曲线S用定义在大小为M1*M2*…*MK的网格上的零平集函数Ф来表示;
设网格上一个点的坐标为x=(x1,x2,…,xK),将被手部轮廓所包围的网格格点的集合表示为Ω,而背景中的网格格点的集合表示为D\Ω;
轮廓演变分析将网格中的每个点分类到前景或者背景区域中,分类的结果通过Ф表示,根据像素点在轮廓的内部还是外部将对应的Ф值取反,然后在像素点位置处将轮廓每次移动一个网格点,通过该操作,在网格上实现任意的形状边界,得到最终的轮廓曲线S。
5.根据权利要求1所述的基于双目视觉的IPT模拟训练手势识别方法,其特征在于:所述步骤4进行手势识别时,具体采用以下方式:
步骤41、静态手势识别:基于扩展Haar-like特征和改进Adaboost的手形分类算法判断手形并对其进行分类;
步骤42、动态手势识别:定义“状态区”,将动态手势转换为不同模式的状态变化串,然后通过检测模式串来识别不同的动态手势;
步骤43、手势交互:将静态手势识别得到的手势类别信息,结合动态手势识别得到的手势运动状态信息,然后分析出特定手形的特定运动轨迹的语义,与虚拟环境中的虚拟物体进行交互。
6.根据权利要求5所述的基于双目视觉的IPT模拟训练手势识别方法,其特征在于:所述步骤41静态手势识别时,包括:
(1)扩展Haar-like特征:
引入随机特征,即随机产生1至k1个白色子矩形区域和1至k2个黑色子矩形区域,每个白色子矩形和黑色子矩形的大小和位置也是随机的;然后基于积分图在常数时间内计算出Haar-like矩形特征;
(2)Adaboost训练分类器:
对Adaboost的权重更新规则提出改进,增加一个权重的截断值θ,结合样本当前权重值是否大于θ,来决定如何更新权重值,假设训练样本为(x1,y1),…,(xm,ym),所述训练样本即为手势跟踪得到的手势三维信息;即得到改进的Adaboost更新规则如公式(14)所示:
其中,xi为第i个训练样本的特征值向量,yi为目标属性,αt为关于分类器错误率的参数;Zt为归一化因子,Dt+1(i)为每个训练样本的权重值,i=1…m,t=1…T,T为训练迭代的次数;ht为弱分类器。
7.根据权利要求5所述的基于双目视觉的IPT模拟训练手势识别方法,其特征在于:所述步骤42中在进行动态手势识别时:
(1)首先以最开始检测到的手掌的位置为中心生成一大一小两个矩形窗口,分别称之为外部窗口和内部窗口,其中内部窗口位于外部窗口之内;
(2)然后在外部窗口四周的边界处定义宽度为wo个像素的四个矩形的“状态区”,同时在内部窗口四周的边界处定义宽度为wi个像素的四个矩形的“状态区”;
(3)定义了状态区之后,对状态区进行编号,对水平方向内部窗口定义的四个状态区编号为1、2、3、4,外部窗口定义的四个状态区编号为b、c、d、e,状态区之外的区域编号为0;对垂直方向内部窗口定义的四个状态区编号为6、7、8、9,外部窗口定义的四个状态区编号为g、h、i、j,状态区之外的区域编号为5;
(4)在动态手势运动过程中,设定人手位于的状态区的编号为手势的状态;
水平方向上,把0、1、2、3、4五个状态称为内部状态,记为a;b、c、d、e称为外部状态;
垂直方向上,把5、6、7、8、9五个状态称为内部状态,记为f;g、h、i、j称为外部状态;
那么动态手势可以定义为状态之间的转移,若通过串的形式记录下来,会形成一个状态变化串,并且不同类别的动态手势会形成不同的串模式;
(5)定义了不同动态手势的串模式后,通过记录手势运动过程中的状态变化串,即可判断相应类别的动态手势。

说明书全文

基于双目视觉的IPT模拟训练手势识别方法

技术领域

[0001] 本发明属于计算机视觉/人机交互领域,具体涉及一种基于双目视觉的IPT模拟训练手势识别方法。

背景技术

[0002] 目前手势识别技术主要分为基于数据手套的识别技术和基于视觉的识别技术。基于数据手套的识别技术是使用传感器设备将手和手指运动的信息转化为计算机可理解的控制命令,该技术通过附加的传感器设备采集手势和手势运动数据;基于视觉的技术是通过摄像头采集人的手势动作,通过视频图像处理和理解技术将其转化为计算机可理解的命令以达到实现人机互动效果,不需要穿戴任何附加设备就能实现与计算机的自然交互。
[0003] 但是,数据手套的核心部件通常相当昂贵,而且需要穿戴后才能操作机器,而且用户佩戴后交互极度不自然,与真实交互操作存在较大差异,不能给操作者带来很好的用户体验。而现有的基于视觉的识别技术多数是基于单目相机的,在用户剧烈运动时容易造成前景分割图像中目标手势的丢失问题,单纯基于颜色进行手势的跟踪很容易受到环境光的影响而造成跟踪丢失的问题,进而会导致识别精度降低。
[0004] 在IPT(Integrated Procedures Trainer,综合流程训练器,是航天领域中重要的训练设备)系统中,传统的触觉交互操作只能对操作顺序进行模拟,无法做到操作环境的模拟。利用VR(Virtual Reality)技术对操作人员操作环境进行模拟,能够有效提高操作训练效率,考虑到VR本身的封闭性,为了更好的展现操作的动作,亟待提出一种使操作员能够精准的查看操作时的手部动作,从而更精确的执行操作训练的方案。

发明内容

[0005] 本发明针对现有手势识别方法存在的缺陷,提出一种基于双目视觉的IPT模拟训练手势识别方法,能够获得良好的动态手势识别率,有效提高操作时的使用体验。
[0006] 本发明是采用以下的技术方案实现的:一种基于双目视觉的IPT模拟训练手势识别方法,包括以下步骤:
[0007] 步骤1、图像采集:采集待识别手势的左右图像对,并对其进行滤波和降噪处理以获得高清图像;
[0008] 步骤2、手势分割:基于双目视觉技术对步骤1所采集的左右图像对进行处理,以获得其深度信息,并基于Codebook背景建模算法从高清图像中分割出运动过程中的手部图像;
[0009] 步骤3、手势跟踪:对分割出的手部图像进行轮廓提取,并采用基于轮廓的Level Sets算法进行手部轮廓曲线拟合,得到手部的三维位姿信息;
[0010] 步骤4、手势识别:基于改进Haar-like特征和Adaboost算法对手势跟踪得到的手形信息进行分类,得到手形的类别信息,并定义“状态区”将动态手势转换为不同模式的状态变化串实现手势动态识别;
[0011] 步骤5、虚实交互:将手势识别得到的手势类别信息作为指令和虚拟环境中的物体进行交互,进而驱动虚拟手进行相应的位姿变化,实现IPT训练模拟。
[0012] 进一步的,所述步骤2中进行手势分割时具体采用以下方式:
[0013] 步骤21、获取深度图像:对采集的左右图像对进行立体校正,得到校正后的立体图像对,然后基于立体匹配和三计算得到深度图像;
[0014] 步骤22、获取前景掩码图:首先选择至少一左图像建立CodeBook背景模型,并检测前景,即运动中的手部;然后更新CodeBook背景模型,并对CodeBook背景模型进行过滤,得到前景掩码图;
[0015] 步骤23、获取深度前景图像和深度缺失图像:通过深度图像和参照物所在的位置的深度信息生成深度前景图像和深度缺失图像;
[0016] 步骤24、获取动态深度缺失图像:通过获取的前景掩码图和深度缺失图像进行“与”运算,得到动态深度缺失图像;
[0017] 步骤25、获取并更新动态屏蔽图像:通过对加入动态深度缺失图中的每个像素在序列帧中出现的时间早晚情况进行计数获取动态屏蔽图像,并将动态屏蔽图像中所有不小于“0”的像素点的值减去1来更新动态屏蔽图像;
[0018] 步骤26、获取运动补偿图像:通过动态深度缺失图像和动态屏蔽图像获取运动补偿图像:
[0019] 若动态深度缺失图像任一位置像素的值为“1”,且动态屏蔽图像中对应位置像素的值等于“0”,则运动补偿图像所对应位置像素的值赋为“1”,同时将动态屏蔽图像中对应的位置的值设为阈值C,其中C大于0;
[0020] 若动态深度缺失图像任一位置像素的值为“1”,且动态屏蔽图像中对应位置像素的值不等于“0”,则运动补偿图像所对应位置像素的值为“0”,同时将动态屏蔽图像中对应位置像素的值仍然设为C;
[0021] 若动态深度缺失图像所对应的位置的值为“0”,则运动补偿图像所对应位置赋为“0”,动态屏蔽图像中对应位置像素的值维持原值;
[0022] 步骤27、计算被跟踪目标(即手势)的深度信息,计算并标记前景运动行:
[0023] 逐行扫描深度前景图像,找到像素值连续为“1”的串,记录该行最长串的特征,并将该行标记为“前景运动行”,通过深度图获取该行中存在的跟踪目标深度信息;
[0024] 步骤28、计算被跟踪目标的缺失的深度信息,生成运动补偿候补集合L;
[0025] 步骤29、补偿深度前景图像:在运动补偿候补集合L中,筛选出与第k-1帧处理后得到的对应行的结果最为相似的特征值,并将其作为图像缺失补充值,填充到深度前景图像对应的位置,获得补偿后的深度前景图像,从而在当前深度实时前景图像中分割出手部图像。
[0026] 进一步的,所述步骤3中,进行手势跟踪时主要采用以下方式:
[0027] 步骤31、基于手势分割后的手部图像进行轮廓提取;
[0028] 步骤32、对步骤31所提取的轮廓进行曲线平滑处理,基于双循环算法来近似轮廓演化过程,同时消除离散函数计算产生的误差;
[0029] 步骤33、获取三维手势信息,实现手势跟踪。
[0030] 进一步的,所述步骤31中,具体包括:
[0031] (1)建立目标跟踪模型:在传统Level Sets方法颜色模型基础上,将颜色模型和深度模型用一个比例因子α(0<α<1)进行线性组合形成最终的融合了深度信息的表观模型;
[0032] (2)基于所构建的目标跟踪模型,采用Level Sets算法求解轮廓曲线:
[0033] 将要输出的手部轮廓曲线S用定义在大小为M1*M2*…*MK的网格上的零平集函数Ф来表示;
[0034] 设网格上一个点的坐标为x=(x1,x2,…,xK),将被手部轮廓所包围的网格格点的集合表示为Ω,而背景中的网格格点的集合表示为D\Ω;
[0035] 轮廓演变分析将网格中的每个点分类到前景或者背景区域中,分类的结果通过Ф表示;根据像素点在轮廓的内部还是外部将对应的Ф值取反,然后在像素点位置处将轮廓每次移动一个网格点,通过重复这种操作,可以在网格上实现任意的形状边界,得到最终的轮廓曲线S。
[0036] 进一步的,所述步骤4进行手势识别时,具体采用以下方式:
[0037] 步骤41、静态手势识别:基于扩展Haar-like特征和改进Adaboost的手形分类算法判断手形并对其进行分类;
[0038] 步骤42、动态手势识别:定义“状态区”,将动态手势转换为不同模式的状态变化串,然后通过检测模式串来识别不同的动态手势;
[0039] 步骤43、手势交互:将静态手势识别得到的手势类别信息,结合动态手势识别得到的手势运动状态信息,然后分析出特定手形的特定运动轨迹的语义,与虚拟环境中的虚拟物体进行交互。
[0040] 进一步的,所述步骤41静态手势识别时,包括:
[0041] (1)扩展Haar-like特征:
[0042] 引入随机特征,即随机产生1至k1个白色子矩形区域和1至k2个黑色子矩形区域,每个白色子矩形和黑色子矩形的大小和位置也是随机的;然后基于积分图在常数时间内计算出Haar-like矩形特征;
[0043] (2)Adaboost训练分类器:
[0044] 对Adaboost的权重更新规则提出改进,增加一个权重的截断值θ,结合样本当前权重值是否大于θ,来决定如何更新权重值,假设训练样本(即手势跟踪得到的手势三维信息)为(x1,y1),…,(xm,ym),即得到改进的Adaboost更新规则如公式(14)所示:
[0045]
[0046] 其中,xi为第i个训练样本的特征值向量,yi为目标属性,αt为关于分类器错误率的参数;Zt为归一化因子,Dt+1(i)为每个训练样本的权重值,i=1…m,t=1…T,T为训练迭代的次数;ht为弱分类器。
[0047] 进一步的,所述步骤42中在进行动态手势识别时:
[0048] (1)首先以最开始检测到的手掌的位置为中心生成一大一小两个矩形窗口,分别称之为外部窗口和内部窗口,其中内部窗口位于外部窗口之内;
[0049] (2)然后在外部窗口四周的边界处定义宽度为wo个像素的四个矩形的“状态区”,同时在内部窗口四周的边界处定义宽度为wi个像素的四个矩形的“状态区”;
[0050] (3)定义了状态区之后,对状态区进行编号,对水平方向内部窗口定义的四个状态区编号为1、2、3、4,外部窗口定义的四个状态区编号为b、c、d、e,状态区之外的区域编号为0;对垂直方向内部窗口定义的四个状态区编号为6、7、8、9,外部窗口定义的四个状态区编号为g、h、i、j,状态区之外的区域编号为5;
[0051] (4)在动态手势运动过程中,设定人手位于的状态区的编号为手势的状态;
[0052] 水平方向上,把0、1、2、3、4五个状态称为内部状态,记为a;b、c、d、e称为外部状态;
[0053] 垂直方向上,把5、6、7、8、9五个状态称为内部状态,记为f;g、h、i、j称为外部状态;
[0054] 那么动态手势可以定义为状态之间的转移,若通过串的形式记录下来,会形成一个状态变化串,并且不同类别的动态手势会形成不同的串模式;
[0055] (5)定义了不同动态手势的串模式后,通过记录手势运动过程中的状态变化串,即可判断相应类别的动态手势。
[0056] 与现有技术相比,本发明的优点和积极效果在于:
[0057] 本方案在进行手势识别时,获取检测目标的深度信息,实时获取目标位置,再结合有效的跟踪算法,可以将运动目标有效的分割并实时跟踪目标,同时识别预定的手势转换为交互时的输入信号,从而可以替代触摸屏及数据手套等设备,进行低成本高精度的人机交互。本方案的提出使得在飞行模拟器的虚拟环境中,虚拟手能够实时地与飞行模拟器系统进行流畅的人机交互,提高了操作时的使用体验,保证操作人员能够精准的查看操作时的手部动作,有效提高操作训练效率,降低训练成本。附图说明
[0058] 图1为本发明实施例所述手势识别方法原理框图
[0059] 图2为本发明实施例深度图像获取过程示意图;
[0060] 图3为本发明实施例所述手势分割原理示意图;
[0061] 图4为本发明实施例手部轮廓曲线的隐式表达示意图,浅灰色的像素点形成Lout,深灰色的像素点形成Lin,其中,图(a)为在level-set方法中轮廓C的隐式表示,图(b)隐式表示轮廓的运动可以通过交换Lin和Lout中的点来实现;
[0062] 图5为传统的Haar-like特征,其中图(a)、(b)表示边界特征,图(c)、(d)表示线特征,图(e)表示中心环绕特征;
[0063] 图6为本发明实施例引入的新Haar特征示意图,其中,图(a)表示随机生成的2个白色子矩形和2个黑色子矩形的新Haar特征,图(b)表示随机生成的1个白色子矩形和2个黑色子矩形的新Haar特征;
[0064] 图7为本发明实施例所述积分示意图;
[0065] 图8为本发明实施例所述状态区的示意图。

具体实施方式

[0066] 为了能够更清楚的理解本发明的上述目的和优点,下面结合附图对本发明的具体实施方式做详细地描述:
[0067] 本实施例提出一种基于双目视觉的IPT模拟训练手势识别方法,采用基于双目视觉的识别技术进行手势识别,针对视觉手势识别过程中的手势分割、手势跟踪及手势识别进行创新性改进,分别提出了基于深度图像和背景建模的手势分割方法、基于深度特征的Level Sets手势跟踪方法和基于扩展Haar-like特征和改进Adaboost的手形分类方法。具体的,如图1所示,本实施例所述手势识别方法的原理框图:
[0068] 步骤1、图像采集:通过视频采集及预处理模获得待识别手势信息:
[0069] 视频采集及预处理模块通过两个高清摄像头(所述摄像头可采用双目摄像头、鱼眼摄像头或深度摄像机)采集人手的左右图像对,并通过中值滤波去除图像中存在的噪声点,得到降噪后的高清图像;
[0070] 步骤2、手势分割:根据步骤1所获得的降噪后的高清图像,通过手势分割模块基于左右图像对解算出其深度信息,并基于Codebook背景建模算法从中分割出运动过程中手部所在的区域;
[0071] 步骤3、手势跟踪:基于手势跟踪模块对手势分割模块分割后的手部图像进行轮廓提取,并采用基于轮廓的Level Sets算法进行手部轮廓曲线拟合,得到手部的三维位姿信息;
[0072] 步骤4、手势识别:基于手势识别模块采用Haar-like特征和Adaboost算法对手势跟踪得到的手形信息进行分类,得到手形的类别信息,并通过定义“状态区”将动态手势转换为不同模式的状态变化串,以特定的模式串来识别动态手势;
[0073] 步骤5、虚实交互:通过虚实注册模块将得到的手势类别信息作为指令和虚拟环境中的物体进行交互,虚实注册模块将手势跟踪模块得到的手部三维位姿信息通过转换矩阵映射到虚拟坐标系,驱动虚拟手进行相应的位姿变化。
[0074] 具体的,下面对本发明手势识别方法进行详细的介绍:
[0075] 步骤2、手势分割:因为在虚拟环境里,用户操作时手部会处于不断的运动状态,这会造成运动模糊的问题,为手势分割带来巨大挑战。在进行手势分割时,本方案基于深度图像和Codebook背景建模实现,即使存在运动模糊的情况下,也取得了较好的分割结果。只需要确保在运动过程中某一具体部位在某一帧能够得到深度信息,就可以用来补偿由于运动模糊产生的运动目标所在区域深度信息缺失而导致的前景分割图像中目标手势的丢失,可以避免受到目标运动模糊的影响,从而有效地解决基于立体视觉的手势分割问题,实现从采集到使用者的左右连续图像中实时分割出手部图像,具体原理如图3所示:
[0076] 手势分割的核心原理为:通过背景建模、目标运动趋势估计等方法,来补偿由于运动模糊产生的运动目标所在区域深度信息缺失而导致的前景分割图像中目标的丢失,直接准确地找到待分割目标的位置信息,在前景图像中实时分割出目标。根据时间序列前景图像中目标的位置信息,推断出目标的运动趋势,作为后续帧图像中目标的分割依据,避免进行每个像素点的深度计算,有效地解决立体视觉中运动模糊目标的实时分割问题,具体的包括以下步骤:
[0077] 步骤21、获取深度图像:对双目相机采集的左右图像对进行立体校正得到校正后的图像对,之后再通过立体匹配和三角计算得到深度图像,其原理如图2所示;
[0078] 步骤22、获取前景掩码图:首先选择至少一帧左图像建立CodeBook背景模型;然后检测前景(即运动中的手部);最后间隔一定时间更新CodeBook模型,并对CodeBook进行过滤,得到前景掩码图;
[0079] 步骤23、获取深度前景图像和深度缺失图像:通过深度图像和参照物(如人脸等)所在的位置的深度信息生成深度前景图像和深度缺失图像;
[0080] 步骤24、获取动态深度缺失图像:通过获取的前景掩码图和深度缺失图像进行“与”运算,得到动态深度缺失图像;
[0081] 步骤25、更新动态屏蔽图像:将动态屏蔽图像中所有不小于“0”的像素点的值减去1;
[0082] 步骤26、获取运动补偿图像:通过动态深度缺失图像和动态屏蔽图像获取运动补偿图像。
[0083] 若动态深度缺失图像任一位置像素的值为“1”,且动态屏蔽图像中对应位置像素的值等于“0”,则运动补偿图像所对应位置像素的值赋为“1”,同时将动态屏蔽图像中对应的位置的值设为阈值C(本实施例中取C=7);
[0084] 若动态深度缺失图像任一位置像素的值为“1”,且动态屏蔽图像中对应位置像素的值不等于“0”,则运动补偿图像所对应位置像素的值为“0”,同时将动态屏蔽图像中对应位置像素的值设为C;
[0085] 若动态深度缺失图像所对应的位置的值为“0”,则运动补偿图像所对应位置赋为“0”,动态屏蔽图像中对应位置像素的值维持原值;
[0086] 步骤27、计算被跟踪目标的深度信息,计算并标记前景运动行:
[0087] 本实施例中,之所以计算并标记前景运动行,是因为前景运动行标记表示该行在第k帧前N(N为参数)帧内存在需要追踪的目标。逐行扫描深度前景图像,找到像素值连续为“1”的串(若同一行中出现这样的串的个数大于1,则在其中找出最长串),记录该行最长串的特征(用起始位置、终止位置、串长等),并将该行标记为“前景运动行”,并通过深度图获取该行中存在的跟踪目标深度信息;
[0088] 步骤28、计算被跟踪目标的缺失的深度信息,生成运动补偿候补集合L:
[0089] 若步骤27中任一行不存在像素的值为“1”的最大串,则逐点扫描运动补偿图像中对应的行,查找并记录像素的值为“1”的连续串的特征值。在步骤27中若某行(如第i行)找不到最长串,且该行在第k帧之前的N帧内已被标记为“前景运动行”,则对步骤26中获取的运动补偿图像的对应行进行逐像素点扫描,若能找到像素的值为“1”的串,则记录该行中这些串的特征并保存于运动补偿候补集合中;
[0090] 步骤29、补偿深度前景图像:在运动补偿候补集合L中筛选出与第k-1帧的处理结果中的对应行的结果最为相似的特征值并作为图像缺失补充值,填充到深度前景图像对应的位置,获得补偿后的深度前景图像,从而在当前深度实时前景图像中分割出手部图像。
[0091] 本步骤中,具体分割时,引入Codebook背景建模至关重要,通过大量实验建模对不同方法的测试比较,Codebook方法对深度图像的处理效果更好,该方法需要通过其获取前景掩码图,为之后获取动态深度缺失图像和运动补偿图像奠定基础,并进一步获取深度前景图像,由此从深度前景图像中分割出手部,避免了只有深度信息存在时由于运动模糊造成深度信息丢失而无法分割手部的问题。
[0092] 步骤3、手势跟踪:
[0093] 另外,在进行手势跟踪时,手势跟踪的目标是定位运动手势图像中人手的位置,人手是表面纹理信息弱、非刚性以及易形变的物体,其运动形式也较为复杂,因此以往的点跟踪方法、基于模板的跟踪方法不能够很好处理手势跟踪的问题;
[0094] 考虑到传统的Level Sets实现轮廓曲线演变的过程是通过求解偏微分方程,该方法的计算量非常大,这使得Level Sets方法无法应用于如手势跟踪之类的实时应用中,本方案创造性的提出基于轮廓的跟踪方法,所构建的跟踪模型是一种快速近似算法,避免了求解偏微分方程,提高了Level Sets方法中轮廓曲线演化的速度,在保证较好的跟踪效果的前提下,可以满足实时性的要求,手势跟踪模块的数据处理流程包括:轮廓曲线求解、轮廓曲线平滑处理和三维手势信息获取,具体的:
[0095] 步骤31、基于手势分割后的手部图像进行轮廓提取
[0096] 1)建立新的目标跟踪模型:
[0097] 在传统Level Sets方法颜色模型基础上结合深度模型作为新的目标跟踪模型,深度模型是将像素深度值减去人脸的深度值作为深度特征值,具体来说,将颜色模型和深度模型用一个比例因子α(0<α<1)进行线性组合形成最终的融合了深度信息的表观模型,这样跟踪算法在找到当前帧的目标时,背景和前景将一起更新;
[0098] 2)基于新的目标跟踪模型使用Level Sets算法求解轮廓曲线:
[0099] 在Level Sets方法中,一个要输出的手部轮廓曲线S用定义在一个大小为M1*M2*…*MK的网格上的零水平集函数Ф来隐含地表示。不失一般性,假设网格是均匀采样的并且采样距离为1(如数字图像),网格上一个点的坐标为x=(x1,x2,…,xK)。将被手部轮廓所包围的网格格点的集合表示为Ω,而背景中的网格格点的集合表示为D\Ω;目标是用轮廓演变分析将网格中的每个点分类到物体(前景)或者背景区域中,分类的结果通过Ф表示。
[0100] 如图4所示,定义对于手部区域Ω所有内邻接网格点形成的链表Lin和所有外邻接网格点形成的链表Lout:
[0101] Lin={x|x∈Ω且 满足y∈D\Ω}  (1)
[0102] Lout={x|x∈D\Ω且 满足y∈Ω}
[0103]
[0104] N(x)为x的数字拓扑理论中的离散邻域。
[0105] 图4(a)展示了隐式轮廓表示和手部轮廓包围区域中邻接网格点形成的两个链表。考虑下面的轮廓曲线演变方程,如公式(3)所示:
[0106]
[0107] 公式(3)的含义是通过速度场F沿着法线方向演变轮廓C。在典型的Level Sets方法中,演变过程是通过在网格上求解下面的偏微分方程实现:
[0108]
[0109] 这里Ф是Level Set函数。因为函数Ф会随着轮廓曲线C演变而不停地变化。图4(b)展示了图4(a)中的手部轮廓曲线C演变的结果。在实际运算中,结合了深度信息的新模型,用整数数组逼近Level Sets函数的方式实现快速扫描。在网格点A处的Ф值由负数变为正数,轮廓向外移动;在网格点B处的Ф值由正数变为负数,轮廓向内移动并分裂成两个轮廓。为了将轮廓在网格点A处向外移动,只需将点A从Lout移到Lin内。类似地,我们只需将网格点B从Lin移到Lout内。可以沿着轮廓曲线用最小的计算量来每次向内或向外移动C上的一个网格点。通过重复这种操作,可以在网格上实现任意的形状边界(如此可以更方便的跟踪手形的变化),并且,这种变换过程总是至少移动轮廓上的一个像素点。
[0110] 步骤32、曲线平滑处理:
[0111] 通过Level Sets方法得到的轮廓曲线,基于双循环算法来近似轮廓演化过程,同时消除离散函数计算产生的误差,第一遍循环使用基于数据的速度来演化轮廓,第二遍平滑循环,由高斯滤波引入平滑速度演变轮廓,从而引入曲率正则化过程,使用两遍循环使得轮廓曲线演变至物体边界。
[0112] 步骤33、三维手势信息的获取:
[0113] 首先通过传统的双目立体视觉的方式获得手部的三维信息,之后将双目相机获取的左右图像对传入手势分割模块并将提取轮廓后的图像的质心坐标作为特征点用于匹配,随后通过传统的区域集成神经网络算法对指尖位置进行估算,最后将人手质心位置和估算的指尖位置作为虚实注册模块的输入,驱动虚拟环境中的虚拟手的位置发生相应变化。
[0114] 本步骤中提出了一种新的运动目标的表示模型,利用色度信息和深度信息相组合,结合Level Sets轮廓跟踪算法,对手势分割模块输出的离散的手势轮廓图像进行轮廓拟合,并且结合采集到的深度信息计算出手部的深度方向的运动,从而实现在操作飞行模拟器时的运动手势的跟踪。
[0115] 步骤4、手势识别:
[0116] 在本技术方案中,手势识别模块采用Haar-like特征和Adaboost算法对手势跟踪得到的手形信息进行分类,得到手形的类别信息,并通过定义“状态区”将动态手势转换为不同模式的状态变化串,以特定的模式串来识别动态手势。最后,将得到的手势类别信息作为指令和虚拟环境中的物体进行交互。
[0117] 手势按照其空间位置是否改变可分为静态和动态手势,静态手势是指手所呈现的形状,动态手势指的是手在空间中运动形成的轨迹。手势识别模块的数据处理流程为:静态手势识别,动态手势识别,以及手势交互处理。
[0118] 在本技术方案中,通过扩展Haar-like特征算法获取静态手势分类的必要特征,并通过改进的Adaboost算法训练分类器,对手形进行分类。
[0119] 步骤41、静态手势识别:
[0120] 静态手势识别的关键技术是手形分类的技术,即判断手形是手掌或拳头等。通常的手形识别方法是从手形区域提取相关特征来完成的,例如几何矩、轮廓、凸包、点特征、线特征或者指尖特征。本技术方案采用Haar-like特征和Adaboost算法,并对其进行改进提出基于扩展Haar-like特征和改进Adaboost的手形分类算法并用于手形分类。
[0121] 1)扩展Haar-like特征:
[0122] Haar-like特征的定义是矩形窗口内白色子矩形区域中所有像素的灰度级总和减去黑色子矩形区域中所有像素的灰度级总和。常见的Haar-like特征包括边界、线和中心环绕特征,如图5所示。
[0123] 本方案在此基础上,引入一种新的特征,称为随机特征,其方法是随机产生1至k1(k1通常取值为3)个白色子矩形区域和1至k2(k2通常取值为2)个黑色子矩形区域。每个白色子矩形和黑色子矩形的大小和位置也是随机的,并且子矩形之间可以相互重叠。如图6所示。然后,借助积分图(integral image)的技术在常数时间内快速计算出Haar-like矩形特征,如图7所示。
[0124] 假设积分图为P,积分图点(x,y)处的值P(x,y)定义为以点(0,0)为左上角顶点,点(x,y)为右下角顶点围成的矩形内的所有像素的灰度值之和,如公式(7)所示:
[0125]
[0126] 其中I为原图像,I(x,y)为原图像上点(x,y)处像素的灰度值。
[0127] 用迭代方式快速计算出整幅积分图,如公式(8)所示:
[0128] P(x,y)=P(x-1,y)+P(x,y-1)-P(x-1,y-1)+I(x,y)  (8)
[0129] 其中P(-1,y)=P(x,-1)=0。
[0130] 计算矩形D(x,y,x+w,y+h)内像素的灰度值和如公式(9)所示:
[0131] RS(x,y)=P(x+w,y+h)-P(x+w,y)-P(x,y+h)+P(x,y)  (9)
[0132] 对于一幅大小为宽W高H的图像,Haar-like特征原始窗口的大小为w*h,对每个Haar-like特征会产生的特征值的个数N如公式(10)所示:
[0133]
[0134] 2)Adaboost训练分类器
[0135] Adaboost是一种迭代式的机器学习算法,将每个训练样本都赋予一个权重值,表明该样本被弱分类器选中的概率。弱分类器通常选取为只有单个结点的决策树。每次迭代过程会选出一个具有最小分类错误的弱分类器,最终由所有被选取的弱分类器通过线性组合构成一个强分类器。
[0136] 假设训练样本为(x1,y1),…,(xm,ym)这里xi为第i个训练样本的特征值向量。yi为目标属性(这里训练样本是手势跟踪得到的手势三维信息)例如在两类问题中,值为-1或+1,m为训练样本集的大小。每个训练样本的权重值为Dt(i),i=1…m,t=1…T,T为训练迭代的次数,初始化D1(i)=1/m,即最初每个样本的权重值相等。Adaboost算法的具体步骤如下:
[0137] 对于t=1,…,T:
[0138] (1)在分布Dt上训练弱分类器ht。
[0139] (2)得到分类错误率为弱分类器ht→{-1,1},其中如公式(11)所示:
[0140] εt=Pr1-Dt[ht(x1)≠y1]  (11)
[0141] (3)按公式(12)更新权重:
[0142]
[0143] 这里 Zt是一个归一化因子,使得Dt+1成为一个概率分布。算法最终输出的强分类器H如公式(13)所示:
[0144]
[0145] 如Adaboost算法的步骤(2)所述,在每轮迭代结束后,会将那些被分类错误的样本的权重值提高,可保证学习算法集中可以精去处理“困难”的训练样本。但是如果训练样本集中包含噪声样本或者其他非目标的离群样本,这些样本的权重值会过分的增大,从而产生过匹配现象,使算法的性能变差。
[0146] 为避免这种过匹配现象发生,本技术方案针对Adaboost的权重更新规则提出了改进方法,增加一个权重的截断值θ,结合样本当前权重值是否大于θ,来决定如何更新权重值,改进的Adaboost更新规则如公式(14)所示:
[0147]
[0148] 公式(14)的含义就是只有样本当前的权值小于截断值θ时,样本的权值才会被增加,否则,样本的权值都会减小。于是,即使某些噪声样本或者非目标的离群样本在每次迭代时都被错误分类,其权重值也增大太多,从而可以有效地防止发生过匹配现象。
[0149] 步骤42、动态手势识别:
[0150] 动态手势识别的关键技术是手势运动轨迹的识别技术,判断手势运动轨迹是直线运动、来回运动或是画圆运动等等。通常的方法将人手当做质心处理,只考虑质心在时间和空间上划过的轨迹特征,并对手势建立时空运动模型,例如隐尔可夫模型、神经网络模型、动态时间规整等方法来解决轨迹识别的问题,将识别动态手势的过程转化为模型匹配的过程。本技术方案通过定义“状态区”,任何动态手势可以转换为不同模式的状态变化串,然后通过检测模式串来识别不同的动态手势。
[0151] 定义“状态区”,手势运动会产生连续的状态变化串,分析状态串中的特定子串模式来判断手势,从而不需要判断手势动作的开始和结束;也不需要将手势图像序列区分为关键帧和非关键帧,同时不用长时间和大量数据训练模型,也避免了发生歧义动作被误判断的情况。
[0152] 本技术方案提出的方法先以最开始检测到的手掌的位置为中心生成一大一小两个矩形窗口,分别称之为外部窗口和内部窗口,其中内部窗口位于外部窗口之内;然后在外部窗口四周的边界处定义宽度为wo个像素的四个矩形的“状态区”,同时在内部窗口四周的边界处定义宽度为wi个像素的四个矩形的“状态区”。这里,将以上两个矩形窗口定义为水平矩形,以区别后面的垂直矩形。为了可以在三维空间对动态手势进行识别,本实施例在水平矩形之上又生成了相同的两个内嵌矩形窗口,与原水平窗口垂直,如图8所示。
[0153] 定义了状态区之后,对状态区进行编号,对水平方向内部窗口定义的四个状态区编号为1、2、3、4,外部窗口定义的四个状态区编号为b、c、d、e,状态区之外的区域编号为0;对垂直方向内部窗口定义的四个状态区编号为6、7、8、9,外部窗口定义的四个状态区编号为g、h、i、j,状态区之外的区域编号为5,如图8所示。
[0154] 在动态手势运动过程中,规定人手位于的状态区的编号为手势的状态,例如,最初人手处于水平方向区域0,则手势的状态为0。水平方向上,把0、1、2、3、4五个状态称为内部状态,记为a;b、c、d、e称为外部状态;垂直方向上,把5、6、7、8、9五个状态称为内部状态,记为f;g、h、i、j称为外部状态。那么动态手势可以定义为状态之间的转移,若通过串的形式记录下来,会形成一个状态变化串,并且不同类别的动态手势会形成不同的串模式。下表给出了几种动态手势的串模式。
[0155] 表1几种动态手势的串模式
[0156]
[0157]
[0158] 定义了不同动态手势的串模式后,只需要记录手势运动过程中的状态变化串,然后在串中搜索符合表1中定义串模式的子串,然后判断为相应类别的动态手势。
[0159] 表2动态手势识别的正确率
[0160] 手势动作 正确率左挥手(水平) ≥92.5%
右挥手(水平) ≥91.5%
上挥手(水平) ≥88%
下挥手(水平) ≥87.5%
来回轻挥(水平) ≥88.5%
时针画圆(水平) ≥87.5%
逆时针画圆(水平) ≥86.5%
前挥手(垂直) ≥85%
后挥手(垂直) ≥85%
向前单指点击(垂直) ≥89%
向前单指做下抛物线运动 ≥82.5%
[0161] 步骤43、手势交互:
[0162] 手势交互是将静态手势识别步骤得到的手势类别信息,结合动态手势识别步骤得到的手势运动状态信息,然后分析出特定手形的特定运动轨迹的语义,与虚拟环境中的虚拟物体进行交互。
[0163] 本步骤中,提出了扩展Haar-like特征和一种改进的Adaboost方法并用于手形分类,扩展的特征是一种新的随机特征,并且更新了Adaboost的权重规则,避免过匹配的发生,分类器识别包括按键和推杆等手形的准确率比原方法有了明显的提升;提出了“状态区”的定义,通过三维坐标系中识别手势状态变化串的相应模式的子串来判断操作时动态手势的类别,获得了良好的动态手势识别率,提高了操作时的使用体验,使操作人员能够精准的查看操作时的手部动作,有效提高操作训练效率,降低训练成本。
[0164] 步骤5、虚实注册模块:将虚拟的手部信息,包括位置信息及手势信息和真实的手部匹配起来,在虚拟环境中呈现。
[0165] 由于摄像机焦距和实验环境的限制,人手的运动应该被限制在一个恰当的立体空间内;同时虚拟空间中虚拟手的运动也应被限制在一定范围之内,真实手运动空间和虚拟手运动空间存在一个映射关系。三维虚实注册实现了真实环境中人手质心点坐标到虚拟环境中虚拟手坐标的转换。具体转换公式如公式(13)所示。
[0166]
[0167] 在本技术方案中,虚拟环境最终结合手势识别模块识别出的手势分类信息以及虚实注册模块获得的手部位姿信息,实现真实手部映射出的虚拟手在虚拟环境中的位姿重现和虚拟环境的交互。
[0168] 在虚拟环境中,在特定位置设置包围盒触发机制,当虚拟手随着真实手的运动进入虚拟环境的相应区域内时,根据当前虚拟手的相应的手势语义触发相应的飞行模拟器的相应动作,不同类别的手势对应不同的语义,在某些位置如虚拟模拟器仪表面板相应的按钮或推杆,需要不同的触发手势,并且不同的动态手势代表不同的推动方向,从而调整飞行模拟器内部对应参数。
[0169] 本方案根据VR应用的特点改进其交互方式,可将传统的触摸屏变更为基于VR头戴式显示设备,更方便地实现飞行模拟,同时降低IPT训练器的成本,而且该识别方法可以获取检测目标的深度信息,实时获取目标位置,在结合有效的跟踪算法,可以将运动目标有效的分割并实时跟踪目标,交互通过双目摄像机及其相应系统实现,更加节省空间,使用方便。
[0170] 以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈