[发明专利]一种基于深度学习的动态手势动作识别方法有效
申请号: | 202010011805.1 | 申请日: | 2020-01-06 |
公开(公告)号: | CN111209861B | 公开(公告)日: | 2022-03-18 |
发明(设计)人: | 张烨;陈威慧;樊一超 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06V40/20 | 分类号: | G06V40/20;G06V40/10;G06V10/764;G06V10/82;G06K9/62;G06N3/04;G06N3/08 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
地址: | 310014 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 动态 手势 动作 识别 方法 | ||
1.一种基于深度学习的动态手势动作识别方法,包括下列步骤:
步骤一,构建手势关节点坐标识别网络;
利用改进的CPM模型对手势视频进行处理,输出单视点下的手势关节点坐标,其实现流程如下:
(1.1)选择手势关节点估计的基础网络模型;
选择VGG-13作为手势关节点估计的基础网络模型;
(1.2)设置感受野;
感受野的大小与卷积或池化的滑动窗口有关,将两者看成是一个映射,将n层特征图上的k×k范围的像素值压缩到n+1层特征图上的一个像素内,表示为fks,其中s表示滑动窗口的步长,k表示卷积核或池化核的大小,其映射关系为:
其中:xn,xn+1为第n层和第n+1层的特征图;
基本网络结构基于VGG-13,对于VGG-13的第一个部分,包含了两个卷积和一个池化,这三个结构形成了一个级联,因此映射过程在网络中多次重复,形成一个多级映射;各环节的感受野与卷积核或池化核的参数如表1所示:
表1级联下各层特征图对应的感受野和卷积核参数
记RFn为第n个特征图的感受野,Kn为第n个卷积层的卷积核或池化核的大小,Sn为Kn的步长,由表1中的感受野规律,可以归纳推导出感受野与步长以及卷积核大小的关系;
在第一层卷积后特征图的感受野大小为卷积核的大小:
RF1=K1 (2)
当步长为1时,第n≥2个特征图的感受野大小为:
RFn=RFn-1+(Kn-1) (3)
对于步长不为1的情况,有n≥2:
RFn=RFn-1+(Kn-1)×Sn (4)
(1.3)提取特征;
利用基础网络模型VGG-13对图像进行特征提取;
首先定义第p个关节在图像像素中的位置坐标为Yp,则有,
其中集合Z代表图像中所有像素的位置;
设有P个需要预测的关节点,目标是得到所有P个关节点坐标Y:
Y=(Y1,Y2,…,Yp) (6)
由以上关系可知,Y是Z的子集;
接着定义一个多阶段的预测分类器gt(x),用于预测每个阶段中每个关节点所在位置;在每个阶段t∈{1,2,…T},预测分类器都会将图像中的一点z赋给Yp,并在每个阶段都会给每个手势关节点生成一个热图,具体的表达式为:
当分类器在第一阶段预测手势关节点位置时,会产生一个热图和相对应的手势关节点置信得分:
其中b1p(Yp=z)是分类器在第一阶段预测第p个手势关节点在z位置处时的手势关节点置信得分;
对于接下来的每一个阶段,第p个手势关节点在z位置处的置信得分可以表示为:
其中,u,v代表图像中某一处位置z的坐标值;
在后续阶段t(t≥2),基于前一阶段的热图和手势关节点的置信得分,继续为每个手势关节点赋更加精确的位置坐标z,这个更加精确的位置z是基于第一阶段分类器所提取的图像特征和前一阶段的分类器所提取到的图片上下文信息共同决定的,同样的,后续每个阶段的预测分类器仍然产生属于每个阶段的手势关节点热图对应的手势关节点置信得分:
其中,ψt(z,bt-1)表示一种置信得分与图像上下文信息之间的映射,X′z表示上一阶段在位置z周边所提取到的图像特征;
在以上过程的不断重复下,每个阶段都基于前一阶段的图像上下文信息和第一阶段提取到的图像特征对第p个手势关节点的位置做出修正,这种逐渐微调的过程使得模型最终估计出较为准确的手势关节点坐标位置;
步骤二,采集单视点视频数据;
以单视点的形式对手势视频样本进行采集,即用一个普通的网络摄像头从多个角度捕捉用户的手势数据,其中:
(2.1)定义基本手势元素;
重新定义了对视觉识别的基本动作元素,并将确定的具体可识别的基本动作元素,称为基本手势元素,并对其符号进行了定义;
(2.2)选取手势关节点;
通过对手势关节点进行识别,将识别的关节点按照顺序进行连线、标号,形成一个手姿势的骨架,通过对手骨架姿势的识别实现对手的姿势的识别,且将此过程定义为手势估计;手指弯曲时,手指分为三小段,使手指呈现不同的弯曲程度,这三段之间的连接点恰好是手指的关节点,因此,选取每个手指的指尖部位的点作为手指的起始关节点,然后连接各自手指上三小段之间上的关节点,接着每根手指上的末尾关节点都与手腕处的一个关节点相连,选定了模型的关节点之后,将模型的关节点按照一定的顺序标号、连接,以形成手势骨架;
(3)准备训练样本数据集;
基于卷积神经网络对图像或视频内容识别的基础是有标准的数据集;因此在单视点下对基本手势元素进行视频采集,以建立基本手势元素数据库;
同时,对于已有的一个大数据集,将其划分为训练集、验证集、测试集;三个子集两两之间无交集,三者的并集为全集,由于来自同一个数据集,因此三个子集是独立同分布的;验证集和测试集均用于测试模型的准确率,且两者均与模型训练时的梯度下降过程无关,但由于验证集的参与,其验证结果调节了模型迭代数和学习率,即模型有了一个参数调整的过程,因此认为验证集参与了模型的训练;
步骤三,输出手势高斯热图和手势关节点坐标;
采用热图的形式对手势关节点的真实值进行标注,同时也采用热图作为模型的输出,其中生成的手势关节点热图是以图像中关节点所在像素区域的某一个点为中心,以具体的像素点个数为半径,画出一个圆域,将关节点所在的区域划分出来,作为关节点出现的概率区域,在该区域的中心颜色最深,表示关节点在这个位置的概率最大,而后区域的颜色由中心向外逐渐变浅;这种颜色会在中心达到尖峰,四周逐渐变浅的图像形式与高斯函数图像有着相似之处,因此可利用高斯函数来生成各个关节点区域的热图;热图的坐标是(x,y)的形式,即有二维高斯函数的公式:
式中,x0,y0表示手势关节点的坐标真实值;x,y表示手势关节点热图区域像素点的坐标值;表示二维高斯函数的幅度值;σ2表示x,y的标准差;
对于手势关节热图的概率区域大小,将其定义为半径为1的圆域,其中对于二维高斯函数的幅度A给定值为1,σ给定值为1.5,则生成一个二维高斯函数的分布图像;
在原图片的基础上生成二维高斯函数分布形态的热点图,该热图基于手势关节点区域的中心坐标,生成一个呈高斯分布的概率区域,在这个区域的中心处的概率值最大,也就是二维高斯函数的尖峰中心点,越向四周扩散,概率值越小;以概率值最大的尖峰点为中心的高斯概率区域中,所有点的总和是超过1的,但在这个概率区域中,所有像素点位置出现手势关节点的概率总和应该为1,为此,对该区域内所有的像素点的函数值进行加和,将每一个像素点对应的函数值除以像素点函数值的总和,以此保证所有点的概率和为1,处理方式如下所示:
式中:p(x,y)表示处理后的像素点存在关节点的概率大小;f(x,y)表示概率区域内的像素点对应的二维高斯函数值;∑f(x,y)表示所有像素点的函数值的总和;
将这些基于二维高斯函数生成的热图称为高斯热图,在模型的每一个阶段,都会输出所有关节点的高斯热图,即每一个关节点对应一张高斯热图;
步骤四,构造手势序列识别网络;
网络模型构造的具体流程如下:
(4.1)定义激活函数;
由于涉及的循环神经网络的层数并不多,在网络层次不深的情况下梯度消失的问题相对较小,因此在循环神经网络中采用Tanh作为激活函数;
Tanh激活函数是双曲正切函数,Tanh及其导数的表达式如下所示:
(4.2)选择损失函数;
在网络的最后一层需要输出基本手势元素的类别,采用多分类的Softmax损失函数计算出输入的视频中的手势分别属于每个类别的概率,最后模型输出对该视频中手势的预测结果为每个类别中概率最大的那个类别;
假设x是循环神经网络输入到Softmax层的一组特征向量,W和b是Softmax的参数,则Softmax的第一步是对每个类别进行打分,计算各类别的分值Logit:
Logit=WTx+b (15)
接着,用Softmax将每个类别的分值转化为各自的概率值:
其中,i表示第i个手势类别,ei表示第i个手势的分值;
至此模型输出了每个手势类别的概率分布,这个概率分布是一个预测值,将其称为q(x),而每个手势还带有一个实际标签,也就是一个真正的概率分布,称其为p(x);由于Softmax函数又称为交叉熵损失函数,而交叉熵描述的是两个概率分布之间的距离问题,其可以定义为:
H(p,q)=-∑p(x)logq(x) (22)
假设p(x)=(A,B,C),q(x)=(u,v,w),且p(x)是真实值,q(x)是预测值,则通过q(x)来表示p(x)的交叉熵为:
H((A,B,C),(u,v,w))=-(Alogu+Blogv+Clogw) (23)
当q(x)和p(x)的位置互换时,两者的交叉熵是不同;交叉熵是通过概率来衡量一个事件的出现可能性的,一个事件出现的可能性越大,这个事件包含的信息量越小,即熵值越小,因此当预测的概率分布q(x)与真实值p(x)之间越靠近,两者的交叉熵就越小,意味着模型的输出与真实值就越接近,模型的预测越准确;
(4.3)建立模型;
在模型中X=(x1,x2,x3,...,xT)是按照时间序列展开的视频帧,这些时序帧作为循环神经网络的输入,每一帧中包含的信息是每个手势的关节点坐标值,时间序列的长度设为T;第一个隐藏层的隐状态为H=(h1(1),h2(1),...,hT(1)),则对第一个隐藏层的隐状态,有:
其中,第一个隐藏层隐的第一个序列的隐状态为:
对于第二个隐藏层,其输入由前一个时刻的隐状态和上一个隐藏中同样处于当前时刻的隐状态的输入共同决定,则第二个隐藏层的隐状态可以表示为:
其中,第二个隐藏层的首个序列的隐状态为:
对于最后的输出为每种手势的预测分类结果,Y=(Y1,Y2,Y3,Y4,…,Yn),有:
Yi=Softmax(VhT+c) (28)
其中i=(1,2,3,4,…,n),U、W、V均为参数矩阵,用于对输入和隐藏层的隐状态进行矩阵变换,b、c均为偏置,所有的参数是在网络的各个阶段是共享的;
最后,将步骤三得到的关节点坐标输入标准手势序列识别网络,得到手势动作序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010011805.1/1.html,转载请声明来源钻瓜专利网。