0 引言
在人机交互应用方面,无论是基于文本方式的键盘设备,还是基于图形方式的鼠标设备,都无法满足人们对计算机应用的需求。符合人们日常交流习惯的人机交互技术是最近几年热门的研究领域。人类日常交流过程中,采用的方式可以分为自然语言和肢体语言两大类。自然语言包括口语、书面语言;肢体语言包括面部表情、身体姿态、手势手语等。其中手语是由一系列规范的手势标准组成的独立语言门类。手语识别技术对于提高计算机的智能化,完善人机交互应用具有很强的现实意义。
按照所研究的手势种类的不同,可以将手势识别分为静态手势识别和动态手势识别两类。
(1)静态手势是指在整个手势运动时间段中,只需考虑在手形变化过程中各个指尖的位置变化,而手掌没有发生整体性位移。例如STREN H I等人[1]设计了一种利用静态手势集作为汽车导航设备指令集的汽车平台人机交互系统。MAUNG T H H[2]利用手势图像的直方图特征通过神经网络进行手势识别,其手势平均识别率为90%。杨波等人[3]利用手势图像的区域形状特征提出一种基于手势空间分布特征的手势识别算法,在环境光照相对稳定的条件下,对于差异较大的手势识别率高达98%。Yao Minghai等人[4]利用在线PCA改进算法进行静态手势识别,其识别率为90.48%。
(2)动态手势是指在整个手势运动时间段中,不但手掌发生整体性位移,并且整个手形也在发生变化。动态手势与静态手势相比更为复杂,也更加符合实际应用需求,成为最近几年手势识别的一个热点。例如Yang Ruiduo等人[5]利用一种嵌套式动态编程方法,从视频序列中识别手语信息,其实验结果比传统的条件随机域模型提高40%。Yin Ying等人[6]开发了一种新的三维手势人机交互系统,其中包括3种用户类型和12种手势指令集,孤立手势词识别率为95.6%,连续手势词识别率为73%。ELMEZAIN M[7]利用HMM算法识别“0~9”手势运动轨迹,其孤立手势词识别率为98.6%,连续手势词识别率为94.29%。THEODORAKIS S等人[8]提出一种改进的多数据流HMM算法,这种算法在进行动态手势识别时允许部分手语之间的数据流异步,其识别效果比使用传统的HMM算法提高8.3%。
本文在视频图像处理技术的基础上,针对常用手语视频中目标手势特征进行研究和提取,提出了一种基于条件迭代算法的手语识别方法。该方法通过对用户提供的每条手语视频中各个手势动作进行分析,识别反复出现的目标手势。
1 基于条件迭代算法手语识别方法
1.1 手语识别中BTW模型
在实际中,同一种手势所用的时间会因为表达习惯和表述场景不同而有所差异,这就导致同一种手势动作对应的采样数据帧数是变化的。因此,可以用动态时间规整算法(Dynamic Time Warping,BTW)来计算不同手势序列之间的距离,最终实现手势的识别。
是一个规模参数,它控制概率空间中的峰值,影响条件迭代算法(ICM)的收敛速度。g表示参数集的子序列之间相似性。由于式(2)中分母涉及了所有可能的组合相似性的总和,计算量非常大,因此p难以计算。
为了方便目标手势识别的实现,本文进行以下处理。?兹i表示一组手语中第i条手语的动作序列参数集合{ai,bi},并且?兹(i)表示同组手语中其余手语的动作序列参数集合{a1,b1…ai-1,bi-1,ai+1,bi+1…an,bn}。由式(2)可以推导出?兹i在整个动作序列参数集合中的条件概率为:
将式(3)代入式(4)中,整理得到:
在实际手语识别问题中,手语视频的帧数很多,如何快速求解BTW模型的后验概率最大化是个关键问题。条件迭代算法计算量较小没有较复杂的操作,适合通过计算机来实现,因而具有实用价值。
1.2 手语识别中条件迭代算法
条件迭代算法(Iterated Conditional Modes,ICM)[9]是一种收敛速度快的最大后验概率估算方法。采用ICM算法自动识别目标手势的核心思想是:在一组手语中,采用DTW算法计算两帧之间的相似性;定义手势序列组合结果与其余组合结果的比值作为该种序列组合的后验概率;通过迭代计算所有手势序列组合的后验概率,选择最大后验概率的序列组合作为目标手势识别结果。该方法具体步骤如下:
(1)在起始帧识别过程中,计算每一帧作为目标手势起始帧的后验概率,根据后验概率分布,构建起始帧备选集。
(2)在结束帧识别过程中,首先由起始帧备选集确定结束帧识别起点和搜索范围。然后计算搜索范围内每一帧作为目标手势结束帧的后验概率,对应每一个备选起始帧,选择后验概率最大的结束帧,构建目标手势结束帧备选集。
(3)比较备选集中起始帧与结束帧后验概率的乘积,标注后验概率乘积最大的起始帧与结束帧。
(4)考虑人们的视觉认知习惯,将视频帧重新组合,还原完整目标手势序列。
2 基于条件迭代算法手语识别器设计与实现
随着手势识别的深入研究,相关学者给出多种定义手势的方法。王西颖等人[10]按照手势运动特点将手势分为非运动手势和运动手势。其中非运动手势包括需要考虑手形变化过程中各个手指之间关系的跟踪类手势和只需考虑手形变化结果的非跟踪类手势。而在运动手势中,又可分为运动过程中没有手形变化的非变形类手势和运动过程中存在手形、手指变化的变形类手势。
本文使用具有完整含义的手语视频作为手势识别数据输入,通过比较不同图像差分法的分割效果,采用二帧差距离的差分图像与YCgCr颜色特征相结合的方法进行目标区域分割。在实际的手语中,每一个手势词内部都变化平缓,而手势词之间存在明显变化的起始帧、结束帧。依据相邻帧之间欧式距离,采用滑动窗口提取手语视频中的关键帧,可以将动态视频的研究问题简化成对静态图像的研究问题。同时在关键帧中提取目标区域重心和目标区域外部轮廓链码两种特征,尽可能地减小手势识别的计算量,提高识别性能。如图1所示,本文设计的手势识别系统包括数据输入、目标区域分割、关键帧提取、特征提取、手势识别五大部分。
3 实验分析
本文利用MATLAB平台进行实验,选择南佛罗里达大学计算机视觉实验室提供的公共手语数据集。该视频数据集包括136个美国手语短句(ASL)的视频序列,按照待识别的目标手势不同,共分成10组。实验结果按照公共数据集所提供的参考标准进行分析。实验结果为:136条手语中,完全识别正确有119条,部分识别正确有0条,识别错误有17条,识别率为87.5%。对比国外相关研究成果,参考文献[11]与本文采用相同手语公共数据集进行实验,其识别结果为:136条手语中,完全识别正确有98条,部分识别正确有20条,识别错误有18条。因此本文提出的手语识别方法具有一定的优势。
4 结论
手势是手语中最小的、有意义的单位,具有使用灵活、信息量丰富的特点。本文提出一种能够从一组日常手语短句中识别出目标手势的方法,实验验证了该方法的有效性。