基于跨批次存储预训练的素描人脸识别方法

2023-02-14 10:31邵玉颖宋沛然杜康宁郭亚男
计算机工程与应用 2023年3期
关键词:集上识别率素描

邵玉颖,曹 林,康 峻,宋沛然,杜康宁,郭亚男

1.北京信息科技大学 信息与通信工程学院,北京 100101

2.北京信息科技大学 光电测量技术与仪器教育部重点实验室,北京 100101

3.中国科学院 空天信息创新研究院,北京 100080

素描人脸识别是将人脸照片与素描图进行匹配,由于其在刑侦调查中的重要作用,近年来受到了极大的关注[1-2]。随着计算机视觉和机器学习的快速进步,面部生物识别技术取得了重大成功。例如,人脸属性预测和聚类[3]、人类性别分类[4]和人脸识别[5]已广泛应用于公安和视频监控[6]。作为人脸识别中最重要的问题之一,素描人脸识别(SFR)[7-8]在刑事侦查中备受关注。它旨在将照片与犯罪分子目击者描述中获得的素描进行匹配,这比传统的人脸识别更具挑战性。

最近,基于卷积神经网络(CNN)的度量学习方法已被广泛用于人脸识别和其他识别问题[9]。CNN表现出强大的表达能力,因此使用CNN来学习素描人脸识别的判别特征越来越受到关注[10-11]。然而由于包含素描人脸图像的数据库较少,且数据量极其有限,使得深度学习模型极易出现过拟合现象,导致其无法充分发挥模型效果。因此,素描人脸识别是具有挑战性的人脸识别问题。

类似于人脸验证[6]和人员重新识别[12-13],素描人脸识别是一个开放集分类问题,其中训练集和测试集类是不相交的。目前被设计用于素描人脸识别的算法可以分为两大类:模态内算法和模态间算法[14]。模态内算法通过将照片(素描)转换成素描(照片),然后使用在该模态下设计的面部识别器将合成素描(照片)与原始素描(照片)进行匹配,从而减少了模态差距。例如Tang等人[15]提出的ET+PCA算法和Galea等人[16]提出的EP+PCA算法。然而,仅当原始素描图像在外观上与原始照片非常相似时,这些方法才有较好的性能,此外,模态内算法所使用的面部识别器的性能还取决于生成图像的质量。模态间算法通过将两种不同模态的图像特征划分为公共空间后使用分类器进行识别,旨在学习能够同时最大化类间差异和最小化类内差异的分类器,较模态内方法降低了复杂度。例如Galea等人[14]提出的DEEPS神经网络,Klum等人[17]提出的D-RS+CBR算法和Galea等人[18]提出的LGMS算法。然而由于素描图像和光学图像之间存在较大的模态差异,直接使用模态间方法取得的识别精度相对较低。由于素描人脸图像难以获得且获取成本高,导致现有的素描人脸数据较少,上述两种方法在训练样本较少的情况下,均存在易过拟合的问题。

针对解决样本量不足以及过拟合的问题基于跨批次机制(cross-batch memory mechanism,XBM)[19],本文提出基于跨批次存储机制预训练的素描人脸识别算法。该方法分为预训练和训练两个阶段,预训练阶段借助跨批次存储机制挖掘和存储素描和光学照片特征信息进行模型训练。跨批次存储方法在训练时仅存储素描和光学照片特征信息而非图片本身,因此节省内存空间,支持在训练时选取更多样本。从而有效缓解样本稀缺问题,同时提高算法效率。训练阶段则利用三元组损失对预训练得到的模型进一步优化,提升识别效果。实验结果证明本文算法可以通过跨批次样本缓解过拟合问题,提升识别率。

1 基于跨批次预训练的素描人脸识别

1.1 跨批次存储机制

基于深度学习的素描人脸识别依赖大量样本进行模型训练,参与训练的样本种类和数量越多,对应的模型泛化性越高、识别效果越佳。将全部训练样本一次性输入模型训练中,对GPU等硬件性能要求较高,容易超出硬件的支持范围,且运算量大导致训练时间过长。因此在训练模型时采取样本分批次输入的方式,单次输入样本的数量即批次大小由batch size参数给定。由文献[20-23]可知batch size的大小决定了模型训练时梯度下降方向的准确性以及模型收敛速度。经观察,随着batch size的增大,模型的收敛速度也随之加快且训练效果不断提高。受限于GPU存储容量,训练过程中无法支撑batch size的持续增大,影响模型效果的进一步提升。为解决此问题,在XBM机制的启发下,本文创造性提出了样本特征信息池概念,用图像特征信息替代图像信息,从而减少信息存储需求;并将当前批次样本特征与信息池中前几批次样本特征进行交叉计算,从而达到扩大batch size的效果。提出的跨批次存储机制具体过程如下所述。

在训练开始时建立一个信息池,设定信息池大小,每次迭代将当前批次特征信息以及对应标签按队列形式存入池中,依此继续进行样本训练过程。当存入的信息达到信息池的存储容量上限时,采取先进先出的模式进行信息更新,即舍弃最早批次样本的特征信息,存入新样本特征信息。跨批次存储机制在训练时将历史迭代过程中的图片特征信息保存下来,即使存下多个批次的样本特征需要显存也不过几十MB,相比存储图片信息需要耗费的几GB甚至是十几GB容量,极大地节省了显存空间,允许在相同硬件条件下扩大batch size大小,进而提升模型泛化能力与识别精度。此外,跨批次存储机制借助信息池结构保留历史样本,在模型训练时,不仅考虑当前批次样本信息,同时加入部分历史样本信息,增加了单批次训练样本总数,进而在训练模型层面增加了样本数量,弥补了样本不足导致识别精度下降的缺陷。

1.2 预训练网络结构

预训练网络结构如图1所示,主要包括输入图像,特征提取器fθ,跨批次存储机制,以及损失函数L。

图1 预训练网络结构图Fig.1 Model structure diagram of pre-training stage

输入图像。训练数据集为X:

其中,xp为光学照片,xs为素描照片,N为类别数,训练数据集对应标签为Y={y1,y2,…,yN},每次迭代开始时,随机从X中抽取M对样本,记为XM:

对应类别标签为YM={y1,y2,…,yM}。

特征提取器fθ。特征提取器fθ采用18层的残差网络ResNet-18,主要由四种不同通道大小的残差模块作为基本结构组合而成。每个残差模块堆叠了两层卷积,两层卷积的通道数相同,每个残差模块的输入首先与第一层卷积层进行卷积,然后依次执行批量归一化(batch normalization,BN)和激活函数修正线性单元(rectified linear unit,ReLU),然后输入到第二层卷积层,再次通过BN层,最后与残差模块的输入相加,再通过ReLU激活层,作为残差模块的输出。

损失函数L。本文采用三元组损失函数。三元组损失的目标是使具有相同标签的样本在嵌入空间中尽量接近,具有不同标签的样本在嵌入空间中尽量远离,如果只遵循以上两点,最后嵌入空间中相同类别的样本可能聚集到一个很小的圈子里,即同一类别的样本簇中样本间的距离很小,不同类别的样本簇之间距离也会偏小。因此,加入间隔(margin)的概念,只要不同类别样本簇简单距离大于这个间隔就可以了。在训练过程中,通过提取输入图片特征,然后与其对应标签通过生成器获得相应三元组(a,p,n),其中a为锚点(anchor),p为正样本(positive),n为负样本(negative),p、a为相同类别样本,n、a为不同类别样本。

预训练阶段每次迭代第j个三元组中锚点与正样本之间的欧式距离度量以及锚点与负样本之间的欧式距离度量为:

则预训练阶段损失函数分别为:

其中,M为batch size大小,λ为权重,用来平衡L1、L2损失函数。

预训练阶段训练第i个epoch未采用跨批次存储机制时学习算法优化问题模型为:

采用跨批次机制时算法优化问题模型则为:

其中,θ*为模型最优解,M′=2M,K为记忆存储模块容量。

1.3 基于跨批次存储的预训练算法

为了解决样本稀缺问题,本文提出了基于跨批次存储机制的预训练算法,算法详细步骤如算法1伪代码所示。

算法1基于跨批次存储机制的预训练算法

输入训练数据集X,batch size大小M,特征提取器fθ,迭代次数阈值threshold,初始化参数θ,迭代次数n,记忆存储模块容量K。

输出模型参数θ。

步骤1fori=0,1,2,…,n-1,do。

步骤2随机抽取M对样本XMi。

步骤3通过fθ提取样本特征,放入记忆存储模块,当存放特征数大于K时取出最早放入存储模块的样本特征。

步骤4ifi<threshold,由式(3)计算损失L,式(4)优化参数θ*,执行后转步骤1。

步骤5else由式(3)计算损失L,式(5)优化参数θ*,执行后转步骤1。

步骤6输出θ,保存训练模型。

1.4 基于跨批次预训练的素描人脸识别方法

基于跨批次存储机制预训练的素描人脸识别方法如图2所示,分为两个阶段,第一个阶段为预训练阶段,具体过程在1.2节中详细阐述。第二个阶段为模型训练阶段,每次迭代从具有N个类的训练集X中随机采样M个类,其中M<N,用预先训练好的特征提取器fθ进行特征提取,然后通过生成器获得相应三元组,并计算得到三元组损失,每次迭代损失为:

图2 基于跨批次存储机制预训练的素描人脸识别方法模型结构Fig.2 Model structure of sketch face recognition method based on cross-batch storage mechanism pre-training

之后进行模型优化。

2 实验结果与分析

2.1 数据集设置

为了验证本文方法的有效性以及鲁棒性,采用PRIPVSGC[24]和UoM-SGFS[25]素描人脸数据集进行方法评估。

PRIP-VSGC数据集是由美国密西根大学公布的素描人脸库,包括AR数据集中的123个样本。该数据集总共包含三组合成素描,其中两组分别由美国和亚洲研究人员采用FACES软件合成,第三组由亚洲研究人员采用IdentiKit软件合成。本文在该组数据集第三组进行实验来验证本文方法的有效性。图3展示了PRIPVSGC中的样本示例,其中第一行为照片,第二行为对应的素描。

图3 PRIP-VSGC数据集样本示例Fig.3 PRIP-VSGC dataset sample examples

UoM-SGFS数据集是目前最大的软件合成的素描数据集,并且是唯一的彩色素描数据集。该数据集包含来自Color FERET[26]数据集的600张照片和对应的两组合成素描图像。其中第一组(set A)中的素描由EFIT-V软件根据照片生成,第二组(set B)中的素描为set A中的素描图像根据图像编辑软件微调后,得到的更加接近原始照片的素描图像。图4展示了UoM-SGFS中的样本示例,其中第一行为照片,第二行和第三行分别为set A和set B中对应的素描。

图4 UoM-SGFS数据集样本示例Fig.4 UoM-SGFS dataset sample examples

本文基于上述两个数据集设置了三组数据集:

(1)在第一组数据集中(S1),从UoM-SGFS set A中随机采样450对素描-照片作为训练集,剩下的150对素描-照片作为测试集,其中150张素描图像组成测试图像集,150张照片组成原型图像集。

(2)在第二组数据集中(S2),从UoM-SGFS set B中随机采样450对素描-照片作为训练集,剩下的150对素描-照片作为测试集,其中150张素描图像组成测试图像集,150张照片组成原型图像集。为了模拟现实场景,按照文献[3]中的策略,将S1和S2数据集中的原型图像集扩充了1 521个人的照片,包含来自MEDS-Ⅱ数据集中的509张照片,FEI数据集中的199张照片,以及本文从LFW数据集中随机采样的813张照片来代替原文献[3]中的FRGCv2.0数据集中的476张照片和Multi-PIE数据集中的337张照片。

(3)在第三组数据集中(S3),从PRIP-VSGC数据集中随机采样48对素描-照片作为训练集,剩余的75对素描-照片作为测试集,其中75张素描图像构成测试图像集,75张照片构成原型图像集。

为了保证算法的泛化能力,对三组数据集均进行了五重随机交叉验证。

2.2 实验设置

采用MTCNN[27]方法对UoM-SGFS和PRIP-VSGC数据集中的图像进行关键点定位和对齐操作,图5展示了UoM-SGFS数据集样本经上述操作后的示例,其中第一行为照片,第二行和第三行分别为set A和set B中的对应的素描。在训练过程之前,所有图像均被裁剪为256×256的标准尺寸,并对图像进行了预处理,包括随机裁剪,对图像进行填充,翻转、将图像转换为张量类型并对其标准化。

图5 UoM-SGFS数据集处理后示例Fig.5 UoM-SGFS dataset processed examples

参数设置:实验所用GPU内存大小为10.7 GB,优化器采用参数为β1=0.5和β2=0.999,动量为0.1,步长为40的Adam优化器来对整个网络模型进行优化,并且初始化学习率设置为0.000 1。在所有实验中,预训练阶段训练50个epoch,记忆存储模块尺寸为K=512,训练阶段均训练了50×100个episode,每100个episode保存一个模型。针对S1和S2数据集,batch size设置为32,即从训练集随机采样32对素描-照片构成一个episode。针对S3数据集,由于数据量较少,batch size设置为8,即从训练集随机采样8对素描-照片构成一个episode。

2.3 消融实验

为了验证本文方法中各个模块的有效性,本文设计如下两组消融实验:

(1)W/O pre-train:去除基于跨批次存储机制的预训练阶段,采用传统的深度学习方法训练特征提取器,然后通过三元组损失进行模型优化,实验设置同本文方法预训练阶段。

(2)W/O train:去除训练阶段,只采用基于跨批次存储机制的预训练阶段进行实验。在训练过程中通过跨批次存储机制保留历史样本,与当前样本同时训练特征提取器,然后通过三元组损失进行模型优化,实验设置同本文方法训练阶段。

消融实验在S1、S2数据集上Rank-1、Rank-10、Rank-50的实验结果分别如表1、表2以及图6、图7所示,在S3数据集上Rank-10实验结果如表3及图8所示。

表3 在S3数据集上的消融实验结果Table 3 Results of ablation experiments on S3 dataset单位:%

图8 在S3数据集上的消融实验折线图Fig.8 Line graph of ablation experiment on S3 dataset

表2 在S2数据集上的消融实验结果Table 2 Results of ablation experiments on S2 dataset单位:%

图7 在S2数据集上的消融实验折线图Fig.7 Line graph of ablation experiment on S2 dataset

表1 在S1数据集上的消融实验结果Table 1 Results of ablation experiments on S1 dataset单位:%

图6 在S1数据集上的消融实验折线图Fig.6 Line graph of ablation experiment on S1 dataset

通过以上图表可以看出,相比消融实验(1),本文方法在利用传统的深度学习方法训练特征提取器前通过跨批次预训练机制进行模型预训练,通过存储历史样本与当前批次样本训练模型,得到较好的模型初始参数。在S1数据集上Rank-1实验结果提升了约10个百分点,在S2数据集上Rank-1实验结果提升了13个百分点,S3数据集Rank-10识别率提升了约4个百分点。相比消融实验(2),本文方法在跨批次预训练模型后进一步添加训练模块,对跨批次训练阶段的模型参数进行优化。在S1数据集上Rank-1实验结果提升了8个百分点,在S2数据集上Rank-1实验结果提升了13个百分点,在S3数据集Rank-10识别率也提升了3个百分点。

此外,消融实验(2)相比消融实验(1)在训练过程中加入了跨批次存储机制,通过历史样本和当前批次样本共同训练模型,在三个数据集上实验结果均有所提升了,也证明了跨批次存储机制的有效性。

2.4 对比实验

为了证明本文方法的有效性,针对UoM-SGFS数据集,与其他素描人脸识别方法进行对比分析,包括DANN[28]、CDAN[29]、BSP+CDAN[30],以及深度学习跨模态方法SP-Net[31]和Transfer deep feature learning[32]。其中DANN、CDAN、BSP+CDAN均使用了域自适应方法,可以用于解决素描和光学照片之间的模态差异问题。DANN通过源域和目标域经过相同的映射来实现特征对齐,CDAN通过条件对抗性域适应的原则框架对分类器预测中所传递的判别信息建立了对抗性适应模型,BSP+CDAN提出BSP模型通过对奇异值大的特征向量进行惩罚来保证可区分性同时提高可迁移性。SP-Net方法提出了基于对比学习的耦合深度卷积神经网络。Transfer deep feature learning对比方法设计了一个三通道卷积神经网络架构,并采用三元组损失来学习判别特征优化网络模型。实验结果如表4、表5所示。

表4 在S1数据集上的对比实验结果Table 4 Comparative experimental results on S1 dataset单位:%

表5 在S2数据集上的对比实验结果Table 5 Comparative the experimental results on S2 dataset单位:%

通过表4、表5可以发现,相比DANN、CDAN以及BSP+CDAN等域自适应方法,本文方法突破了只采用当前批次样本进行模型训练以及采用随机初始化模型参数的局限性,通过跨批次存储机制,不仅利用当前批次样本信息训练模型,同时也加入历史样本信息共同训练模型,以此得到更加合适的模型初始参数。在S1数据集上相比实验结果最好的CDAN方法识别率提升了6个百分点,相比DANN方法识别率更是有11个百分点的提升。在数据集S2上Rank-1高达72.53%的识别率,相比CDAN方法也提升了10个百分点。相比SP-Net对比方法使用的训练机制,本文使用的训练机制提取的样本信息更丰富,识别效果更加准确,在S1和S2数据集上分别有18和22个百分点的提升。相比Transfer deep feature learning对比方法,本文在三元组损失的基础上加入跨批次存储机制,利用历史样本信息学习到更多的判别性特征,以此提升识别效果,在S1和S2数据集上识别率分别提升了11和13个百分点。

除上述对比方法外,针对S3数据集,本文方法还与SSD[33]、Attribute[34]和Transfer Learning[35]方法进行了比较,其中SSD和Attribute为传统方法,Transfer Learning为深度学习方法。SSD对比方法使用合成素描与光学图像进行识别,Attribute对比方法使用视觉显著性和纹理特征组合的特征提取和匹配算法,用于将素描和光学照片进行匹配,Transfer Learning使用具有深度学习表示的迁移学习将合成素描与光学图像匹配的新算法。实验结果如表6所示,其中SSD、Attribute和Transfer Learning结果直接来自文献[34]和文献[35],其余比较方法的结果是通过实验获得的。可以看出,与对比方法相比,本文方法虽然未进行素描合成扩充数据样本总量,但是使用的跨批次存储机制将历史样本加入当前批次训练过程中,进而增加单批次训练样本,提升了识别率,在数据集S3上Rank-10识别率均有明显提升,相比于其他对比方法识别率最低提升了8个百分点,最高提升了17个百分点,证明本文方法的鲁棒性。

表6 在S3数据集上的对比实验结果Table 6 Comparative experimental results on S3 dataset单位:%

2.5 参数实验

(1)灵敏度校验λ。为证明本文方法泛化性以及参数有效性,针对参数λ在S1、S2、S3数据集上分别进行了λ灵敏度校验,记忆存储模块尺寸分别为K=256以及K=512,参数λ设置范围为λ∈{0.01,0.02,0.05,0.10,0.20,0.50,1.00},实验的结果是S1、S2数据集取Rank-1识别率,S3数据集取Rank-10识别率,如表7和图9所示。

表7 参数λ灵敏度实验结果Table 7 Parameter λ sensitivity experimental result单位:%

图9 参数λ灵敏度曲线Fig.9 Parameter λ sensitivity curve

通过图9可以看出结果曲线较为平稳,K=512时S1数据集识别率最高和最低之差约为5个百分点,S2数据集识别率最高和最低之差约为4个百分点,S3数据集Rank-10识别率最高和最低之差约为5个百分点,并且S1、S2数据集在λ取0.10时结果最高,分别为63.00%和72.67%。K=256时S1数据集识别率最高和最低之差不超过4个百分点,S2数据集识别率最高和最低之差不超过4个百分点,S3数据集Rank-10识别率最高和最低之差不超过6个百分点。这证明了本文方法的泛化能力以及参数λ取值的合理性。

(2)batch size参数实验。为了证明跨批次存储机制的必要性,除了以上实验外,本文还进行了batch size参数选取实验。S1、S2数据集选取Rank-1识别率,S3数据集选取Rank-10识别率,结果如表8所示,其中“—”表示因GPU显存不足导致batch size受限无实验结果。

W/O pre-train:S1、S2数据集由于GPU显存限制batch size最大选取64,batch size设置为{2,4,8,16,32,64},S3数据集最多48对,batch size设置为{2,4,8,16,32,48}。由表8可以看出该方法在S1、S2数据集初始结果几乎为0,并且S1、S2数据集Rank1识别率最高分别为53.9%、60.0%,S3 Rank10识别率最高为59.3%。

表8 batch size参数实验结果Table 8 Batch size parameter experiment results单位:%

W/O train:该方法突破了batch size最大为64的界线,S1、S2数据集batch size设置为{2,4,8,16,32,64,128},S3数据集batch size设置同第一组消融实验。由表8可以看出该方法在S1、S2数据集Rank1识别率最高分别为61.0%、63.0%,S3数据集Rank10识别率最高为60.0%。

Our approach:本文方法三个数据集batch size设置同第二组消融实验。由表8可以看出本文方法在S1数据集初始结果就达到50.0%以上,S2数据集初始结果更是将近60.0%,证明了本文提出的基于跨批次存储机制的预训练方法可以获取更好的模型初始参数,相比于其他消融实验方法在batch size为2时结果提升明显。此外本文方法在S1、S2、S3数据集上结果明显高于消融实验方法,在S1、S2数据集上Rank-1识别率最高分别为63.4%、73.1%,S3数据集上Rank10识别率最高为63.1%,相比消融实验识别率均有所提升。

在S1、S2、S3数据集上的batch size参数选取实验结果表明在样本稀缺情况下通过跨批次存储预训练可以获取更好的模型初始参数,在相同GPU内存条件下也可以进一步增加batch size大小,提高识别精度。

2.6 模型复杂度分析

针对本文模型的时间复杂度与空间复杂度,进行了统计分析,文中所有模型均在PyTorch中实现,GPU为英伟达公司NVIDIA Titan X(Pascal)。

结合对比实验中不同方法结果指标,针对不同类型对比方法,本文选择了三种具有代表性的对比方法:域自适应方法BSP+CDAN、深度卷积神经网络SP-Net以及利用三元组损失的Transfer deep feature learning方法在S1数据集上进行了复杂度计算的对比分析,结果如表9所示。

表9 在S1数据集上的模型复杂度分析Table 9 Model complexity analysis on S1 dataset

通过表9可知,本文方法训练和测试运行时间均低于以上三种对比方法,内存消耗也远低于以上方法。综合以上分析,本文方法在减小内存消耗与缩短运行时间的同时改进了模型结构,提升了识别效果。

3 结束语

针对素描人脸识别样本稀缺问题,为提高人脸识别模型泛化能力,本文提出一种基于跨批次存储机制预训练的素描人脸识别方法,对现有深度学习方法进行了改进。该方法分为两个阶段,预训练阶段借助跨批次存储机制突破了只训练当前批次样本的局限性,通过跨批次机制提取历史样本与当前批次样本信息进行模型训练,不仅缓解了样本稀缺问题,同时节省了内存消耗,提高了算法效率;训练阶段相比随机初始化模型参数选择预训练阶段得到的模型参数作为初始参数,并利用三元组损失进行模型优化,有效提升了识别效果。在UoM-SGFS数据集和PRIP-VSGC数据集上的识别精度均有明显提升,证明了本文方法的有效性。为进一步优化并提升算法性能,下一步的研究重点是在缓解样本稀缺问题同时挖掘更具判别性的特征信息,增加难例样本比重,并缩小素描和光学图像之间的模态差异。

猜你喜欢
集上识别率素描
武汉素描
Cookie-Cutter集上的Gibbs测度
素描
基于类图像处理与向量化的大数据脚本攻击智能检测
链完备偏序集上广义向量均衡问题解映射的保序性
分形集上的Ostrowski型不等式和Ostrowski-Grüss型不等式
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
提升高速公路MTC二次抓拍车牌识别率方案研究
跟踪导练(一)4
凡·高的早期素描