一种卷积神经网络生成方法、年龄识别方法及相关装置与流程

文档序号:12178024阅读:398来源:国知局
一种卷积神经网络生成方法、年龄识别方法及相关装置与流程

本发明涉及图像处理技术领域,特别涉及一种用于对图像中的人脸进行年龄识别的卷积神经网络生成方法、年龄识别方法、相关装置及计算设备。



背景技术:

人脸作为重要的生物特征之一,人脸图像上蕴含了大量信息,如年龄、性别、人种等。随着图像处理技术中对人脸图像研究的进一步深入,特别是在人脸年龄识别方面,以卷积神经网络(CNN:Convolutional Neural Network)为基础的人脸年龄识别方法也逐渐发展起来,在众多的现实场景中都具有重要的作用。在2014年的《Computer Science》上,Karen Simonyan和Andrew Zisserman发表了一篇名为“Very Deep Convolutional Networks for Large-Scale Image Recognition”的论文,提出了一种层次更深的卷积神经网络模型,即VGG(Visual Geometry Group)模型,基于该模型进行年龄识别的准确度有了一定提升。

然而,对于不同年龄段的人脸图像,其变化的幅度之间差距较大,尤其0~5岁的婴幼儿,变化非常巨大,但25~30岁左右的成年人,则变化很小,这一现象给年龄识别带来了较大的影响。现有的人脸年龄识别方法中,使用年龄分布值代替年龄真值,一定程度上缓解了上述问题,但获取到的结果处于某一年龄区间,并不够准确,一旦在区间的临界值出错,则年龄估计值会落入相邻区间,带来较大的误差。而且由于年龄的数值跨度较大,即使采取上述VGG模型进行年龄识别,也需要根据年龄段的分布采取多个模型来实现,较为复杂,且通用性较低。



技术实现要素:

为此,本发明提供一种用于对图像中的人脸进行年龄识别的卷积神经网络生成方案,并提出了基于该卷积神经网络的年龄识别方案,以力图解决或者至少缓解上面存在的问题。

根据本发明的一个方面,提供一种用于对图像中的人脸进行年龄识别的卷积神经网络生成方法,适于在计算设备中执行,该方法包括如下步骤:首先,根据预先获取的人脸图像数据集合,对第一卷积神经网络进行训练以便第一卷积神经网络适用于识别人脸,人脸图像数据集合包含多个人脸图像信息,每个人脸图像信息包括人脸图像和对应图像中人的年龄信息,第一卷积神经网络包括依次相连的多个卷积组、第一全连接层、第二全连接层、第三全连接层和第一分类器;根据预设的年龄阈值对人脸图像数据集合中的每个人脸图像信息进行处理,以便为每个人脸图像信息添加新的年龄阈值属性,年龄阈值属性指示对应的人的年龄是大于预设的年龄阈值还是不大于预设的年龄阈值;将训练好的第一卷积神经网络中的第三全连接层和第一分类器分别替换为第四全连接层和第二分类器,以生成第二卷积神经网络,并根据添加了年龄阈值属性的人脸图像数据集合对第二卷积神经网络进行训练,以便第二卷积神经网络的第二分类器的输出指示人脸所对应人的年龄是高于年龄阈值还是不高于年龄阈值;在训练好的第二卷积神经网络中的第一全连接层之后,添加依次相连的第五全连接层、第六全连接层和第三分类器,以生成第三卷积神经网络,并选择人脸图像数据集合中、年龄不大于所预设的年龄阈值的人脸图像信息对第三卷积神经网络进行训练,以便第三卷积神经网络的第三分类器的输出指示人脸所对应人的年龄为零到所预设年龄阈值中的哪一个;在训练好的第三卷积神经网络中的第一全连接层之后,添加依次相连的第七全连接层、第八全连接层和第四分类器,以生成第四卷积神经网络,并根据人脸图像数据集合对第四卷积神经网络进行训练,以便第四分类器的输出指示人脸所对应人的年龄。

可选地,在根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中,人脸图像数据集合中每个人脸图像信息的人脸图像均保持水平正面且满足预设尺寸,人脸图像对应人的年龄为0~100之间的整数。

可选地,在根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中,第一卷积神经网络的各卷积组中均包括至少一个卷积层。

可选地,在根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中,在在训练好的第二卷积神经网络中的第一全连接层之后,添加依次相连的第五全连接层、第六全连接层和第三分类器,以生成第三卷积神经网络的步骤之前,还包括步骤:对人脸图像数据集合中、年龄不大于预设的年龄阈值的人脸图像信息的年龄进行0/1编码,0/1编码包括以预设的年龄阈值加1之和为编码位数,每一位为数字0和数字1中的任一种,从首位开始,数字1出现的次数减1之差为年龄。

可选地,在根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中,第六全连接层包括多个并联的子全连接层,子全连接层的个数为预设的年龄阈值加1之和。

可选地,在根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中,在在训练好的第三卷积神经网络中的第一全连接层之后,添加依次相连的第七全连接层、第八全连接层和第四分类器,以生成第四卷积神经网络的步骤之前,还包括步骤:对人脸图像数据集合中人脸图像信息的年龄进行分布编码,分布编码包括根据高斯分布进行年龄编码。

可选地,在根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中,预设的年龄阈值为12。

根据本发明的又一个方面,提供一种年龄识别方法,适于在计算设备中执行,该方法基于用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中、训练好的第四卷积神经网络对图像中的人脸进行年龄识别,包括步骤:将待识别人脸图像输入到训练好的第四卷积神经网络中进行年龄识别;判断训练好的第四卷积神经网络中第二分类器的输出是否大于预设的年龄阈值;若第二分类器的输出不大于预设的年龄阈值,则获取训练好的第四卷积神经网络中第三分类器的输出为人脸所对应人的年龄;若第二分类器的输出大于预设的年龄阈值,则获取训练好的第四卷积神经网络中第四分类器的输出为人脸所对应人的年龄。

可选地,在根据本发明的年龄识别方法中,还包括对待识别图像进行预处理以获取待识别人脸图像。

可选地,在根据本发明的年龄识别方法中,对待识别图像进行预处理以获取待识别人脸图像包括:对待识别图像进行人脸检测,获取人脸位置信息;通过人脸位置信息,将待识别图像中的人脸裁剪后转换至预设尺寸;根据人脸关键点信息计算人脸进行平面旋转的变换矩阵;利用变换矩阵将预设尺寸下的人脸图像旋转成水平正面以获取待识别人脸图像。

根据本发明的又一个方面,提供一种用于对图像中的人脸进行年龄识别的卷积神经网络生成装置,适于驻留在计算设备中,该装置包括第一训练模块、属性添加模块、第一生成模块、第二训练模块、第二生成模块、第三训练模块、第三生成模块和第四训练模块。其中,第一训练模块适于根据预先获取的人脸图像数据集合,对第一卷积神经网络进行训练以便第一卷积神经网络适用于识别人脸,人脸图像数据集合包含多个人脸图像信息,每个人脸图像信息包括人脸图像和对应图像中人的年龄信息,第一卷积神经网络包括依次相连的多个卷积组、第一全连接层、第二全连接层、第三全连接层和第一分类器;属性添加模块适于根据预设的年龄阈值对人脸图像数据集合中的每个人脸图像信息进行处理,以便为每个人脸图像信息添加新的年龄阈值属性,年龄阈值属性指示对应的人的年龄是大于预设的年龄阈值还是不大于预设的年龄阈值;第一生成模块适于将训练好的第一卷积神经网络中的第三全连接层和第一分类器分别替换为第四全连接层和第二分类器,以生成第二卷积神经网络;第二训练模块适于根据添加了年龄阈值属性的人脸图像数据集合对第二卷积神经网络进行训练,以便第二卷积神经网络的第二分类器的输出指示人脸所对应人的年龄是高于年龄阈值还是不高于年龄阈值;第二生成模块适于在训练好的第二卷积神经网络中的第一全连接层之后,添加依次相连的第五全连接层、第六全连接层和第三分类器,以生成第三卷积神经网络;第三训练模块适于选择人脸图像数据集合中、年龄不大于所预设的年龄阈值的人脸图像信息对第三卷积神经网络进行训练,以便第三卷积神经网络的第三分类器的输出指示人脸所对应人的年龄为零到所预设年龄阈值中的哪一个;第三生成模块适于在训练好的第三卷积神经网络中的第一全连接层之后,添加依次相连的第七全连接层、第八全连接层和第四分类器,以生成第四卷积神经网络;第四训练模块适于根据人脸图像数据集合对第四卷积神经网络进行训练,以便第四分类器的输出指示人脸所对应人的年龄。

根据本发明的又一个方面,提供一种年龄识别装置,适于驻留在计算设备中,该装置基于用于对图像中的人脸进行年龄识别的卷积神经网络生成装置中、训练好的第四卷积神经网络对图像中的人脸进行年龄识别,包括识别模块、判断模块和获取模块。其中,识别模块适于将待识别人脸图像输入到训练好的第四卷积神经网络中进行年龄识别;判断模块适于判断识别模块进行年龄识别后的训练好的第四卷积神经网络中第二分类器的输出;获取模块适于当判断模块判断出第二分类器的输出不大于预设的年龄阈值时,获取识别模块进行年龄识别后的训练好的第四卷积神经网络中第三分类器的输出为人脸所对应人的年龄,当判断模块判断出第二分类器的输出大于预设的年龄阈值时,获取识别模块进行年龄识别后的训练好的第四卷积神经网络中第四分类器的输出为人脸所对应人的年龄。

根据本发明的又一个方面,还提供一种计算设备,包括根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络的生成装置和年龄识别装置。

根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成的技术方案,首先对第一卷积神经网络进行训练,第一卷积神经网络中包括依次相连的多个卷积组、多个全连接层和第一分类器,将训练好的第一卷积神经网络中的部分全连接层和第一分类器进行相应的替换,生成第二卷积神经网络并对其进行训练,再向训练好的第二卷积神经网络添加新的全连接层和分类器,以生成第三卷积神经网络并进行训练,最后向训练好的第三卷积神经网络添加新的全连接层和分类器,以生成第四卷积神经网络并进行训练。在上述技术方案中,以卷积神经网络作为基础框架,并在生成各卷积神经网络以备训练之前,对用于训练的人脸图像数据进行如年龄阈值分段、0/1编码和年龄分布编码等处理,辅助逐步修改卷积神经网络的模型,最终形成一个可准确识别年龄的卷积神经网络模型,无需分割,简洁直观,通用性更强。进而,根据本发明的年龄识别方法,将待识别人脸图像输入到已训练好的第四卷积神经网络中,根据不同分类器的输出来判断年龄范围及其具体数值,结果精确度有了巨大的提升。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明的一个实施例的计算设备100的示意图;

图2示出了根据本发明一个实施例的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法200的流程图;

图3示出了根据本发明又一个实施例的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法300的流程图;

图4示出了根据本发明一个实施例的第一卷积神经网络的结构示意图;

图5示出了根据本发明一个实施例的第二卷积神经网络的结构示意图;

图6示出了根据本发明一个实施例的第三卷积神经网络的结构示意图;

图7示出了根据本发明一个实施例的第四卷积神经网络的结构示意图;

图8示出了根据本发明一个实施例的年龄识别方法400的流程图;

图9示出了根据本发明又一个实施例的年龄识别方法500的流程图;

图10示出了根据本发明的一个实施例的用于对图像中的人脸进行年龄识别的卷积神经网络生成装置600的示意图;

图11示出了根据本发明的又一个实施例的用于对图像中的人脸进行年龄识别的卷积神经网络生成装置700的示意图;

图12示出了根据本发明的一个实施例的年龄识别装置800的示意图;以及

图13示出了根据本发明的又一个实施例的年龄识别装置900的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1是示例计算设备100的框图。在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。

取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。

取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。

计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

计算设备100可以实现为服务器,这些服务器可以是诸如文件服务器、数据库服务器、应用程序服务器和WEB服务器等服务器。计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100被配置为执行根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络的生成方法和年龄识别方法。应用122包括根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成装置600和年龄识别装置700。

图2示出了根据本发明一个实施例的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法200的流程图。用于对图像中的人脸进行年龄识别的卷积神经网络生成方法200适于在计算设备(例如图1所示的计算设备100)中执行。

如图2所示,方法200始于步骤S210。在步骤S210中,根据预先获取的人脸图像数据集合,对第一卷积神经网络进行训练以便第一卷积神经网络适用于识别人脸,人脸图像数据集合包含多个人脸图像信息,每个人脸图像信息包括人脸图像和对应图像中人的年龄信息,第一卷积神经网络包括依次相连的多个卷积组、第一全连接层、第二全连接层、第三全连接层和第一分类器。其中,人脸图像数据集合中每个人脸图像信息的人脸图像均保持水平正面且满足预设尺寸,所述人脸图像对应人的年龄为0~100之间的整数,第一卷积神经网络的各卷积组中均包括至少一个卷积层。

在本实施例中,人脸图像数据集合为MsCeleb的人脸数据集,对该人脸数据集中的人脸图像信息而言,其包括的人脸图像是经过旋转处理后的图像,即预先将该人脸图像旋转为水平正面,且人脸图像为三通道彩色图像,预设尺寸为224px×224px。第一卷积神经网络是采用的VGG模型中一种,图4示出了根据本发明一个实施例的第一卷积神经网络的结构示意图。如图4所示,在第一卷积神经网络中,包括五个卷积组,以第一卷积组为输入端,后面依次相连第二卷积组、第三卷积组、第四卷积组、第五卷积组、第一全连接层、第二全连接层、第三全连接层和第一分类器,其中第一分类器为输出端,以人脸图像为第一卷积组的输入、对应图像中人的年龄为第一分类器的输出进行第一卷积神经网络的训练。实际上,相邻的两个卷积组之间均存在一个下采样层,而第五卷积组与第一全连接层之间也存在一个下采样层,按照从输入端至输出端的顺序,将各下采样层依次成为第一下采样层、第二下采样层、第三下采样层、第四下采样层和第五下采样层。第一卷积组和第二卷积组中均包括两个卷积层,第三卷积组、第四卷积组和第五卷积组中均包括三个卷积层。以人脸图像数据集合中的人脸图像信息A为例进行说明,人脸图像信息A包括人脸图像A1和对应图像中人的年龄信息A2,A2为7岁。

在第一卷积神经网络中,首先将A1输入到第一卷积组。A1是三通道彩色图像,尺寸为224px×224px。第一卷积组中的两个卷积层均有64个卷积核,第一个卷积层中每个卷积核的参数个数为3×3×3,相当于3个3×3大小的卷积核在每个通道进行卷积,步长为1。经过第一个卷积层的卷积后,根据(224-3)/1+1=222可知,此时得到的图像的尺寸为222px×222px,即获得64张222px×222px大小的特征图。由于在第一个卷积层中已经将三通道合在一起进行卷积,因此第二个卷积层的输入为64张222px×222px的单通道图像。第二个卷积层中每个卷积核的参数个数为3×3,相当于1个3×3大小的卷积核进行卷积,步长为1。则经过第二个卷积层的卷积后,根据(222-3)/1+1=220可知,此时获得了64张220px×220px大小的特征图。随后,进入第一下采样层,下采样亦称为池化,是利用图像局部相关性的原理,对图像进行子抽样,从而减少数据处理下并保留有用信息。在这里,池化采用最大重叠池化,即对220px×220px的特征图进行分块,每个块的大小为2×2,步长为2,并统计每个块的最大值,作为池化后图像的像素值。根据(220-2)/2+1=27可知,池化后的特征图尺寸为110px×110px,则经过第一下采样层之后,获得64张110px×110px的特征图。

第二卷积组中的两个卷积层均有128个卷积核,第三卷积组中的三个卷积层均有256个卷积核,第四卷积组中的三个卷积层均有512个卷积核,第五卷积组中的三个卷积层也均有512个卷积核,其中每个卷积核的参数个数为3×3,相当于1个3×3大小的卷积核进行卷积,步长为1。第二下采样层、第三下采样层、第四下采样层和第五下采样层均采用最大重叠池化,对特征图进行分块处理的块的大小为2×2,步长为2,根据第一卷积组和第一下采样层的处理过程,最终得到第五下采样层的输出为512张2px×2px的特征图。其中,在进行最大重叠池化时,由于特征图的边长不一定是2的倍数,因此采取了保留边缘的处理方法,即将特征图的边长用0填充为2的倍数,然后再进行池化。实际上,在每个卷积层完成卷积处理后,还需要通过激活函数来调整该卷积层的输出,避免下一层的输出为上一层的线性组合而无法逼近任意函数。采用ReLU(Rectified Linear Unit)函数作为激活函数,进一步缓解过拟合问题,其表达式为f(x)=max(0,w·x+b),其中w·x+b为常规的线性函数。每个卷积层对图像完成卷积处理后得到的特征图,均可适用于上述激活函数的调整,以下将不再赘述。

随后,进入第一全连接层,第一全连接层的神经元个数选择4096个,则第一全连接层的输出为4096张1px×1px大小的特征图。实际处理中,通常会将上述4096张特征图先通过ReLU函数激活,再进行dropout处理,dropout可以理解为模型平均,即训练过程中在前向传导时,让某个神经元的激活值以一定的概率p停止工作,即该神经元的激活值以概率p变为0。比如,第一全连接层的神经元为4096个,若dropout比率选择0.4,那么这一层神经元经过dropout之后,其中约有1638个神经元的值被置为0,相当于通过阻止某些特征的协同作用来缓解过拟合,避免一个神经元的出现依赖于另一个神经元的现象。将dropout处理后的特征图输入到第二全连接层中,第二全连接层的神经元个数仍为4096个,则其输出为4096张1px×1px大小的特征图,同样可对其先通过ReLU函数激活,再进行dropout处理,并将处理后的结果输入到第三全连接层中。由于是对年龄进行识别,是一个多分类问题,而在本实施例中年龄为0~100之间的整数,因此第三全连接层的神经元个数可选为101个,则最终第三全连接层输出也为101个,分别对应0~100这101个年龄的概率。第一分类器选用softmax分类器,其输出为最大概率对应的年龄,该年龄应为人脸图像A1的年龄A2。关于softmax分类器的内容,为成熟的技术手段,此处不予以赘述。为了训练第一卷积神经网络,根据输入的人脸图像A1对应的年龄A2为7岁这一预知结果,对第一分类器的输出进行调整,按极小化误差的方法反向传播以调整第一卷积神经网络中的各参数。经过人脸图像数据集合中大量的人脸图像信息进行训练后,获得训练好的第一卷积神经网络。

在步骤S220中,根据预设的年龄阈值对人脸图像数据集合中的每个人脸图像信息进行处理,以便为每个人脸图像信息添加新的年龄阈值属性,年龄阈值属性指示对应的人的年龄是大于预设的年龄阈值还是不大于预设的年龄阈值。在本实施例中,预设的年龄阈值为12,则人脸图像数据集合中各人脸图像信息所添加的年龄阈值属性,可指示对应的人的年龄是大于12岁还是不大于12岁。

随后,进入步骤S230,将步骤S210中训练好的第一卷积神经网络中的第三全连接层和第一分类器分别替换为第四全连接层和第二分类器,以生成第二卷积神经网络,并根据添加了年龄阈值属性的人脸图像数据集合对第二卷积神经网络进行训练,以便第二卷积神经网络的第二分类器的输出指示人脸所对应人的年龄是高于年龄阈值还是不高于年龄阈值。在本实施例中,第四全连接层的神经元应为2个,其输出的结果为年龄大于12岁和不大于12岁的概率,则对应第二分类器的softmax分类器将输出概率较大值对应的年龄范围。以人脸图像信息A为例,人脸图像信息A中的年龄A2为7岁,在添加年龄阈值属性后,可知年龄A2不高于年龄阈值,即不大于12岁。将人脸图像A1作为第二卷积神经网络中第一卷积组的输入、年龄不大于12岁作为第二卷积神经网络中第二分类器的输出,对第二卷积神经网络进行fine-tune训练。图5示出了根据本发明一个实施例的第二卷积神经网络的结构示意图。如图5所示,第二卷积神经网络和第一卷积神经网络在层级结构是完全一致的。

接下来,在步骤S240中,获取步骤S230中训练好的第二卷积神经网络,在训练好的第二卷积神经网络中的第一全连接层之后,添加依次相连的第五全连接层、第六全连接层和第三分类器,以生成第三卷积神经网络,并选择人脸图像数据集合中、年龄不大于所预设的年龄阈值的人脸图像信息对第三卷积神经网络进行训练,以便第三卷积神经网络的第三分类器的输出指示人脸所对应人的年龄为零到所预设年龄阈值中的哪一个。第六全连接层包括多个并联的子全连接层,子全连接层的个数为预设的年龄阈值加1之和。图6示出了根据本发明一个实施例的第三卷积神经网络的结构示意图。如图6所示,在第一全连接层之后,添加了依次相连的第五全连接层、第六全连接层和第三分类器,分别与第二全连接层、第四全连接层和第二分类器处于同一层级,从而形成了分别以第一分类器为输出的第一分支和以第二分类器为输出的第二分支。第五全连接层中神经元的个数为4096个,第六全连接层由13个子全连接层构成,因此这13个子全连接层与第四全连接层为同一层级,选用softmax分类器作为第三分类器。需要说明的是,第六全连接层中13个子全连接层的神经元个数均为2个,各子全连接层的输出结果为数字1和数字0分别对应的概率,则作为第三分类器的softmax分类器将根据概率值的大小,输出较大概率值对应的数字。

在本实施例中,对第三卷积神经网络进行训练的人脸图像信息,采用的是人脸图像数据集合中、年龄不大于12岁的人脸图像信息,即使用的人脸图像信息的年龄应为0~12岁中的整数。在实际训练时,以Ordinal loss作为损失函数对第三卷积神经网络进行训练。关于Ordinal loss,即序次损失,一般通过序次Logistic回归模型进行处理,其为一种针对有序尺度因变量数据的回归方法,能够利用预测变量,如分类型变量和数值型变量,对有序分类尺度型的响应变量进行回归的建模,相关的技术内容在此处不再赘述。

最后,进入步骤S250,在步骤S240所训练好的第三卷积神经网络中的第一全连接层之后,添加依次相连的第七全连接层、第八全连接层和第四分类器,以生成第四卷积神经网络,并根据人脸图像数据集合对第四卷积神经网络进行训练,以便第四分类器的输出指示人脸所对应人的年龄。图7示出了根据本发明一个实施例的第四卷积神经网络的结构示意图。如图7所示,在第一全连接层之后,添加了依次相连的第七全连接层、第八全连接层和第四分类器,从而形成了分别以第二分类器为输出的第一分支、以第三分类器为输出的第二分支和以第四分类器为输出的第三分支。第七全连接层与第二全连接层、第五全连接层为同一层级,神经元个数为4096个,第八全连接层与第四全连接层、第六全连接层为同一层级,神经元个数为101个,第四分类器与第二分类器、第三分类器为同一层级,同样选用softmax分类器作为第四分类器。在实际训练时,以Euclidean loss作为损失函数对第四卷积神经网络进行训练。关于Euclidean loss,即欧氏距离损失,其函数表达式如下:

其中,预测值标签值y∈[-∞,+∞],N为样本个数。关于Euclidean loss的实现已有成熟的技术方法,此处不予以赘述。

图3示出了根据本发明又一个实施例的用于对图像中的人脸进行年龄识别的卷积神经网络生成方法300的流程图。如图3所示,方法300的步骤S310、S320、S330、S340和S350与图2中方法200的步骤S210、S220、S230、S240和S250分别一一对应,是一致的,而在步骤S340之前增加了步骤S360,在步骤S350之前增加了步骤S370。

在步骤S360中,对人脸图像数据集合中、年龄不大于预设的年龄阈值的人脸图像信息的年龄进行0/1编码,0/1编码包括以预设的年龄阈值加1之和为编码位数,每一位为数字0和数字1中的任一种,从首位开始,数字1出现的次数减1之差为所述年龄。在本实施例中,对第三卷积神经网络进行训练的人脸图像信息,采用的是人脸图像数据集合中、年龄不大于12岁的人脸图像信息,即使用的人脸图像信息的年龄应为0~12岁中的整数。以人脸图像信息A为例,其包括的年龄A2为7岁,可用于训练第三卷积神经网络。首先,对年龄A2进行0/1编码,0/1编码的位数为13,从首位开始,数字1出现的次数减1之差为7,则说明从首位开始按序共计有8个连续的数字1,因此7岁对应的0/1编码为1111111100000。从而,在步骤S340中,获取步骤S360中对年龄A2进行0/1编码后的年龄1111111100000,将人脸图像信息A中的人脸图像A1作为步骤S330中生成的第三卷积神经网络中第一卷积组的输入、年龄1111111100000作为步骤S330中生成的第三卷积神经网络中第三分类器的输出,以Ordinal loss作为损失函数对第三卷积神经网络进行训练。

而在步骤S370中,对人脸图像数据集合中人脸图像信息的年龄进行分布编码,分布编码包括根据高斯分布进行年龄编码。在本实施例中,对年龄进行分布编码是指对一个年龄的数值,用一个高斯分布进行表示。而人脸图像数据集合中人脸图像信息的年龄为0~100中的整数,则对0、1、2、……、99、100这101个整数均存在一个对应的服从高斯分布的概率密度函数,该函数的表达式如下所示:

x为0~100中的整数

式中,px(i)表示年龄i服从一个均值为x,方差为δ2的高斯分布。

例如,在人脸图像数据集合中的人脸图像信息B,其包括人脸图像B1和对应图像中人的年龄信息B2,其中年龄B2为28岁。此时,x的取值为28,其对应的概率密度函数为:

从上式可以看出,对年龄B2进行分布编码后得到的概率密度函数p28(i)而言,当i=28时,p28(i)获得最大值p28(28)。

由于第八全连接层的输出结果为0~100岁这101个年龄数值对应的概率,而作为第四分类器的softmax分类器将根据概率值的大小,输出最大概率值对应的年龄,因此在步骤S350中对第四卷积神经网络进行训练时,是将人脸图像B1作为步骤S340所生成的第四卷积神经网络中第一卷积组的输入、年龄B2在步骤S370中进行分布编码后的结果作为步骤S340所生成的第四卷积神经网络中第八全连接层的输出,以Euclidean loss作为损失函数对第四卷积神经网络进行训练。

图8示出了根据本发明一个实施例的年龄识别方法400的流程图。年龄识别方法400适于在计算设备(例如图1所示的计算设备100)中执行,基于用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中、训练好的第四卷积神经网络进行年龄识别。

如图4所示,方法400始于步骤S410。在步骤S410中,将待识别人脸图像输入到训练好的第四卷积神经网络中进行年龄识别。在本实施例中,对两个待识别人脸图像进行年龄识别,图像一对应的年龄为9岁,图像二对应的年龄为43岁,将图像一和图像二输入到训练好的第四卷积神经网络中进行年龄识别。

随后,进入步骤S420,判断步骤S410中对待识别人脸图像进行年龄识别后、训练好的第四卷积神经网络中第二分类器的输出是否大于预设的年龄阈值。对图像一而言,判断第二分类器的输出不大于12岁,对图像二而言,判断第二分类器的输出大于12岁。

接下来,在步骤S430中,若第二分类器的输出为不大于预设的年龄阈值,则获取步骤S410中对待识别人脸图像进行年龄识别后、训练好的第四卷积神经网络中第三分类器的输出为人脸所对应人的年龄。由于图像一对应的第二分类器的输出为不大于预设的年龄阈值,即不大于12岁,则获取第三分类器输出的年龄为最终结果,表示为1111111111000,从首位开始共计有10个连续的数字1,因此识别出的年龄为9岁,与真实值一致。

而在步骤S440中,若第二分类器的输出为大于预设的年龄阈值,则获取步骤S410中对待识别人脸图像进行年龄识别后、训练好的第四卷积神经网络中第四分类器的输出为人脸所对应人的年龄。由于图像二对应的第二分类器的输出为大于预设的年龄阈值,即大于12岁,则获取第四分类器输出的年龄为最终结果,由于此时第八全连接层输出的101个概率值中第44个的数值最大,因此第四分类器输出的年龄为43岁,与真实值一致。

图8示出了根据本发明又一个实施例的年龄识别方法500的流程图。年龄识别方法500适于在计算设备(例如图1所示的计算设备100)中执行,基于用于对图像中的人脸进行年龄识别的卷积神经网络生成方法中、训练好的第四卷积神经网络进行年龄识别。如图8所示,方法500的步骤S510、S520、S530和S540与方法400中的步骤S410、S420、S430和S440分别一一对应,是一致的,而在步骤S510之前增加了步骤S550。

在步骤S550中,对待识别图像进行预处理以获取待识别人脸图像。这是因为在对待识别图像中的人脸进行年龄识别之前,需要先将对待识别图像中的人脸图像提取出来。首先,对待识别图像进行人脸检测,获取人脸位置信息;通过人脸位置信息,将待识别图像中的人脸裁剪后转换至预设尺寸;根据人脸关键点信息计算人脸进行平面旋转的变换矩阵;利用变换矩阵将预设尺寸下的人脸图像旋转成水平正面以获取待识别人脸图像。在本实施例中,对待识别图像先进行人脸检测,即先确定一个区域来扫描图像,对每个区域扫描到的位置进行特征提取,再分类处理来判断该位置是不是包括人脸。对于存在人脸区域的待识别图像,将人脸裁剪后转换至224px×224px大小。由于上述人脸位置一般即指五官和外轮廓,则人脸旋转值需要两个固定点确定的连线来获取,选择瞳孔作为固定点,通过两个瞳孔的连线与人脸图像水平线计算出一个夹角,通过该夹角采用仿射变换,获取旋转矩阵,对该图像使用旋转矩阵后,即可将人脸旋转为瞳孔连线与图像水平线处于平行关系,从而获得保持水平正面的待识别人脸图像。根据人脸中瞳孔两点的连线,计算此连线与水平线的夹角以获取旋转的角度AngleValue,并采用OpenCV中的get RotationMatrix2D函数可进行该旋转矩阵的相关计算,使用warpAffine进行人脸旋转,具体函数如下所示:

RotateMatrix=cv2.getRotationMatrix2D(center=(Img.shape[1]/2,Img.shape[0]/2),angle=AngleValue,scale=1)

RotImg=cv2.warpAffine(Img,RotateMatrix,(Img.shape[0]*2,Img.shape[1]*2))

图10示出了根据本发明一个实施例的用于对图像中的人脸进行年龄识别的卷积神经网络生成装置600的示意图。该装置包括:第一训练模块610、属性添加模块620、第一生成模块630、第二训练模块640、第二生成模块650、第三训练模块660、第三生成模块670和第四训练模块680。

第一训练模610适于根据预先获取的人脸图像数据集合,对第一卷积神经网络进行训练以便第一卷积神经网络适用于识别人脸,人脸图像数据集合包含多个人脸图像信息,每个人脸图像信息包括人脸图像和对应图像中人的年龄信息,第一卷积神经网络包括依次相连的多个卷积组、第一全连接层、第二全连接层、第三全连接层和第一分类器。其中,人脸图像数据集合中每个人脸图像信息的人脸图像均保持水平正面且满足预设尺寸,人脸图像对应人的年龄为0~100之间的整数,第一卷积神经网络的各卷积组中均包括至少一个卷积层。

属性添加模块620适于根据预设的年龄阈值对人脸图像数据集合中的每个人脸图像信息进行处理,以便为每个人脸图像信息添加新的年龄阈值属性,年龄阈值属性指示对应的人的年龄是大于预设的年龄阈值还是不大于预设的年龄阈值。其中,预设的年龄阈值为12。

第一生成模块630与第一训练模块610相连,适于将第一训练模块610中训练好的第一卷积神经网络中的第三全连接层和第一分类器分别替换为第四全连接层和第二分类器,以生成第二卷积神经网络。

第二训练模块640分别与属性添加模块620和第一生成模块630相连,适于根据属性添加模块620中添加了年龄阈值属性的人脸图像数据集合,对第一生成模块630所生成的第二卷积神经网络进行训练,以便第二卷积神经网络的第二分类器的输出指示人脸所对应人的年龄是高于年龄阈值还是不高于年龄阈值。

第二生成模块650与第二训练模块640相连,适于获取第二训练模块640训练好的第二卷积神经网络,在训练好的第二卷积神经网络中的第一全连接层之后,添加依次相连的第五全连接层、第六全连接层和第三分类器,以生成第三卷积神经网络。其中,第六全连接层包括多个并联的子全连接层,子全连接层的个数为预设的年龄阈值加1之和。

第三训练模块660与第二生成模块650相连,适于选择人脸图像数据集合中、年龄不大于所预设的年龄阈值的人脸图像信息对第二生成模块650中生成的第三卷积神经网络进行训练,以便第三卷积神经网络的第三分类器的输出指示人脸所对应人的年龄为零到所预设年龄阈值中的哪一个。

第三生成模块670与第三训练模块660相连,适于获取第三训练模块670训练好的第三卷积神经网络,在训练好的第三卷积神经网络中的第一全连接层之后,添加依次相连的第七全连接层、第八全连接层和第四分类器,以生成第四卷积神经网络。

第四训练模块680与第三生成模块670相连,适于根据人脸图像数据集合对第三生成模块670所生成的第四卷积神经网络进行训练,以便第四分类器的输出指示人脸所对应人的年龄。

图11示出了根据本方法又一个实施例的年龄识别装置700的示意图。如图11所示,装置700的第一训练模块710、属性添加模块720、第一生成模块730、第二训练模块740、第二生成模块750、第三训练模块760、第三生成模块770和第四训练模块780,分别与图10中装置600的第一训练模块610、属性添加模块620、第一生成模块630、第二训练模块640、第二生成模块650、第三训练模块660、第三生成模块670和第四训练模块680一一对应,是一致的,并新增了与第三训练模块760相连的第一编码模块790和与第四训练模块780相连的第二编码模块792。

第一编码模块791与第三训练模块760相连,适于对人脸图像数据集合中、年龄不大于预设的年龄阈值的人脸图像信息的年龄进行0/1编码,0/1编码包括以预设的年龄阈值加1之和为编码位数,每一位为数字0和数字1中的任一种,从首位开始,数字1出现的次数减1之差为年龄。进而,第三训练模块760适于选择人脸图像数据集合中、年龄不大于所预设的年龄阈值的人脸图像信息,对第二生成模块750中生成的第三卷积神经网络进行训练,其中用于训练第三卷积神经网络的人脸图像信息的年龄已由第一编码模块791进行编码处理。

第二编码模块792与第四训练模块780相连,适于对人脸图像数据集合中人脸图像信息的年龄进行分布编码,分布编码包括根据高斯分布进行年龄编码。则第四训练模块780适于根据人脸图像数据集合对第三生成模块770所生成的第四卷积神经网络进行训练,其中用于训练第四卷积神经网络的人脸图像信息已由第二编码模块792进行编码处理。

关于用于对图像中的人脸进行年龄识别的卷积神经网络生成的具体步骤以及实施例,在基于图2-7的描述中已经详细公开,此处不再赘述。

图12示出了根据本发明一个实施例的年龄识别装置800的示意图。年龄识别装置800基于用于对图像中的人脸进行年龄识别的卷积神经网络生成装置中、训练好的第四卷积神经网络进行年龄识别,该装置包括:识别模块810、判断模块820和获取模块830。其中,识别模块810与判断模块810相连,适于将待识别人脸图像输入到训练好的第四卷积神经网络中进行年龄识别。判断模块820适于判断识别模块810进行年龄识别后的训练好的第四卷积神经网络中第二分类器的输出是否大于预设的年龄阈值。获取模块830分别与识别模块810和判断模块820相连,适于当判断模块820判断出第二分类器的输出不大于预设的年龄阈值时,获取识别模块810进行年龄识别后的训练好的第四卷积神经网络中第三分类器的输出为人脸所对应人的年龄,当第二分类器的输出大于预设的年龄阈值时,获取识别模块810进行年龄识别后的训练好的第四卷积神经网络中第四分类器的输出为人脸所对应人的年龄。

图13示出了根据本发明又一个实施例的年龄识别装置900的示意图。年龄识别装置900基于用于对图像中的人脸进行年龄识别的卷积神经网络生成装置中、训练好的第四卷积神经网络进行年龄识别。如图13所示,装置900的识别模块910、判断模块920和获取模块930,分别与图12中装置800的识别模块810、判断模块820和获取模块830一一对应,是一致的,并新增了预处理模块940,与识别模块910相连,适于对待识别图像进行预处理以获取待识别人脸图像,以便识别模块910将从预处理模块940获取的待识别人脸图像输入到训练好的第四卷积神经网络中进行年龄识别。预处理模块940进一步适于对待识别图像进行人脸检测,获取人脸位置信息;通过所述人脸位置信息,将所述待识别图像中的人脸裁剪后转换至预设尺寸;根据人脸关键点信息计算人脸进行平面旋转的变换矩阵;利用所述变换矩阵将预设尺寸下的人脸图像旋转成水平正面以获取待识别人脸图像。

关于年龄识别的具体步骤以及实施例,在基于图8-9的描述中已经详细公开,此处不再赘述。

现有的人脸年龄识别方法中,使用年龄分布值代替年龄真值,获取到的结果处于某一年龄区间,不够准确,即使采取VGG模型进行年龄识别,也需要根据年龄段的分布采取多个模型来实现,较为复杂,且通用性较低。根据本发明的用于对图像中的人脸进行年龄识别的卷积神经网络生成的技术方案,首先对第一卷积神经网络进行训练,第一卷积神经网络中包括依次相连的多个卷积组、多个全连接层和第一分类器,将训练好的第一卷积神经网络中的部分全连接层和第一分类器进行相应的替换,生成第二卷积神经网络并对其进行训练,再向训练好的第二卷积神经网络添加新的全连接层和分类器,以生成第三卷积神经网络并进行训练,最后向训练好的第三卷积神经网络添加新的全连接层和分类器,以生成第四卷积神经网络并进行训练。在上述技术方案中,以卷积神经网络作为基础框架,并在生成各卷积神经网络以备训练之前,对用于训练的人脸图像数据进行如年龄阈值分段、0/1编码和年龄分布编码等处理,辅助逐步修改卷积神经网络的模型,最终形成一个可准确识别年龄的卷积神经网络模型,无需分割,简洁直观,通用性更强。进而,根据本发明的年龄识别方法,将待识别人脸图像输入到已训练好的第四卷积神经网络中,根据不同分类器的输出来判断年龄范围及其具体数值,结果精确度有了巨大的提升。

A5.如A1-4中任一项所述的方法,所述第六全连接层包括多个并联的子全连接层,子全连接层的个数为预设的年龄阈值加1之和。A6.如A1-5中任一项所述的方法,在所述在训练好的第三卷积神经网络中的第一全连接层之后,添加依次相连的第七全连接层、第八全连接层和第四分类器,以生成第四卷积神经网络的步骤之前,还包括步骤:对人脸图像数据集合中人脸图像信息的年龄进行分布编码,所述分布编码包括根据高斯分布进行年龄编码。A7.如A1-6中任一项所述的方法,所述预设的年龄阈值为12。B9.如B8所述的方法,还包括对待识别图像进行预处理以获取待识别人脸图像。B10.如B9所述的方法,所述对待识别图像进行预处理以获取待识别人脸图像包括:对待识别图像进行人脸检测,获取人脸位置信息;通过所述人脸位置信息,将所述待识别图像中的人脸裁剪后转换至预设尺寸;根据人脸关键点信息计算人脸进行平面旋转的变换矩阵;利用所述变换矩阵将预设尺寸下的人脸图像旋转成水平正面以获取待识别人脸图像。C14.如C11-13中任一项所述的装置,还包括第一编码模块,适于:对所述人脸图像数据集合中、年龄不大于预设的年龄阈值的人脸图像信息的年龄进行0/1编码,所述0/1编码包括以预设的年龄阈值加1之和为编码位数,每一位为数字0和数字1中的任一种,从首位开始,数字1出现的次数减1之差为所述年龄。C15.如C11-14中任一项所述的装置,所述第六全连接层包括多个并联的子全连接层,子全连接层的个数为预设的年龄阈值加1之和。C16.如C11-15中任一项所述的装置,还包括第二编码模块,适于:对人脸图像数据集合中人脸图像信息的年龄进行分布编码,所述分布编码包括根据高斯分布进行年龄编码。C17.如C11-16中任一项所述的装置,所述预设的年龄阈值为12。D19.如D18所述的装置,还包括预处理模块,适于对待识别图像进行预处理以获取待识别人脸图像。D20.如D19所述的装置,所述预处理模块进一步适于:对待识别图像进行人脸检测,获取人脸位置信息;通过所述人脸位置信息,将所述待识别图像中的人脸裁剪后转换至预设尺寸;根据人脸关键点信息计算人脸进行平面旋转的变换矩阵;利用所述变换矩阵将预设尺寸下的人脸图像旋转成水平正面以获取待识别人脸图像。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1