[发明专利]一种基于深度学习的手势识别方法有效

专利信息
申请号: 201810242638.4 申请日: 2018-03-22
公开(公告)号: CN108537147B 公开(公告)日: 2021-12-10
发明(设计)人: 董训锋;陈镜超;李国振;马啸天 申请(专利权)人: 东华大学
主分类号: G06K9/00 分类号: G06K9/00;G06F3/01;G06K9/46;G06K9/62;G06T7/10
代理公司: 上海申汇专利代理有限公司 31001 代理人: 翁若莹;柏子雵
地址: 200050 上*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 深度 学习 手势 识别 方法
【权利要求书】:

1.一种基于深度学习的手势识别方法,其特征在于,包括以下步骤:

步骤1、利用手势训练集和测试集对二值化卷积神经网络进行训练;

步骤1中二值化卷积神经网络采用在MPCNN基础上的基于二值化的卷积神经网络BCNN,具体包括:

在MPCNN手势分类方法的基础上,提出一种基于二值化的卷积神经网络手势分类方法,采用二值化近似的策略对神经网络进行改进,降低其对计算资源的消耗; 二值化网络降低计算资源消耗的方式有两个:第一,采用二值化近似的权值表示原有的双精度权值,降低了网络在计算中的内存占用;第二,对每一层中计算消耗最大的乘法计算中的输入和权值采用二值化近似的值进行替代,这样乘法计算就可以简化成加减法甚至位运算,包含对卷积块的改造和对全连接块的改造;

第一部分:卷积块的二值化;

对卷积神经网络进行二值化近似改造的具体方式如下:

步骤1011、在正向传播过程中,对卷积网络的权值矩阵w按照式(7)进行二值化得到wb,并保留原本的权值矩阵w,即:

式(7)中,代表二值化近似后得到矩阵wb中的权值,cf、wf、hf表示卷积核的数量、宽度和高度,规定当w=0时取sign(w)=1;

步骤1012、在每层的前一层之前增加一个二值化激活层得到节点值,替代原本的ReLU激活层,如式(8)所示,即:

式(8)中,为二值化网络的第i层的输入值,c,w,h分别表示输入图像的通道数,宽度和高度;L(X(i-1))为第i层二值化激活层得到的值;X(i-1)表示二值化网络的第i-1层的输入值;

sign的函数与式(8)保持一致,最后,得到的权值wb在二值化卷积层进行卷积操作,如式(9)所示,即:

式(9)中:Lb(Xb)为二值化的网络层函数;为卷积操作;Xb即为wb、Xb分别经过式(7)和式(8)得到;

对于卷积块,将归一化处理BatchNorm层和二值化激活层放在卷积操作之前,防止二值化激活层的结果在经过最大池化层时出现结果大多数为1的情况;

二值化卷积神经网络训练的反向传播的过程如下,最后一层算出梯度,倒数第二层到第一层逐层反向传播算出节点的梯度以及权值的梯度,再对二值化前保留的w进行更新得到wu并进行如式(10)的宽松操作,即:

式(10)中,wu表示在正向传播过程中保留的浮点数权值更新后的值;σ(wu)表示权重wu0时概率;chip(·)表示max函数;

第二部分:全连接块的二值化;

全连接块的二值化与卷积块的二值化基本一致,不同的是将二值化卷积层替换为二值化全连接层,并去除了最大池化层,二值化全连接层的计算公式如式(11)所示:

Lb(Xb)=wbXb (11)

式(11)中,Lb(Xb)为二值化的全连接层函数;Xb,wb分别经过式(7)和式(8)得到,二值化的全连接层去除了偏置b;

步骤2、采集原始手势图像后,对原始手势图像进行预处理,以去除光照对原始图像造成的影响;

步骤2中,对原始手势图像进行的预处理包括:基于指数变换和对数变换的亮度修正、基于动态阈值的光线补偿,具体包括:

步骤201、基于指数变换和对数变换的亮度修正:

指数变换只对图像中偏亮区域有不错的修正效果,对数变换对图像中较暗的区域有较好的修正效果,将两者相结合实现一种针对人手的光线补偿策略,如公式(1)所示,对高亮区域,使用修正的指数变换来修正,对于较暗的区域,使用带参数的对数变换来修正,对其他区域不进行修正:

公式(1)使用参数如下:

g(x,y)表示修正后的图像;f(x,y)表示原始手势图像;a表示高光调整系数;b表示图像的平均亮度;c表示正常数通过实验调试得出;d=1/255-T2;T1表示较暗光照条件下,光线下限阈值;T2表示较亮光照条件下,光线上限阈值;

步骤202、基于动态阈值的光线补偿

基于全反射理论的算法将图像转换到YCbCr色彩空间,然后将YCbCr色彩空间中Y分量较大的点的集合当做白色参考点,包括以下步骤:

假设原始手势图像为f(x,y),大小为m×n,则有:

步骤2021、首先利用式(2)将原始手势图像f(x,y)从RGB色彩空间转换到YCbCr色彩空间:

步骤2022、获取参考白点,包括以下步骤

(a)将转换后的图像切割成M×N块;

(b)对每个分割后的块,分别计算YCbCr空间中Cb和Cr分量的平均值Mb和Mr

(c)使用Mb和Mr来对每个分块的Cb和Cr分量的平均绝对误差Db和Dr进行计算,计算公式为式(3):

式(3)中,Cb(i,j)表示每一个像素点的B分量相对于亮度的偏移量,Cr(i,j)表示R分量相对于亮度的偏移量,sum表示当前分块的像素总数目;

步骤3、利用肤色反映的颜色信息,基于颜色信息对预处理后的原始图像进行分割,提取手势轮廓;

步骤3中,基于颜色信息对预处理后的原始图像进行分割时,采用基于YCbCr色彩空间肤色分割算法,具体包括:

YCbCr色彩空间又称为YUV色彩空间,Y表示明亮度,Cr和Cb表示色度和饱和度,其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异,而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异;

RGB色彩空间向YCrCb的转换公式为式(4)所示:

通过反复试验,参数基本的取值如下:

77≤Cb≤127 AND 132≤Cr≤172 (5)

但是式(5)为包含更多的肤色范围,提供的取值区间过大,因此容易引入橘色或者棕色物体干扰,经过多次调试,对取值进行调整,可以有效排除类肤色物体的干扰,取值如下:

步骤4、判断步骤3提取到的手势轮廓是否为动态手势的起、止点,若是,则该手势轮廓其后的一系列图像提取的手势轮廓为动态手势,进入步骤6,若不是,则该手势轮廓为静态手势,进入步骤5;

步骤5、利用训练后的二值化卷积神经网络判断手势轮廓对应的手势指令;

步骤6、定位一系列手势轮廓对应的动态手势起、止点,并使用TLD算法追踪手势轨迹,追踪过程中的偏差使用Haar分类器进行修正,再使用HMM算法识别动态手势;

步骤6中,使用TLD算法追踪手势轨迹,追踪过程中的偏差使用Haar分类器进行修正,再使用HMM算法识别动态手势的具体方法包括:

步骤601、TLD算法框架由三个部分组成:跟踪、学习、检测,在算法框架中,三个部分协同互补,完成对物体的跟踪;在跟踪模块中,前提条件为物体运动速度不高,在相邻两帧之间物体不会出现大幅度位移,而且被跟踪目标始终在摄像头范围内,以此对运动目标进行估计,如果目标从视野中消失,则会造成跟踪失败;在检测模块中,前提为视频每帧之间不产生干扰,通过以往检测和学习到的模型,使用检测算法,分别在每帧图像搜索目标,将目标的可能出现区域进行标定;当检测模块出现错误时,学习模块根据跟踪模块得到的结果,对检测模块出现的错误进行评价,生成训练样本,更新检测模块的目标模型和跟踪模块的关键特征点,从而避免出现类似的错误;

步骤602、使用Haar分类器修正跟踪过程中的偏差

Haar分类器的构建主要步骤包括提取Haar特征和训练分类器两部分;Haar特征主要包括中心特征、线性特征、边缘特征和对角特征;为了得到最终的Haar分类器,采用改进的Adaboost算法来训练:首先以从样本提取的Haar特征来训练不同的弱分类器,然后将这些弱分类器整合得到最终的强分类器,也就是Haar分类器;

改进的Adaboost算法的实现流程如下:

假设X是样本空间,Y是样本类别标识集合;对于典型的两分类问题有Y={0,1},记S={(xi,yi)|i=1,2,3,...,m}为加入标签后的训练样本集合,其中,有xi∈X,yi∈Y,假设达到最终的目标时一共迭代了T次;

步骤6021、对m个样本的权值进行初始化:

式中,Dt(i)表示在第t次迭代中样本(xi,yi)的权值;

步骤6022、对于t=1,2,3…,T,分别计算:

(a)为样本x的每一个特征f训练一个弱分类器hl(x,f,p,θ):

式(13)中,θ表示f对应的弱分类器的阈值,p的作用是调整不等号方向,使用qi对所有的特征的弱分类器加权后的分类错误率εf进行计算:

εf=∑iqi|ht(x,f,p,θ)-yi| (14)

式(14)中,yi表示样本类别标识空间中元素,qi表示第i个训练样本的权值;

(b)挑选出拥有最小错误率εt的最佳弱分类器εt

εt=minf,p,θiqi|ht(x,f,p,θ)-yi| (15)

(c)使用最佳弱分类器来修正样本权值:

βt=εt(1-εt) (17)

式(16)中,Dt+1(i)表示第t+1个训练样本的概率值,表示Dt+1与Dt存在迭代关系,通过Dt更新Dt+1

式(17)中,βt表示归一化常数;

若样本xi被正确分类,则ei=0,否则,ei=1;

步骤6023、最终Haar分类器C(x):

αt=log(1/βt) (19)

步骤603、基于HMM动态手势轨迹识别

识别动态手势轨迹使用隐马尔科夫模型,识别过程对应于隐马尔科夫模型求解的三个过程:

步骤6031、估计问题

该问题是指对于一个给定隐马尔科夫模型λ=(π,A,B),及通过该模型产生的一个观测值序列O=(o1,o2,...,oT),计算产生的观测序列O的似然概率P(O|λ),解决此问题的一个有效算法为前向-后向递推算法:

定义前向变量为:

αt(i)=P(o1,o2,…oT,qt=θi|λ),1≤t≤T (19)

式(19)中,P(·)表示观测序列的似然概率;o1,o2,...,oT表示观测序列;qt表示时刻t的观测值;θi表示系统状态值;λ表示隐马尔科夫模型;T表示观测总时间;t表示时间刻度,取值0-T之间;

记bj(ot)=bjk|ot=vk,bj(ot)表示观测状态转移矩阵,bjk表示任意t时刻,系统观测矩阵,vk表示t时刻的隐含状态,前向算法步骤为:

初始化:

α1(i)=πibj(o1),1≤i≤N (20)

式(20)中,α1(i)表示从1-i时刻出现o1~oi观测序列,且该时刻隐藏状态v1为1的概率;πi表示初始概率分布矩阵;

递归:

式(21)中,αt+1(j)表示j时刻隐藏状态vt+1为t+1的概率,αi,j表示在任意t时刻的系统状态转移矩阵;

计算P(O|λ):

式(15)中,P(O|λ)表示当前模型λ下产生观测序列O的似然概率,定义后变量为:

βt(i)=P(ot+1,ot+2,…oT,qt=θi|λ),1≤t≤T (22)

式(22)中,βt(i)表示t时刻P(O|λ)的后验概率;

后向算法的步骤为:

初始化:

βT(i)=1,1≤i≤N (23)

递归:

计算P(O|λ):

通过在计算前半部分采用前向算法,设时间段为0~t,在计算的后半部分采用后向算法,设时间段为t~T,求得概率为:

步骤6032、解码问题

对于一个隐马尔科夫模型λ=(π,A,B),首先需要求出该模型产生的一个观测值序列O=(o1,o2,...,oT),在观测值序列的基础上,计算模型产生观测序列的过程中所经历的最佳状态序列这里使用Viterbi算法;

步骤6033、学习问题

在不知道隐马尔科夫模型参数的情况下,根据模型产生观测序列O=(o1,o2,...oT,),通过调整模型参数,使得似然概率P(O|λ)取值最大。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东华大学,未经东华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201810242638.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top