基于PaddlePaddle和VGG的戴口罩人脸识别方法设计

2023-02-23 04:55仝星王涛田青宛根训张瑶崔璐公安部第一研究所
警察技术 2023年1期
关键词:正则网络结构人脸识别

仝星 王涛 田青 宛根训 张瑶 崔璐 公安部第一研究所

引言

后疫情时代的到来,使得佩戴口罩出行成为人们生活中的常态。佩戴口罩在保护大众生命安全防线的同时,也给人脸识别算法带来了新的挑战。佩戴口罩会严重影响识别精度,但取下口罩进行人脸识别会增加感染新冠肺炎的概率。通过Python来实现生物特征识别是人脸识别较常见的模式,但是关于口罩遮挡面部这种情况的人脸识别还是相对较少。针对这一问题,本文提出一种基于VGG的模型并通过 PaddlePaddle应用平台实现人脸识别,提升了在佩戴口罩场景下的人脸识别精度,同时有效保证人们在疫情期间出入公共场所的安全,对疫情防控具有十分重要的意义。

一、神经网络

(一)VGG模型

VGG模型是由牛津大学VGG(Visual Geometry Group)组在2014年ILSVRC提出的。该模型相比以往模型进一步加宽和加深了网络结构,它的核心是五组卷积操作,每两组之间做Max-Pooling空间降维。同一组内采用多次连续的3×3卷积,卷积核的数目由较浅组的64增多到最深组的512,同一组内的卷积核数目是一样的。卷积之后接两层全连接层,之后是分类层。由于每组内卷积层的不同,有11、13、16、19层这几种模型。VGG模型结构相对简洁,提出之后也有很多文章基于此模型进行研究,如在ImageNet上首次公开超过人眼识别的模型就是借鉴VGG模型的结构。

VGG模型相较传统模型,是调用多个小尺寸(2×2或3×3)的卷积层的堆叠替换原有的大卷积核(5×5或7×7),此方案使得模型比较容易形成较深的网络结构,比单个卷积层拥有更强的非线性映射能力,在同等参数或参数量更少的情况下,可以对图像的特性有着更深的学习度,做更复杂的分类任务。VGG模型结构如图1所示。

(二)训练过程

模型的训练过程实际就是输入图像经过网络结构到获取结果的过程,在实际工程中,可以通过不同方案对目标网络进行训练,模型会逐渐掌握输入和输出间的映射关系。本方案中主要利用反向传播算法。

反向传播算法通过链式法则从输出层一直向前一层递归计算,是更新网络结构参数的核心。方案需要优先获得实际结果和预期结果的差值,随后将差值从后向前一层一层传递,经过调整各层的权重值来逐渐减小误差。

假设用δ表示误差,δJ(l)表示第l层的第j个节点激励值的误差,δ(l)表 示第l层激励值的误差矩阵,xj(l)表示第l层第j个节点的激励值,x(l)表示第l层的激励矩阵,共有L层,即l=1,2,3,...L,y代表输出标签矩阵,公式如(1)所示。

由于第一层是输入层,无误差,可根据误差表达式计算函数的偏导数。定义表示λ≠0情况下第l层第i行第j列的权重误差,公式如(2)所示。

公式(2)所示是一次反向传播时对权重值进行更新的过程,在训练过程中会重复这个过程,直至模型收敛或者达到预设的训练步数。

(三)模型优化

在模型训练过程中,由于模型复杂度过高或训练数据集的样本不充足,会导致过拟合现象的发生,最终使模型的泛化能力大幅降低。如图2所示,当模型复杂度超过一定范围的时候,训练集的准确率虽然不断提高,但是测试集的准确率却在降低,此时出现了过拟合现象。

当神经网络出现过拟合时,通常的做法有模型正则化、降低模型复杂度、增加样本数量、Dropout等。本方案利用了模型正则化与Dropout方法对模型进行了优化。

1. 模型正则化

模型正则化有L1正则化和L2正则化。

L1正则化会生成稀疏权值矩阵,即生成一个稀疏模型,可用于特征选择;L1正则化是在原来代价函数的后面加一个L1正则化项,如公式(3)所示,其中c0是原始代价函数,后面一项是L1正则项。

L2正则化具有防止模型过拟合的能力,L2正则化是在原来代价函数的后面加上一个L2正则化项,如公式(4)所示,其中c0是原始代价函数,后面一项是L2正则项。

在神经网络中,正则化倾向于更小的权重值。在权重值较小的情况下,数据的随机变化不会对神经网络模型造成太大的影响,不会对噪声过于敏感。

2. Dropout

Dropout是通过随机断开神经网络之间的连接,从而改变神经网络的结构来防止过拟合出现的方法。如图3所示,训练开始时,神经网络会随机剔除中间层一半的神经元(假如Dropout的概率为0.5),图中虚线部分是被剔除神经元。随后在剩下的神经元上完成正向和反向传播,最终更新权值参数。这个过程完成后,神经网络恢复原来的结构,再次剔除中间层一半的神经元,继续进行权值的更新,一直重复上述过程。

Dropout通过不断随机删除隐藏层的神经元,来达到减少神经元之间依赖,增加局部数据簇差异性,使神经网络能够学习到更加健壮的特性的同时,提升算法鲁棒性能。

二、实验设计

(一)数据集

实验数据集包括4128张人脸图像。其中未佩戴口罩的图片数量为2188张,佩戴口罩的图片数量为1940张。这些人脸图像来自于不同场景,如火车站、证件照、手机自拍照等,在光照、角度、遮挡上有明显区别。

部分数据通过人脸关键点检测方法,在现有人脸数据集上对人脸模拟实现口罩遮挡,本文制作了3种类型的口罩遮挡案例,包括鼻子及以下遮挡、嘴巴及以下遮挡、下巴及以下遮挡,每个类型的口罩遮挡又有各种佩戴状态,使模型有更好的泛化能力。

(二)搭建实验环境

PaddlePaddle(Parallel Distributed Deep Learning)是百度公司推出的开源、分布式的深度学习使用平台,其架构是基于神经网络开发的。它将数据读取、功能层、优化方式、训练等操作过程分别构建成类,组合构成整个网络。PaddlePaddle简化了构造神经网络过程,能够提供更简便的使用方式,用户不需要更改主体文件。PaddlePaddle设计和定位是“易用、高效、灵活、可扩展”,分布式部署也是它的优点。相比偏底层的谷歌TensorFlow,PaddlePaddle具有更易用的API、更好的封装、更快速的业务集成,让开发者开发精力放在构建深度学习模型的高层部分。同时,在自然语言处理上有很多现成的应用,比如情感分类、神经机器翻译、阅读理解等,使用起来相对简单。此外PaddlePaddle支持多机多卡训练,并且本身支持多种集群方式。

本方案搭建的是PaddlePaddle-GPU环境。首先进行显卡驱动的安装,之后下载并安装CUDA,本方案选用的版本是CUDA10.0,此外还需将CUDA路径添加到系统环境变量中。接下来用pip工具安装cuDNN和PaddlePaddle-GPU。

(三)定义网络结构与训练

训练前首先配置好运行环境,导入工程需要加载的基础库、第三方库和深度学习框架。随后需要将数据集做预处理操作,包括解压用于识别的图像数据,获取所有数据图片的地址并将其保存到指定位置,之后创建数据集读取器,通过数据集读取器读取训练或测试需要的图片数据。

在平台内定义VGG模型,堆叠卷积池。输入准备好的自制数据集,通过数据显示训练集准确率(acc)和训练集损失率(loss)加载出训练出来的模型,把要预测的数据放到训练模型里进行预测,最终输出预测的结果。在实际调参过程中,本方法采用了交叉验证的方式来寻找算法的最优值。交叉验证用于防止模型过于复杂而引起的过拟合,是一种统计学上将数据样本切割成较小子集的实用方法。先在一个子集上做分析,而其它子集则用来做后续对此分析的确认及验证。一开始的子集被称为训练集,而其它的子集则被称为验证集或测试集。交叉验证法在很大程度上保证了模型的稳定和可靠性,提高了模型的泛化能力。

通过对数据集进行20轮训练并将每一轮训练的acc和loss列出来,最终与测试集进行比对优化,得到训练模型。

?

由表1数据可知acc会随着训练的轮数增加而增加,最终达到91.4%;损失值随着训练的轮数增加而降低,最终达到14%。acc和loss数值均达到期望。

三、结语

本方法通过PaddlePaddle深度学习平台,设计并实现了一种基于VGG的口罩人脸识别方法。通过测试,方法对佩戴口罩和未佩戴口罩的样本都在模型中成功预测,识别精度达到91.4%,可以在被识别人佩戴口罩的场景下有效提升识别准确率。

在疫情防控形势严峻复杂的当前,本方法可用于车站、地铁、机场等人员密度大、防疫任务重的重点防控区域,可以在佩戴口罩与无口罩并存的复杂场景下完成精准识别,为公安部门疫情防控中基于人脸识别的无接触管控有效赋能。

猜你喜欢
正则网络结构人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
剩余有限Minimax可解群的4阶正则自同构
类似于VNL环的环
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展
有限秩的可解群的正则自同构