APP下载

一种增强人脸识别模型训练稳定性的损失函数

2021-01-22周书田谢镇汕

电子科技大学学报 2021年1期
关键词:梯度人脸人脸识别

周书田,颜 信,谢镇汕

(电子科技大学格拉斯哥学院 成都 611731)

深度学习在人脸识别领域取得了巨大的成就,已经广泛应用在金融认证、门禁控制等领域,创造了巨大的经济与社会价值。在目前最大的公开人脸评测数据集MegaFace[1]上,顶尖的方法已经实现了97.91%的1:NTop-1 查准率[2],并且已经超过人眼识别的水平。典型的人脸识别流程包含人脸检测[3]、人脸剪裁[4]、人脸特征提取[5]、人脸特征比对与查找[6]4 个流程。人脸识别模型优化的本质为:在一个特征空间中,属于同一个人的图像特征尽可能聚拢,不属于同一个人的图像特征尽可能发散,模型对于特征建模能力的强弱直接影响人脸识别模型的识别准确率。目前,人脸识别系统的巨大进步主要来自于网络架构[7]的不断革新,以及损失函数的设计。设计优良的损失函数,可以最大化实现类内特征的聚合与类间特征的离散。最近,大量的损失函数,如Triplet Loss[8],使负样本对的距离大于正样本对的距离,大大提升了网络对于特异性特征向量的建模能力。

人脸识别模型依托于大规模的训练,训练图片数量高达数百万张,训练过程经常持续数周。但现有人脸识别训练模型常常会带来收敛过程中的震荡,使训练成本加大。本文对现有的人脸识别损失函数ArcFace[2]进行改进,将其logit 曲线变换成为一条直线,使收敛过程更加稳定,本文的方法命名为LineFace。

1 模型与方法

1.1 预置知识

人脸识别问题是一个典型的分类问题。解决传统分类问题的方法为使用交叉熵-softmax 损失函数进行分类损失监督,然后将损失进行反向传递,来更新识别网络参数。对于一张人脸照片,首先通过骨干网络提取其特征向量,将其表示为xi∈Rd,并且属于类别yi,对于类i的分类概率为:

图1 不同损失函数logit 曲线的对比

1.2 方 法

为了实现稳定的训练过程与极具特异性的特征表达,将logit 曲线变更为一条直线,在不同的收敛过程与阶段,其梯度始终为定值,避免了梯度的跳变,这带来了稳定的收敛。该损失函数命名为LineFace,其表达式为:

LineFace 在区间内单调递减,并且梯度恒定,拥有更好的可解释性。而对于ArcFace[2]和CosFace[10],其在区间内,并不单调递减,并且梯度变化剧烈,使得训练不稳定。大量的实验表明,本文的损失函数可以大幅提高收敛过程的稳定性质,并带来识别性能的提高。LineFace 在训练过程中改变监督函数,不会在推理阶段引入新的计算消耗,因此在提升训练稳定的同时,保持了与之前工作相同的计算复杂性。

2 实验设置

2.1 实验数据

近年来,大规模数据集的出现极大地推进了人脸识别模型性能的提升,本文采用了学术界广泛使用的MS-Celeb-1M[12]数据集作为训练数据集,也是迄今为止开源的最大规模的人脸训练数据集。原始MS-Celeb-1M[12]数据的数据集被证明具有大量的数据噪声,因此与之前的工作相似,对MSCeleb-1M[12]数据进行了清理,清理后的数据集包含来自9 万人的510 万张照片。对于测试过程,本文选取了常见的LFW[13]、MegaFace[1]、YTF[14]以及IJB-A[15]数据集进行了测试。

2.2 数据预处理与骨干模型

人脸识别的第一步为人脸检测与裁剪,本文使用MTCNN[4]检测人脸与关键点,人脸图像将会被仿射变换到112*112,然后将像素值归一化到[0,1],并且在最后添加了随机翻转以进行数据增广。

对于骨干模型,为了与之前的工作进行公平比较,采用了ResNet-101 的网络结构,ResNet-101是经典的深度学习骨干模型,其良好的泛化性已经在众多的任务中得到了验证。将特征嵌入层的维度设置为512,与之前的工作保持一致。

2.3 训练设置

本文在8 块NVIDIA 1080TI GPUs 进行了实验,总训练步数为11 万步,使用了步进学习率与权重衰减,初始学习率被设置为0.1,并且每4 万轮衰减0.1 直到模型收敛,模型动量被设置为0.9。

3 实验结果

3.1 在LFW 上的结果

作为人脸识别领域的黄金标准,LFW[13]测试集被广泛使用。根据报告,人眼在该测试集上的性能为97.25%,它包含来自于5 749 人的13 233 张图片,所有的照片都在非受限场景下采集,包括极具变化的姿势与分辨率。

官方的测试流程包含了6 000 图像对,其中3 000 张为正样本对,3 000 张为负样本对。本文严格参照了官方的10 折交叉验证的测试流程。

表1 不同损失函数在LFW 上的性能比较

如表1 所示,本文的方法在LFW 数据集上取得了有竞争力的结果,为99.63%。LFW 的性能已经在近年趋于饱和,并且因为错标注的存在,LFW数据集的理论上限为99.85%。因此,本文在更严苛的数据集YTF 与MegaFace 上进行了测试。

3.2 在YTF 上的结果

YTF[14]数据集包含来自1 595 人的3 424 个视频,平均每个人2.15 个视频,是现在广泛采用的视频人脸识别数据集。视频的长度从48~6 070 帧不等,平均为181.3 帧。视频人脸识别旨在测试模型在抖动模糊等极端场景下的建模能力。并且,在实际的验证场景中,更多的应用场景为视频数据。对于视频中的每个帧,都将其提取特征,并且使用平均池化来汇聚各个帧的信息。

表2 是在YTF 上识别的结果,可以看到,本文的损失函数实现了性能的提高,超过了目前最好的模型ArcFace[2],并且大幅度领先了对帧之间汇聚进行精心设计的方法NAN[16],实验结果证明了本文损失函数的有效性。

表2 不同损失函数在YTF 上的性能比较

3.3 在MegaFace 上的结果

MegaFace[1]被认为是目前最具有挑战性的人脸测试集,它由两个现存的数据集Facescrub 和FGNet作为查询集,并且从互联网上收集了百万级别的干扰集。这是第一个在百万级别进行极限人脸识别测试的数据集。

表3 是模型在MegaFace 上识别的性能,从表中可以看到,本文在MegaFace 上也取得了具有竞争力的结果,达到了98.03%。因为MegaFace 人脸测试集被证明包含大量的测试噪声,因此本文采用了与之前工作ArcFace[2]相同的数据清理策略。

表3 不同损失函数在MegaFace 上的性能比较

3.4 模型收敛性的验证

通过对损失函数logit 曲线的改变,将损失函数变成了余弦空间中的一条直线,从而提供了稳定的梯度,本文对训练过程进行了测试,如表4 所示,本文的模型收敛更快,在模型训练早期的性能大幅领先目前的方法。表4 中,在训练的迭代次数为30 000 时,本文方法领先主流方法6%~13%,证明了本文方法易于收敛。

表4 不同方法与不同训练迭代数量在LFW数据集上的性能

4 结 束 语

本文对目前现有的人脸损失函数进行了回顾,并且注意到模型收敛中梯度变化剧烈的问题。通过对logit 曲线进行改变,将其变为一条直线,从而提供了在网络训练的各个阶段都稳定的梯度。大量的实验证明,本文的方法增强了模型的收敛性,并且在各个数据集上都实现了稳定的性能。

猜你喜欢

梯度人脸人脸识别
基于应变梯度的微尺度金属塑性行为研究
人脸识别 等
有特点的人脸
玻璃窗上的人脸
人脸识别的“国标”来了
一个具梯度项的p-Laplace 方程弱解的存在性
内容、形式与表达——有梯度的语言教学策略研究
航磁梯度数据实测与计算对比研究
荣耀畅玩7C:人脸识别
“领家系”可爱脸VS“高冷系”美人脸