本发明涉及计算机视觉和模式识别技术领域,具体涉及一种基于深度神经网络的动态手势识别方法及系统。
背景技术
随着人机交互技术的快速发展,以人手姿态作为人机交互直接输入手段的手势识别技术日益成熟。这种利用计算机来识别、判断手势含义的手势识别技术在智能家居、智能穿戴以及增强现实等领域都有大量的应用。
手势识别的关键技术在于手势动作跟踪以及手势动作识别。目前,主要有两种方式:一种是基于普通摄像头获取静态图片的手势识别,该方法利用传统的模式识别方法对静态图片中的手势进行人工特征提取,然后再利用分类器对其进行分类;另外一种是基于智能手套设备的手势识别,此方法要求用户必须带上特别的手套设备,通过分析、跟踪以及标记用户人手的空间位置和运动轨迹信息来到达识别手势。
基于普通摄像头获取静态图片的手势识别方法,它的检测效果依赖于环境光线,容易受背景以及肤色的影响,并且没有考虑连续手势姿态之间的相关性,故不能感知动态手势的持续变化,识别率较低;另外一种基于智能手套设备的手势识别方法,虽然识别率较高但需购买昂贵的智能传感器设备,实用性低。
为此,中国发明专利cn107423698a公开了一种基于并联卷积神经网络的手势估计方法,包括:s1、采用rgb-d相机获得彩色图像和深度图像;s2、根据预先训练得到的手部分类模块,在彩色图像上识别出手部所在的位置;s3、根据手部在彩色图像上对应的位置,找到其在深度图像上对应的位置,然后将手部深度图分离出来;s4、将分离出的深度图转化为灰度图,然后将灰度图输入并联卷积神经网络手势估计模块进行识别,从而获得能够表示手部姿态的多个关节点坐标;s5、输出手势结果。该方案提供了一种端到端的手势估计网络架构,降低了算法的复杂度,并联结构极大提高了网络收敛速度,极大节省了训练时间,提高了效率。但是,该方案没有涉及连续手势姿态之间的相关性,不能准确地感知动态手势的持续变化,从而造成动态手势的识别率不高。
有鉴于此,需要对现有的动态手势识别方法做出改进,以提高动态手势的识别率。
技术实现要素:
本发明所要解决的技术问题是现有的动态手势识别方法识别率不高的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种基于深度神经网络的动态手势识别方法,包括以下步骤:
采集c种不同手势含义的动态手势视频片段的样本数据,经过数据扩充处理后生成训练样本数据集,其中样本数据为rgb-d格式,包含rgb图像和对应的深度信息,c为正整数;
设计基于深度神经网络的动态手势识别网络模型;
利用训练样本对所述动态手势识别网络模型进行训练;
获得训练好的基于深度神经网络的动态手势识别模型,对采集到的动态手势进行识别;
所述动态手势识别网络模型由特征提取网络、前后帧关联网络以及分类识别网络构成,其中:所述特征提取网络用于提取不同手势含义的样本特征,获得每一个手势含义的样本特征向量;所述前后帧关联网络用于对每一个手势含义的样本特征向量进行前后时间帧的关联映射,并将其合并为每一个手势含义的融合特征向量;所述分类识别网络用于对每一个手势含义的融合特征向量进行分类识别,输出样本对应的手势类别。
在上述方法中,采集c种不同手势含义的样本数据的方法如下:
利用3d深度相机采集c种不同含义的动态手势视频片段,并对每段动态手势视频片段等间隔采样n帧rgb图像和对应的深度信息图像形成样本xi={xi1,xi2,...,xik,...,xin},其中xik为样本xi中的第k帧数据,并且是一个大小为640×320×4的rgb-d格式的四通道数据;
将样本xi组成样本集x={x1,x2,...,xm,...,xn},并用y={y1,y2,...,ym,...,yn}来记录样本集x中每一个样本xm的手势类别标号,其中ym是一个c维的one-hot编码向量。
在上述方法中,对样本集进行数据扩充,与原始样本集一起组成扩充后的训练样本集,数据扩充的方法包括但不限于平移、翻转、加噪、形变。
在上述方法中,
平移操作的方法如下:
将样本xi中的每一帧rgb-d数据中的每个通道上任意一个像素点的坐标(x,y)沿x轴平移tx个单位,沿y轴平移ty个单位,得到(x′,y′),其中x′=x+tx,y′=y+ty,tx与ty分别是随机取区间[-0.1×width,0.1×width]和[-0.1×height,0.1×height]中间的任一整数,width为xi中的每一帧图像的宽度,height为xi中的每一帧图像的长度;
翻转操作的方法如下:
将样本xi中的每一帧rgb-d数据中的每个通道同时进行水平翻转或者上下翻转;
加噪操作的方法如下:
将样本xi中的每一帧rgb-d数据中,每个通道上任意一个像素点s(x,y)加上一个随机噪声σ得到s′(x,y),其中(x,y)为像素点s的坐标,s′(x,y)=s(x,y)+σ,σ服从均值为0、方差为0.1的高斯分布;
形变操作的方法如下:
随机采取样本xi图像中9个控制点,并随机对控制点生成拖拽轨迹,利用移动最小二乘法驱动图像,完成图像的局部改变;
假设p为原图像中的控制点集合,q为拖拽后的控制点集合,利用移动最小二乘法为原图像上的每个像素点v构成相应的仿射变换函数f(v),通过仿射变换函数f(v)对原图像的像素点v进行重映射,得到形变图像,其中:
式中,矩阵m为转换矩阵;权重
在上述方法中,所述特征提取网络由4层卷积层组成,所述前后帧关联网络由2层lstm层组成,所述分类识别网络由3层全连接层组成。
在上述方法中,设计所述特征提取网络的方法如下:
利用4层卷积神经网络对一个手势含义的样本xi中的n帧数据进行特征提取,将4层卷积层神经网络输出的特征图拉成一个列向量形成n个特征向量,n为正整数,各层卷积层的计算公式如下:
式中,l表示第l层卷积层,j=1,2,3,…,cl,cl表示第l层输出的特征图个数,
在上述方法中,设计所述前后帧关联网络的方法如下:
利用2层lstm长短时记忆网络,对所述的n个特征向量进行前后时间帧的关联映射,输出n个具有前后帧关联信息的特征向量;
将n个具有前后帧关联信息的特征向量,合并成一个融合特征向量v;
其中,每层lstm的计算公式如下:
式中,xt表示lstm单元的第t帧输入向量,ht表示xt经过lstm单元的输出特征向量,ft,it,ot,ct分别表示遗忘门、输入门、输出门以及记忆单元,wk,bk(k=f,i,o,c)表示lstm单元的权值和偏置参数;σ(x)表示sigmoid激活函数,tanh(x)表示tanh激活函数。
在上述方法中,设计所述分类识别网络的方法如下:
利用3层全连接网络,对所述的融合特征向量v进行分类识别,把最后一层全连接层输出的c个神经元值经过softmax函数输出,得到手势视频样本xi的手势含义属于第t类的概率值p(vt);
其中,每个全连接层的计算公式如下:
式中,
第t类概率值p(vt)的计算公式如下:
式中,vt表示最后一层全连接层输出的第t个神经元值,p(vt)表示第t类的概率值。
在上述方法中,训练基于深度神经网络的动态手势识别网络模型的方法如下:
定义ei为动态手势识别网络对训练样本xi的输出损失代价;
运用批量随机梯度下降法与反向传播算法,对基于深度神经网络的动态手势识别网络进行迭代训练,直到模型的损失代价ei下降到一个固定精度停止训练,保存训练后的网络模型得到基于深度神经网络的动态手势识别网络模型;
其中,
式中,yik表示样本xi对应的类别向量yi的第k个值,p(vk)表示样本xi的手势含义属于第k类的概率值,log(x)表示对数函数。
本发明还提供了一种基于深度神经网络的动态手势识别系统,包括:
训练样本集,通过采集装置采集c种不同手势含义的动态手势视频片段的样本数据,经过数据扩充处理后生成训练样本数据集,其中样本数据为rgb-d格式,包含rgb图像和对应的深度信息,c为正整数;
基于深度神经网络的动态手势识别网络模型,由特征提取网络、前后帧关联网络以及分类识别网络构成,其中:所述特征提取网络用于提取不同手势含义的样本特征,获得每一个手势含义的样本特征向量;所述前后帧关联网络用于对每一个手势含义的样本特征向量进行前后时间帧的关联映射,并将其合并为每一个手势含义的融合特征向量;所述分类识别网络用于对每一个手势含义的融合特征向量进行分类识别,输出样本对应的手势类别;
训练装置,利用训练样本集对所述动态手势识别网络模型进行训练;
识别装置,利用训练好的基于深度神经网络的动态手势识别模型,对采集到的动态手势进行识别。
与现有技术相比,本发明提供的方案,动态手势识别网络模型由特征提取网络、前后帧关联网络以及分类识别网络构成,在前后帧关联网络中引入双向lstm模型来理解连续手势姿态之间的相关性,考虑了前后帧的信息,极大提高了动态手势的识别率。
附图说明
图1为本发明中基于深度神经网络的动态手势识别网络模型的搭建训练方法流程图;
图2为本发明中基于深度神经网络的动态手势识别网络模型的框架示意图。
具体实施方式
本发明提供了一种基于深度神经网络的动态手势识别方法及系统,引入了双向lstm模型来理解连续手势姿态之间的相关性,考虑了前后帧的信息,极大提高了动态手势的识别率。下面结合说明书附图和具体实施方式对本发明做出详细说明。
本发明的实现原理是:
基于深度神经网络的动态手势识别网络模型由特征提取网络、前后帧关联网络以及分类识别网络构成,其中:特征提取网络用于提取不同手势含义的视频输入样本的特征,获得每一个手势含义的视频输入样本的特征向量;前后帧关联网络用于对每一个手势含义的视频输入样本的特征向量进行前后时间帧的关联映射,并将其合并为每一个手势含义的融合特征向量;分类识别网络用于对每一个手势含义的融合特征向量进行分类识别,输出视频输入样本对应的手势类别。
通过前后帧关联网络中双向lstm模型来理解连续手势姿态之间的相关性,考虑了前后帧的信息,极大提高了动态手势的识别率。
本发明提供的基于深度神经网络的动态手势识别方法,基础是设计基于深度神经网络的动态手势识别网络模型,并利用训练样本进行训练,基于深度神经网络的动态手势识别方法的实现主要包括以下步骤:
采集c种不同手势含义的动态手势视频片段的样本数据,经过数据扩充处理后生成训练样本数据集,其中训练样本为rgb-d格式,包含rgb图像和对应的深度信息,c为正整数;
设计基于深度神经网络的动态手势识别网络模型;
利用训练样本对所述动态手势识别网络模型进行训练;
利用训练好的基于深度神经网络的动态手势识别模型,对采集到的动态手势进行识别;
所述动态手势识别网络模型由特征提取网络、前后帧关联网络以及分类识别网络构成,其中:所述特征提取网络用于提取不同手势含义的视频输入样本的特征,获得每一个手势含义的样本特征向量;所述前后帧关联网络用于对每一个手势含义的样本特征向量进行前后时间帧的关联映射,并将其合并为每一个手势含义的融合特征向量;所述分类识别网络用于对每一个手势含义的融合特征向量进行分类识别,输出样本对应的手势类别。
为了对本发明的技术方案和实现方式做出更清楚地解释和说明,以下介绍实现本发明技术方案的几个优选的具体实施例。显然,以下所描述的具体实施例仅为本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实施例1。
如图1所示,本发明提供的基于深度神经网络的动态手势识别方法,包括以下步骤:
步骤10:获取动态手势数据样本,该步骤包括:
步骤11:利用3d深度相机采集c种不同含义的动态手势视频片段,每种手势至少采集50段不同的视频片段。
对每段动态手势视频片段等间隔采样n帧rgb图像和对应的深度信息图像形成样本xi={xi1,xi2,...,xik,...,xin},其中xik为样本xi中的第k帧数据,并且是一个大小为640×320×4的rgb-d格式的四通道数据,c为正整数;
步骤12:对采集到的所有视频片段进行手势动作的信息标注,每段视频对应唯一的手势动作标签,作为训练样本数据集。
其中,样本xi组成样本集x={x1,x2,...,xm,...,xn},并用y={y1,y2,...,ym,...,yn}来记录样本集x中每一个样本xm的手势类别标号,ym是一个c维的one-hot编码向量。
为了方便训练和测试,可以将上述标注好的视频片段中的三分之二作为训练样本数据集,剩下的三分之一作为测试样本数据集。
步骤20:设计基于深度神经网络的动态手势识别网络。
如图2所示,动态手势识别网络模型由特征提取网络、前后帧关联网络以及分类识别网络构成,其中:特征提取网络由4层卷积层组成,用于提取不同手势含义的样本特征,获得每一个手势含义的样本特征向量;前后帧关联网络由2层lstm层(longshort-termmemory,长短时记忆)组成,用于对每一个手势含义的样本特征向量进行前后时间帧的关联映射,并将其合并为每一个手势含义的融合特征向量;分类识别网络由3层全连接层组成,用于对每一个手势含义的融合特征向量进行分类识别,输出样本对应的手势类别。
步骤30:训练基于深度神经网络的动态手势识别网络模型。
将步骤20中的特征提取网络、前后帧关联网络以及分类识别网络进行前后级联,构成一个端到端的动态手势识别网络,然后通过批量随机梯度下降法,用扩充后的训练样本数据集对该网络模型进行训练,直到收敛获得基于深度神经网络的动态手势识别网络模型,并保存训练好的网络模型。
步骤40:动态手势的测试。
用训练好的基于深度神经网络的动态手势识别网络模型对测试样本数据集进行检测,得到各个视频段所对应的手势类别。
可以根据测试结果,对基于深度神经网络的动态手势识别网络模型进行再次训练,以提高识别效果。
步骤50:动态手势的识别。
利用训练好的基于深度神经网络的动态手势识别模型,对采集到的动态手势进行识别。
具体实施例2。
对于神经网络模型的训练,样本数量对于训练结果具有重要的意义,为了减少样本采集的工作量,本发明提出了对训练样本数据集中的每段视频进行随机平移、翻转、加噪以及形变等方法进行扩充,并将扩充后的训练样本与原始训练样本组成最终的训练样本数据集,形成训练样本库。
对训练样本数据集中的每一个样本xi进行平移操作的方法如下:
将样本xi中的每一帧rgb-d数据中的每个通道上任意一个像素点的坐标(x,y)沿x轴平移tx个单位,沿y轴平移ty个单位,得到(x′,y′),其中x′=x+tx,y′=y+ty,tx与ty分别是随机取区间[-0.1×width,0.1×width]和[-0.1×height,0.1×height]中间的任一整数,width为xi中的每一帧图像的宽度,height为xi中的每一帧图像的长度。
对训练样本数据集中的每一个样本xi进行翻转操作的方法如下:
将样本xi中的每一帧rgb-d数据中的每个通道同时进行水平翻转或者上下翻转。
对训练样本数据集中的每一个样本xi进行加噪操作的方法如下:
将样本xi中的每一帧rgb-d数据中,每个通道上任意一个像素点s(x,y)加上一个随机噪声σ得到s′(x,y),其中(x,y)为像素点s的坐标,s′(x,y)=s(x,y)+σ,σ服从均值为0,方差为0.1的高斯分布。
对训练样本数据集中的每一个样本xi进行形变操作的方法如下:
随机采取样本xi图像中9个控制点,并随机对控制点生成拖拽轨迹,利用移动最小二乘法驱动图像,完成图像的局部改变,从而在图像内容不变的情况下完成图像的变形。
假设p为原图像中的控制点集合,q为拖拽后的控制点集合,利用移动最小二乘法为原图像上的每个像素点v构成相应的仿射变换函数f(v),其中:
式中,矩阵m为转换矩阵;权重
具体实施例3。
本具体实施例3是对具体实施例中设计基于深度神经网络的动态手势识别网络模型的进一步细化,具体步骤包括:
步骤21:设计所述特征提取网络的方法如下:
利用4层卷积神经网络对一个手势含义的视频输入样本xi中n帧(n为正整数)大小为640×320×4的rgb-d格式的四通道数据进行特征提取,第一层到第四层卷积层的卷积核分别设置为32、64、128、256。
然后,每一层卷积层中,卷积核窗口大小设为3×3,窗口滑动步长设为2;最大池化窗口设为2×2,窗口滑动步长设为2;最终输出n个大小为2×1×256的特征。
将最终输出的n个2×1×256特征拉成一个列向量形成n个大小为512特征向量。
各层卷积层的计算公式如下:
式中,l表示第l层卷积层,j=1,2,3,…,cl,cl表示第l层输出的特征图个数,
步骤22:设计所述前后帧关联网络的方法如下:
利用2层lstm长短时记忆网络,对上述n个特征向量进行前后时间帧的关联映射,输出n个具有前后帧关联信息的特征向量;
将n个具有前后帧关联信息的特征向量,合并成一个融合特征向量v;
其中,每层lstm的计算公式如下:
式中,xt表示lstm单元的第t帧输入向量,ht表示xt经过lstm单元的输出特征向量,ft,it,ot,ct分别表示遗忘门、输入门、输出门以及记忆单元,wk,bk(k=f,i,o,c)表示lstm单元的权值和偏置参数;σ(x)表示sigmoid激活函数,tanh(x)表示tanh激活函数。
步骤23:设计所述分类识别网络的方法如下:
利用3层全连接网络,对上述的融合特征向量v进行分类识别。第一层到第三层全连接层的神经元个数分别设置为1024、1024、c,其中c为正整数。把最后一层全连接层输出的c个神经元值经过softmax函数输出,得到手势视频输入样本xi的手势含义属于第t类的概率值p(vt);
其中,每个全连接层的计算公式如下:
式中,
第t类概率值p(vt)的计算公式如下:
式中,vt表示最后一层全连接层输出的第t个神经元值,p(vt)表示第t类的概率值。
具体实施例4。
本具体实施例4是对具体实施例1中训练基于深度神经网络的动态手势识别网络模型的进一步细化,包括以下步骤:
定义ei为动态手势识别网络对训练样本xi的输出损失代价;
运用批量随机梯度下降法与反向传播算法,对基于深度神经网络的动态手势识别网络进行迭代训练,直到模型的损失代价ei下降到一个固定精度停止训练,保存训练后的网络模型得到基于深度神经网络的动态手势识别网络模型;
其中,
式中,yik表示样本xi对应的类别向量yi的第k个值,p(vk)表示样本xi的手势类别属于第k类的概率值,log(x)表示对数函数。
在上述方法的基础上,本发明还提供了一种基于深度神经网络的动态手势识别系统,包括:
训练样本数据集,通过采集装置采集c种不同手势含义的动态手势视频片段的样本数据,经过数据扩充处理后生成训练样本数据集,其中样本数据为rgb-d格式,包含rgb图像和对应的深度信息,c为正整数;
基于深度神经网络的动态手势识别网络模型,由特征提取网络、前后帧关联网络以及分类识别网络构成,其中:所述特征提取网络用于提取不同手势含义的样本特征,获得每一个手势含义的样本特征向量;所述前后帧关联网络用于对每一个手势含义的样本特征向量进行前后时间帧的关联映射,并将其合并为每一个手势含义的融合特征向量;所述分类识别网络用于对每一个手势含义的融合特征向量进行分类识别,输出样本对应的手势类别;
训练装置,利用训练样本集对所述动态手势识别网络模型进行训练;
识别装置,利用训练好的基于深度神经网络的动态手势识别模型,对采集到的动态手势进行识别。
本发明提供的基于深度神经网络的动态手势识别方法及系统,具有以下突出的优点:
(1)直接将动态手势视频数据进行端到端的预测,提高了动态手势识别的效率。
(2)利用rgb-d信息,对环境光线与肤色问题有较好的鲁棒性,能够在复杂背景下进行动态手势的识别。
(3)在网络模型中引入双向lstm模型,来理解连续手势姿态之间的相关性,考虑了前后帧的信息,极大提高了动态手势的识别率。
(4)对训练样本集中的每段视频进行随机平移、翻转、加噪以及形变等方法进行扩充,增加了样本量的同时,减少了采集的工作量。
本发明并不局限于上述最佳实施方式,任何人应该得知在本发明的启示下做出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。