多任务卷积神经网络算法在人脸识别中的改进研究
2024-01-07方仕健
方仕健
(广东理工学院,广东 肇庆 526100)
0 引言
人脸识别是一种基于计算机视觉和模式识别的技术,通过摄像头、监视器、手机摄像头等设备采集面部信息,被广泛应用于各个领域,比如在信息安全领域用于门禁系统,在交通领域的高速公路车辆识别,在支付领域的刷脸支付,在娱乐领域的人脸表情识别游戏和AI换脸。此外,人脸识别可应用在医疗服务、教育、家具自动化与智能化等多个方面。在人脸图像采集过程中,光照强度、身体姿态与面部表情都会影响采集图像的质量,所以将采集到的人脸图像进行人脸检测、人脸对齐、质量评估等预处理可以提高检测质量,提高后续处理的准确性和稳定性,经过预处理后的图像作为输入数据,进行特征提取,通过比对人脸图像来对个体进行身份认证。人工智能和深度学习推动人脸识别技术的发展,使人脸识别的识别结果准确率、识别速度和鲁棒性等指标更优化。
1 相关研究现状
20世纪末期出现了人脸识别的经典算法Fisherface和Eigenface,这个时期的研究为后期人脸识别奠定了基础。20世纪末21世纪初,研究者开始对非理想环境下的人脸数据进行相关实验,出现分类器与特征提取的融合方法,这个时期的经典算法有SVM、 Sift 特征法、Gabor特征等。直至当前,研究者开始不断结合神经网络的相关算法进行研究,比如,李溪等[1]结合Gabor小波与分区选择提出一种遮挡人脸识别方法,Hou等[2]提出非监督的人脸图像旋转与渲染算法,张延生等[3]对人脸识别的复杂环境进行研究,Wei等[4]提出光照不一致情况下人脸正面化特征学习方法,张荣荣等[5]提出基于DNN模型人脸识别去噪算法,周稻祥等[6]结合Gabor滤波器与核池化提出单样本人脸识别算法,Deng等[7]提出大规模噪声网页面增强人脸识别精确度算法,钱泽凯等[8]根据MAE人脸隐私保护原理实现身份认证系统,Yang等[9]提出从单个图像中进行头部姿态估计的学习细粒度结构聚合算法,王志波等[10]对计算机视觉的相关技术与理论进行陈述,Deng等[11]提出深度人脸识别的加性角边缘损失算法,Li等[12]提出多偏航多俯仰高质量人脸姿态分析算法。
如今,人脸识别相关应用与用户数量都在不断提升,如何精准提取人脸成为众多研究者共同努力的方向,然而现实生活中人脸识别会受到各种各样的因素干扰,诸如多变的天气、光照的强弱等,导致识别效果没有达到完全理想的状态,也存在很多急需解决的问题,比如因外界遮挡导致人脸不全,因为像素太低导致图像模糊以及人种与人种之间的差异。为了解决这个问题,本文结合现有的理论对人脸识别进行研究,提出多任务卷积神经网络算法在人脸识别中的改进算法。本文主要有以下贡献:(1)改进多任务卷积神经网络算法(Change Multi-task Convolutional Neural Network);(2)算法加入小波变换去除原始图像的噪声,并加入自适应阈值调整来降低失真度;(3)对候选框的保留进行自适应调整,不再直接删除大于指定阈值的候选框;(4)采用WiderFace数据集进行模拟来检测算法性能。
2 多任务卷积神经网络算法的改进
2.1 基本原理
多任务卷积神经网络是一种在图像识别和计算机视觉领域广泛应用的深度学习模型。该模型主要有输入层、卷积层、池化层、全连接层、输出层5个部分构成。输入层是神经网络的第一层,接受原始数据作为输入,主要功能是将输入数据转换成神经网络可以处理的格式,通常是一个向量,对于图像数据,输入层可能将每个像素点的数值作为一个输入节点,通过输入层,神经网络能够接收并处理各种类型的数据。卷积层是卷积神经网络的核心组件,每个卷积层包含多个卷积核,每个卷积核都会对输入数据进行卷积操作,并生成一张特征图(Feature Map),卷积核可以捕捉输入数据的局部空间关系,识别边缘、纹理等低级特征,不同的卷积核可以提取不同的特征,在卷积层中,每个特征图都是由上一层的输入数据与卷积核进行卷积操作得到的。池化层用于减小特征图的尺寸,并保留重要的特征。最常用的池化操作是平均池化和最大池化。平均池化和最大池化分别在输入数据的局部区域内取平均值和最大值,生成下一层的特征图,池化操作可以减少数据的维度,降低计算量,并对输入数据的平移不变性提供一定程度的保证。卷积神经网络通常在卷积层之后加上全连接层,全连接层将前一层的特征图展平成一维向量,并连接到输出层的每个神经元上,全连接层对在整合卷积层提取的特征,进行分类或回归任务。输出层是神经网络的最后一层,用于产生网络的最终输出结果,对于分类问题,输出层通常使用softmax函数将神经网络的输出转化为类别概率分布,每个输出节点对应一个类别,并输出该类别的概率,对于回归问题,输出层可以是一个或多个节点,直接输出预测的数值结果。输出层的计算和输出结果与网络的目标函数紧密相关,通过优化目标函数,神经网络能够学习并提供准确的输出结果。
2.2 小波去噪
小波变换是一种在时域和频域上进行信号分析的数学工具,采用不同尺度不同位置的小波函数进行变换,可以对信号进行多尺度分解,能够呈现信号的局部特征与整体特征,适应多种频段的信号特征,比傅里叶变换更好捕获信号的瞬时特性。对信号进行小波变换可以从不同频域分解原始信号,提供时域信息和频率信息,分解出的小波函数在时域和频域上都具有局部性质,可应用于研究非平稳信号的频谱变化规律。小波去噪首先逐层分解原始图像,设置一个阈值来过滤分辨率,保留大于阈值的系数,将小于指定阈值的设置为 0,最后用小波逆变换对图片进行重组复原,经过重组复原的图像已经去除了噪声。去噪过程中小波变换系数至关重要,小波变换系数常用的方法有软阈值和硬阈值。硬阈值函数进行去噪会产生间断点,但可以提高信噪比的峰值,而软阈值函数去噪能让结果更加平滑,但会导致图像失真。为了在去噪的同时降低由信号差引起的失真,对阈值函数进行改进。本文结合软硬阈值的优点做出相应的阈值改进,如公式(1)所示。
(1)
根据误差传播规律可知,恒定阈值θ会导致图像更大的失真,检测模型不理想。考虑到小波分解层数越多,原始图像与剩余小波系数之间有更高的相关性,因此,分解层数增加的过程中阈值应该不断减小,计算方式如公式(2)所示。根据公式(1)和公式(2)得出小波去噪的算法1。
(2)
算法 11:输入:噪音图像2:c向量←用小波函数逐层分解3:for i=1 to n in c then4: 提取第i层各高频系数5: 根据公式1,2对高频系数进行阈值处理6: 用小波逆变换进行对图片进行重组复原7:end8:输出:重构图
2.3 神经网络算法改进
多任务卷积神经网络的核心主要有P-Net、R-Net、O-Net 3部分组成。P-Net 是一种能够获取边界回归向量和候选窗的全连接网络,边界回归向量能够对边框进行校正并调整候选窗口。输入三通道,12×12 px像素大小的图像,然后对输入图像进行检测。扫描图像中每个区域确定人脸大概位置,根据扫描结果选出人脸候选框,得到所有区域的人脸标记候选框,对同一个区域的多个候选框去重。输入图像经过多任务卷积神经网络处理后会得到3部分的数据信息,一是候选框能够确定框中人脸的概率,概率越大,识别得越准确;二是精确记录输出窗口所在位置;三是标定人脸的基本特征,比如眼睛、鼻子、嘴角等面部特征的位置。P-Net 处理过程如图1所示。
图1 P-Net 处理过程
图片经过P-Net处理后传到R-Net网中,进一步训练检测,用回归向量对图像中的人脸侯选窗进行小幅度调整。将人脸重新设置为24×24 px,再传入R-Net中训练检测,利用NMS和边框回归向量去除重复框。R-Net处理过程如图2所示。
图2 R-Net处理过程
O-Net比R-Net多一层卷积层,因为这一层卷积层使得 O-Net对数据的处理更精细。为避免对R-Net 的误判,O-Net首先将R-Net处理后的人脸窗口重新设置为48×48 px 再传入 O-Net ,由于O-Net结构比P-Net、R-Net更加复杂,处理过程更加精细,所以处理结果也是最好的,O-Net 还会对眼睛、鼻子、左右嘴角等人脸特征点进行检测,最终确定人脸特征点并找出最优人脸框,O-Net 网如图3所示。根据神经网络算法改进的核心算法流程,本文得到算法2。
图3 O-Net 网
算法 21:输入:重构图2:调整图片的宽和高3:调整后的图片传入 P-net4:用 3×3的卷积核进行卷积运算5:调用算法3调整人脸窗口6:调整图片传入R net7:调用算法3调整人脸窗口8:调整图片传入O net9:调用算法3调整人脸窗口10:输出人脸
2.4 候选框加权筛选
传统的NMS算法在未经处理的情况下直接删除大于指定阈值的候选框从而可能引起候选框信息的缺失,进而导致因数据丢失而造成模型学习不充分,学习效果不够理想。为了避免直接删除候选框引起的数据缺失,本文对 NMS 算法进行简单改进,首先判断IoU是否大于指定阈值,如果大于指定阈值则将其置信度降低,降低置信度后重新筛选,提高 R-Net 候选框的精度,具体如公式(3)所示。算法3为候选框筛选算法。
si=
(3)
其中:B为候选框集合;u为阈值;Mscore为置信度打分最高的候选框;si为回归框;boxi为候选框。
算法 3输入:预测框集合B={box1, box2, box3,…, boxn}1. Mscore←max(boxi) i属于1-n;2. 将M从B中删除3. 将M添加到新集合D中4. For j=1 to n-1 then5. loUj=loU(boxj, Mscore)6. 根据公式3更sj7. If(loUj>u)then8. 删除boxj9. End if10. End for输出:boxk
3 实验
3.1 数据集和实验环境
本文采用WiderFace数据集进行模拟实验,该数据集收集32 203 张图、40 741 个人脸,这些人脸实例分布场景广泛,包括室内室外、 不同光照强度、不同天气条件、不同的人脸姿态和拍摄角度等。由于使用场景复杂多样,给识别任务增加了难度,使WiderFace数据集的模拟实验很具挑战性。该数据集也因此被应用于人脸识别、自动驾驶、视频监控等领域。
参数配置:学习率初值0.01,权重衰减系数0.000 5,批量大小8,迭代次数100,CPU i7,python 3.7,GPU Tesla V100,内存8GB。
3.2 实验评估指标
本文用4个指标评估人脸识别的可靠性,这4个指标分别是准确率、精确率、召回率、F1值。在介绍这4个指标之前先介绍预测值与真实值之间的关系,TP表示真实值为真的情况下预测值也为真,TN表示真实值为假的情况下预测值也为假,FN表示真实值为假的情况下预测值为真,FP表示真实值为真的情况下预测值为假。
(1)准确率衡量的是真实样本能够被正确分类的比例,公式(4)为准确率的定义。
(4)
(2)精确率衡量的是真实值被正确分类与预测为真的比例,定义为公式(5)。
(5)
(3)召回率为所有真实值能够被正确预测的概率,定义为公式(6)。
(6)
(4)F1值为理想状态下应该追求高精确率和高召回率,但是两者相互影响、相互制约。精确率高可能会导致召回率低,反之亦然。这时引入F1值来进行综合考虑,F1值定义为公式(7)。
(7)
为验证CMTCNN算法的有效性,本文用数据集WiderFace进行检测,并对检测效率进行分析。先进行不同阈值u的CMTCNN与MTCNN的对比实验,然后对软硬阈值与混合阈值进行对比实验。
(1)MTCNN 与 CMTCNN 对比实验。
取WiderFace 数据集里面的5 000张照片,将检测率、响应时间作为指标对MTCNN 与 CMTCNN进行对比实验,u的值分别为0.40、0.45、0.50,对比实验的检测成功率如表格1—3所示。其中检测成功数的单位为张。
表1 IoU>0.40模型对比实验测试
表2 IoU>0.45模型对比实验测试
表3 IoU>0.50模型对比实验测试
(2)原始阈值函数与混合阈值函数实验对比分析。
为验证混合阈值函数对于人脸检测算法的影响,实验首先用 Symlet 小波基函数对信号进行小波分解,再结合混合阈值函数进行处理,然后利用 wrcoef 函数对高频信号进行重构,获得重构图像,传入CMTCNN 模型进行训练检测,对比混合函数、软阈值函数、硬阈值函数重构后的图像对CMTCNN模型检测的提升效果,检测效果如表4所示。
表4 不同阈值函数CMTCNN 检测对比实验
4 结语
本文介绍人脸识别与卷据神经网络的相关原理,及相关的研究现状,对多任务卷积神经网络算法进行改进,提出改进后的多任务卷积神经网络算法,加入小波变换去除原始图像的噪声,加入自适应阈值调整降低失真度,采用WiderFace数据集进行模拟来检测算法性能,实验结果证明算法良好。
由于硬件条件不允许,本文还未进行大规模数据集训练模型的相关模拟实验,未来计算机技术与人脸识别将有更大发展,可以尝试加大数据量,加深网络层级以进一步改进模型。人脸识别技术仍面临各种各样的挑战,如光照强度不一、人脸姿态多变等,使现有模型的检测能力还需要提高,对多样性人群的有效识别仍然存在一定难度。