针对非均衡数据的人脸识别算法*

2023-06-04 06:23周辉
计算机与数字工程 2023年2期
关键词:协方差特征向量人脸识别

周辉

(中国石油大学(华东)计算机与科学技术学院 青岛 266580)

1 引言

得益于深度学习[1~3]的发展,人脸识别技术有了突破式发展。由于深度学习是数据驱动的方法,数据集的质量直接影响识别算法的精度。不幸的是,目前几个比较常用的公共人脸识别数据集(CASIA-WebFace,MS1M,CelebA)都存在着样本不均衡的问题,一般数目比较少的类称之为UR数据(Under Represent Data)。几乎在所有的人脸数据集中都存在UR 数据,这就使得在训练网络的过程中,通过网络得到的数据分布不均衡,从而影响到网络整体的识别性能。虽然目前人脸识别方向发展已经比较成熟,甚至都投入了商用,但是训练中遇到的样本不均衡数据始终制约着人脸识别,无法进一步提高人脸识别精度。早期的解决方法是直接去掉UR 数据类别,只对样本数据多的类别进行训练。但是这样做会造成训练数据不足,严重削弱网络的泛化能力;另一种常用做法是通过归一化权重的方式,强行将正常类别和UR 数据类别对应的权重向量归一到同一均衡数据分布中,但会造成决策边界倾斜[4],使学习得到的分布与实际的分布差异较大,影响最终识别效果;此外,还可以将UR 数据里的图片通过旋转、平移、缩放等仿射变换方式得到新的和原图相似的图片,将这些图片和原图一起送入网络训练:这类方法被称作显式数据增强,但是增强得到的数据与真实数据分布存在较大差异,所以这种显式数据增强对网络整体效果的提升并大。近年来,隐式数据增强作为一个处理样本不均衡问题的新方法逐步受到人们关注。FTL[5]提出一种隐式数据增强手段:以类中心向量为基准,在特征空间做数据增强来训练网络。具体来说,由于人脸识别是一种细粒度分类问题[8],因此可以假设整个数据集满足一种高斯分布,在这种高斯分布中,每个类别都有着自己特有的特征向量均值而共享一个协方差,因此,可以在训练的过程中将普通类的协方差矩阵特征逐步迁移至UR 类,以此解决样本不均衡问题。

然而,FTL 是基于center-loss 的一种处理不均衡数据集的衍生方法,这类算法只能使类内距离减小而不能使类间距离增大,这就使得数据整体在欧氏空间上不符合正态分布。因为数据符合正态分布是深度学习算法奏效的前提,所以这使得脸识别效果受到不利影响。

本文针对这一问题,将隐式数据增强引入角度量空间。因为通过softmax 损失获得的特征具有固有的角度分布[7],所以在角空间进行隐式数据增强不会影响数据的整体分布。此外,还对FTL中的协方差矩阵做相关改进,使UR 类别在特征空间中尽可能地产生多样性特征向量来减轻不均衡数据集对识别算法所造成的负面影响。

在通用数据集上的结果表明,该算法能有效提高最终的人脸识别精度。

2 本文算法

2.1 问题描述

2.2 损失函数

最常用的分类损失函数Softmax损失如下:

由于批正则化(batch normalization)的引入,bj的值已经不起作用,所以之后的论文基本将bj的值设置为0,这样式(1)中,其中θj为与ai之间的夹角,同时设置及,这么做是为了将特征向量的模归一到一个常数中,方便向量之间进行公平的比较,至此,特征预测和权重调整的预测就只依赖于θj,原式(1)可改写为

通过式(2),需学习的特征向量就被分布在一个半径为s 的超球面上了。Sphereface 很自然地将损失函数从欧式距离判别改写成了角度距离判别,这种角度距离判别被证明更好地体现特征度量。为了使得特征向量有让类内距离更小类间距离更大的能力,Sphereface引入变量m对式(2)做改进:

当一个特征向量在极坐标中同时和两个类中心向量比较时,对于同类别的角度距离乘以m(m>1)。这样,在有着监督信息的训练过程中,就越希望同类别的角度距离小。不同类别的角度距离大,以此来抑制来保持损失函数尽量最小化。为了进一步优化这个算法,Sphereface 的衍生方法Arcface对变量m做相关改进,最终得到可以使类内距离更小而类间距离更大的优化式(4):

在式(4)中,m1,m2,m3都是超参用于提升特征向量的表征能力。与Arcface 相同,将三个超参m1,m2,m3分别设置为1,0.3,0.2。

本文使用在特征域对UR类图像做隐式语义数据增强。为了得到UR 类特征向量的语义方向,这里假定增强后的特征向量满足正态分布N(ui,λ∑),即,根据Sphereface,每个类别的中心特征向量可以由其网络最后一层FC对应的相关类别权重向量来表示,即第j 个类别的权重向量可以作为此类的类中心向量表征。为所有普通类中心向量的协方差矩阵,初始的∑并不能完全获得真实的分布信息,为了解决这个问题,本是使用退火策略,先随机初始化∑,在训练过程中∑,将学习得到的∑比重慢慢增加,本文设置,t 为第t 个迭代周期,T 为总迭代周期。为了使UR 类数据得到更好的训练,本文通过学习普通类协方差矩阵将这种特性引入UR类,从而得到尽可能多的UR类数据满足训练。

首先,将普通类图像以显式数据增强的方式即旋转,裁剪等方法送入网络训练,得到图片的特征向量ai,再利用特征向量ai使用式(5)迭代计算协方差矩阵∑:

其中ni为每一类的图片样本总数。然后对这个协方差矩阵λ∑,做随机采样M 次得到一个新的矩阵,根据矩阵Q对UR 类图片送入网络得到的特征向量ui做隐式数据增强,最终得到的隐式数据增强特征向量vi,具体计算过程如式(6)所示:

M为随机对协方差矩阵∑的抽样次数,每次得到的隐式数据增强特征向量记为vik,θjk为vik与WTj之间的夹角。

2.3 算法流程

整体网络框架如图1 所示,本文算法主要是在网络中将普通类和UR 类交替训练,在训练的过程中慢慢学习得到协方差矩阵∑,以协方差矩阵对UR类在网络中的特征向量做数据增强。算法流程步骤如下:

图1 网络结构图

输入:人脸数据集D,初始超参λ0。

输出:类中心特征向量矩阵W,深度网络G 权重参数Θ。

Step1.随机初始化W、Θ,设置整体迭代周期为T,初始迭代时刻设置为t=0。

Step2.1. 将最小批量样本送入网络G 计算出特征向量ai=G(xi,Θ)。

Step2.3. 使用SGD 或者Range 优化器迭代更新W、Θ,并重复Step2过程,直至遍历完整个人脸数据集的普通类。

Step3.1. 将最小批量样本送入网络G 计算出特征向量ui=G(zi,Θ)。

Step3.2. 根据式(6)随机采样协方差矩阵λ∑将隐式数据增强M 次,得到特征向量集带入式(7)计算损失L。

Step3.3. 使用Adam 优化器迭代更新W、Θ ,并重复Step3过程,直至遍历完整个人脸数据集的UR类。

Step4.迭代时刻t自加1,重复Step2、Step3步骤,直至t=T结束。

3 实验及结果分析

3.1 数据集及评价标准

本文方法使用CASIA-WebFace 人脸数据集对网络进行训练,并在多个公开人脸数据集LFW 、YTF、IJB-A、MegaFace 进行人脸验证、人脸鉴定实验评估。

1)CASIA-WebFace:由温森塞公司的Dong Yi和中国科学院的Zhen Lei 等于2013 年发布。 是一个大规模人脸数据集,主要用于身份鉴定和人脸识别,其包含10,575 个主题和494,414 张图像,该数据集采用半自动的方式收集互联网人脸图像,并以此简历大规模数据集。

2)LFW:该数据集是目前人脸识别的常用测试集,其中提供的人脸图片均来源于生活中的自然场景,因此识别难度会增大,尤其由于多姿态、光照、表情、年龄、遮挡等因素影响导致即使同一人的照片差别也很大。并且有些照片中可能不止一个人脸出现,对这些多人脸图像仅选择中心坐标的人脸作为目标,其他区域的视为背景干扰。LFW 数据集共有13233 张人脸图像,每张图像均给出对应的人名,共有5749 人,且绝大部分人仅有一张图片。每张图片的尺寸为250×250,绝大部分为彩色图像,但也存在少许黑白人脸图片。

3)YTF:数据集包含了3425 个视频,涉及1595个不同的人。所有的视频都是从YouTube 上下载的,平均每个科目有2.15 个视频,最短的剪辑长度为48帧,最长的剪辑长度为6070帧,平均一段视频的长度为181.3帧。

4)IJB-A:一个用于人脸检测和识别的数据库,全称为IARPA Janus Benchmark A,其包含1845 个对象、11754 张图片、55026 个视频帧、7011 个视频和10044 张非人脸图像,该数据集由美国国家标准化研究院NIST 发布。

5)MegaFace:由华盛顿大学(University of Washington)计算机科学与工程实验室于2015年针对名为“MegaFace Challenge”的挑战而发布并维护的公开人脸数据集,是目前最为权威热门的评价人脸识别性能的指标之一。数据集中的人脸图像均采集自Flickr creative commons dataset,共包含690,572个身份共1,027,060张图像。这是第一个在百万规模级别的人脸识别算法测试标准,本文使用MegaFace Challenge 1做id检测。

本文对网络性能的评估分别在人脸验证和人脸鉴定两个识别任务中进行,人脸验证则是根据给定的两张人脸图像判断它们是否是同一个人,而人脸鉴定主要是将给定的面部图像赋予已知身份的面部鉴定。人脸验证的评测指标本文使用常用指标FAR(False Accept Rate)即鉴定错误接受比例,具体计算公式如下:

T为阈值选取参数,本文阈值选取为0.01,即评价指标为FAR@.01。对于人脸鉴定评价就采用常用的检索准确度,这里取Rank1测试精度。

3.2 实验设置

本文方法实验设计和ArcFace的实验设置基本一致。本方法采用基本神经网络框架ResNet50,采用损失函数为式(7),根据上述算法流程展开实验。经过实验验证分析,本文将式(7)中三个超参m1,m2,m3分别设置为1,0.3,0.2。其他方法如Cos-Face参数都选用其论文中的最优结果。

在数据处理部分中,本文将人脸数据按照各类中数量高于20 的归为普通类,低于或等于20 的归为UR类。根据文献[12]提出了标准化的面孔对原始人脸图片进行裁剪及相关仿射变换,使图片尺度变为112×112且更易于网络提取特征的最终图片。

本文所有实验代码实验都基于Pytorch,使用了两块NVIDIA Tesla P40 GPU,在CASIA WebFace人脸数据集中,采用随机梯度下降Adam优化器,设置batch-size 为64,初始学习率为0.1,在迭代周期10k、20k、28k 时分别将学习率降为原来的10%,总共迭代周期为30k次。

3.3 结果及分析

表1~2 所示为不同方法使用CASIA WebFace人脸数据集上训练并在多个测试数据库上分别做人脸验证和人脸鉴定的结果。通过数据对比,可以看出本文算法在人脸验证和人脸鉴定的表现均优于所有对比方法。其中实验的网络框架都是使用了ResNet50,以保证对比的公平性。从表中信息可以观测出ArcFace的性能无论是在人脸验证和人脸鉴定中都优于其他方法,FTL 方法是基于Center-Loss 和隐式数据增强的方法,性能由于Center-Loss,但是在和ArcFace的比较中并没有很强的优势,本文将隐式数据增强方法引入角度距离度量损失函数,实验表明结果良好。

表1 不同方法在LFW和YTF数据集中FAR@.01

表2 不同方法在IJB-A和MegeFace数据集中Rank1

为了更好地验证本方法隐式增强特性,本文也考虑了对协方差矩阵的抽样次数做了相关对比实验,如图2 所示,从图中可以看出,人脸验证和人脸鉴定的精度在开始阶段都随着M的增加而增加,但是在M 到了60 之后就不会再增加了。是由于随着单个样本特征向量的隐式扩充,导致该类分布的方差超出了一定界限,最终造成精度的下降,本文根据人脸验证和鉴定的最优精度取M对应的值。

图2 协方差矩阵的抽样次数对实验精度的影响

此外,还研究了Batch-Size 的大小对结果的影响,如表3、4所示,最终根据结果选取Batch-Size为64。

表3 不同Batch Size在两种人脸鉴定数据集中Rank1

表4 不同Batch Size在两种人脸验证数据集中FAR@.01

4 结语

本文提出一种将隐式数据增强引入角度量损失函数的人脸识别算法,有效地缓解了样本不均衡对识别精度的不利影响。隐式数据增强使深度神经网络训练更有针对性,从而使不同数据集的人脸识别性能得到提升,对之后的人脸识别工作有启发性意义。

猜你喜欢
协方差特征向量人脸识别
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
人脸识别 等
克罗内克积的特征向量
揭开人脸识别的神秘面纱
一类特殊矩阵特征向量的求法
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
多元线性模型中回归系数矩阵的可估函数和协方差阵的同时Bayes估计及优良性
二维随机变量边缘分布函数的教学探索
不确定系统改进的鲁棒协方差交叉融合稳态Kalman预报器
基于类独立核稀疏表示的鲁棒人脸识别