针对人脸颜值评估系统正确率和实时性低的问题, 提出了一种基于深度学习的人脸颜值评估系统. 该系统利用基于HOG特征的方法进行人脸检测, 采用FaceNet预训练模型提取人脸特征值, 提出基于Softmax分类层和ReLU回归层的双层决策模型, 并结合人脸局部特征量化值进行人脸颜值评估. 在SCUT-FBP5500数据集上进行实验, 结果表明该系统正确率为78.58%, 单张图片的平均评估时间为2.98 s, 能满足实际应用的需求.
To address the problem of low accuracy and poor real-time performance of the facial attractiveness evaluation system, we propose a new facial attractiveness evaluation system based on deep learning. In this system, the HOG feature-based method and the FaceNet pre-training model are used for face detection and facial feature extraction respectively. Furthermore, a two-layer decision model based on the Softmax classification layer and ReLU regression layer is proposed, which is combined with the quantized values of local facial features to evaluate the facial attractiveness. Experimental results on the SCUT-FBP5500 dataset show that the accuracy of the system is 78.58%, and the average evaluation time of a single image is 2.98 seconds, which can meet the needs of practical applications.
“颜值”是用来衡量外貌美丑状态的一个流行词汇, 体现了人们对外貌的重视. 在追求高颜值的今天, 如何快速、客观评价一个人的颜值是值得研究的课题. 随着计算机视觉的发展, 人脸识别技术和深度学习算法逐渐普及, 众多研究者尝试采用人工智能的方法对人脸颜值进行自动评估. 人脸颜值评估系统可为人脸颜值提供客观的评价, 具有一定的理论研究价值. 此外, 人脸颜值评估系统可应用于美妆产品、图片美化、社交网络等场景, 具有极大的市场应用价值.
近年来, 随着互联网技术的不断发展, 为了满足人们对美貌的追求, 许多人脸颜值评估系统应运而生. 国内推出了多款操作简便的颜值打分器APP, 仅需上传图片即可预测出用户的颜值分数, 但评估准确率较低, 对于美丑的判定与大众审美存在较大的偏差. PrettyScale是国外推出的一款专业在线颜值点评系统, 主要根据黄金比例的美学原理对用户的颜值进行评估, 但该系统操作较为复杂, 需要用户手动调整面部、眼睛、鼻子、嘴巴等各部分的位置.
早期的人脸颜值评估研究主要采用传统的机器学习方法, 比如, 管业鹏等人[
传统的机器学习方法需要手工提取特征, 泛化性能较弱, 难以应对复杂的情况. 因此, 近年来较多学者采用基于深度学习的解决方案. 相较于传统机器学习方法, 深度学习通过对各层网络逐层的学习, 更容易发现颜值评估的规律, 具有广阔的应用空间. 2015年, Xie等人[
为了实现人脸颜值的智能评估, 本文研发了一款基于深度学习的颜值评估系统, 利用图像的方向梯度直方图(histogram of oriented gradient, HOG)特征[
本文设计了一款基于深度学习的人脸颜值评估系统, 框架图如
人脸颜值评估系统框架图
用户通过拍照或选择照片的方式将图片上传至本系统, 系统将会调用Dlib中的基于HOG特征[
人脸检测流程图
FaceNet预训练模型能够有效提取图片中具有复杂特征或难以直接量化的特征, 并且提取的全局特征向量不受图片几何随机变换的影响, 给接下来的双层决策模型带来较好的效果. FaceNet框架图如
FaceNet预训练模型流程图
三元损失函数的定义如下:
其中,
人脸颜值评估模块的目的是对人脸图像进行颜值测评. 若直接利用分类模型进行等级的分类, 虽然可以得到较高的准确率, 但评估的结果相对变得模糊, 难以合理地区分每个人的颜值评估结果. 另一方面, 若直接根据原始数据集中的连续性分数作为标签, 训练一个回归型的模型, 则会因为数据分布不均, 导致均方根误差(root mean square error, RMSE)、均方误差(mean square error, MSE)等相关指标较大, 评估的结果准确性不高.
因此, 本文将FaceNet模型中提取的人脸特征作为人脸颜值评估模块的输入, 并将数据集分成“较低”“一般”“较高”3种等级, 分别训练3种回归模型: 较低颜值回归模型、一般颜值回归模型和较高颜值回归模型. 此外, 采用ReLU激活函数增加回归模型的非线性表达能力, 通过梯度下降法对参数进行优化.
在人脸颜值评估模块的具体实现中, 我们结合分类模型和回归模型, 采用基于Softmax分类层和ReLU回归层的双层决策模型评估人脸颜值. 首先, 将FaceNet预训练模型提取的人脸特征向量作为双层决策模型的输入, 通过双层决策模型中的Softmax分类层预测该人脸特征所处的颜值等级, 然后通过对应等级的回归模型(较低颜值回归模型、一般颜值回归模型和较高颜值回归模型), 得到连续的人脸颜值评估数值, 最后将该数值转换成百分制, 即可获得百分制形式表示的颜值评估结果. 具体流程如
双层决策模型流程图
考虑到单一评价会影响评估的客观性, 本文根据文献[
标准局部特征值表
标准参考值 | 局部特征描述 |
120° | 下颚角度 |
1/1 | 眉心至鼻下/鼻下至下颌 |
1/0.618 | 人脸长宽比例 |
<180° | 微笑角度 |
>1 | 唇厚度比 (下/上) |
根据人脸图像各个局部特征值与对应的标准参考值之间的差异性, 我们设置了相应的加分规则, 如
局部量化特征加分规则表
局部特征 | 规则 | 加分值 |
下颚角度 (°) | | |
2 |
20<| |
1 | |
| |
0 | |
眉心至鼻下/鼻下至下颌 | | |
2 |
0.2<| |
1 | |
| |
0 | |
人脸长宽比例 | 1.418
|
2 |
1.218
|
1 | |
其他 | 0 | |
微笑角度 (°) | 180– |
1 |
180– |
0 | |
唇厚度比(下/上) | 1 | |
0 |
我们基于Windows系统和Ubuntu虚拟机搭建了系统的开发环境, 主要通过PyCharm开发工具、Android Studio开发工具、MySQL数据库组成, 如
(1) 数据集的来源与收集
本文采用SCUT-FBP5500数据集[
系统架构图
数据集的部分原始数据
(2) 数据集的扩充与处理
我们发现SCUT-FBP5500数据集在评分两端(接近1分和5分)的数据较少, 而在中间分数段的数据居多. 虽然该数据集符合正常的人脸颜值分布, 但数据集的分布不均将会影响模型的训练效果, 因此需要进一步收集数据并对数据集进行扩充与处理.
本文参考了英国IM杂志亚洲最时尚面孔名单, 扩充数据集, 使高分数据增多, 并去除掉质量较差的图片, 增强后的数据集共4 794张, 然后将其按7:3的比例划分为训练集和测试集进行训练. 增强的部分原始数据如
由于在实际生活中, 存在于评分两端分数段的数据较少, 为使数据集分布均匀, 我们调整分数段, 合并相关分类, 将5个等级划分为3个等级: 设定1–2分数区间为类别“较低”, 3分数区间为类别“一般”, 4–5分数区间为类别“较高”.
数据集增强后的部分原始数据
本研究对基准的分类层模型进行结构上的改进, 同时利用数据增强提高模型评估的性能. 训练过程主要分为4步.
(1)利用基于HOG特征的人脸检测器检测人脸区域, 截取数据集图像中人脸的感兴趣区域(region of interest, ROI), 从而避免了模型参数的冗余.
(2)将训练集输入到FaceNet预训练模型中后, 初步提取人脸的图像特征, 得到人脸特征集.
(3)在双层决策模型训练中, 首先利用人脸特征集对3分类的Softmax分类器进行训练, 然后将人脸特征集的5个等级划分为3个等级, 分别训练对应等级的回归模型.
(4)最后利用测试集计算双层决策模型的准确率. 在双层决策模型测试中, 将测试集输入到FaceNet预训练模型以提取人脸特征值, 然后通过Softmax分类层预测出等级, 并选择对应的回归模型进行颜值的评估. 本文将双层决策模型最后的输出值进行四舍五入处理, 综合原始的标签得到最终的准确率. Softmax分类器训练过程准确率如
双层决策模型中的分类层训练集准确率
主要参数设置如下:
(1) 学习率为0.001;
(2) 总迭代次数为300次;
(3) 一次训练所选取的样本数(batch size)为32.
(1) 数据集处理结果与分析
为了确定数据增强的方法, 解决数据集分布不均的问题, 我们对以下3种数据增强方法进行对比:
① 变换增强处理: 对评分两端的图片进行随机图像变换与增强;
② DCGAN模型[
③ 人工处理: 人工扩充数据集, 使高分数据增多, 并去除掉质量较差的图片.
我们基于不同的数据集处理方法, 运用本文所提出的FaceNet+双层决策模型+局部特征量化值进行训练, 结果如
基于不同数据集处理方法的模型训练结果
数据集处理方法 | 训练样
|
测试样
|
总训练时间 (小时) | 正确率 (%) |
原始数据 | 2 800 | 1 200 | 5.17 | 74.06 |
变换增强处理 | 3 850 | 1 650 | 5.91 | 72.95 |
DCGAN模型处理 | 3 850 | 1 650 | 6.20 | 74.72 |
人工处理 | 3 355 | 1 439 | 5.86 | 78.58 |
从
(2) 颜值评估方法比较与分析
为了验证本文方法的有效性, 我们把本文方法与FaceNet+Softmax、FaceNet+双层决策模型方法的性能进行比较, 实验结果如
其中,
不同颜值评估方法结果对比 (%)
检测方法 | 正确率 |
FaceNet+Softmax | 73.04 |
FaceNet+双层决策模型 | 75.45 |
本文方法 | 78.58 |
与另外两种颜值评估方法相比, 本文方法经数据扩充后, 利用FaceNet+双层决策模型+局部特征量化值进行人脸颜值评估, 正确率比采用FaceNet+Softmax和FaceNet+双层决策模型的方法分别提高了5.54%和3.07%, 证明了双层决策模型与局部特征量化值的结合能有效地提高分类性能, 最终提高系统的整体性能.
(3) 系统响应时间分析
我们对系统的响应时间进行了测试, 输入20张人脸图片进行颜值评估, 共花费59.6 s, 平均每张图片的评估速度为2.98 s. 处理单张图片的最长时间为3.23 s, 最短时间为2.16 s, 其变化幅度也是在用户可接受的范围之内, 因此, 本文提出的方法能够满足用户实际应用需求.
本文将人工智能技术应用于美妆领域, 研发了一款基于深度学习的人脸颜值评估系统, 可实时对用户的妆容进行评估, 提高用户的美妆技能和质量. 该系统利用FaceNet预训练模型进行人脸特征提取, 结合双层决策模型和人脸局部特征量化值进行人脸颜值评估. 在经过数据增强后的SCUT-FBP5500数据集进行实验, 本系统获得78.58%的准确率, 人脸图片的平均评估时间为2.98 s, 能满足实际应用的需求. 但影响人脸颜值的因素诸多, 如肤色、发型、情感状态等. 如何进一步提取综合性更强的特征, 实现更贴近大众审美标准的人脸颜值评估系统, 是我们未来要继续研究的问题.
管业鹏, 夏慧明, 时勇杰. 非监督人脸美貌度评价. 电子器件, 2012, 35(2): 244–248, doi: 10.3969/j.issn.1005-9490.2012.02.029.
毛慧芸, 金连文, 杜明辉. 基于几何特征及C4.5的人脸美丽分类方法. 模式识别与人工智能, 2010, 23(6): 809–814, doi: 10.3969/j.issn.1003-6059.2010.06.010.
et al. SCUT-FBP: A benchmark dataset for facial beauty perception. Proceedings of 2015 IEEE International Conference on Systems, Man, and Cybernetics. Hong Kong: IEEE, 2015. 1821–1826.]]>
甘俊英, 黄聿, 翟懿奎, 等. 基于轻量级卷积神经网络的人脸美丽预测. 五邑大学学报(自然科学版), 2017, 31(3): 42–48.
Zhai YK, Cao H, Deng WB,
et al. Benchmark of a large scale database for facial beauty prediction. Proceedings of 2016 International Conference on Intelligent Information Processing. Wuhan: ACM, 2016. 21.]]>
刘梦佳, 赵建国. 基于SVM的疲劳驾驶人脸图像特征检测算法. 半导体光电, 2020, 41(2): 278–282.