一种基于计算机视觉的手势识别方法及识别装置与流程

文档序号:19156791发布日期:2019-11-16 00:55阅读:269来源:国知局
一种基于计算机视觉的手势识别方法及识别装置与流程
本发明涉及人机交互领域,特别是指一种基于计算机视觉的手势识别方法及识别装置。
背景技术
:在基于计算机视觉的手势识别领域中,有着非常多的难点,主要原因是手部的形状是多变的,而且手部动作具有时序性并非仅仅涉及到空间问题。在仅依赖图像数据的前提下,能够达到实时手势识别非常具有挑战性,所以实时手势识别向来是人机交互领域研究的热点问题。自然条件下的手势识别主要涉及定位、识别和分类等多个过程。在以往的解决方案中很多研究者借助深度摄像机完成定位,或者通过运动帧差法结合肤色检测技术尝试找到手部位置,然而在深度摄像机普及率很低的情况下,第二种方法又因光照等因素导致稳定性和准确率都很差。同时手势识别阶段也非常依赖定位的准确性。手势是一个连续的过程,具有时序特征。由于技术发展的限制,之前的研究通常是将每一帧的特征做成一个集合,使用传统的机器学习手段如svm(最大间隔分类器)进行分类,但这样会丢失了时序信息,导致手势识别准确率降低。技术实现要素:本发明要解决的技术问题是提供一种基于计算机视觉的手势识别方法及识别装置,以解决现有技术所存在的手势定位、识别准确率低的问题。为解决上述技术问题,本发明实施例提供一种基于计算机视觉的手势识别方法,包括:实时采集用户的手部视频;通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势状态;根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵;通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。进一步地,在通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势之前,所述方法还包括:获取用于手部目标检测的训练集;构建用于手部目标检测的神经网络;通过获取的训练集对构建的神经网络进行训练,得到手部目标检测模型,其中,所述手部目标检测模型,用于对采集的手部视频中的每帧图像进行目标检测。进一步地,所述训练集中的每帧图像是经过数据清洗和数据标注的,标注的信息包括:手部在图像中位置信息和手势状态。进一步地,通过目标检测算法检测得到的手部的位置包括:手部中心点的坐标、手部定位框的宽度和高度,以及指尖中心点的坐标、指尖定位框的宽度和高度。进一步地,所述特征矩阵包括:单帧图像中的手势状态、手部框选面积、指尖距离和指尖运动梯度;所述根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵包括:根据检测得到的每帧图像中手部的位置和手势状态,提取每帧图像的手势特征,选出所有手势状态发生跳变的帧作为跳变节点帧,并选用最靠近该视频的帧集合中间位置的跳变节点帧为分界点,在分界点前后按顺序各选取m帧,如果前后帧不满m帧,则只在后m帧进行复制最后帧的补帧处理,组成2m*n维的初始特征矩阵,对初始特征矩阵进行处理,得到一个视频具有时序特征的特征矩阵,其中,所述处理包括:独热编码、中心化和去均值处理,n表示对每帧图像提取了n维的手势特征向量。本发明实施例还提供一种基于计算机视觉的手势识别装置,包括:采集模块,用于实时采集用户的手部视频;检测模块,用于通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势状态;提取模块,用于根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵;识别模块,用于通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。进一步地,所述装置还包括:获取模块,用于获取用于手部目标检测的训练集;构建模块,用于构建用于手部目标检测的神经网络;训练模块,用于通过获取的训练集对构建的神经网络进行训练,得到手部目标检测模型,其中,所述手部目标检测模型,用于对采集的手部视频中的每帧图像进行目标检测。进一步地,所述训练集中的每帧图像是经过数据清洗和数据标注的,标注的信息包括:手部在图像中位置信息和手势状态。进一步地,通过目标检测算法检测得到的手部的位置包括:手部中心点的坐标、手部定位框的宽度和高度,以及指尖中心点的坐标、指尖定位框的宽度和高度。进一步地,所述特征矩阵包括:单帧图像中的手势状态、手部框选面积、指尖距离和指尖运动梯度;所述提取模块,具体用于根据检测得到的每帧图像中手部的位置和手势状态,提取每帧图像的手势特征,选出所有手势状态发生跳变的帧作为跳变节点帧,并选用最靠近该视频的帧集合中间位置的跳变节点帧为分界点,在分界点前后按顺序各选取m帧,如果前后帧不满m帧,则只在后m帧进行复制最后帧的补帧处理,组成2m*n维的初始特征矩阵,对初始特征矩阵进行处理,得到一个视频具有时序特征的特征矩阵,其中,所述处理包括:独热编码、中心化和去均值处理,n表示对每帧图像提取了n维的手势特征向量。本发明的上述技术方案的有益效果如下:上述方案中,实时采集用户的手部视频;通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势状态;根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵;通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。这样,通过目标检测算法确定每帧图像中手部的位置和手势状态,简单可靠、计算量小,能够提高手部定位的准确性和抗干扰性;且将手势运动的时序特征引入到手势识别过程中对手势进行识别,能够提高手势识别的准确率。附图说明图1为本发明实施例提供的基于计算机视觉的手势识别方法的流程示意图;图2为本发明实施例提供的某视频样本的部分帧示意图;图3为本发明实施例提供的捏取、张开状态下的标注示意图;图4为本发明实施例提供的通过手部目标检测模型检测输出的手势状态和框选效果示意图;图5为本发明实施例提供的特征矩阵提取流程示意图;图6为本发明实施例提供的错误视频帧序列示意图;图7为本发明实施例提供的基于计算机视觉的手势识别装置的结构示意图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本发明针对现有的手势定位、识别准确率低的问题,提供一种基于计算机视觉的手势识别方法及识别装置。实施例一如图1所示,本发明实施例提供的基于计算机视觉的手势识别方法s101,实时采集用户的手部视频;s102,通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势状态;s103,根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵;s104,通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。本发明实施例所述的基于计算机视觉的手势识别方法,实时采集用户的手部视频;通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势状态;根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵;通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。这样,通过目标检测算法确定每帧图像中手部的位置和手势状态,简单可靠、计算量小,能够提高手部定位的准确性和抗干扰性;且将手势运动的时序特征引入到手势识别过程中对手势进行识别,能够提高手势识别的准确率。本实施例所述的基于计算机视觉的手势识别方法,能够摆脱对于深度摄像机的依赖,适用场景更加广泛,且能同时完成静态手势和动态手势识别。动态手势是持续的运动过程,该过程每个时间点的手势状态顺序是不可逆的,此特征被称为时序特征。为了更好第理解本实施例所述的基于计算机视觉的手势识别方法,对其进行详细说明,所述方法可以包括以下步骤:s101,实时采集用户的手部视频。本实施例中,可以直接通过普通摄像头实时采集用户的手部视频,然后利用s102中的目标检测算法完成手部定位,无需借助深度摄像机或手部传感器,且鲁棒性也更好。s102,通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势。本实施例所述的基于计算机视觉的手势识别方法目的是处理包含动态手势在内的完整手势识别方法,识别的数据都是视频,要求较高的实时性,所以本实施例中引用了yolov3目标检测算法,此算法的单帧图像检测速度能在30ms以内,能够满足实时性需求,识别准确率在目前所有的目标检测算法中也处于较高水平。为了使用所述yolov3目标检测算法进行单帧图像检测,首先需要获得手部目标检测模型,最终目的是通过此手部目标检测模型来使用yolov3目标检测算法检测每帧图像。所述手部目标检测模型是通过对神经网络(目标检测算法属于神经网络的一种)训练得到的,具体可以包括以下步骤:a1,获取用于手部目标检测的训练集,其中,所述训练集中的每帧图像是经过数据清洗和数据标注的,标注的信息包括:手部在图像中位置信息和手势状态;本实施例中,由于视频样本中有很多图像是冗余或者噪音数据,如图2所示,图2是一个视频样本的部分帧,其中,手部出现的帧只集中在177-216帧,并且开始和末尾的手部是存在残缺的,所以需要通过数据清洗选出清晰、完整的图像作为训练集。在得到训练集之后,需要对训练集中的图像进行标注。标注即对手部在图像中位置信息和手势状态进行提前记录,以便在训练神经网络的时候,会以此标注对神经网络的参数进行调节。如图3两个手势状态下的手部都被框选,左边为对捏取(pinch)状态的标注,右边为对张开(handstretch)和指尖(fingerstip)的标注。a2,构建用于手部目标检测的神经网络;a3,通过获取的训练集对构建的神经网络进行训练,得到手部目标检测模型,其中,所述手部目标检测模型,用于对采集的手部视频中的每帧图像进行目标检测。本实施例中,将标注完毕的训练集数据分批次送入构建的神经网络进行训练,调节学习速率和动量参数来控制训练的速度,并通过调节权重衰减率调节神经网络的正则化程度,直至损失与迭代次数曲线不在下降,损失值接近于0,此时的神经网络为手部目标检测模型。所述手部目标检测模型可以使用yolov3目标检测算法对单帧图像进行目标检测,图4为通过手部目标检测模型检测输出的手势状态和框选效果。本实施例中,通过目标检测算法检测得到的手部的位置包括:手部中心点的坐标、手部定位框的宽度和高度,以及指尖中心点的坐标、指尖定位框的宽度和高度。s103,根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵,如图5所示,具体可以包括以下步骤:根据检测得到的每帧图像中手部的位置和手势状态,提取每帧图像的手势特征,选出所有手势状态发生跳变的帧作为跳变节点帧,并选用最靠近该视频的帧集合中间位置的跳变节点帧为分界点(alpha),在alpha前后按顺序各选取m(例如,m=10)帧,如果前后帧不满m帧,则只在后m帧进行复制最后帧的补帧处理,组成2m*n(20*n)维的初始特征矩阵,对初始特征矩阵进行处理,得到一个视频具有时序特征的特征矩阵,其中,所述处理包括:独热编码、中心化和去均值处理,n表示对每帧图像提取了n维的手势特征向量。本实施例中,特征矩阵是承上启下的部分,通过提取的特征矩阵原有的视频样本转为特征矩阵的形式,然后才能送入到循环神经网络中进行分析。特征矩阵包括:单帧图像中的手势状态、手部框选面积、指尖距离和指尖运动梯度,其中,1)单帧图像中的手势状态(简称:单帧手势状态)本实施例中,单帧手势状态属于类别特征,无法用数值表示作为量化特征。但是它又是非常重要的信息,所以一定要使用。所以本方法将所有要分类的单帧手势状态并列写成独热形式,即由对应位置是否为1,其他位置为0表示是哪一种状态,组成的向量只包含0、1的向量,如表(1)为部分手势类别的独热编码。表(1)部分手势类别的独热编码捏取100000张开010000字母a001000字母b000100字母c000010字母b0000012)手部框选面积:由yolov3目标检测算法检测出的手部定位框的宽度、高度直接计算得到。由于直接计算出来的面积数值一般都很大,太大的数值会影响到后面的循环神经网络的训练效果,所以在得到一个视频样本的所有帧的检测结果后,统计计算出手部框选面积的均值,对所有帧数据进行中心化和缩放处理,将数值缩小至0-20之间。3)指尖距离:由yolov3目标检测算法的检测结果(手部中心点的坐标、指尖中心点的坐标)计算出相邻指尖间的距离,并做中心化和缩放处理。4)指尖运动梯度:借助每个指尖的中心点坐标,计算相邻两帧图像间,同一指尖在不同位置时的△y(相邻两帧图像在y轴上的位置差的绝对值)与△x(相邻两帧图像在x轴上的位置差的绝对值)比值。s104,通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。本实施例中,步骤s103从视频中提取的特征矩阵保持了原有的手势特征在时间维度上的先后顺序,可以使用循环神经网络来分析特征矩阵。长短期记忆网络(longshort-termmemory,lstm)是一种时间循环神经网络,由于长短期记忆网络具有长时记忆特性,因此,本实施例选用lstm来处理特征矩阵。本实施例中,由于得到的特征矩阵是一个20*n矩阵,并不符合lstm的序列数据的输入要求,但是可以将每一行作为一条单独的向量数据输入到每个时间步的细胞(cell)中,由于特征矩阵每一行由一帧图像提取而来,所以这实际上就是对视频部分帧的按序处理,这样就可以使用20个时间步长的lstm网络来分析特征矩阵,并采用lstm最后一个cell的输出,作为手势的识别结果。本实施例将手势运动的时序特征引入到手势识别过程中对手势进行识别,能够提高手势识别的准确率,例如,如图6所示的视频帧序列,这是一个乱序的手势状态集合,如果采用传统的机器学习识别方法,只通过所有帧包含的状态信息,而没有时间顺序特征的话,很容易被误判为一种正常手势,而实际上此视频帧序列是错误样本,如果利用时序特征则不会误判。实施例二本发明还提供一种基于计算机视觉的手势识别装置的具体实施方式,由于本发明提供的基于计算机视觉的手势识别装置与前述基于计算机视觉的手势识别方法的具体实施方式相对应,该基于计算机视觉的手势识别装置可以通过执行上述方法具体实施方式中的流程步骤来实现本发明的目的,因此上述基于计算机视觉的手势识别方法具体实施方式中的解释说明,也适用于本发明提供的基于计算机视觉的手势识别装置的具体实施方式,在本发明以下的具体实施方式中将不再赘述。如图7所示,本发明实施例还提供一种基于计算机视觉的手势识别装置,包括:采集模块11,用于实时采集用户的手部视频;检测模块12,用于通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势状态;提取模块13,用于根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵;识别模块14,用于通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。本发明实施例所述的基于计算机视觉的手势识别装置,实时采集用户的手部视频;通过目标检测算法对采集的手部视频中的每帧图像进行目标检测,得到每帧图像中手部的位置和手势状态;根据检测得到的每帧图像中手部的位置和手势状态,提取每帧手势特征,保持手势特征在时间维度上的先后顺序,得到具有时序特征的特征矩阵;通过循环神经网络对得到的特征矩阵进行分析,识别出用户的手势。这样,通过目标检测算法确定每帧图像中手部的位置和手势状态,简单可靠、计算量小,能够提高手部定位的准确性和抗干扰性;且将手势运动的时序特征引入到手势识别过程中对手势进行识别,能够提高手势识别的准确率。在前述基于计算机视觉的手势识别装置的具体实施方式中,进一步地,所述装置还包括:获取模块,用于获取用于手部目标检测的训练集;构建模块,用于构建用于手部目标检测的神经网络;训练模块,用于通过获取的训练集对构建的神经网络进行训练,得到手部目标检测模型,其中,所述手部目标检测模型,用于对采集的手部视频中的每帧图像进行目标检测。在前述基于计算机视觉的手势识别装置的具体实施方式中,进一步地,所述训练集中的每帧图像是经过数据清洗和数据标注的,标注的信息包括:手部在图像中位置信息和手势状态。在前述基于计算机视觉的手势识别装置的具体实施方式中,进一步地,通过目标检测算法检测得到的手部的位置包括:手部中心点的坐标、手部定位框的宽度和高度,以及指尖中心点的坐标、指尖定位框的宽度和高度。在前述基于计算机视觉的手势识别装置的具体实施方式中,进一步地,所述特征矩阵包括:单帧图像中的手势状态、手部框选面积、指尖距离和指尖运动梯度;所述提取模块,具体用于根据检测得到的每帧图像中手部的位置和手势状态,提取每帧图像的手势特征,选出所有手势状态发生跳变的帧作为跳变节点帧,并选用最靠近该视频的帧集合中间位置的跳变节点帧为分界点,在分界点前后按顺序各选取m帧,如果前后帧不满m帧,则只在后m帧进行复制最后帧的补帧处理,组成2m*n维的初始特征矩阵,对初始特征矩阵进行处理,得到一个视频具有时序特征的特征矩阵,其中,所述处理包括:独热编码、中心化和去均值处理,n表示对每帧图像提取了n维的手势特征向量。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1