本发明涉及图像处理技术领域,尤其是基于随机丢弃卷积数据的人脸识别方法、系统及存储介质。
背景技术:
近年来,随着硬件的发展,深度学习技术得以应用。当前人脸识别技术主要应用卷积神经网络、主动形状模型asm、主动表观模型aam、adaboost结合支持向量机svm等算法。
人脸识别准确率较高的主要是使用卷积神经网络进行人脸识别:利用大量的人脸图像,对神经网络的结构参数进行训练,再使用训练好的模型对新的人脸图像进行识别,进而达到人脸识别的目的。
基于卷积神经网络的人脸识别算法比较成熟,并且易于实现,但是存在以下问题:一是由于训练数据不够多,容易出现过拟合现象;二是卷积神经网络会将图像中包括识别对象及非识别对象(噪声)结合一起训练,降低了识别率。当数据较少时,模型训练结果会过度依赖样本,会出现过拟合,如果图像噪声较多时会极大地降低人脸识别率。
人脸识别的场景中得到的很多图像都包含大片背景区域,进行人脸检测时所截取下来的人脸图像也会包含背景区域。现有的卷积神经网络会将噪声与识别对象结合一起训练,会极大降低识别率。在这种情况下,若样本不够多时,人脸的识别率无法达到满意的水平。同时,训练样本不够多时,会导致模型出现过拟合现象。
技术实现要素:
为解决上述技术问题,本发明的目的在于:提供一种能够防止过拟合且噪声影响小的,基于随机丢弃卷积数据的人脸识别方法、系统及存储介质。
本发明一方面所采取的技术方案为:
基于随机丢弃卷积数据的人脸识别方法,包括以下步骤:
基于预设的尺寸规格,对待识别人脸图像进行大小调整;
将调整后的待识别人脸图像转换成灰度图像;
基于随机丢弃卷积数据的方法,对灰度图像进行卷积操作,得到卷积特征图;
对卷积特征图进行池化操作,得到池化特征图;
对池化特征图进行全连接分类;
根据全连接分类结果,得到人脸识别结果。
进一步,所述基于随机丢弃卷积数据的方法,对灰度图像进行卷积操作,得到卷积特征图这一步骤,包括以下步骤:
对卷积核大小、卷积滑动步长、丢弃卷积数据的比例以及卷积方式进行配置;
根据待识别人脸图像尺寸、卷积核大小和卷积滑动步长,计算卷积层大小;
对卷积神经网络中卷积层的特征点进行标记;
根据丢弃卷积数据的比例和卷积方式,计算丢弃数量;
根据标记的特征点和计算得到的丢弃数量,对卷积数据进行随机丢弃操作。
进一步,所述根据标记的特征点和计算得到的丢弃数量,对卷积数据进行随机丢弃操作这一步骤,包括以下步骤:
根据系统当前时间生成随机种子;
根据随机种子生成随机数;
根据随机数的编号,丢弃对应编号的卷积数据。
进一步,所述根据标记的特征点和计算得到丢弃数量,对卷积数据进行随机丢弃操作这一步骤,还包括以下步骤:
根据丢弃的卷积数据的灰度值,获取对应的像素点的邻域窗口;
对所述邻域窗口内的所有像素点灰度值的中值进行填充处理。
进一步,所述根据标记的特征点和计算得到丢弃数量,对卷积数据进行随机丢弃操作这一步骤,还包括以下步骤:
判断丢弃的卷积数据是否小于计算得到的丢弃数量,若是,则继续执行根据随机数的编号,丢弃对应编号的卷积数据的步骤,直至丢弃的卷积数据不小于计算得到的丢弃数量;反之,则执行对卷积特征图进行池化操作,得到池化特征图的步骤。
进一步,所述卷积方式包括但不限于same和valid。
进一步,所述对卷积特征图进行池化操作,得到池化特征图这一步骤,包括以下步骤:
通过激活函数对卷积特征图进行激活;
对激活后的卷积特征图进行池化操作,得到池化特征图。
本发明另一方面所采取的技术方案是:
基于随机丢弃卷积数据的人脸识别系统,包括:
尺寸调整模块,用于基于预设的尺寸规格,对待识别人脸图像进行大小调整;
灰度转换模块,用于将调整后的待识别人脸图像转换成灰度图像;
卷积模块,用于基于随机丢弃卷积数据的方法,对灰度图像进行卷积操作,得到卷积特征图;
池化模块,用于对卷积特征图进行池化操作,得到池化特征图;
分类模块,用于对池化特征图进行全连接分类;
输出模块,用于根据全连接分类结果,得到人脸识别结果。
本发明另一方面所采取的技术方案是:
基于随机丢弃卷积数据的人脸识别系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的基于随机丢弃卷积数据的人脸识别方法。
本发明另一方面所采取的技术方案是:
一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的基于随机丢弃卷积数据的人脸识别方法。
本发明的有益效果是:本发明通过卷积神经网络对人脸图像进行识别,在卷积操作的过程中,采用随机丢弃卷积数据的方法来对训练样本进行扩充,增加了样本的多样性,减少了噪声影响,能够防止过拟合现象,进而提高了最终的人脸识别准确率。
附图说明
图1为本发明实施例的整体步骤流程图;
图2为本发明实施例的卷积操作步骤流程图;
图3为本发明实施例的卷积操作示意图;
图4为本发明实施例中输入待识别人脸图像的示意图;
图5为本发明实施例中卷积核的示意图;
图6为本发明实施例中的卷积特征图;
图7为本发明实施例中随机丢弃的卷积数据示意图;
图8为本发明实施例中进行中值填充后的数据示意图;
图9为本发明实施例中像素点的标号规则示意图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
参照图1,本发明实施例提供了一种基于随机丢弃卷积数据的人脸识别方法,包括以下步骤:
基于预设的尺寸规格,对待识别人脸图像进行大小调整;
将调整后的待识别人脸图像转换成灰度图像;
基于随机丢弃卷积数据的方法,对灰度图像进行卷积操作,得到卷积特征图;
对卷积特征图进行池化操作,得到池化特征图;
对池化特征图进行全连接分类;
根据全连接分类结果,得到人脸识别结果。
进一步作为优选的实施方式,所述基于随机丢弃卷积数据的方法,对灰度图像进行卷积操作,得到卷积特征图这一步骤,包括以下步骤:
对卷积核大小、卷积滑动步长、丢弃卷积数据的比例以及卷积方式进行配置;
根据待识别人脸图像尺寸、卷积核大小和卷积滑动步长,计算卷积层大小;
对卷积神经网络中卷积层的特征点进行标记;
根据丢弃卷积数据的比例和卷积方式,计算丢弃数量;
根据标记的特征点和计算得到的丢弃数量,对卷积数据进行随机丢弃操作。
进一步作为优选的实施方式,所述根据标记的特征点和计算得到的丢弃数量,对卷积数据进行随机丢弃操作这一步骤,包括以下步骤:
根据系统当前时间生成随机种子;
根据随机种子生成随机数;
根据随机数的编号,丢弃对应编号的卷积数据。
进一步作为优选的实施方式,所述根据标记的特征点和计算得到丢弃数量,对卷积数据进行随机丢弃操作这一步骤,还包括以下步骤:
根据丢弃的卷积数据的灰度值,获取对应的像素点的邻域窗口;
对所述邻域窗口内的所有像素点灰度值的中值进行填充处理。
进一步作为优选的实施方式,所述根据标记的特征点和计算得到丢弃数量,对卷积数据进行随机丢弃操作这一步骤,还包括以下步骤:
判断丢弃的卷积数据是否小于计算得到的丢弃数量,若是,则继续执行根据随机数的编号,丢弃对应编号的卷积数据的步骤,直至丢弃的卷积数据不小于计算得到的丢弃数量;反之,则执行对卷积特征图进行池化操作,得到池化特征图的步骤。
进一步作为优选的实施方式,所述卷积方式包括但不限于same和valid。
进一步作为优选的实施方式,所述对卷积特征图进行池化操作,得到池化特征图这一步骤,包括以下步骤:
通过激活函数对卷积特征图进行激活;
对激活后的卷积特征图进行池化操作,得到池化特征图。
与图1的方法相对应,本发明实施例还提供了一种基于随机丢弃卷积数据的人脸识别系统,包括:
尺寸调整模块,用于基于预设的尺寸规格,对待识别人脸图像进行大小调整;
灰度转换模块,用于将调整后的待识别人脸图像转换成灰度图像;
卷积模块,用于基于随机丢弃卷积数据的方法,对灰度图像进行卷积操作,得到卷积特征图;
池化模块,用于对卷积特征图进行池化操作,得到池化特征图;
分类模块,用于对池化特征图进行全连接分类;
输出模块,用于根据全连接分类结果,得到人脸识别结果。
进一步作为优选的实施方式,所述卷积模块包括:
配置单元,用于对卷积核大小、卷积滑动步长、丢弃卷积数据的比例以及卷积方式进行配置;
第一计算单元,用于根据待识别人脸图像尺寸、卷积核大小和卷积滑动步长,计算卷积层大小;
标记单元,用于对卷积神经网络中卷积层的特征点进行标记;
第二计算单元,用于根据丢弃卷积数据的比例和卷积方式,计算丢弃数量;
丢弃单元,用于根据标记的特征点和计算得到的丢弃数量,对卷积数据进行随机丢弃操作。
其中,在所述第一计算单元中,所述待识别人脸图像是指经过尺寸调整模块的大小调整操作之后的图像。
与图1的方法相对应,本发明实施例还提供了一种基于随机丢弃卷积数据的人脸识别系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的基于随机丢弃卷积数据的人脸识别方法。
与图1的方法相对应,本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的基于随机丢弃卷积数据的人脸识别方法。
下面详细描述本发明一种基于随机丢弃卷积数据的人脸识别方法的具体实施步骤:
s1、读取人脸图像:摄像头采集图像实时传输到电脑中,对图像进行读取;
s2、调整图像大小:读取后的图像调整成统一尺寸大小;
s3、转为灰度图像:将调整大小后的图像转为灰度图像;
s4、卷积操作:对灰度图像进行卷积操作,用激活函数对卷积特征图进行激活;
如图2所示,具体地,所述步骤s4包括以下步骤:
s41、对卷积核大小,卷积滑动步长、丢弃卷积数据的比例、卷积方式进行配置;
其中,卷积层在处理二维图像i时,卷积操作的数学公式为:
其中,k为卷积核,s表示待识别图像i卷积后的特征图,s(i=0,j=0)表示最左上角第一个像素值;m和n代表卷积核的大小,m为卷积核的长,n为卷积核的宽。本实施例中的m与n可相等或者不等;如图3所示,卷积特征图左上角的6即为s(i=0,j=0);i为图像的横像素,j为图像的纵像素。
如图3所示,卷积核在图像上滑动,将图像像素与卷积核重叠的区域进行加权求和,得到该点处的卷积。本实施例中,输入图像大小为5×5,卷积核大小为3×3,滑动步长为1×1,所生成的卷积特征图大小为3×3。本发明的卷积操作步骤包含随机丢弃和中值填充两部分,其中,随机丢弃值为6,中值填充后变为-1。
本实施例中配置的参数数值如下:卷积核大小为m×n;卷积滑动步长为l×l;丢失卷积数据比例为k;卷积特征图大小为w1×h1;卷积方式为same或valid;
s42、基于上述的参数数值,所述卷积特征图的计算公式为:
如图4所示,本实施例输入的待识别图像大小为24×24;如图5所示,卷积核大小为3×3,卷积方式为same,滑动步长为1×1;如图6所示,所得卷积特征图为24×24。其中,本实施例的图5为第一次卷积时的卷积核,卷积神经网络在训练的时候会改变卷积核中的权值数据(也就是图5中的9个1),每次训练过后的卷积核权值会改变。
s43、对卷积神经网络中卷积层的特征点进行标记;
s44、根据丢弃卷积数据的比例和卷积方式,计算丢弃数量;
s45、根据标记的特征点和计算得到的丢弃数量,对卷积数据进行随机丢弃操作。
具体地,本发明根据图像大小、卷积核大小和滑动步长计算出卷积层的大小,将每个特征点进行标号,再根据丢弃卷积数据的比例计算出丢弃数量。
其中,本实施例的参数配置如下:图像尺寸为w×h;卷积核大小为m×n;滑动步长为l×l;丢失卷积数据比例为k;卷积特征图大小为w1×h1;
当采用same作为卷积方式时,丢弃数量的计算方法如下:
计算得到随机丢弃的卷积数据数为:
当采用valid作为卷积方式时,丢弃数量的计算方法如下:
计算得到随机丢弃的卷积数据数为:
如图7所示为本实施例中随机丢弃的卷积数据(图7中标示的“x”即代表丢弃的数据),卷积特征图共有24×24=576,丢弃比例设置为0.1,因此丢弃数量为58,所述丢弃数量的具体计算过程为:
如图8所示为中值填充后的数据,本实施例的填充方法是通过邻域的灰度值的中值来进行填充。
例如图8右上角填充的1315的原值为1513(如图7所示)。其邻域(包括自己有九个数),分别是:1315、1396、928、1378、1513、1008、1301、1387、930。
对九个数进行大小排序后为:
928、930、1008、1301、1315、1378、1387、1396、1513。
可见排在中间的数字为:1315。
因此,本实施例将原来的1513丢弃,并将其填充为1315。
如图9所示,本发明标号规则为:图像左上角第一个像素点标号为1,依次增加到右下最后一个像素点。
接着,本实施例以系统当前时间作为随机种子,进而生成随机数,所述随机数对应的编号的卷积数据将被丢弃;
然后,本实施例将丢弃的卷积数据的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值;
最后,判断丢弃数量是否大于或等于计算得到的需要丢弃的卷积数据数,若是,则输出卷积层;反之,则继续执行随机丢弃卷积数据的步骤。
s5、池化操作:对步骤s4输出的所有卷积特征图进行池化操作;
其中,本发明的步骤s4和s5可根据实际需要分别执行多次。
s6、全连接操作:将步骤s5输出的所有池化特征图进行全连接分类;
s7、输出识别结果:输出全连接分类后的人脸识别结果。
综上所述,本发明相较于现有的卷积神经网络的人脸识别方法,本发明通过随机丢弃卷积数据对训练样本进行扩充,采用随机丢弃卷积核进行训练,可以随机丢弃掉部分图像信息,进而变相增加了样本的多样性,不容易出现过拟合现象,提高了人脸识别的准确率;本发明还通过随机丢弃卷积数据并且用中值滤波进行补充,减小噪声的干扰,提高人脸识别的准确率。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。