一个专业的论文、出书、专利服务平台

品质、专业的

论文指导服务

基于特征重整及优化训练的遮挡人脸识别算法

时间:2021-06-17分类:智能科学技术

  摘 要: 以 ResNet50 网络为基础网络,提出了使用信息熵的权重特征对池化层的信息进行优化,在不增加额外参数的情况下使得网络特征提取更加充分; 同时提出了改进型 PSO( 粒子群) 算法对卷积网络误差反向传播阶段进行优化,通过比较 GSA( 引力搜索) 优化前后最优粒子的适应度函数值,以此确保每次迭代中获得全局最优粒子. 实验结果表明本文提出的方法有助于人脸的识别,尤其是在遮挡人脸的识别中,同时优化后的网络的训练收敛速度和识别速度也有了明显提升.

基于特征重整及优化训练的遮挡人脸识别算法

  本文源自大连交通大学学报 第42 卷 第 3 期 2021 年 6 月

  关键词: ResNet50,信息熵,PSO,GSA,遮挡

  随着人脸识别算法的不断成熟,其在越来越多的应用场景中发挥积极作用,如证件查询,出入考勤查验,人脸支付等,另外在治理交通痼疾“闯红灯”问题上也大显身手. 早期的人脸识别典型算法有模板匹配法,PCA( 主成分分析法) 和 LDA ( 线性判别分析) 等,但是这些方法对训练集和测试场景、光照、人脸的表情等因素比较敏感,泛化能力不足,不具备太多的使用价值. 之后的人脸检测算法普遍采用了人工特征 + 分类器的思想,常见的描述图像特征有 HOG,SIFT [1],LBP,Gabor 等,典型的代表特征是 LBP( 局部二值模式) 特征,这种特征简单却有效,部分解决了光照敏感问题,但还是存在姿态和表情的问题. 现阶段主要的方法是基于深度学习的方法,利用卷积神经网络 ( CNN) 对输入的人脸图片进行学习,提取出区别不同人的特征向量,替代人工设计的特征. DeepFace 是 CVPR2014 上由 Facebook 提出的方法,使用 3D 模型来完成人脸对齐任务,然后使用深度卷积神经网络对对齐后的人脸进行分类学习,最终在 LFW 上取得了 97. 35% 的准确率,由于采用了多层局部卷积结构,产生了大量的参数量,且对数据量 要 求 很 大,因此应用有很大的局限性. FaceNet 是由谷歌公司推出的关于人脸识别的算法,其使用三元组损失函数( Triplet Loss [2]代替常用的 Softmax 交叉熵函数,同时使用了 Inception [3]模型,产生的参数量较小,在 LFW 取得了 99. 63% 的准确率. 可以看出基于深度学习的人脸识别算法已经较好地解决了多数场景中的人脸识别任务,效果堪比人眼. 但是实际应用中总是会存在人脸受到遮挡( 如戴口罩,帽子) ,导致特征发生缺失,以上方法在解决这类问题时,效果差强人意.

  本文以 ResNet50 网络为基础模型,提出了基于信息熵的权重特征来优化池化层特征的方法对卷积层的特征信息进行聚合增强; 同时提出了一种改进型 PSO 算法对 CNN 误差反传阶段的初始权值进行优化,实验结果表明改进后的模型对识别结果有所提升,尤其是对于遮挡人脸识别,效果明显.

  1 基于信息熵的权重特征表示优化池化层特征

  近年来,深度学习技术已经在图像处理,自然语言处理等方面取得了突出的成绩,并且在多个领域的工程应用中取得了较大的突破. 然而在使用卷积层训练网络时,在对卷积层输出的特征图进行处理时,往往会使用池化层对特征图进行采样操作,通过对不同位置的特征进行聚合,从而达到减少卷积特征的目的. 而且对模型网络进行设计的时候,对图像特征聚合的好坏,也会直接影响网络训练的收敛速度和其鲁棒性. 在此,本文提出的一种基于信息熵的权重特征表示的卷积计算方法. 通过对需要池化的卷积做类似信息熵的计算方式,将需要池化的区域进行基于信息熵的方式特征聚合,对特征的信息进行进一步的聚合,使得到的新的特征信息表达与原特征保持一致联系,从而保证信息特征表征的最大化. 算法流程如图 1 所示.

  具体流程如下:

  首先得到卷积之后的特征,然后对卷积之后的每个特征值,选择合适的滤波器的大小,对每一个特征值先求取特征值所占的概率 P( xi ) ,如若卷积之后的特征是一个 2 × 2 的矩阵,里面的特征值分别标记为 x1,x2,x3,x4,则对任意一个特征值的概率值为: P( x ) i = xi /∑( xi ) ( 1)

  故对卷积之后的特征是任意一个 n × n 的矩阵,里面任意一个特征值概率值为: P( ) xi = xi /∑i = 1 ( ) xi ( 2)

  通过该特征的概率值进行信息量的求取. 特征值信息量求取如式( 3) 所示. I( x) = - ∑ n i = 1 log P( ) x ( ) i ( 3)

  当取得特征值信息量后,对特征值的所有信息作熵处理,信息熵求取公式如式( 4) 所示. H( x) = - ∑log P( ) x ( ) i P( x ) i ( 4)

  得到特征值的信息熵后,将信息熵和特征值信息作进一步融合. 最后融合到的新的特征值计算公式如式( 5) 所示. Feature( x) = H( x) ·xi ( 5)

  通过对卷积后的特征进行聚合,结合了不同特征之间的聚合能力,也充分使用了同一特征的强度信息,使其拥有更充分的表征能力. 运算效率高,不会增加新的参数,使提取的网络特征更加充分.

  2 基于 PSO 和 GSA 优化的 CNN 算法的方法

  一般的 CNN 网络都采用梯度下降算法,梯度下降法是一种快速的局部搜索算法,它能使得算法快速收敛。PSO 是在 CNN 网络优化中比较有效的方法之一,它具有信息共享能力和收敛速度快等特点,但是全局搜索能力较差. GSA 是全局智能搜索算法,实现了位置的调整和对空间中最优解的搜索. 利用 PSO 的记忆能力、信息共享能力和 GSA 的全局搜素能力进行融合,形成一种改进型 PSO 优化算法,在每次迭代中,计算利用此优化算法计算粒子的位置,并利用此位置更新 CNN 的初始权值,该算法的适应度函数作为 CNN 的误差函数,以此对 CNN 的误差反传阶段进行改进.

  算法的主要实现流程按照以下 5 步:

  ( 1) 样本数据准备和初始化 CNN 网络参数

  ( 2) 初始化 PSO 和 GSA 参数

  初始化 PSO 和 GSA 参数时,设置 α 值为 20, G0 值为 1,质量和加速度均为 0,粒子规模 N 为 25,迭代次数为 1000,加速系数、c1、c2、c3 均为 1. 49,初始质量和加速度均为 0,惯性权重 w' 从 0. 4 ~ 0. 9 线性增加,初始速度 V 为[0,1]间有间隔的随机值.

  ( 3) 更新 PSO 和 GSA 参数

  GSA 和 PSO 在每次迭代中,会根据如下步骤更新参数:

  ①首先计算引力常量 G( t) 和欧几里得距离Rij ( t) . G( )t = G0 e - αt/tmax ( 6) Rij ( )t = | | Xi ( t) Xj ( t) | | 2 ( 7) 式中,α为下降系数; G0 为初始引力常数; tmax 为最大迭代次数; Xi ( t) 和 Xj ( t) 分别表示第 t 次迭代中第 i 个粒子和第 j 个粒子的位置.

  ②计算粒子受其它粒子引力合力 Fd i ( )t = ∑ N j = 1,i≠j randj G( )t Mi ( )t Mj ( )t Rij ( )t + ε · xd j ( )t - xd i ( ) ( )t ( 8) 式中: xd i ( )t 和 xd j ( )t 分别表示粒子 i 和 j 在第 t 次迭代中第 d 维空间上的位置; Mi ( )t 、Mj ( )t 分别表示在第 t 次迭代中,受力粒子的惯性质量和施力粒子的惯性质量; ε 为一个很小的常量; G( t) 表示在第 t 次迭代中的引力常量; Rij ( )t 表示在第 t 次迭代中,粒子 i、j 的欧几里得距离; randj 为在[0, 1]范围间随机数.

  ③计算适应度函数 fi ( t) . fi ( )t = ∑ q k = 1 [∑ m i = 1 ( gi - σ) 2 /q] ( 9) 式中: m 表示输出节点数; q 表示训练样本数; gi 表示经训练样本训练后的预测输出; σ 为训练样本目标输出.

  ④计算粒子质量 Mi ( t) . Mi ( )t = fi ( )t - worst( t) best( )t - worst( t) ∑ N j = 1 fj ( )t - worst( t) best( )t - worst( t ( ) ) ( 10) 式中: fi ( t) 表示粒子i在第t次迭代中的适应度函数值; best( t) 表示粒子 i 在第 t 次迭代中的最好适应度值; worst( t) 表示粒子 i 在第 t 次迭代中的最差适应度.

  ⑤计算粒子加速度 ad i . 第d维空间上粒子i 的加速度为 ad i = Fd i ( )t / Mi ( )t ( 11) 式中: Fd i ( )t 表示第 t 次迭代中第 d 维空间上,第 i 个粒子受其它粒子引力合力作用; Mi ( t) 表示粒子 i 在第 t 次迭代中的质量.

  ⑥计算粒子的速度 v d i ( t) 和位置 xd i ( t) . 粒子 i 在 d 维空间上的速度如式( 12) 所示,粒子 i 在 d 维空间上的位置如式( 13) 所示. v d i ( ) t + 1 = randi v d i ( )t + ad i ( )t ( 12) xd i ( ) t + 1 = xd i ( )t + v d i ( ) t + 1 ( 13) 式中,randi 表示范围在[0,1]间随机数; v d i ( t) 和 xd i ( t) 分别表示粒子 i 在第 t 次迭代中第 d 维空间中的速度和位置; ad i ( t) 表示第 t 次迭代中第 d 维空间上粒子 i 在引力合力作用下的加速度.

  ⑦计算 PSO 粒子最优位置 gi,best . 通过比较粒子 i 的改进最优解和原最优解的适应度值,取两者适应度值较大的作为新的全局最优粒子. 粒子 i 的改进最优解. g'i,best = g* i,best + ( ∑ Psize i = 1 Vd i ( t) ) /Psize·rand ( 14) 式中: g* i,best 是粒子 i 的原最优解; Psize 是粒子的总数; rand 表示[0,1]之间的随机数.

  ⑧计算 PSO 和 GSA 融合后的粒子的速度 V. Vi ( ) t + 1 = w' Vi ( )t + c1 rand ai ( )t + c2· rand gi, ( best - xi ( ) ) t + c3 rand· ( gbest - xi ( t) ( 15) 式中: Vi ( t) 表示粒子 i 在第 t 次迭代中的速度; w' 为惯性权重,用于均衡粒子的探索能力与开发能力; gi,best 表示 PSO 算法在第 t 次迭代中粒子 i 最优位置的改进值,即局部极值的位置坐标; gbest 表示 PSO 算法在第 t 次迭代中当前群体的最优位置,即全局极值的位置坐标; rand 表示[0,1]之间的随机数; c1、c2、c3 表示加速系数,其数值被调整,可以平衡引力和记忆,以及社会信息对搜索的影响; a 表示粒子 i 在引力合力作用下的加速度.

  ⑨计算 PSO 和 GSA 融合后的粒子的位置 X.粒子 i 第 t + 1 次迭代中的位置 Xi ( ) t + 1 = Xi ( )t + V'i ( ) t + 1 ( 16) 式中: Vi ( ) t + 1 表示粒子 i 在第 t + 1 次迭代中的速度; Xi ( )t 表示粒子 i 在第 t 次迭代中的位置.

  ⑩最优粒子 X'i( ) t + 1 选取. 首先根据③,计算⑥中 xd i ( t) 的适应度函数 f1 i ( t) 和⑨中 Xi( ) t + 1 的适应度函数 f2 i ( t) ,然后比较 f1 i ( t) 和 f2 i ( t) 的大小,取最 大 者 作 为 算 法 在 本 次迭代的最优粒子 X'i( ) t + 1 ,从而保证了最优粒子的获得.

  ( 4) 更新 CNN 网络参数

  在每次迭代中,根据步骤( 4) 对 GSA 和 PSO 进行参数更新,并以得到的粒子位置 X 去更新 CNN 的权值 W.

  ( 5) 计算误差

  在每次迭代中,根据步骤( 4) 对 CNN 网络权值进行更新后,再通过步骤( 3) 中的适应度函数 fi ( )t = ∑ q k = 1 [∑ m i = 1 ( gi - σ) 2 /q]计算适应度函数值 ( 即误差) ,如果已经达到误差阈值范围的极小值或达到最大迭代次数 tmax ,那么停止算法; 如果还未收敛,返回步骤( 3) ,继续迭代.

  改进核心是将 GSA 和 PSO 优化方法结合,各取所长,最终形成一种搜索能力较强的改进型 GSA 算法. 它的主要特点在于 GSA 的最优解是通过 PSO 的群体最优解和个体改进最优解共同作用获得的.

  4 实验过程

  4. 1 实验环境

  本文中的实验训练和测试过程中主要是在服务器上进行的,显卡为 NVIDIA Tesla P40,深度学习框架为 Tensorflow

  4. 2 实验数据及模型预训练

  常用的公开人脸数据集有很多,如 LFW, PubFig 等,LFW 数据集一共包含了 13 233 张图片,包含 5749 个人,其中有 1 680 个人有 2 张或者以上的图片. 为了提高模型的检测精度,本文的实验数据集有两个,其中首先是在 LFW 数据集上进行模型预训练,总共训练 11 万次,每次从训练集中随机抽取 560 张图片,之后对自己采集的人脸图片数据集约 6 000 张,1 000 个 id 人使用预训练的模型继续训练 8 万次后进行测试. 为了进一步检测本文方法对遮挡人脸的检测效果,本文使用 40 × 40 像素的方块,对图片进行随机遮挡,并同样的进行训练.

  4. 3 实验结果分析

  为了方便表示,本文将基于信息熵的权重特征优化方法表示为方法一,将基于改进 PSO 优化方法表示为方法二,本文使用传统 ResNet50 网络,同时分别结合方法一,方法二在相同测试集中进行测试,具体结果如表 1 所示.

  从表1 可以看出相对于传统的 ResNet50 网络,在同样的测试环境和测试样本下,方法一、方法二对ResNet50 网络分别有了 0. 47%,0. 25%的提升,由于正面人脸特征较完全,ResNet50 网络本身效果较好,本文的算法对其改进效果不明显,对于遮挡数据集,由于自身人脸信息不完整,导致 ResNet50 网络识别准确率只有 67. 15%,结合本文所提算法后分别有了 2. 6%,3. 08%的提升,最终识别准确率可以达到 71. 34%,提升结果较为显著.

  5 结论

  通过以上结果看出,对 ResNet50 网络使用信息熵的权重特征对池化层的信息进行优化,和对ResNet50 网络使用改进型 PSO 算法对误差反传阶段的初始权值进行优化,可以明显提高模型对人脸的识别精度,尤其是当目标人脸信息不完整时,效果提升更为明显. 同时本文改进算法在原始ResNet50 的基础上再不会增加额外参数,因此也不会对模型的速度产生影响.

获取免费资料

最新文章