手掌开合动作识别方法和装置\n技术领域\n[0001] 本发明涉及一种机器视觉人机交互领域,特别地,它提供了一种从输入的图像序列或视频中识别手掌开合手势动作的方法。\n背景技术\n[0002] 手势作为一种自然直观的交流方式,它并不需要额外的设备的辅助,就能被广泛的用于与电子设备的交互。基于计算机视觉的手势识别技术已经广泛用于人机交互。基于计算机视觉的手势识别技术接收可视化图像输入,向外输出手势姿态或手势动作的类型,由此那些受计算机控制的设备就能将不同的手势姿态或手势动作解释为不同的命令来完成交互的操作,比如开/关,点击,触摸与否或电视频道的切换等。\n[0003] 在专利文献1中,美国专利US7821541B2公开了一种对手的2个状态进行识别的方法。这个2个手的状态分别是握住的拳头状态(a closed fist)和打开的手掌状态。这里的识别是对静态的开合手掌姿态的识别。其中,只有单一的静态特征被用到,比如它是通过检测是否有3个连续的手指临近到另外一个手指的直观规则来判断是否为“开”状态。由于在实际的系统里,获得清晰的手的外形图像并不是件容易的事情(通常受距离,设备精度和光照条件影响),因此该方法并不鲁棒。此外该方法只是基于单帧图像来是识别姿态。\n[0004] 在非专利文献1中,作者为Zhou Ren的文章“Robust Hand Gesture Recognition Based on Finger-Earth Mover’s Distance with a Commodity Depth Camera”,Proceedings of the19th ACM international conference on Multi-media,MM'11,ACM,New York,NY,USA,2011,pp.1093–1096中,采用了时间序列曲线(time-series curve)来表述手的形状信息,该时间序列曲线记录了手掌轮廓上每个点到手掌中心点的相对距离。另外,该文章还定义了FEMD(Finger-Earth Mover’s Distance)距离度量算子来计算2个手形状的相似性。本质上,该方法是用模板匹配技术来实现手掌姿态的识别。虽然比起美国专利“US7821541B2”,它能识别更多的姿态,但其不足之处却是相同的。\n[0005] 在非专利文献2中,作者为Nguyen Dang Binh的文章“Real-Time Hand Tracking and Gesture Recognition System”(by Nguyen Dang Binh,Kyushu Institute of Technology),采用了伪二维隐马尔科夫模型(P2-DHMMs)来识别静态手势。这个P2-DHMM包含5个超级状态(super-states),每个超级状态下又对手掌图像的行序列进行建模,超级状态模型的拓扑结构是线性的,只允许自己状态向自己转移或转向下一个超级状态。而这篇文章的方法是对空域中对不同姿态下子区域图像的关系进行建模,而不是对时间域里的姿态转移进行建模。\n[0006] 以上的方法主要解决了静态手势识别,而手掌开合手势动作有别于静态手掌姿态,它是个动态的过程,由一系列的姿态序列从姿态“开”到“合”或从“合”到“开”组成,包括这开合状态转换过程中的半开半合的中间状态。为了识别动态手势,最重要的事情就是从特征抽取的角度或从模型的角\n[0007] 度来完成对姿态在姿态序列中的变化进行描述或建模。\n[0008] 在专利文献2中,发明人为章鹏的申请号为CN201200147172的专利申请中,公开了一种基于分类器的手势识别方法,该方法采用所谓的深度差分布算子来从几帧相邻的图像里抽取出CDDD特征来表述动作发生时前后深度差的分布规律。该CDDD是一组高维的特征向量,其维数随手势识别单元里所采用的图像的帧数而增加。比如3帧图像作为一个手势识别单元的话将对应于128维的特征向量,如果是4帧图像则为192维。一方面高维的特征向量必然要求大量的样本用于分类器的学习,另一方面,象这样用固定图像帧数作为识别单元来描述深度差分布的方法,并不能很好解决帧数变化的手势的识别问题。此外该方面只适用于深度图像,这也限制了该方法在传统彩色图像上的应用。\n[0009] 在专利文献3(中国申请号CN2013100161691.1)中,作为本申请同一发明人的熊怀欣为了解决帧数长度变化着的动态手势识别,从特征抽取的角度提出一种自适应帧长开合手势识别的方法。该方法计算用来描述开合手势姿态特征在图像序列中的最大单向差异量。此处被采用进行最大差异特征量计算的手势姿态特征从开合手势过程看去必须具有特征取值单调性的特性。\n[0010] 动态手势通常表现为时间序列下一系列姿态或位置不同的图片,为识别动态手势,常规处理方法是取一固定长度的滑动窗口在输入的图像序列上滑动,用以选择相邻的几帧图像来作为一个动作识别单元。理想情况下,滑动窗口的长度恰好等同于完成一个手势动作所需的图像帧数。但事实上,手势动作的帧长并不是固定的而是随手势操作者不同而不同,即使对同一个操作者,手势动作的长度也不尽是相同的。而且图像设备的采样速率也能影响到手势单元的长度(如果采样率高,则完成一个手势所需的图像帧多,反之则少)。\n因此将滑动窗口的长度简单的设置为一个手势平均所用的帧数并不是最有效的方式,这将为手势的识别带去较多的虚警错误或漏检错误。由此,在滑动窗口长度不变情况下如何有效的处理手掌开合手势动作所对应的图像帧数变化的情况在手势的识别过程是一个需要面对的问题。\n[0011] 此外,在一些手势控制系统中,比如“HandMouse”采用手的移动来控制光标移动并结合手掌开合动作来模拟鼠标按键的这样的系统,在开合手势动作过程中通常因手跟踪点发生位移而导致光标位置的改变,因而需明确的检测到一个手势动作的起始点和终止点时间,这样才能在手势结束的时刻回溯光标到手势开始的时刻来执行对应的手势命令。这样的问题在以前的技术中未给出合理的解决方案或未提及。\n发明内容\n[0012] 为了解决上述问题,本发明提出了一种基于隐马尔科夫模型(HMM)技术能简单快速且保持高识别率地实现手掌开合手势动作识别的方法。它不仅能自适应于手势帧数变化的情况而且能给出手势动作的起始和终止时刻。\n[0013] 根据本发明的一个方面,提供了一种手掌开合动作识别方法,包括:采用滑动窗口沿着输入图像序列移动,依次选择预定数量的连续图像序列作为一个识别单元;从作为所述识别单元的连续输入图像序列中的每一帧图像中分割出手掌形状图像;从每个所分割的手掌形状图像中抽取出代表手掌姿态的多个特征以便形成属于对应手掌图像的特征向量,并将属于同一识别单元的手掌形状图像的所抽取的特征向量的序列作为隐马尔科夫模型HMM的观察量序列;将所述观察量序列输入多个HMM中的每个独立手势HMM,计算出所述观察量序列属于对应HMM的概率;以及将所计算的概率作为特征输入分类器识别手势。\n[0014] 根据本发明的手掌开合动作识别方法,其中,所述手掌开合动作为手掌从闭合姿态到张开姿态的变化过程或从张开姿态到闭合姿态的变化过程,所述变化过程包括在闭合姿态和张开姿态之间的中间姿态。\n[0015] 根据本发明的手掌开合动作识别方法,其中,所述代表手掌姿态的特征是基于沿手掌主方向所在最小覆盖的四边形及手掌轮廓线所在凸包多边形的特征。\n[0016] 根据本发明的手掌开合动作识别方法,其中,所述特征量被量化为多个级别,每个特征值对应于一个量化的级别,并且量化后的特征向量对应于观测空间中的一观测状态。\n[0017] 根据本发明的手掌开合动作识别方法,其中,所述观察量序列的长度由开合手势图像帧数频率直方图及所指定的置信水平共同决定。\n[0018] 根据本发明的手掌开合动作识别方法,其中,所述多个HMM包括至少三个独立手势HMM,分别为开手势动作HMM、合手势动作HMM以及姿态没变化时的非开非合HMM。\n[0019] 根据本发明的手掌开合动作识别方法,其中,所述每个独立手势HMM包含N个隐状态分别对应于手掌开/合手势动作过程中的N种姿态,包括起始姿态、终止姿态及中间N-2个的过渡姿态,其中N为大于2的正整数。\n[0020] 根据本发明的手掌开合动作识别方法,其中,所述每个独立手势HMM都具有自身的拓扑结构来表明从一个隐状态到另外隐状态或到自身隐状态的状态转移关系。\n[0021] 根据本发明的另一个方面,提供了一种检测手掌开合手势动作起始帧和结束帧的方法,包括:根据上述手掌开合动作识别方法识别手掌开合动作;根据所述手掌开合动作的识别结果,解码该手势HMM模型来获得与被识别的观察序列匹配的最优的隐状态序列;以及从所获得的最优的隐状态序列确定出开合手势的起始帧和结束帧。\n[0022] 根据本发明的另一个方面,提供了一种手掌开合动作识别系统,包括:手掌图像分割单元,接收由图像采集单元输入的连续图像帧,采用滑动窗口沿着输入图像序列移动,依次选择预定数量的连续图像序列作为一个识别单元,并从所选择的每帧图像中分割出手掌图像;手掌姿态特征提取单元,从每个所分割的手掌形状图像中抽取出代表手掌姿态的多个特征以便形成属于对应手掌图像的特征向量,并将属于同一识别单元的手掌形状图像的所抽取的特征向量的序列作为隐马尔科夫模型HMM的观察量序列;HMM概率评估单元,将所述观察量序列输入多个HMM中的每个独立手势HMM,计算出所述观察量序列属于对应HMM的概率;以及手势分类器分类单元1050,将所计算的概率作为特征输入分类器识别手势。\n附图说明\n[0023] 通过阅读结合附图考虑的以下本发明的优选实施例的详细描述,将更好地理解本发明的以上和其他目标、特征、优点和技术及工业重要性。\n[0024] 图1示出了本发明实施例的一个典型应用场景示例的示意图;\n[0025] 图2示出了根据本发明实施例的手掌开合手势动作的示意说明图;\n[0026] 图3示出了根据本发明实施例的基于隐马尔科夫模型(HMM)进行手掌开合动作识别方法的总体流程图;\n[0027] 图4A示出了在一定采样率下手掌“开”或“合”手势周期内图像帧数的分布直方图的一个实例;\n[0028] 图4B示意性示出了是对应于图4A的概率分布图;\n[0029] 图5A-5F示意性描述了提取描述手掌姿态的特征量的过程;\n[0030] 图6示意性表示了一合手势动作过程为例示意性表示HMM隐状态的定义;\n[0031] 图7示意性显示了3个不同手势HMM模型中隐状态转移的拓扑结构;\n[0032] 图8示意性描述了手势识别过程;\n[0033] 图9示出了根据本发明一个实施例的手势动作合并判别方法的流程图;\n[0034] 图10是示出按照本发明实施例的手掌开合手势识别(人机交互)系统的总体硬件框图。\n具体实施方式\n[0035] 为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。\n[0036] 图1示出了本发明实施例的一个典型应用场景示例的示意图。。在操作者的正前方正对操作者位置放置一相机(深度相机或传统相机),操作者面对显示设备,运用他的手进行各种非接触式远程操作,如本发明所关注的手掌开合手势动作。在这个交互过程中,无需任何诸如鼠标红外笔等特定的外部辅助设备,只是使用手势并结合当前操作上下文信息即可。\n[0037] 图2示出了根据本发明实施例的手掌开合手势动作的示意说明图。此处的手掌开合手势动作是一个手掌从姿态“开”到姿态“合”或从“合”到“开”的状态变化序列,包括在这两者最终状态间逐步变化的半开半合中间状态。“开”姿态为五指张开,“合”为五指闭合为拳头状或五指汇聚为一点呈爪状。在一个手势周期内通常经历的图像帧数不等,这主要依赖于操作者动作快慢的习惯和相机的采用速率。以正常的操作速度和30帧/秒采样率计算,完成单个开/合手手势的图像帧数从2帧到6帧不等。\n[0038] 图3示出了根据本发明实施例的基于隐马尔科夫模型(HMM)(将在后面进行简单介绍)进行手掌开合动作识别方法的总体流程图。如图3所示,在采用该方法的系统启动之后,开始本发明识别方法。首先,在步骤S31处,通过图像采集单元1010(将在下面参照图10描述),诸如摄像机,拍摄手掌所在区域的场景的图像,并将连续拍摄的图像输入到手掌图像分割单元或模块1020(将在下面参照图10描述)。这里输入的图像序列,可以是直接从拍摄图像或拍摄视频的本地摄像机按时间顺序输入的,也可以是远程通过有线或无线网络输入的等等。另外,这里的图像可以是深度图像也可以是普通彩色图像。\n[0039] 随后,要识别图像中手掌的手势,需要先将手掌从图像中分割出来。因此,从所接收的图像序列里分割出手掌图像是提取特征前须先完成的步骤。因此,在步骤S32处,手掌图像分割单元或模块1020接收从图像采集单元1010发送来的连续图像序列,并从所接收的图像序列里分割出手掌图像,并经过一个长度为K的滑动窗口从手掌图像序列里依次取出K帧图像组成一个手势识别单元输送到手掌姿态特征提取单元1030(将在下面参照图10描述)。分割出手掌图像可以采用在深度图上基于深度阈值的方法进行前景分割,也可以采用诸如肤色检测、或连通域分析的方法等诸多技术来实现手掌图像的分割。无论采用何种分割技术或使用何种类型的图像,经过分割后,背景或非手掌部分的影响能从输入的图上去除掉,最终得到比较干净的手掌图像(手腕之上的部分),以便于从中抽取表征手掌姿态的特征量。作为本发明的示例,采用了在深度图上基于深度阈值的方法从图像中分割出手掌图像。\n[0040] 之所以采用滑动窗口依次在输入的图像序列上移动以选择出几帧图像当作一个手势识别单元,是因为开合手势动作是个手掌姿态变化序列。具体而言,本发明是为了识别一个动作过程,而不是一个瞬间姿态,因此,需要每次识别代表一个动作过程的一组图像。\n为此,本发明针对连续的图像帧设置了一个滑动窗口来输入待识别的包含多个连续图像的识别单元。\n[0041] 滑动窗口的长度也就是图像观测序列的长度,该长度是根据一个手势周期内图像帧数分布图和一给定的置信水平来确定。图4A显示了在采样率为30帧/秒下一个手掌“开”或“合”手势周期内图像帧数的分布直方图的示意图。对于不同采样率,直方图的分布会有所不同。如图4A所示,其中每个竖直柱下面的数字表示图像帧数,竖直柱的高度表示一个手掌开合手势动作需要该图像帧数的统计数值,按从左到右的图面顺序,各个竖直柱分别表示一个手掌“开”“合”手势恰好在1帧图像内完成的情况的统计数值、一个手掌开合手势恰好在2帧图像内完成的情况的统计数值、一个手掌开合手势恰好在3帧图像内完成的情况的统计数值、一个手掌开合手势恰好在4帧图像内完成的情况的统计数值、一个手掌开合手势恰好在5帧图像内完成的情况的统计数值、一个手掌开合手势恰好在6帧图像内完成的情况的统计数值。如图4A所示,在采样率为30帧/秒的情况下,一个手掌开合手势动作会在3到4帧间完成的统计值明显高于其他帧数的统计值。图4B示意性示出了是对应于图4A的概率分布图。从图4A的实验结果可知,表明通常大部分开/合手势均能在3到4帧间完成,不同的图像帧数对应于不同的概率。如图4B所示,在纵轴上指定一个置信水平,沿水平方向与概率分布图交点所对应的帧数K,可作为滑动窗口的长度来选择K帧图像进行手势识别。比如,对置信水平0.9,其对应着5帧/手势。此处,置信水平代表了多大程度上一个开/合手势能在K帧图像中完成。例如0.9置信水平,意味着90%的情况下能覆盖住真实的手势开合情况,[0042] 根据如上所述方式基于指定置信水平和开合手势图像帧数频率直方图来确定一个手势动作识别单元的帧数,能够提高手势识别的效率和准确度。\n[0043] 因此,如图4B所示,在一具体实施例中可选5或6帧(K=5或6)图像为一手势识别单元。因此每个识别单元对应一个长度为5或6的观测量序列。接下来我们将依据这个观测序列的特性通过隐马尔科夫模型来识别出手势动作。\n[0044] 为了识别手掌的手势,在步骤S33处,手掌姿态特征提取单元1030从所接收的一个观测量序列(K帧)的手掌图像的每一帧图像上提取描述手掌姿态的特征量作为隐马尔科夫模型(HMM)的观测量。\n[0045] 尽管隐马尔科夫模型是现在常用的一种数学工具,但是为了便于理解以及更好的描述本发明的方法,下面简单介绍一下隐马尔科夫模型,然后再根据本发明的实施例介绍如何利用隐马尔科夫模型实现手势的识别。\n[0046] 首先,隐马尔科夫模型源于马尔科夫模型(Markov Model),是马尔科夫链的一种,两者都一种统计模型,广泛应用语音识别,行为识别,文字识别以及故障诊断等领域。隐马尔科夫模型是马尔科夫链的一种,其所要还原的状态不能直接观察到,但能通过观测向量序列观察到。举例而言,在一个典型的通信系统中,如果s1,s2,s3...表示信息源发出的信号,而o1,o2,o3...是接受器接收到的信号。通信中的解码就是根据接收到的信号o1,o2,o3...还原出发送的信号s1,s2,s3...。但是,信息源发出的信号通常是接受器所不能直接获得的,因此人们提出了一种叫做“隐马尔科夫模型(HiddenMarkovModel)”来解决还原原始发送信号的问题。\n[0047] 因此,通常,隐马尔科夫模型(HMM)是定义为包含有限状态S=S1…SN的离散随机过程,并具有确定的状态转移概率分布aij=p(qt+1=Sj|qt=Si)(表示从状态Si过渡到Sj的可能性),此处的Q=(q0,...,qT)是对应于时间t=0,1,...,T.的状态序列。初始状态的概率分布表示为π=(π0,...,πN),此处πi=p(q0=Si)。这个过程中状态是不能被直接观测的,因此称之为隐状态。虽然隐状态不可直接观测到,但可通过观测向量序列间接获取。这里每个观测量都是通过某些概率密度分布表现为各种状态,每一个观测量具有仅依赖于当前状态的相应概率密度分布,记为bj(m)=bj,m=p(Ot=m|qt=Sj),m=0,1,...,M。隐马尔科夫模型假定p(qt+1|qt,qt-1,...q0)=p(qt+1|qt),p(Ot|qt,qt-1,...q0)=p(Ot|qt).即状态转移概率不随时间变化。\n[0048] 一个隐马尔科夫模型可记为λ=(N,M,ai,j,bjm,π),给定一个HMM模型λ和观测序列O,我们可计算出该观测序列最可能匹配某个动态系统的的出现概率,同时也能根据Viterbi算法推算出最可能产生观测序列O的隐状态状态序列S(s0,...,sT),还能定出最可能产生出对应观测序列的HMM模型的最优参数(ai,j,bjm,π)。以本发明所提到的手势识别为例,当机器接收到到一系列图像中的连续的手势姿态图像观测序列O(o1,o2,o3…)时,要根据这组图像序列来推测所拍摄到的这只手在被拍摄的这段时间内实际上所作出的动作过程s1,s2,s3…。很显然,人们的某种手势的变化起于何种姿态,结束于何种姿态,中间经过何种姿态,其组合非常多,但是究竟是那种组合导致了我们所接收到的手势图像序列,就需要通过一种方式来推测最有可能性的一个手势组合。用数学语言来描述,就是在已知o1,o2,o3,...的情况下,求使得信号s1,s2,s3...的条件概率,例如P(s1,s2,s3,...|o1,o2,o3....)达到最大值的那个句子s1,s2,s3,...。其中P(o1,o2,o3,...|s1,s2,s3....),在本发明中表示原始手势信号s1,s2,s3...被显示为图像序列o1,o2,o3,...的可能性。s1,s2,s3,...就是一个马尔科夫链,也就是说,si只由si-1决定,并且第i时刻的接收信号oi只由发送信号si决定(又称为独立输出假设,即P(o1,o2,o3,...|s1,s2,s3....)=P(o1|s1)*P(o2|s2)*P(o3|s3)...,最终,就可以很容易利用算法Viterbi找出上面式子的最大值,进而找出要识别的句子s1,s2,s3,...。上述这种模型就叫隐马尔科夫模型。之所以用“隐”这个词,是因为原始状态s1,s2,s3,...是无法直接观测到的。在利用隐马尔科夫模型解决语言处理问题前,先要进行模型的训练。\n[0049] 很显然,要采用HMM模型通过图像中的手势图像序列来获取手势的原始动作过程就需要从手势图像序列中提出描述手掌姿态的特征量。图5A-5F示意性描述了提取描述手掌姿态的特征量的过程。\n[0050] 通常,由于相机精度的不足和被摄物体离距镜头有一定距离的影响(操作者的手通常保持离相机1米之外),因此,所得到的手掌图像在输入图像中所占据的面积既小同时也包含了较多噪音。为得到鲁棒的识别结果,本发明基于增大手掌“开”和“合”姿态之间各自特征差异,采用了与手掌前景图像相关的两种几何形状来计算不同姿态的特征,由此我们能更好的区分这两种姿态的不同。本发明所用到的3类几何形状是:(i)沿手掌主方向所在手掌最小覆盖的四边形,如图5A和5D所示,其是指能覆盖住手掌图像的面积最小的四边形,其中手的主方向可通过主成分析PCA方法计算得到;(ii)手掌轮廓线所在凸包多边形,如图5B和5E所示,此处凸包定义为点集Q的最小凸多边形P,点集Q中的任一点要么在凸多边形P的边上,要么在P的内部;以及(iii)手掌的轮廓线,如图5C和5F示出了手掌“合”和“开”状态下的手掌轮廓线。很显然,图5A-5C显示手的“合”的姿态,而图5D-5F显示了手的“开”的姿态。\n[0051] 本发明从每一帧图像不同的抽象层提取出几个几何特征量来描述手掌姿态的不同。\n[0052] 抽取如下特征来描述手掌的姿态,分别为:\n[0053] f1=Wb/Hb,其中Wb和Hb是沿手掌主方向轴得到最小覆盖四边形的宽和高;\n[0054] f2=Lc/Lp,其中Lc手掌轮廓线的凸包多边形长度,Lp则是手掌轮廓线长度;以及[0055] f3=Ac/Ap,此处Ac是手掌轮廓线的凸包多边形面积,Ap是手掌轮廓线围成的面积。\n[0056] 计算上述特征量所需的全部函数实现均可在开源项目OpenCV中找到,因此不在此详细描述这些阐述的获取过程。\n[0057] 上述三个特征量组成的向量{f1,f2,f3}描述了手掌在开合中的不同姿态,该向量只依赖于被描述手掌的姿态。考虑到该向量{f1,f2,f3}中每个分量是连续的比值,为了更好的映射到离散的观测空间里去,每个分量都会被量化几个量化级,由此每个连续的比值分量值就对应于一个离散的量化值或符号。此处量化的方法可为等间隔量化或等量量化。\n[0058] 对向量{f1,f2,f3}而言,每个分量都有其从最小到最大取值的范围。等间隔量化方法是将这取值范围等分为几份,比如,如果一分量的取值范围为{0.8,1.3},我们可把其分为5个等长部分,每部分长度为0.1,它们依次为{0.8,0.9}{0.9,1.0},{1.0,1.1},{1.1,\n1.2},{1.2,1.3}.\n[0059] 同样的,向量{f1,f2,f3}中每个分量都有着其各自的频率分布直方图,等量量化方法是确定每个量化区间的长度以确保每个量化的区间具有等量的数目。通常,每个量化的区间长度不同,除非该分量服从均匀分布。\n[0060] 每个特征分量可量化为5个级别,因此对向量{f1,f2,f3}而言一共有125(5x5x5)观测状态。因此,每帧图像中的手势将对应于这125个观测状态中的一个状态。\n[0061] 以上针对图5A-5F描述了从每帧分割出的手势图像中提取表达该手势的特征向量的过程。如此,通过对K帧滑动窗口内每帧图像提取特征观测量,每帧图像对应于一个观测量,K帧图像就形成一个长度为K的观测序列。\n[0062] 接着,在步骤S34中,HMM概率评估单元1040(将在下面参照图10描述)评估所接收的观测量序列在各个手势所对应着的HMM模型中出现的概率。具体而言,从K帧图像里提取出的观测序列被分别送到3个HMM手势模型中进行概率评估。此处每个HMM都对应于一个确定的手势动作。在本申请中,至少有3个HMM模型用于实现手掌开合手势的识别,分别是“开”手势动作HMM,、“合”手势动作HMM、以及姿态没变化时即非开非合所对应着的HMM。通过HMM概率评估,能获得该观察序列从属于各个手势动作的概率。\n[0063] 很显然,在采取步骤S34来评估每个观测量序列在各个手势所对应着的HMM模型中出现的概率之前,需要先准备对应的HMM模型。\n[0064] 图6示意性表示了一合手势动作过程为例示意性表示HMM隐状态的定义。如图6所示,N个典型的手掌姿态被选作手掌开合手势动作HMM模型的隐状态,包括起始姿态、终止姿态及中间N-2个的过渡姿态。此处,为简化图像表示,N=4。但是在其优化实例中,N可等于5或\n6。如图中所示,不同的姿态转换路径形成了不同的手势。图6示意显示合手势动作的状态可能转移路径,图中的上一行显示了手势合过程,其表示了手势的隐状态序列,其中采用4帧表示。下面一行的序号1、2、3、4这四个序号分别表示对应的隐状态Si,并通过箭头表示了可能的变化路径。图6所示的过程也定义了一种手掌合手势的HMM模型,其对应的状态转换概率矩阵如下:\n[0065]\n[0066] 根据图6所示,对一个图像序列长度为5帧(K=5)的合手势路径可以为如下状态转移中的任何一条:\n[0067] S2→S2→S4→S4→S4(2),S1→S1→S1→S3→S4(3)\n[0068] S1→S2→S3→S4→S4(4),S1→S2→S2→S3→S4(5),…\n[0069] 此处每条路径括号里的数字表明有效的手势帧长度(下划线部分正是合手势的有效帧)。\n[0070] 显然地,采用HMM隐马尔科夫模型能从建模角度描述帧序列长度变化的手势,从而进一步实现手势的识别。\n[0071] 图6仅仅描述了一种手势变化的模型,每种手势都对应着一个特有的HMM模型。而对于手势开合的识别,至少需3个HMM模型,分别为“开”手势动作HMM、“合”手势动作HMM、以及姿态没变化时即非开非合所对应着的HMM。图7示意性显示了3个不同手势HMM模型中隐状态转移的拓扑结构。如图7所示,同样,N个典型的手掌姿态被选作手掌开合手势动作HMM模型的隐状态,包括起始姿态、终止姿态及中间N-2个的过渡姿态。此处,为简化图像表示,N=\n4。图中的上一行图片显示了手势的N个隐状态,其隐状态分别用下面三行中的序号1、2、3、4来表示,这三行中从上到下第一行表示与图6中所示的合手势转移状态一样,第二行表示开手势转移状态,而第三行表示动作无变化时的状态转移。\n[0072] 因此,如图7所示,\n[0073] 对合手势而言其状态转移概率矩阵为如下:\n[0074]\n[0075] 对开手势而言其状态转移概率矩阵为如下:\n[0076]\n[0077] 对姿态没变化时的手势其状态转移概率矩阵可表示为如下:\n[0078]\n[0079] 如上所述,其中aij=p(qt+1=Sj|qt=Si),表示从状态Si过渡到Sj的可能性。\n[0080] 一旦隐状态数目N、观测状态数M、观测序列长度K、以及每种手势HMM模型的拓扑结构被确定下来,就可在训练集上对HMM参数进行训练确定。所有的训练集样本已经被提前人工分好类,每个样本都是序列长度为K的图像序列。对HMM模型的训练目标是调整模型的参数λ=(ai,j,bjm,π)以最大化观测序列出现的概率p(O|λ)。训练采用Baum-Welch算法进行,是个迭代的过程。\n[0081] 在对每帧图像提取特征量并对特征进行量化后,每帧手掌图像将对应于M(M=125)个观测状态中的其中一个。K帧图像就形成了长度为K的观测序列O。对于步骤S34中进行概率评估,具体来说,就是将每个观测序列O送入到3个已经训练好的手势HMM模型中计算该观测序列O从属于对应手势的概率。这个概率的计算采用前向算法(公知的技术)进行。最终我们将分别得到3个手势的概率値p(O|λi),i=1,2,3,这将是进一步进行手势变化过程识别的基础。\n[0082] 从这3个概率值p(O|λi)去判断手势的常规做法是找到最大那个概率,以最大概率所对应着的手势通常被看做最可能的手势结果。考虑到每个手势HMM模型都是独立的评价系统,因此一种更好的方式是建立综合评价模型来给出最终的识别结果。\n[0083] 最后,在步骤S35处,手势分类器分类单元1050(将在下面参照图10描述)基于各个HMM模型概率评估结果用训练好的分类器进行手势识别。\n[0084] 本发明中,基于HMM概率评估结果,分类器技术被应用来完成这最终的手势识别。\n作为分类器输入的是是这3个概率值p(O|λi)和其它的特征,其它特征比如在国内专利“201200147172”中提到的最大差异化特征。此处的其它特征是可选的非必须。分类器给出的输入就是手势的类型,用数字标签来表示手势的分类结果,0为无姿态变化,1为手掌闭合,2为手掌张开。\n[0085] 实现对一个识别单元的分类获得手势标签,可对此处进行分类的分类器较多,诸如决策树分类器,随机森林分类器,AdaBoost,支撑向量机SVM和BP神经网络等。在分类识别前,我们完成对分类器的训练。训练是通过3个阶段来实现的。对每个训练样本(长度为K的图像序列),首先是完成从图像序列里提取出手掌姿态特征序列即获得HMM观测序列,然后将这观测序列依次送到训练好的3个手势HMM中计算其各自的概率p(O|λi),最后这3个概率值(如利用其它特征,则其它特征也一起提取出来,和HMM概率值一起组成输入特征量)和其对应的人工标定的手势分类标签一起组成分类器的训练样本送入分类器里进行训练。\n[0086] 图8示意性描述了手势识别过程。如图8所示,其简单地分成三列,每列表达了一个步骤。如上针对第一实施例所述,相机采集到图像序列按时间顺序送到手势识别系统中,首先经过一个长度为K的滑动窗口在输入的图像序列上依次移动来选择K帧图像组成一个识别单元进到下一步处理。接着,在每单帧图像上提取出手掌姿态的特征,这些特征可看作为手势HMM模型的观测量,如此,每帧图像对应于一个观测量,K帧图像就形成一个长度为K的观测序列。从K帧图像里提取出的观测序列被分别送到3个HMM手势模型中进行概率评估。此处,每个HMM都对应于一个确定的手势动作。在本发明中至少有3个HMM模型用于实现手掌开合手手势的识别,分别是开手势动作HMM、“合”手势动作HMM、以及姿态没变化时即非开非合所对应着的HMM。通过HMM概率评估,能获得该观察序列从属于各个手势动作的概率。最后,这些概率评估的结果(3个概率值)将作为输入被送到训练好的分类器里进行分类来实现手势的识别。\n[0087] 进一步,在实现了手势识别之后,如果一个观测序列O被识别为标签1(合手势)或标签2(开手势),根据隐马尔科夫模型理论,我们可采用Viterbi算法(公知技术)解码出HMM的隐状态获得与观测序列匹配的最优的姿态序列,进而我们能从这姿态序列里确定出开合手势的起止帧序号和终止帧序号。比如,如果一个被评定为合手势的HMM解码后的隐状态序列为S1→S1→S1→S3→S4,,显然地第3帧是手势的起始帧而末尾帧为手势的终止帧。这些信息为类似HandMouse系统里回溯光标位置提供了精确的信息。\n[0088] 由于滑动窗口在输入的图像序列上依次移动来选择K帧图像组成一个识别单元,因此每个识别单元都与它近邻的识别单元具有部分重叠的帧图像,故而我们需要最后一步处理,即在分类结果的基础上最终去判定手势动作,以完成从帧图像到动作层面的手势动作判断。这步的处理主要方法是制定一些规则去合并相邻识别单元的手势分类结果,比如使用完成一个手势动作所需的时间条件约束(一个手势动作的持续时间应在临界值t1,t2之间,t1
法律信息
- 2018-05-18
- 2015-08-05
实质审查的生效
IPC(主分类): G06K 9/00
专利申请号: 201410001511.5
申请日: 2014.01.02
- 2015-07-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-05-11
|
2010-10-26
| | |
2
| |
2013-11-27
|
2010-12-29
| | |
3
| |
2013-09-18
|
2013-05-31
| | |
4
| |
2013-10-09
|
2013-07-23
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |