研究背景与意义人脸颜值也称为人脸相貌,大众判断一个人的相貌水平是根据五官的特征,比如判断相貌好的的准则一般有“瓜子脸”、“大眼睛”、“高鼻梁”等;而判断相貌不好的准则包括“矮鼻子”、“大宽脸”等等。这说明了大众在评价人脸相貌的时候有共同的准则,这种准则正逐渐得从主观变为客观,许多研究者也越来越相信人脸相貌水平的高低具有共性并遵循了一定的客观规律,这为人脸颜值计算提供了依据。人脸颜值计算方法,总的可以概括为两类,特征提取方法与机器学习方法,特征提取方法关注于把一张高维图像映射到有效的低维的特征空间,目前比较常见的是几何特征。机器学习方法关注于如何对颜值特征进行推理与评价,分为分类方法与回归方法。目前人脸颜值采用的特征主要为几何特征,存在的问题是,并没有考虑到如皮肤的质感与纹理、影响视觉感光的头发、穿戴的首饰、人脸表情等要素。解决方法针对存在的问题,本文提出两种方法分类人脸颜值,分别为基于人脸相似度检索策略的人脸颜值分类方法、基于CNN颜值特征与人脸几何特征的人脸颜值分类方法。CNN理论:CNN(Convolutionalneuralnetwork,CNN)目前在图像处理、语音识别、文本挖掘等领域得到了重要的应用,因此本文提出了基于深度卷积神经网络的人脸相貌计算模型,与传统人工特征不同的是,大数据中自动学习得到表示人脸相貌的特征向量。传统BP神经网络输入层是一维的特征向量,隐含层之间采用是全连接形式,隐含层可以看做输入向量的一种特征表达形式,采用的激活函数为sigmoid或tanh,当试图增加隐含层的层数想提高分类或回归精度时,会存在梯度弥散问题,随着误差向后传播,梯度会急剧减小,导致浅层神经元的权重更新非常缓慢,从而不能收敛。因此通常BP神经网络都是三层,输入层,隐含层,输出层。CNN能够取得成功的原因:1.泛化技术。CNN可以理解为加入了一些泛化技术的二维形式的人工神经网络,泛化的目的是降低网络的参数,避免过拟合。主要包含:1.权值共享机制:共享卷积核(降低连接权值参数)。2.采用relu激活函数(解决梯度弥散)。3.其他:maxpool(减小神经元个数)、dropout(使神经元值随机置零)。2.大数据。在互联网时代,数据变得更容易获取,大的样本数据意味着大规模网络不会过拟合,能训练更复杂的任务。3.GPU计算能力的提升。GPU中的处理器比CPU多得多,可适用于深度学习。解决方法1.基于人脸相似度检索策略的人脸颜值分类方法:根据相似度高的人脸之间的颜值也是高度相似的这个先验条件(思路),通过人脸相似度检索技术来计算人脸颜值,具体的,先从人脸数据库中检索出相似度较高的人脸,再根据检索出来的人脸的颜值标签确定待测的人脸颜值类别。此方法核心的技术在于训练用于人脸相似度检索的CNN特征。人脸图像输入图像预处理人脸特征点定位提取全局图像区域与局部图像区域提取CNN特征人脸相似度检索数据库计算CNN特征欧氏距离取数据库中距离最小的前K个人脸样本对K个距离通过softmax计算得到样本的概率值求K个样本的期望输出颜值类标号训练好的CNN模型PCA得到降维后的CNN基于人脸相似度检索策略的人脸颜值分类流程图基于人脸相似度检索策略的人脸相貌分类maxmaxmaxMaxout网络示意图人脸相似度CNN示意图特征如何训练得到:网络的监督信号有两个,人脸识别监督信号(softmaxloss)与人脸验证监督信号(constrastiveloss)。本文将人脸识别作为监督信号的目的是期望让网络学习到的特征对不同人的人脸图像表达尽可能不同;而把人脸验证也作为监督信号的目的是期望让网络学习到的特征对同一个人不同图像表达尽可能相同,因此两个监督信号各有作用,缺一不可。128X128灰度图输入Convolutionlayer1Kernel:96×9×9;stride:1Maxpoolinglayer1Kernel:2×2;stride:2Maxoutlayer1Group:2;featuremaps:48Convolutionlayer2Kernel:192×5×5;stride:1Maxpoolinglayer2Kernel:2×2;stride:2Maxoutlayer2Group:2;featuremaps:96Convolutionlayer3Kernel:256×5×5;stride:1Maxpoolinglayer3Kernel:2×2;stride:2Maxoutlayer3Group:2;featuremaps:128Convolutionlayer4Kernel:384×5×5;stride:1Maxpoolinglayer4Kernel:2×2;stride:2Maxoutlayer4Group:2;featuremaps:192Dropoutlayer1Dropoutratio:0.7Fullconnectlayer1Outputnumber:512Maxoutlayer5Group:2;featuremaps:256SoftmaxlosslayerClassesnumber:21282ContrastiveLosslayermargin:1基于人脸相似度检索策略的人脸相貌分类数据库个体数目图像数目CASIA-WebFace10575494,414CelebA10177202599Facescrub53085376总共21282782389人脸识别公开数据库CNN训练采用的硬件配置为IntelXeonE3-1231v3处理器、GTX780显卡、8G内存、操作系统为windows7。CNN训练用到的深度学习框架为Caffe[47],训练总共用时7天左右时间,LFW上获得了97.25%的人脸验证精度。人脸相似度CNN网络的参数达到50万个,需要大量的样本才能防止过拟合,本文选用3个人脸图像库的集合作为训练样本,采集自21282个人,图像数目为782389张,其中20%的图像作为测试集用于判断CNN是否收敛、调参等。训练人脸相似度CNN的数据集:基于颜值CNN特征与几何特征池的人脸颜值分类人脸图像输入图像预处理人脸特征点定位提取全局图像区域与局部图像区域提取CNN特征训练好的CNN模型几何特征与深度特征结合构成颜值特征PCA降维SVM分类器输出颜值类标签2.基于颜值CNN特征与几何特征池的人脸颜值分类。特征:CNN+几何特征池;分类器:SVM分类器基于颜值CNN特征与几何特征池在线人脸颜值分类流程图128X128灰度图输入Convolutionlayer1Kernel:96×9×9;stride:1Maxpoolinglayer1Kernel:2×2;stride:2Maxoutlayer1Group:2;featuremaps:48Convolutionlayer2Kernel:192×5×5;stride:1Maxpoolinglayer2Kernel:2×2;stride:2Maxoutlayer2Group:2;featuremaps:96Convolutionlayer3Kernel:256×5×5;stride:1Maxpoolinglayer3Kernel:2×2;stride:2Maxoutlayer3Group:2;featuremaps:128Convolutionlayer4Kernel:384×5×5;stride:1Maxpoolinglayer4Kernel:2×2;stride:2Maxoutlayer4Group:2;featuremaps:192Dropoutlayer1Dropoutratio:0.7Fullconnectlayer1Outputnumber:512Maxoutlayer5Group:2;featuremaps:256SoftmaxlosslayerClassesnumber:4人脸颜值CNN示意图微调CNN模型结构参数达到50万多个,而人脸颜值样本才1万多个,选用人脸相似度CNN的权值作为微调的初始值,避免过拟合,能让网络参数的值处于局部最优的附近位置。几何特征池:在传统的比例几何特征、特征点距离几何特征的基础上提出了基于几何特征池的人脸相貌计算模型,并使用Gentleboost进行特征选择,特征池的构成除了比例几何特征、特征点距离特征,还包括人脸特征点坐标特征。特征量序号特征量符号特征量描述1D1人脸横向长度2D2眼角横向内间距3D3瞳孔到下巴的纵向间距4D4瞳孔到嘴的纵向间距5D5嘴到下巴的纵向间距6D6瞳孔到鼻端的纵向间距7D7鼻端到嘴的纵向间距8D8眉毛到鼻端的纵向间距9D9D2:D110D10D4:D511D11D9:D612D12D6:D713D13D5:D714D14D7:D5比例几何特征、特征点距离特征说明人脸特征点坐标特征几何特征池D8D2D6D7D9D4D1D3D5两种方法性能上的比较两种方法性能上的比较基于人脸相似度检索策略的颜值分类性能依赖于人脸相似度检索数据库中样本的质量,在数据库样本数目比较少,或者数据库中样本比较单一时,颜值分类性能会大打折扣,但是这种方法比较简单,不用再微调CNN。基于颜值CNN特征与几何特征池的人脸颜值分类方法以颜值分类为监督信号去训练CNN,学习得到的CNN特征具有颜值的潜在语义信息,此外,迁移人脸相似度CNN能弥补人脸颜值样本不足的缺陷。基于人脸相似度检索策略的颜值分类方法基于颜值CNN特征与几何特征池的人脸颜值分类方法数据库容量对颜值分类精度的影响提升分类精度的策略为了提升分类精度,本文使用了两种技巧:1.人脸对齐;2.人脸多区域CNN特征提取。人脸对齐是为了克服人脸的旋转问题,具体实现是:先检测出人脸特征点,再计算人脸双眼的连线与水平的夹角,根据这个夹角,以两眼中点位置为中心,对人脸图像进行旋转变化。旋转变化公式如下:人脸对齐示意图人脸多区域CNN特征提取技术(a)局部人脸图像区域示意图(b)全局人脸图像区域示意图全局人脸图像区域示意图局部人脸图像区域示意图本文使用了人脸多区域CNN特征提取技术。提取多个人脸区域的深度特征并串联在一起,这种方法既考虑到了人脸的局部五官的特征也考虑到了人脸的全局面貌,对人脸相貌的辨别具有很大的帮助。多区域CNN训练过程中分类精度对于很美或很帅分类精度的变化对于较美或较帅分类精度的变化对于相貌一般分类精度的变化对于相貌不好看分类精度的变化对于所有类别分类精度的变化多区域CNN训练过程中分类精度的变化图三种特征的分类效果实验分析了三种特征在人脸相貌各个类别上的分类效果,本文对几何特征池、颜值CNN特征、颜值CNN特征与几何特征池的融合这三种特征的分类性能进行了分析,如图4.9。如图4.10为三种特征在各个人脸颜值类别上的ROC曲线。从图4.9与4.10可见,颜值CNN特征与几何特征池的融合后分类效果最好。三种特征的人脸颜值分类精度(a)对于很美或很帅颜值类别的ROC曲线(a)对于较美或较帅颜值类别的ROC曲线(a)对于相貌不好看颜值类别的ROC曲线(a)对于相貌一般颜值类别的ROC曲线特征分布可视化为了研究CNN特征在人脸相貌分类中取得较好效果的原因,实验对特征在特征子空间上的分布进行了分析,使用PCA将特征降到3维进行可视化。分类性能好的特征在特征空间中具有的特点为:同一个类别的样本特征相似度高,在特征空间中彼此的距离近;而不同类别的样本特征在特征空间中彼此的距离远,判别性好。几何特征池关于相貌类别的分布图CNN特征关于相貌类别的分布图几何特征池与CNN特征合并后关于相貌类别的分布图CNN特征可视化CNN学习到了什么?人脸相貌CNN网络含有4个卷积层,从图可见,第一层卷积层学习到的是图像的边缘轮廓信息,第二层卷积层学习到的是图像边缘轮廓信息的组合,最后一层卷积核则学习到了复杂的语义信息,是低层信息的融合。卷积核可视化图CNN特征可视化可视化的特征层为maxout层,人脸相貌CNN网络含有4个maxout层,分别含有的特征图个数为48,98,128,256。人脸图像输入GlobalCNN1