论文部分内容阅读
随着计算机的快速普及,人机交互已成为日常生活重要的组成部分,手势识别作为一种简单自然的人机交互方式,一直是计算机视觉领域的研究热点。传统的手势识别算法常通过设计更具代表性的特征来获得更好的识别效果,但是,手工设计特征需要研究人员具有丰富的专业知识与实践经验,大大提高了研究门槛,且人为设计的特征不一定适用于数据庞大、种类繁多的手势数据。寻找一种简单易用但又效果出众的识别方案是手势识别领域一个至关重要的研究课题。大规模数据与高性能计算的出现,使得拥有大量模型参数的神经网络可以被高效快速的拟合,且神经网络仅依赖数据规模与网络结构而无须手工设计特征的特性使其成为手势识别领域的热门研究方向。其中C3D(Convolutional 3D,三维卷积)神经网络可以同时捕捉视频序列中的时空信息,常用于动态手势序列的识别问题。基于C3D的手势识别算法存在三个主要问题:(1)C3D模型通过对长短不一的输入视频作均匀采样,达到序列长度归一化的目的,但大多数手势动作在完成过程中无法保持匀速,导致手部运动信息在手势序列中并不是呈均匀分布,均匀采样的思想使得基于C3D的算法在输入阶段已经丢失了大量的运动信息;(2)由于人类行为习惯、采集环境、背景等因素影响,输入序列可能会掺杂一些无关动作或变形动作,而C3D模型以整段序列为单元进行处理,容易受到有问题子动作的干扰;(3)动态手势本身的识别难度较大,单独使用C3D模型进行手势识别无法得到满意的识别结果。本文同时考虑RGB、深度、光流三种数据流,以C3D模型为基础,针对现有算法存在的问题,提出了以下四点改进策略:(1)提出一种基于光流的均匀随机采样方法,利用光流幅值表示手部运动的剧烈程度,并以此为基准决定序列各区域的采样频率,从而实现序列的动态采样。另外,在保证整体均匀采样的前提下增加采样过程的随机性,进而变相增加样本数据量,以提高C3D神经网络的性能;(2)提出了分层策略,将序列分成多段子序列来捕捉更多的局部细节,增加网络模型的鲁棒性,并通过将序列先拆分成多段子序列分别学习后再结合的方式,避免序列中一些有问题的子动作造成的分类偏差;(3)采用多模态数据融合策略,利用RGB、深度和光流数据共同训练C3D模型,由模型自动学习各种数据类型隐含的特性,再通过特征融合的方式结合多种数据类型的优势,避免单一数据类型对手势动作造成的描述偏差;(4)对C3D的分类模块做出修改,不再使用Softmax分类器,而是利用事先训练好的C3D模型提取网络中间层的数据作为特征,然后将特征输给SVM(Support Vector Machine,支持向量机)模型进行训练与分类。为了验证文中所提算法的有效性,本文针对上述四点改进策略在ChaLearn LAP IsoGD数据集上进行了模块测试,通过比较各模块改进前后算法识别精度是否有所提升,进而证明四点改进策略的必要性。然后,将本文提出的算法与目前世界领先的手势识别方法进行比较,实验结果显示本文方法可以达到比现有手势识别算法更高的识别率,证明本文算法具有不错的研究前景,并肯定了本文在研究期间所做的工作。