APP下载

审计调查中人脸识别算法的研究与应用

2021-06-28王海荣李伟波万权鄢华向锐

电脑知识与技术 2021年10期
关键词:图像增强人脸识别深度学习

王海荣 李伟波 万权 鄢华 向锐

摘要:针对审计调查中人脸图像识别应用场景,首先模拟了一个相应环境干扰的人脸数据集,增加数据的多样性;在预处理阶段,研究采用自适应直方图光照平衡和模拟眼镜遮盖的改进方法进行了图像增强处理;在模型训练阶段,提出一种最优权重再重载的模型训练算法。对比实验结果表明,经过图像增强预处理的改进和最优权重再重载的模型训练,提高了应用场景中人脸识别的准确率、鲁棒性和效率。

关键词:深度学习;人脸识别;审计调查 ;图像增强;模型训练

中图分类号:TP301      文献标识码:A

文章编号:1009-3044(2021)10-0012-07

Abstract: According to the application scenarios of face recognition in the audit investigation, a face data set with corresponding environmental interference was simulated in advance to increase the diversity of data. In the preprocessing stage, transformation operations such as adaptive histogram light balance, glasses concealment, and horizontal flipping were done, which improved the accuracy and robustness of the training model. In the pre-processing comparison experiment, the accuracy of the model increased by 5.7% after a series of pre-processing. In the model training stage, a model training algorithm with optimal weights and reload is proposed. Experimental results show that this training algorithm has significant advantages over traditional training algorithms in terms of the convergence speed and final accuracy of model training.

Key words: deep learning; face recognition; audit investigation; image enhancement; model training

传统的人脸识别有基于几何特征的人脸识别方法\基于模板匹配的方法\基于子空间的方法\基于统计的方法[1]。而现在主流的人脸识别的方法是基于深度卷积神经网络的方法,虽然在检测速度和占用的性能资源没有传统的方法的优势,但是在检测准确率方面,具有明显的优势和更好的应用前景[2]。不过,在人脸识别实际应用过程中仍然有许多问题亟待解决。

“在飞行检查的会议合规性调查中,一些涉及人员审核的场景比如会议现场或者聚餐现场的人脸识别场景,需要对这些活动现场中的关键人物进行人脸识别”审计人员会根据会议关键人物到场情况来判断会议的合规性和风险程度。现场会议人员审核作为其中至关重要的一环节,往往需要准确实时。但是一般的人脸图像识别算法在这些复杂多样的场景下面,由于光线不均,检测对象人脸遮盖等因素很容易导致检测失败,识别出错等问题[3-5]。面对这些问题,文献[6-9]使用随机遮盖方法来提高对人脸遮盖的鲁棒性,但是对于人脸的特定局部特征不具有针对性。文献[4]介绍了可以使用Retinex算法缓解光照的问题,但是没有应用在人脸识别预处理中。

基于审计调查的应用场景,在预处理阶段,提出直方图均衡处理和Retinex光照均衡处理,缓解人脸光照不均的问题;使用模拟眼镜遮盖改进算法提高识别戴眼镜人脸准确度和鲁棒性。在模型训练阶段,根据在卷积神经网络模型训练过程中往往需要大量的训练时间才能获得一个比较满意的模型效果这一现象,提出一种最优权重重载的模型训练算法,加快模型的收敛速率,提高模型最终成型的准确率。通过对比实验的结果表明,这些改进能够让模型取得了比较好的效果,并且具有非常好的普适性和应用价值。

1 相关理论与方法研究

1.1 图像增强处理

图像增强处理能够让原始数据集图像信息得到充分的利用。图像增强处理一般有两种处理方式。第一种是离线增强,即数据集扩充;第二种是在线增强,即数据集加载时的预处理。

在深度学习图像领域模型训练过程中,一般在预处理阶段来实现图像增强。因为一般数据集所占用的内存都比较大,这样能节省很多空间。同时这样也便于使用随机处理,可以让训练出的模型泛化性能会更好。

研究将局部遮盖和直方图均衡和Retinex均衡这三种图像增强处理操作用于模型训练的预处理中的意义,就在于充分利用原始图像的信息,实现模型对局部特征和对光照不均的鲁棒性。

1.1.1 局部遮盖

局部遮盖与随机遮盖的区别就是,局部遮盖的针对性更强,能够提高模型对特定局部特征的鲁棒性。在人脸识别中,为了提高模型对眼镜的鲁棒性,我们可以使用眼镜遮盖的局部遮盖干扰算法。

眼镜遮盖算法就是模拟出人脸戴眼镜的图像。在实现眼镜遮盖这个过程中,首先通过MTCNN(Multi-task convolutional neural networks[10],多任務卷积神经网络)人脸检测算法定位到人脸的两只眼睛的坐标,然后根据该坐标进人脸对齐并添加眼镜遮盖。一般情况下,两只眼睛并不在同一水平下面。根据两只眼睛的坐标[x1,y1]与[x2,y2]求出与水平线的夹角θ

然后根据夹角θ进行矫正,即可达到人脸对齐的效果。

1.1.2 直方图均衡

直方图均衡化是将原始图像的灰度直方图通过变化函数重新分配为灰度均匀的直方图,增强了对比度。

每个移动模板中的直方图中每一灰度级k出现的概率可定义为:

其中 N表示图像的像素总数,L表示图像灰度级数,表示第k级灰度,r_k表示第k个灰度级

然后根据灰度级概率进行均衡化处理:

对比效果见图2。

1.1.3 Retinex光照均衡

Retinex理论[11-12]认为物体的图像(S)是由物体表面对入射光(L)反射得到的,而反射率R则由物体本身决定,不受入射光L的影响而变化。图像的照度取决于照射在该物体上的1光源,反射率取决于物体本身。根据Retinex理论,从数学的角度看,可以将图像除以反射率来计算出照度。基于Retinex方法的图像形成模型如下:

其中I(m,n)表示图像,I的取值范围在0到255之间,R(m,n)是物体的反射率,反射率的范围在0和1之间,L(m,n)是照度,照度取值范围也在0到255之间。

最终可以整理出:

根据式(5)可以看到,要估计反射率,必须对照度以及图像进行估算。因此,可以使用各种估算照度的滤波器。通过滤波器,可以使图像平滑,并且在大多数基于Retinex的图像增强方法中,平滑的图像可以充当照度。这就是单尺度Retinex算法(SSR)原理。

本文在图像预处理阶段引入Retinex算法,缓解人脸图像光照不均的问题。经过Retinex做图像预处理的对比图效果如图3所示(左边是原图,右边是经过Retinex处理后的图)。

1.2 模型优化算法

一个合适的优化算法就像选择了一条潜在的捷径,能够模型训练的时候快速地找到模型参数的最优解。研究模型优化算法的意义就在于找到这样的一条捷径,缩短模型的训练时间,节省模型训练的资源。常用的模型优化算法方法有随机梯度下降法SGD和Adam,在模型训练的过程中也是各有优势。最近刚出的RAdam效果也是非常不错。

1.2.1 随机梯度下降法SGD

随机梯度下降源于1951年Robbins和Monro提出的随机逼近,最初被应用于模式识别和神经网络,现已成为求解大规模机器学习优化问题的一类主流且非常有效的方法[13]。主要用来求解类似于如下求和形式的优化问题:

其中,[fw]表示整个数据集的损失,[fi]表示第i个样本的损失,[w]表示当前的模型的权重,[xi]表示输入第i个样本的特征,[yi]表示第i个样本的标签

梯度下降法:

当n很大时,每次迭代计算所有的[?fwt]会非常耗时。

随机梯度下降的想法就是在[?fi]每次在中随机选取一个[?fik]计算代替如上的,以这个随机选取的方向作为下降的方向。

注意到在[wt]靠近极小值点[w*]时,[?fiw*≠0],这导致随机梯度下降法精度低。由于方差的存在,要使得算法收敛,就需要[ηt]随[t]逐渐减小。因此导致函数即使在强凸且光滑的条件下,收敛速度也只有[O1/t]。

SGD每次迭代可以只用一个训练批次的数据来更新参数,使得代价函数变小,优点就是训练速度快,但是收敛慢。

1.2.2 自适应学习率优化算法Adam

Adam集成了SGD的一阶动量和RMSProp的二阶动量,动量就是在梯度下降的过程中加入了惯性,使得梯度方向不变的维度上速度变快,梯度方向有所改变的维度上的更新速度变慢,这样就可以加快收敛并减小振荡[14]。

偏差修正:在训练前期,梯度权值比较小,需要将权值之和修正为1。

Adam结合了Adagrad善于处理稀疏梯度和Rmsprop善于处理非平稳目标的优点,适用于大数据集和高维空间。

1.2.3 RAdam优化算法

由Liyuan Liu提出对Adam改进的优化器RAdam[15],兼有Adam和SGD两者的优点,既保证了收敛速度,也不容易调入到局部最优解。RAdam指出在训练的初期 Adam 中的方差会非常大。而公式(11)起到修正更新方向的作用,因此 Adam 参数的更新量的方差也会很大。在训练的初期([ρt<4]))时,使用带动量的SGD來更新参数。后期再使用做一个学习率的预热(learning rate warmup)。最后参数每一步的更新量就是:

2 理论应用与改进

2.1 图像增强应用与改进

在审计调查的人脸图像识别项目中的人脸图像识别容易受光照不均,遮盖等因素影响。因此为了增加模型对光照和遮盖的鲁棒性,在数据增强阶段添加了三个增强操作:局部遮盖干扰,直方图均衡以及Retinex光照均衡。

在局部遮盖干扰过程中需要使用到MTCNN检测出关键点的坐标。由于MTCNN人脸检测的时间成本比较高,因此这里做进一步的优化。也就是在前期将原始数据集的经过MTCNN进行裁剪的时候,将识别出的人脸关键点(包括两只眼睛、鼻尖和两个嘴角,一起共五个点的坐标)保存在文本文件中。然后在进行的眼镜遮盖需要当前图片的人眼坐标的时候就直接在文本文件中查找相应的坐标并返回。这样处理就减少MTCNN的使用次数,降低预处理的时间消耗。

另外,对于添加的局部遮盖干扰,直方图均衡以及Retinex光照均衡这三个增强操作,分别给定一个概率值[pi]来判断是否使用该操作。这样就可以对样本进行不同程度的干扰,使得样本数据信息进行充分的利用。经过这样的预处理得到的图像为:

其中[pi]表示第i个预处理的概率,[n]表示预处理的数量,[ti]表示第i个预处理,这样经过一轮预处理操作之后得到的图片进行训练就可以使的模型的鲁棒性更强。

這个算法的伪代码如算法1所示。

算法 1 预处理改进

输入:img,trans,prop

输出:trans_img

1.fori in range(n):

2.p=random()

3.if p < prop[i] then

4.img = trans[i](img)

5.return trans_img

2.2 基于最优权重重载的模型训练方法

在模型训练阶段有很多影响效果的因素,比如学习率的初始化,优化器的选择以及训练方法的设计。选择一个好的训练方法能够提高训练效率,加快模型收敛的速度,节省模型收敛时间。

SGD和Adam两种优化方式都能在一定程度上解决训练过程中的收敛问题,但是都倾向于向前去寻找最优解,这容易导致丢失曾经已经遍历到的局部甚至全局最优解。这种情况在图像上一般表现为:验证集的准确率在训练过程中的某个瞬间会达到最大,继续训练验证集的准确率反而会下降。如图4所示。

出现这个情况的时候,Epochs(整个数据集训练的次数)设置得再大也没有效果,因为验证集已经收敛了。面对这个问题普遍的做法是,停止训练,重新调整超参数。这种方式还需要进行手动调参,操作繁杂且不可控。基于最优权重重载的模型训练方法就是在SGD或者Adam优化器训练的过程中,将最高准确率或者最小损失的权重(上图中best对应的权重)保存下来。预先设置一个比较小的epochs=50,然后,每次自动重新训练的过程当中,加载上一次保存的最佳模型的权重,反复循环几次,达到加快模型收敛速度的效果。

其中[wi]表示当前批次的损失,[Lwbest]表示损失最小的权重对应的最小损失值。这个过程的算法伪代码算法2所示:

算法 2:最优权重重载算法

输入:  Epochs,train_times //总的迭代次数,间隔的迭代次数

输出: model_file //模型文件

1.init model

2.set pre_acc=0

3.for train_iter in range(train_times)

4.  if exist(model_file) then reload(model)

5.    init optimizer, scheduler, loss_fn,

6.    for epoch in range(epochs)

7.      Train(model)

8.      acc = Valid(model)

9.      if acc >pre_acc then

10.       model_file=save(model)

11.return model_file

算法执行流程如图5。

3 对比实验

3.1 实验准备

实验环境:显卡GTX 1660Ti,显存6G,系统windows 64,编程工具pycharm,语言版本python3.6,深度学习框架pytorch1.3,使用画图工具tensorboard。

数据集处理:将数据集打乱后,取其中10%作为验证集固定不变,90%作为训练集进行反复的训练。

3.2 预处理对比实验

实验设置:在预处理对比实验过程中的实验参数为:学习率Lr =0.001;数据集 LFW;Batch = 100;模型 InceptionResnetV1;优化器Adam;调度器MultiStepLR;LOSS:CrossEntropyLoss;预训练:vggface2;模型大小:91M。

预处理的对比实验结果如表1所示。

实验结果分析:实验从实验中我们可知,左右翻转对准确率的提高2.3%;眼镜遮盖提高了0.6%,累计提高了2.9%;直方图处理增加了1.1%,累计提高了4.0%;Retinex均衡处理增加了1.7左右,累计提高了5.7%。达到的最好的效果训练曲线如图 6所示。实验表明经过数据增强能显著提高整个模型的鲁棒性和准确率。

3.1 训练方法对比实验

实验采用的数据集是lfw经过MTCNN人脸检测对齐裁剪成112*112的人脸数据集,训练过程中的采样方法是无放回地按照给定的索引列表采样样本元素,即随机地从原始的数据集中抽样数据,生成任意一个下标组合,从而利用下标来提取dataset中的数据的方法。

为了充分验证最优权重重加载算法的有效性和优越性,这部分的实验分别对MobileNetV2,resnet18,shufflenet_v2_x2_0三个模型做了三组实验,每组实验针对不同的优化器(SGD,Adam,RAdam)又做了权重重载训练和普通训练的两种算法的对比实验。参数都设置为epochs=300,batch_size=30,weight_decay=5e-4,学习率为1e-2。在重载的曲线中权重重载的次数设置为5。实验结果如图7-9所示,其中每张图的左半部分为权重重载实验的曲线,右半部分为正常训练的曲线。下面着重分析图7中的实验数据。

在优化器为SGD训练对比过程中,经过300个epochs,使用重载的算法的训练集的准确率已经完全收敛到了100%,损失也接近0,拟合效果很不错。验证集上面准确率已经高达50%,损失也控制在了2.3。而使用一般的训练流程训练,训练集的准确率还在40%左右震荡,损失也在2.5左右震荡,完全达不到拟合,验证集的准确率也只达到30%左右,损失还在3.5。相比之下,在使用相同的SGD优化器和相同时间间隔训练条件下面,使用重载比不使用重载的验证集提高了20%的准确率,损失降低了1.2,训练集收敛速度提高了60%,损失降低了2.5。实验非常明显地表现出重载算法的比不使用重载算法具有更强劲的收敛速度和收敛效率。

在优化器为Adam训练对比过程中,经过了300个epochs的训练后,使用重载的训练集达到了83%,还有继续上涨的空间,损失也在再慢慢地往下降;验证集的准确率达到了62%,也还有上涨的趋势。而使用非重载的训练集已经拟合到了100%,损失也降到了0;验证集的准确率只有34%,损失中间获得了一个最小值,后面训练到后面越来越大。相比之下,在训练集还没有拟合的情况下面,重载的验证集就比非重载的验证集高出0.28,何况后面重载还有上涨的势头。证明了重载算法与Adam优化器搭配使用也是能够显著提高模型训练的收敛速度,抑制过拟合的效果,以及提高模型的验证集的准确率。

在优化器为RAdam训练对比过程中,经过了300个epochs的训练后,重载和非重载的准确率都收敛到了100%,损失都收敛到了0附近。而在验证集上面,使用重载的算法准确率达到72%,损失稳定在1.8左右;非重载的准确率只有0.61%,但是损失降到最低值1.8后,后面又继续上涨,稳定在3.3左右,此时已经训练出的模型已经失去了泛化能力。相比之下,两个训练集都收敛的情况下面,重载算法准确率高出了0.11,损失稳定在1.8,而非重载算法训练到后面效果会越来越差。这个实验证明,重载算法能够训练出泛化能力更好和准确率更高的模型,而且训练出的模型更加的稳定,不会出现因为训练时长过长而导致泛化能力变差的情况。

从上面实验结果分析可以得出,重载算法对MobileNetV2使用不同的优化器都具有很好的优越性。从图8,图9中也可知,对其他的模型也是具有同样的适用效果。

从上面的训练曲线图整理出最终的模型结果(epochs=300)见表2:

从表2中可知,利用重载算法搭配不同的模型使用不同的优化器,模型的准确率也都有相当的提升,最高的能够接近20%。

总之,通过以上的大量的实验表明,使用最优权重重载的训练模型的方法能够加快模型收敛速度,提高模型的准确率和模型的泛化能力,抑制训练集过拟合的情况,对不同的模型也是具有普适作用。

4 结语

针对审计调查中的人脸图像识别应用场景,在预处理阶段,提出了局部遮盖干扰,直方图均衡以及Retinex光照均衡这三个增强操作。其中局部遮盖干扰主要以眼镜遮盖为例进行分析和实验,在实验中使得模型提高了0.6%的准确率。表明随机眼镜遮盖能有效缓解戴眼镜导致的识别不准的问题。同时也侧面表明了随机局部遮盖能够提高模型的局部特征鲁棒性。直方图均衡和Retinex均衡则分别使模型相应提高了1.1%和1.7%的准确率,表明了这两种增强方法能够缓解光照不均对人脸图像识别的影响。在训练人脸识别模型阶段,提出了一种最优权重重载的训练方法,经过对比实验表明该训练算法能够提高模型训练过程中的收敛速度,提高模型的泛化能力,经过不同模型的多组实验表明了该方法的有效性和普适性。

参考文献:

[1] 祝秀萍,吴学毅,刘文峰.人脸识别综述与展望[J].计算机与信息技术,2008,16(4):53-56.

[2] 陈希彤,卢涛.基于全局深度分离卷积残差网络的高效人脸识别算法[J].武汉工程大学学报,2019,41(3):276-282.

[3] 王慧星,黄勃,高永彬,等.部分遮挡人脸识别的方法综述[J].武汉大学学报(理学版),2020,66(5):451-461.

[4] 梁琳,何卫平,雷蕾,等.光照不均图像增强方法综述[J].计算机应用研究,2010,27(5):1625-1628.

[5] 严春满,张迪,郝有菲,等.基于LC-KSVD字典学习的变化光照下人脸识别方法[J].传感器与微系统,2020,39(11):44-46.

[6] 杨兰兰,高铭宇,王晨宁,等.基于数据增强的人脸表情识别方法研究[J].计算机产品与流通,2020(11):128-129.

[7] 王子威,范伊红,赵锦雯,等.基于FasterR-CNN的教室监控人数识别系统的开发与研究[J].电脑知识与技术,2020,16(17):35-38.

[8] 张韩钰,吴志昊,徐勇,等.增强卷积神经网络的人脸篡改检测方法[J/OL].计算机工程与应用:1-7[2020-11-17].http://kns.cnki.net/kcms/detail/11.2127.TP.20200701.1040.016.html.

[9] 甘岚,沈鸿飞,王瑶,等.基于改进DCGAN数据集增强方法[J/OL].计算机应用:1-11[2020-11-17].http://kns.cnki.net/kcms/detail/51.1307.TP.20201015.1715.017.html.

[10] Zhang K P,Zhang Z P,Li Z F,et al.Joint face detection and alignment using multitask cascaded convolutional networks[J].IEEE Signal Processing Letters,2016,23(10):1499-1503.

[11] 刘明珠,蘇桃宇,王依宁.压扩多尺度Retinex图像增强算法研究[J].哈尔滨理工大学学报,2020,25(5):93-99.

[12] 郑美林,王杉.基于RETINEX的图像增强方法探讨[J].九江学院学报(自然科学版),2020,35(3):69-73.

[13] 史加荣,王丹,尚凡华,张鹤于.随机梯度下降算法研究进展[J/OL].自动化学报:1-17[2020-11-17].https://doi.org/10.16383/j.aas.c190260.

[14] Diederik P. Kingma and Jimmy Lei Ba. Adam: a Method for Stochastic Optimization.Interna-tional Conference on Learning Representations, pages 1–13, 2015

[15] Liu L Y,Jiang H M,He P C,et al.On the variance of the adaptive learning rate and beyond[EB/OL].2019

【通联编辑:唐一东】

猜你喜欢

图像增强人脸识别深度学习
人脸识别 等
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
揭开人脸识别的神秘面纱
虚拟内窥镜图像增强膝关节镜手术导航系统
基于图像增强的无人机侦察图像去雾方法
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
基于类独立核稀疏表示的鲁棒人脸识别
基于K-L变换和平均近邻法的人脸识别