论文部分内容阅读
人机交互是目前被广泛关注的一个计算机科研领域。近年来,随着计算机的功能越来越强大,人机交互的操作方法也越来越便捷,人们越来越青睐非触摸式的人机交互方式。其中手势灵活、多变,很容易被人们控制,在人机交互中应用广泛,例如针对行动不便的残障人士和空巢老人、自闭症儿童、聋哑人,手势识别可以为他们提供一些生活保障和便利。本文利用Kinect摄像头采集图像信息,分别进行静态手势识别和动态手势识别。静态手势识别由手部分割、特征描述和分类识别三个过程组成。传统的基于肤色的手势分割会受到光照及类肤色背景的影响,基于深度阈值的分割会受到同深度物体的干扰,因此本文将两种分割方法结合,取长补短,能同时避免类肤色背景和同深度物体的干扰,有效地得到手势区域。然后对分割出的手势区域提取指尖数目和Hu矩特征,提取指尖数目采用凸包缺陷检测有效最远点的方法。最后将指尖数目和Hu矩值组成特征向量作为输入值,利用SVM分类器对静态手势进行分类识别。动态手势包含手型和轨迹两种特征,仅通过手型或者轨迹无法全面的描述一种动态手势,很容易因为相似识别错误。因此本文结合手型识别与轨迹识别,对动态手势进行了更加细致地描述。首先通过RGB-D方法分割出手势区域,对于手型变化特征,对分割出的手势部分采用根据手势面积变化的关键帧提取,得到能够描述该动态手势手型变化的标准静态手势图像,用SVM进行静态手势识别,识别结果按照关键帧提取顺序进行组合排列。对于运动轨迹特征,对上述分割出的手势进行质心提取,连接每一帧的手势质心构成运动轨迹,完成手势的检测轨迹预处理,通过HMM算法和轨迹方向角对运动轨迹进行分类识别。最终动态手势识别结果为手型和轨迹识别结果的组合。最终将静态、动态手势识别结果通过编程控制NAO机器人动作。实验结果表明,本文的手势识别算法可以有效地对静态、动态手势进行识别,实现人机交互。