基于卷积神经网络和SVR的年龄估计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于卷积神经网络和SVR的年龄估计
作者:孟文倩穆国旺
来源:《河北工业大学学报》2019年第01期
摘要人脸图像年龄估计已经成为计算机视觉领域中一个重要的研究课题,具有广泛的应
用价值。利用在IMDB-WIKI年龄数据库上训练得到的卷积神经网络(CNN)提取特征,并利用主成分分析对特征进行降维,最后利用支持向量机回归的方法进行年龄估计。还讨论了对CNN不同层输出的特征进行融合的结果。在FG-NET标准年龄数据库上对该算法进行了测
试,实验结果表明,本文算法平均绝对误差较小,优于传统的年龄估计方法。
关键词计算机视觉;年龄估计;深度学习;卷积神经网络;支持向量回归
中图分类号 TP391.41 文献标志码 A
0 引言
人脸年龄估计就是从人脸图像中提取与年龄相关的面部特征,利用模式识别算法构造数学模型,对待测图像的具体年龄或年龄段进行估计的一种技术[1]。人脸年龄估计在实际生活中
具有诸多的应用,例如在安全领域,利用人脸年龄估计技术可以帮助办案人员缩小嫌疑人的范围;在电子商务中,通过分析购物者的年龄可以制定更有针对性的营销策略;可以借助年龄估计技术限制未成年人在自动售货机上购买香烟、酒类;限制未成年人进入网吧等不宜进入的场所。年龄估计技术还可以用于图片分类、检索等方面.因此,近年来人脸年龄估计受到了国内
外学者的广泛关注,成为计算机视觉领域的一个研究热点。
人脸年龄估计算法通常是先提取能够反映年龄的面部特征,然后利用分类或回归对年龄进行估计。用于提取年龄特征的模型(或方法)主要有:人体测量学模型[2]、主动外观模型(active appearance models,AAM)[3]、年龄成长模式子空间(aging pattern subspace,AGES)[4]、年龄流形(age manifold)[5]、基于仿生学的模型(bio-inspired features, BIF)[6]等.基于分类的年龄估计方法主要有:特定年龄和外观方法(appearance and age specific,AAS)[7]、支持向量机方法(SVM)[8]、超平面排序(ordinal hyperplane rank, OHRank)[9]、标签分布学习(label distribution learning, LDL)[10]等;基于回归的方法主要有:支持向量机回归(support vector regression, SVR)[11]、线性回归[12]、二次回归[12]、偏线性回
归[13]等。
国内对年龄估计的研究起步较晚,但近年来也有许多学者对人脸年龄估计进行了研究,并提出了一些新的算法。例如,2006年,胡斓、夏利民[14]提出了基于人工免疫识别系统的年龄估计。2008年,张宇、周志华[15]提出了基于集成的年龄估计方法。余庆、杜吉祥[16]提出一种基于改进的非负矩阵分解的人脸年龄估计方法。2012年,黄兵、郭继昌[17]提出基于Gabor 小波与LBP直方图序列的人脸年龄估计。2014年,瞿中等[18]提出利用典型相关分析融合
LBP和HOG特征的人脸年龄估计方法。2015年,李玲芝等[19]提出基于稀疏表示的自动年龄估计。
近年来随着计算机运算能力和神经网络理论的发展,深度学习越来越引起科学界和工业界的关注。深度学习是一种自动学习特征的算法,其中最具代表性的是卷积神经网络
( Convolutional Neural Network,CNN),它在目标分类、检测和人脸识别等应用中取得了巨大的成功。2016年, Rasmus Rothe等[20]提出了基于卷积神经网络的DEX方法,他们对用于图像分类的VGG网络的最后一层进行修改,使每个神经元对应一个年龄(或年龄段),并采用Softmax激活函数,将每个神经元的输出看成输入图像属于该年龄(或年龄段)的概率,通过求期望值的方法得到年龄的估计值。
本文利用文献[20]作者在网络上公开的在IMDB-WIKI数据集上训练得到的用于年龄估计的VGG-16网络提取特征[20],但采用传统的支持向量机回归(SVR)来进行年龄估计,并在FG-NET数据集上对算法进行验证。实验表明,在不对FG-NET人脸图像进行任何预处理操作的前提下,利用本文所述方法比单纯利用CNN的DEX方法得到的结果更好,而且所得结果由于各种传统的年龄估计方法。
1 卷积神经网络
卷积神经网络(CNN)是一种前馈神经网络。它的底层主要是提取一些与边缘、角度、轮廓相关信息,具有一定的通用性。它的高层逐渐提取出一些图像的结构信息。通常而言,层数越多,提取到的信息越全面。卷积神经网络有3个结构上的特性:局部连接、权重共享以及空间或时间上的下采样。这些特性使得卷积神经网络具有一定程度上的平移、缩放和扭曲不变性,能够有效降低网络模型的学习复杂度,由于具有更少的网络连接数和权值参数,从而更容易训练。卷积神经网络涉及的最重要的前向传播运算是卷积操作和下采样操作。
1.1 卷積层
在全连接前馈神经网络中,如果第[l]层有[nl]个神经元,第[l-1]层有[nl-1]个神经元,连接边有[nl×nl-1]个,也就是权重矩阵有[nl×nl-1]个参数(如图1)。当[m]和[n]都很大时,权重矩阵的参数非常多,训练的效率会非常低。
如果采用卷积来代替全连接,第[l]层的每一个神经元都只和第[l-1]层的一个局部窗口内的神经元相连,构成一个局部连接网(如图2)。
第[l]层的第[i]个神经元的输出定义为
[ali=fj=1mwlj∙al-1i-j+m+bli =fwl∙al-1i+m-1:i+bli],(1)
式中:[wl∈Rm]为[m]维的滤波器;[al-1i+m-1:i=al-1i+m-1,...,al-1iΤ]。这里,[al]的下标从1开始。也可以写为
[al=fwl⊗al-1+bl]。(2)
[wl]对于所有的神经元都是相同的,也就是卷积层的权值共享特性,这样,在卷积层里只需要[m+1]个参数,另外,第[l+1]层的神经元个数不是任意选择的,而是满足[nl+1=nl-m+1]。
图像是以二维矩阵的形式输入到神经网络中,需要二维卷积。可以写为
[Xl=fWl⊗Xl-1+bl]。(3)
为了增强卷积层的表现能力,可以使用K组不同的滤波器来得到K组输出,每一组输出都共享一个滤波器。卷积层的作用是提取一个局部区域的特征,每一个滤波器相当于一个特征提取器。
1.2 下采样层
卷积层虽然可以显著减少连接的个数,但是每一个特征映射的神经元个数并没有显著减少。如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,在卷积神经网络中一般会在卷积层之后再加上一个池化(Pooling)操作,也就是下采样(Subsampling),构成一个下采样层。下采样层可以大大降低特征的维数,避免过拟合。
对于卷积层得到的一个特征映射[Xl],可以将[Xl]划分为很多区域[Rk],[k=1,…,K],这些区域可以重叠,也可以不重叠。一个下采样函数[down(…)]一般是取区域内所有神经元的最大值(Maximum Pooling)或平均值(Average Pooling):
[poolmax(Rk)=maxi∈Rkai],(4)
[poolavgRk=1Rki∈Rkai]。(5)
下采样的作用还在于可以使得下一层的神经元对一些小的形态改变保持不变性,并拥有更大的感受野。
2 基于深度网络和数学期望的年龄估计
在文献[20]中,提出了基于深度卷积网络和数学期望的年龄估计方法,并称之为DEX (Deep Expectation)方法。他们采用VGG-16卷积神经网络结构,其主要结构如图3。VGG
网络结构最初由Simonyan K,Zisserman A[21]提出,用于1 000类物体的分类,在ImageNet
大规模图像分类的竞赛中取得了优异的成绩。和经典的卷积神经网络结构——AlexNet相比,VGG-16网络层数更多,共有16层,包括13个卷积层和3个全连接层。在VGG网络中,卷积层全部采用3×3大小的滤波器,卷积操作的间隔(stride)为1,因此,可以捕捉更精细的图像特征。在原始的用于物体分类的VGG网络中,最后一层全连接层的神经元个数是1 000,采用Softmax激活函数。为了利用VGG网络进行年龄估计,文献[20]中对于VGG-16网络的最后