具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例所获得的所有其他实施例,都属于本发明保护的范围。
针对上述提及的在现有的神经网络模型无法兼顾识别精度与模型内存的技术问题,本发明提供了一种人脸识别或手势识别的神经网络模型建立方法、装置及计算机可读存储介质。
需要说明的是,本申请提供人脸识别或手势识别的神经网络模型建立方法、装置及计算机可读存储介质可运用在当前任意一种神经网络模型上,从而实现在保证识别精度的基础上,降低模型的内存,因此其能够方便自由存储嵌入。
图1为本发明实施例一提供的人脸识别或手势识别的神经网络模型建立方法的流程示意图,如图1所示,所述人脸识别或手势识别的神经网络模型建立方法包括:
步骤101、在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取。
在本实施方式中,为了提高轻量级卷积神经网络的精确度,首先可以在数据输入层的下一层设置一特征提取层,利于模型学习更深层的抽象特征。具体地,该特征提取层用于对输入的待识别图像进行特征提取,获得待识别图像的高频图像,利用这些高频图像作为先验知识进行训练学习以及识别,从而能够大幅地提高卷积神经网络的识别精度以及识别效率。可选地,本实施例可以为基于SqueezeNet轻量级卷积神经网络的改进,具体可以为SqueezeNet轻量级卷积神经网络的数据输入层的下一层设置一特征提取层。
步骤102、将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块。
在本实施方式中,在卷积神经网络中,合适的卷积核组合不仅可以增强网络的局部感受野,而且可以适当加深网络层数,提高网络的识别精度。因此,在SqueezeNet轻量级卷积神经网络的数据输入层的下一层设置一特征提取层的基础上,可以为SqueezeNet轻量级卷积神经网络的Fire块,将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块。
步骤103、建立各相邻Fire块之间的关联关系,获得调整后的待训练模型。
在本实施方式中,将一个1*h的卷积核与一个h*1的卷积核相结合作为Fire块之后,需要建立多个相邻Fire块之间的关联关系,获得调整后的待训练模型。
步骤104、通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型。
在本实施方式中,获得调整后的待训练模型之后,为了使该待训练模型能够实现图像识别的功能,需要通过预设的待训练数据对该待训练模型进行训练,获得训练后的神经网络模型,从而后续可以根据该神经网络模型实现图像识别。可以理解的是,不同功能的神经网络模型可以采用不同的待训练数据进行训练。举例来说,手势识别模型的待训练数据可以为多张已标注的手部图像,人脸识别模型的待训练数据可以为多张已标注的人脸图像。
本实施例提供的人脸识别或手势识别的神经网络模型建立方法,通过在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块;建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型。该神经网络模型能够在保证识别精度的基础上,降低模型的内存大小,因此其能够方便自由存储嵌入。
进一步地,在上述实施例的基础上,所述方法包括:
在数据输入层的下一层设置小波框架,将所述小波框架作为所述特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;
将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块;
建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;
通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型。
在本实施例中,可以在数据输入层的下一层设置小波框架,将小波框架作为特征提取层,实现对输入图像的高频特征提取,具体地,小波变换是一种空间(时间)和频率的局部变换,通过伸缩和平移等运算功能可对函数或信号进行多尺度的细化分析,能够有效地从信号中提取信息特征。计算机中的图像信息是以离散信号形式存放的,所以需要将连续小波变换离散化。离散小波变换公式如下:
其中m,k均为整数,ψm,k(t)为离散小波基函数。特殊的小波基函数族可以构成小波框架。小波框架可以通过滤波器组的方法快速对数字信号进行多层分解,得到高频特征图像。
本实施例提供的人脸识别或手势识别的神经网络模型建立方法,通过在数据输入层的下一层设置小波框架,将所述小波框架作为所述特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取,从而能够实现对输入图像的高频特征提取,提高神经网络模型的识别精度。
进一步地,在上述实施例的基础上,所述方法包括:
在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;
分别为所述1*h的卷积核以及h*1的卷积核设置延拓参数和步长参数,通过设置延拓参数和步长参数后的一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分;
建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;
通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型。
在本实施例中,为了保证1*h的膨胀层和h*1的膨胀层能够输出相同大小的中间图像,需要分别为所述1*h的卷积核以及h*1的卷积核设置延拓参数和步长参数,通过设置延拓参数和步长参数后的一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层。具体地,可以通过公式1与公式2为1*h设置延拓参数和步长参数:
现在kernelw=1,为了保证AfterConvImgw=BeforeConvImgw,只需设置padw=0,stride=1即可;kernelh=h,为了保证AfterConvImgh=BeforeConvImgh,只需设置stride=1即可。
此外,还可以通过上述公式1与公式2为h*1的卷积核设置延拓参数和步长参数。具体地,当kernelw=h时,只需设置stride=1即可;当kernelh=1时,只需设置padw=0,stride=1即可。
本实施例提供的人脸识别或手势识别的神经网络模型建立方法,通过分别为所述1*h的卷积核以及h*1的卷积核设置延拓参数和步长参数,通过设置延拓参数和步长参数后的一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层,从而能够在保证识别精度的基础上,降低模型的内存,因此其能够方便自由存储嵌入。
进一步地,在上述实施例的基础上,所述方法包括:
在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;
将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块;
利用残差原理建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;
通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型。
在本实施例中,可以利用残差原理建立各相邻Fire块之间的关联关系,获得调整后的待训练模型。具体地,在改进的SqueezeNet轻量级卷积神经网络中引入残差思想主要是为了解决网络过深导致梯度弥散的退化问题。残差原理就是让网络学习一个非线性的残差函数F(x)=H(x)-x。这样,相比于没有加入操作的情况,F(x)的微小变化对权重的调整作用会更大,不仅能够解决了梯度消失的现象,而且最终学习的效果也很好。换句话说,残差原理就是抛弃了网络参数的主体部分,突出网络参数微小变化的部分。因为残差原理的一个必要条件是图像大小和图像通道数必须保持相等,所以在建立Fire块之间的联系时,必须保证中间图像的尺度和通道数保持一致。
本实施例提供的人脸识别或手势识别的神经网络模型建立方法,通过利用残差原理建立各相邻Fire块之间的关联关系,获得调整后的待训练模型,从而能够提高神经网络模型的学习效果,进而能够在保证识别精度的基础上,降低模型的内存大小,因此其能够方便自由存储嵌入。
图2为本发明实施例二提供的人脸识别或手势识别的神经网络模型建立方法的流程示意图,在上述任一实施例的基础上,如图2所示,所述方法包括:
步骤201、在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;
步骤202、将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块;
步骤203、建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;
步骤204、将所述待训练数据随机分为训练集与测试集;
步骤205、通过预设的数据扩充方式对所述训练集与测试集中的数据量进行扩充;
步骤206、分别对所述训练集与测试集中的数据进行标注;
步骤207、将所述训练集与测试集中的数据转换为统一尺度;
步骤208、通过所述训练集中的数据对所述待训练模型进行训练,通过所述测试集中的数据对所述待训练模型进行测试,获得训练后的神经网络模型。
在本实施例中,为了实现对待训练模型的训练,首先需要对待训练数据进行处理。具体地,可以将预设的待训练数据随机分为测试集与训练集,为了提高神经网络模型的精度,还可以通过预设的数据扩充方式对训练集与测试集中的数据量进行扩充。具体地,可以通过data-augmentation的方式增大训练集和测试集的图片数量,此外,还可以采用其他数据扩充方式实现训练集和测试集的图片数量的扩充,本发明在此不做限制。为了实现对模型的训练,还需要对待训练数据进行标注,具体地,不同功能的神经网络模型可以采用不同的待训练数据进行训练。举例来说,手势识别模型的待训练数据可以为多张已标注的手部图像,人脸识别模型的待训练数据可以为多张已标注的人脸图像。将训练集和测试集resize成统一尺度,然后生成利于高速读取的训练数据格式,例如LMDB格式、LevelDB格式、h5py格式等。通过训练集中的数据对待训练模型进行训练,通过测试集中的数据对待训练模型进行测试,获得训练后的神经网络模型。
本实施例提供的人脸识别或手势识别的神经网络模型建立方法,通过将所述待训练数据随机分为训练集与测试集;通过预设的数据扩充方式对所述训练集与测试集中的数据量进行扩充;分别对所述训练集与测试集中的数据进行标注;将所述训练集与测试集中的数据转换为统一尺度;通过所述训练集中的数据对所述待训练模型进行训练,通过所述测试集中的数据对所述待训练模型进行测试,获得训练后的神经网络模型。从而能够实现对神经网络模型的获取,进而能够在保证识别精度的基础上,降低模型的内存,因此其能够方便自由存储嵌入。
图3为本发明实施例三提供的人脸识别或手势识别的神经网络模型建立方法的流程示意图,在上述任一实施例的基础上,所述人脸识别或手势识别的神经网络模型建立方法包括:
步骤301、在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;
步骤302、将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块;
步骤303、建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;
步骤304、通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型;
步骤305、接收待识别图像,通过所述训练后的神经网络模型对所述待识别图像进行识别,获得识别结果。
在本实施例中,在数据输入层的下一层设置特征提取层,特征提取层用于对输入的待识别图像进行特征提取;将一个1*h的卷积核与一个h*1的卷积核相结合作为Fire块,其中,h为正奇数;建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;通过预设的待训练数据对待训练模型进行训练,获得训练后的神经网络模型之后,可以通过该神经网络模型实现对待识别图像的识别。具体地,可以接收待识别图像,通过训练后的神经网络模型对所述待识别图像进行识别,获得识别结果。
本实施例提供的人脸识别或手势识别的神经网络模型建立方法,通过训练后的神经网络模型对所述待识别图像进行识别,获得识别结果,由于该神经网络模型能够在保证识别精度的基础上,降低模型的内存,因此其能够方便自由存储嵌入,进而通过该神经网络模型获得的识别结果精度较高。
图4为本发明实施例四提供的人脸识别或手势识别的神经网络模型建立装置的结构示意图,如图4所示,所述装置包括:
特征提取层建立模块41,用于在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;
膨胀层建立模块42,用于将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块;
关联关系建立模块43,用于建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;
训练模块44,用于通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型。
本实施例提供的神经网络模型建立装置,通过在数据输入层的下一层设置特征提取层,所述特征提取层用于对输入的待识别图像进行特征提取;将一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层的核心部分,其中,h为正奇数,将所述膨胀层与压榨层串联作为Fire块;建立各相邻Fire块之间的关联关系,获得调整后的待训练模型;通过预设的待训练数据对所述待训练模型进行训练,获得训练后的神经网络模型。该神经网络模型能够在保证识别精度的基础上,降低模型的内存,因此其能够方便自由存储嵌入。
进一步地,在上述任一实施例的基础上,所述特征提取层建立模块包括:
小波框架设置单元,用于在数据输入层的下一层设置小波框架,将所述小波框架作为所述特征提取层。
进一步地,在上述任一实施例的基础上,所述膨胀层建立模块包括:
膨胀层建立单元,用于分别为所述1*h的卷积核以及h*1的卷积核设置延拓参数和步长参数,通过设置延拓参数和步长参数后的一个1*h的卷积核与一个h*1的卷积核相结合作为膨胀层。
进一步地,在上述任一实施例的基础上,所述关联关系建立模块包括:
关联关系建立单元,用于利用残差原理建立相邻Fire块之间的关联关系。
进一步地,在上述任一实施例的基础上,所述训练模块包括:
分类单元,用于将所述待训练数据随机分为训练集与测试集;
扩充单元,用于通过预设的数据扩充方式对所述训练集与测试集中的数据量进行扩充;
标注单元,用于分别对所述训练集与测试集中的数据进行标注;
转换单元,用于将所述训练集与测试集中的数据转换为统一尺度;
训练单元,用于通过所述训练集中的数据对所述待训练模型进行训练,通过所述测试集中的数据对所述待训练模型进行测试,获得训练后的神经网络模型。
进一步地,在上述任一实施例的基础上,所述装置还包括:
识别模块,用于接收待识别图像,通过所述训练后的神经网络模型对所述待识别图像进行识别,获得识别结果。
图5为本发明实施例五提供的人脸识别或手势识别的神经网络模型建立装置的结构示意图,如图5所示,所述神经网络模型建立装置,包括:存储器51,处理器52;
存储器51;用于存储所述处理器52可执行指令的存储器51;
其中,所述处理器52被配置为由所述处理器52执行如上述任一实施例所述的人脸识别或手势识别的神经网络模型建立方法。
本发明又一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述任一实施例所述的人脸识别或手势识别的神经网络模型建立方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。