基于深度神经网络的手势识别方法、装置及系统与流程

文档序号:22737906发布日期:2020-10-31 09:18阅读:256来源:国知局
基于深度神经网络的手势识别方法、装置及系统与流程

本申请涉及手势识别技术领域,具体涉及基于深度神经网络的手势识别方法、装置及系统。



背景技术:

人机交互技术已经融入人们的日常生活中,涉及的领域有工作、购物、交流和娱乐等。传统的人机交互设备比如鼠标、键盘和遥控器,这种不自然的交流方式使得交互缓慢而且不自然。对于与3d对象的交互尤其如此,鼠标的2个自由度无法正确模拟空间的3个维度。为了促进和完成人与计算机之间的高级交互,出现了自然交互技术,如:可触摸技术、手势、人脸识别、语音识别、自然导航等。自然交互是指人与计算机生成的模拟交互的能力,这些模拟准确地反映了与真实对象的交互。与使用传统输入方法相比,多模态自然交互为用户提供了更自然的方式与虚拟环境进行交互,也为远程操作提供了技术支持。

人们越来越重视涉及感官的自然交互,使用嗅觉、声音、触觉以及视觉感知,可以提供一系列不同的交互选择。随着用户输入从键盘转移到手势、语音和身体移动等,用户将需要可靠的机制来表达他们的意图。2011年,苹果公司基于语音识别的iphone个人助理siri发布,标志着公众对语音识别技术的看法发生了一次变化。第一次用户可以通过语音来输入信息,导航应用程序或提出问题。作为自然交互的一个方面,基于手势的自然交互越来越受到关注。与其他身体部位相比,手被广泛应用,因为它是人类与外界之间交流的天然媒介,比如当用手指向一个物体,表达有关某物的信息或者移动、修改和变换该物体,完全相同的方式用手来打手势完成交互更加直观自然。因此手是最适合人机交互的部位。

手势控制有两种方法,基于触摸和非触摸。触摸屏交互是基于触摸设备的示例,基于触摸的设备的缺点之一是需要与设备直接接触,因此无法从远处进行交互。另一个缺点是这种类型的交互是不自然的,并且过程缓慢。基于视觉的手势识别技术是非触摸的方法,这种识别和跟踪方法为研究人员提供了更多的自由度也不需要戴手套。然而,基于视觉的手势识别技术因复杂的背景、动态照明条件、可变形的人手形状和错误的对象提取可能导致计算机误解手势。如果人是移动的,则手势识别系统还需要满足其他约束,例如图像中手势的大小和对运动的适应性。

microsoft开发了一个用于体感开发的设备kinect,该设备具有自然交互的能力。kinect可以处理基本手势,面部特征,甚至全身运动,如跳跃和踢腿等。用户可以通过物理运动或语音命令控制游戏、电影和音乐。

发明人发现,复杂背景及动态照明条件对kinect实现动作捕捉影响较小,但是当检测和识别较小的物体,例如占据图像的非常小的区域且具有复杂铰接结构的人手时,存在自遮挡和精确度不足等问题。



技术实现要素:

本申请实施例提供一种基于深度神经网络的手势识别方法,包括:基于深度神经网络检测来自摄像头的手势图片的手势类型和手势参数;基于所述手势类型和手势参数提取所述手势图片的感兴趣区域;获取来自kinect摄像头的手势识别模型;利用所述手势识别模型识别所述感兴趣区域的手势得到第一手势识别结果。

作为一种可选择的方案,所述方法还包括:将所述第一手势识别结果与利用kinect摄像头根据手部骨骼信息得到的第二手势识别结果加权得到最终识别结果。

作为本申请的一个方面,所述基于深度神经网络检测来自摄像头的手势图片的手势类型和手势参数,包括:获取来自摄像头的手势图片;对所述手势图片进行处理和标注得到手势图片的特征;基于所述手势图片的特征对深度神经网络模型进行训练,得到所述手势类型和手势参数。

作为本申请的一个方面,所述手势识别模型通过以下步骤获取:所述kinect摄像头的视觉手势生成器获取手势文件;对所述手势文件添加剪辑及标记生成手势数据集;基于所述手势数据集,训练得到所述手势识别模型。

作为本申请的一个方面,其中,所述kinect摄像头的视觉手势生成器获取手势文件中,所述手势文件通过所述kinect摄像头录制剪辑手势视频并将所述手势视频转换为所述视觉手势生成器能识别的手势文件。

作为本申请的一个方面,所述基于所述手势数据集,训练得到所述手势识别模型,包括:基于所述手势数据集的手势特征,训练得到弱分类器;加权组合所述弱分类器得到强分类器;选取识别率高于识别阈值的所述强分类器作为所述手势识别模型。

作为本申请的一个方面,所述利用所述手势识别模型识别所述感兴趣区域的手势得到第一手势识别结果,包括:获取所述感兴趣区域的手势的手势特征集;对所述手势特征集进行数据分割得到手势分类数据;利用所述手势识别模型识别所述手势分类数据得到所述第一手势识别结果。

本申请实施例还提供一种基于深度神经网络的手势识别装置,包括手势检测单元、区域提取单元、模型获取单元、手势识别单元,所述手势检测单元基于深度神经网络检测来自摄像头的手势图片的手势类型和手势参数;所述区域提取单元基于所述手势类型和手势参数提取所述手势图片的感兴趣区域;所述模型获取单元获取来自kinect摄像头的视觉手势生成器训练得到的手势识别模型;所述手势识别单元利用所述手势识别模型识别所述感兴趣区域的手势得到第一手势识别结果。

作为一种可选择的方案,所述装置还包括加权识别单元,所述加权识别单元将所述第一手势识别结果与利用kinect摄像头根据手部骨骼信息得到的第二手势识别结果加权得到最终识别结果;所述手势检测单元包括图片获取单元、图片处理单元、模型检测单元,所述图片获取单元获取来自摄像头的手势图片;所述图片处理单元对所述手势图片进行处理和标注得到手势图片的特征;所述模型检测单元基于所述手势图片的特征对深度神经网络模型进行训练,得到所述手势类型和手势参数;所述手势识别单元包括手势特征集获取单元、分割单元、识别单元,所述手势特征集获取单元获取所述感兴趣区域的手势的手势特征集;所述分割单元对所述手势特征集进行数据分割得到手势分类数据;所述识别单元利用所述手势识别模型识别所述手势分类数据得到所述第一手势识别结果。

本申请实施例还提供一种基于深度神经网络的手势识别系统,包括摄像头、kinect摄像头、上述所述的基于深度神经网络的手势识别装置,所述摄像头获取手势图片;所述kinect摄像头生成手势识别模型。

本申请实施例提供的技术方案,基于深度神经网络实现了手势的检测与kinect摄像头的vgb训练得到的手势识别模型相结合,提高了手势的识别率,且受复杂背景和光照等的影响较小。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的一种基于深度神经网络的手势识别系统组成示意图;

图2是本申请一实施例提供的一种基于深度神经网络的手势识别方法流程示意图;

图3是本申请一实施例提供的对手势图片进行处理和标注生成的手势图像部分数据示意图;

图4是本申请一实施例提供的一种第一手势识别结果示意图;

图5是本申请一实施例提供的另一种第一手势识别结果示意图;

图6是本申请一实施例提供的又一种第一手势识别结果示意图;

图7是本申请另一实施例提供的一种基于深度神经网络的手势识别方法流程示意图;

图8是本申请一实施例提供的一种基于深度神经网络的手势识别装置组成示意图;

图9是本申请另一实施例提供的一种基于深度神经网络的手势识别装置组成示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,以下将结合附图和实施例,对本申请技术方案的具体实施方式进行更加详细、清楚的说明。然而,以下描述的具体实施方式和实施例仅是说明的目的,而不是对本申请的限制。其只是包含了本申请一部分实施例,而不是全部的实施例,本领域技术人员对于本申请的各种变化获得的其他实施例,都属于本申请保护的范围。

图1是本申请一实施例提供的一种基于深度神经网络的手势识别系统组成示意图,系统包括摄像头、kinect摄像头、基于深度神经网络的手势识别装置。

摄像头获取手势图片。kinect摄像头生成手势识别模型。基于深度神经网络的手势识别装置基于深度神经网络检测手势图片的手势类型和手势参数,基于手势类型和手势参数提取手势图片的感兴趣区域,获取来自kinect摄像头的视觉手势生成器训练得到的手势识别模型,利用手势识别模型识别感兴趣区域的手势得到第一手势识别结果。

作为一种可选择的方案,基于深度神经网络的第一手势识别装置还将第一手势识别结果与利用kinect摄像头根据手部骨骼信息的第二手势识别结果加权得到最终识别结果。

本实施例提供的技术方案,系统深度神经网络和kinect的vgb的手势识别方法,识别精度高,为基于kinect的手势交互的应用在控制方面提供了更大的多功能性,而不需要复杂的移动或语音控制来在交互类型之间切换,可以使用户能够移动手指的同时快速完成,进行有效的互动。

图2是本申请一实施例提供的一种基于深度神经网络的手势识别方法流程示意图,包括以下步骤。

在步骤s10中,基于深度神经网络检测来自摄像头的手势图片的手势类型和手势参数。

获取来自摄像头的手势图片,具体而言,通过摄像头采集三种手势变换,分别是手势1、2、5。摄像头在读取视频流的过程中,每隔5帧数据进行保存,最终挑选得到1000张手势数据。然后基于深度神经网络对手势图片进行训练检测。

在多数情况下,从头开始训练整个网络非常耗时,并且需要大量数据集。本实施例通过tensorflowapi使用预训练模型进行迁移学习来解决,并实现了手势检测。

深度神经网络的模型有很多种。api中使用的模型是带有mobilenet(ssd_mobilenet_v1_coco)的ssd模型,该模型用作训练的初始化检查点。在此模型的基础上进一步使用手势图像进行训练,即,使用自己采集的数据训练和测试预训练模型,其过程涉及到数据集收集与标注、voc2012数据集制作、tfrecord数据生成、ssd迁移学习与模型导出和实时检测。

对手势图片进行处理和标注得到手势图片的特征的描述文件,描述文件中去掉一些模糊的图像,生成的手势图像部分数据如图3。

其中,数据标注可以选择使用labelimg工具。首先配置labelimg工具,在开始标注图像之前,需要在labelimg/data/predefined_classes.txt文件中定义标记类,本实施例共三个类分别是手势handone、handtwo和handfive。对于显示的每个图像,通过单击“创建矩形框图标”在每个手势上绘制一个矩形框。这些矩形框称为边界框,从显示的下拉列表中选择类别。手势图片的描述文件包含图像中每个对象的边界框、文件名和类别等的坐标。

在本实施例中,完成对图像数据集的注释后,使用其中一部分进行训练,其余用于测试。通常比例为90%/10%,即90%的图像用于训练,其余10%用于测试。

基于手势图片的特征对深度神经网络模型进行训练,得到手势类型和手势参数,输出冻结图文件,即.pb文件。

在步骤s20中,基于手势类型和手势参数提取手势图片的感兴趣区域。

对手势类型进行分类,并根据手势参数进一步框选提取手势图片的感兴趣区域。也就是具体的手势区域。

在步骤s30中,获取来自kinect摄像头的手势识别模型。

kinect摄像头的视觉手势生成器获取手势文件。手势文件通过kinect摄像头录制剪辑手势视频并将手势视频转换为视觉手势生成器能识别的手势文件。

使用kinectstudio录制剪辑和vgb(visualgesturebuilder,视觉手势生成器)训练协作实现手势识别,生成的模型可用于特定手势。生成的手势识别模型,可以在visualstudio、unity3d中被调用,从而在kinect开发环境下,使用vgb生成的手势检测模型检测手势。通过使用数据驱动模型,vgb将重点从编写代码转移到可测试,可重复,可配置和数据库驱动构建手势检测,识别率高并缩短了开发时间。

首先,对手势文件添加剪辑及标记生成手势数据集。

kinectstudio可以从连接的kinect设备播放实时数据,选择数据流,从原始数据中产生的数据流是深度、红外数据以及身体本身。然后录制剪辑,根据需求选择bodyframe、bodyindex、depth、longexposureir等数据。以抓取手势为例,站在合适的位置匀速做抓取动作,抓取手势每个剪辑做几组。录制完毕可在play界面回放。从录制的剪辑中可以查看三维坐标且可实现3d空间的放大和旋转等功能,对手势文件添加剪辑及标记生成手势数据集。kinectstudio生成的xrf格式文件不被vgb所识别,因此利用ksconvert工具完成.xrf(原始数据)到.xef格式的转换。

其次,基于手势数据集,训练得到手势识别模型。

通过vgb实现手势数据集的训练,该动作识别依托于adaboost算法,通过样本训练得到手势识别模型,并以此为基础识别出手势。

具体的训练过程包括:基于手势数据集的手势特征,训练得到弱分类器,加权组合弱分类器得到强分类器,选取识别率高于识别阈值的强分类器作为手势识别模型。

弱分类器有多个,描述了抓取手势时手掌的开闭以及左右手骨骼长度、角度、角速度、位置的数值大小。弱分类器识别手势的精度较低,不足以作为手势识别模型。所以根据弱分类器的识别率高低进行加权组合得到强分类器,最后选取识别率高于识别阈值的强分类器作为手势识别模型。

在步骤s40中,利用手势识别模型识别感兴趣区域的手势得到第一手势识别结果。

获取步骤s20得到的感兴趣区域的手势的手势特征集,对手势特征集进行数据分割得到手势分类数据,利用手势识别模型识别手势分类数据得到第一手势识别结果。

在本实施例中,第一手势识别结果为1、2、5数字手势,如图4、图5、图6。

为证明本文提出的基于kinectstudio和vgb自然手势交互的交互识别率高、受复杂背景及光照条件影响较小的特点,测试了在不同环境下、光照充足和黑暗条件下的识别率,实验以5个数字手势为实验对象。其识别率如表1所示,从表中可以看出本文的方法对动态手势的识别率较高,而且对不同环境和光照条件下的识别鲁棒性较好。

表1

为了验证kinect与深度神经网络结合实现手势识别的前后效果,本文分别在相同的场景下对四种情况进行了测试。第一个实验为单独使用kinect识别数字手势0-5。第二个实验为使用kinectstudio和vgb实现手势的识别。第三个实验为使用深度神经网络实现手势的识别。第四个实验是vgb与深度神经网络相结合实现相同手势的识别。统计四种方案下各个手势的识别率,结果如表2所示。

表2

通过kinect和vgb方案进行手势识别可以避免复杂背景以及光照的影响,且vgb方案因识别精度更高更便捷。而单独使用kinect提供的数据进行识别因自遮挡和追踪小物体识别率低影响项目中自然交互的体验效果。基于深度神经网络虽然训练过程较为复杂,但是能快速有效的实现手势的识别。

本实施例提供的技术方案,基于深度神经网络实现了手势的检测与kinect摄像头的vgb训练得到的手势识别模型相结合,提高了自然手势交互的抗干扰能力,且提高了手势识别精度。同时采用了增加摄像机单独捕捉手势的方案,用户体验效果较好,且受复杂背景和光照等的影响较小。

图7是本申请另一实施例提供的一种基于深度神经网络的手势识别方法流程示意图,包括以下步骤。

在步骤s10中,基于深度神经网络检测手势图片的手势类型和手势参数。

在步骤s20中,基于手势类型和手势参数提取手势图片的感兴趣区域。

在步骤s30中,获取来自kinect摄像头的视觉手势生成器训练得到的手势识别模型。

在步骤s40中,利用手势识别模型识别感兴趣区域的手势得到第一手势识别结果。

在步骤s50中,将第一手势识别结果与利用kinect摄像头根据手部骨骼信息得到的第二手势识别结果加权得到最终识别结果。

kinect摄像头本身可以获取手势图片,根据手部骨骼信息进行手势识别获得第二手势识别结果。

将上述对摄像头的图片进行识别的第一手势识别结果和kinect摄像头根据手部骨骼信息的第二手势识别结果进行加权,得到最终识别结果。

在本实施例中,步骤s10、s20、s30、s40与上述实施例相同,不再赘述。

本实施例提供的技术方案,将基于深度神经网络实现了手势的检测与kinect摄像头的vgb训练得到的第一手势识别结果和kinect摄像头的第二手势识别结果加权结合,避免了手势图片被遮挡造成的误差,进一步提高了手势识别的精度。

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序处理器执行所述程序时实现上述所述的方法。

一种计算机可读存储介质,其上存储有处理器程序,处理器程序用于执行上述所述的方法。

图8是本申请一实施例提供的一种基于深度神经网络的手势识别装置组成示意图,包括手势检测单元11、区域提取单元12、模型获取单元13、手势识别单元14。

手势检测单元11基于深度神经网络检测手势图片的手势类型和手势参数。区域提取单元12基于手势类型和手势参数提取手势图片的感兴趣区域。模型获取单元13获取来自kinect摄像头的手势识别模型。手势识别单元14利用手势识别模型识别感兴趣区域的手势得到第一手势识别结果。

图9是本申请另一实施例提供的一种基于深度神经网络的手势识别装置组成示意图,包括手势检测单元11、区域提取单元12、模型获取单元13、手势识别单元14、加权识别单元15。

手势检测单元11基于深度神经网络检测手势图片的手势类型和手势参数。区域提取单元12基于手势类型和手势参数提取手势图片的感兴趣区域。模型获取单元13获取来自kinect摄像头的手势识别模型。手势识别单元14利用手势识别模型识别感兴趣区域的手势得到第一手势识别结果。加权识别单元15将第一手势识别结果与利用kinect摄像头根据手部骨骼信息得到的第二手势识别结果加权得到最终识别结果。

手势检测单元11包括图片获取单元111、图片处理单元112、模型检测单元113。

图片获取单元111获取来自摄像头的手势图片。图片处理单元112对手势图片进行处理和标注得到手势图片的特征。模型检测单元113基于手势图片的特征对深度神经网络模型进行训练,得到手势类型和手势参数。

手势识别单元14包括手势特征集获取单元141、分割单元142、识别单元143。

手势特征集获取单元141获取感兴趣区域的手势的手势特征集。分割单元142对手势特征集进行数据分割得到手势分类数据。识别单元143利用手势识别模型识别手势分类数据得到第一手势识别结果。

需要说明的是,以上参照附图所描述的各个实施例仅用以说明本申请而非限制本申请的范围,本领域的普通技术人员应当理解,在不脱离本申请的精神和范围的前提下对本申请进行的修改或者等同替换,均应涵盖在本申请的范围之内。此外,除上下文另有所指外,以单数形式出现的词包括复数形式,反之亦然。另外,除非特别说明,那么任何实施例的全部或一部分可结合任何其它实施例的全部或一部分来使用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1