论文部分内容阅读
计算机科学的发展促进了人机交互技术的进步。从早期输入文本命令的交互方式开始,人机交互方式逐渐向自然化、直观化的方向发展。手势作为人机交互方式的一种,具有丰富、灵活、直观等特点,且符合人们日常的生活和交流习惯。近年来,基于手势识别的人机交互方式逐渐引起了研究者们的关注。手势识别方法可分成基于外部设备的方法和基于计算机视觉的方法。基于外部设备的手势识别方法,如数据手套等方式已经相当成熟,并被广泛应用。而基于计算机视觉的手势识别方法仍然不够成熟,传统手势识别方法一般都是基于支持向量机和人工神经网络等浅层机器学习算法,手势的识别率难以达到应用级别的要求,且传统算法的提升空间较小。近年来,深度学习的兴起为手势识别提供了新的思路。文章介绍了深度学习的相关理论,并主要就深度学习的三个常用网络模型进行说明和分析,最终选取了最适合手势识别的卷积神经网络作为本文的研究重点。随后对静态手势识别的主要步骤进行了说明,并给出了每一步骤具体的处理方法。初步设计了一种八层的卷积神经网络用于手势识别。研究了影响卷积神经网络性能的两种因素,梯度下降策略的选择和全连接层神经元个数的多少。最终得出选用Ada Delta梯度下降法在全连接层神经元个数500个时在手势测试集上能取得最好的识别效果。随后文章对初步设计的卷积神经网络手势识别方法进行了改进。首先是手势的预处理部分,采用椭圆肤色模型在YCr Cb颜色空间下进行手势分割,并将分割出的手势进一步处理得出二值化的手势样本。经过处理后的手势样本更有利于手势特征的提取。其次根据之前的研究对网络进行改进,得到一种新的卷积神经网络结构。并在网络中加入了Inception结构,提升了网络的性能。对于给定的五种手势,在测试集上取得了98.6%的平均识别率。在实际系统中进行测试也能达到较好的识别效果,并且确保了系统的实时性。最后文章设计了一种手势控制浏览器,对本文提出的手势识别方法进行具体的应用。手势控制浏览器的设计遵循了软件设计的一般步骤,首先对浏览器功能进行分析,将浏览器分为基础模块和手势模块。然后对浏览器分模块设计,基础模块通过图形化的开发环境Qt来完成,而手势模块则定义了四种控制手势,通过文中提出的卷积神经网络训练手势模型进行识别。整个浏览器的代码编写均采用C++语言来完成。经测试,在开启了浏览器的手势模式后,给定的四种控制手势能够对浏览器进行有效的控制。