基于深度学习的人脸识别技术分析

作者: 张宁仙

基于深度学习的人脸识别技术分析0

摘要:作为重要的人工智能研究方向,人脸识别研究近年来大量涌现,相关产品也在各领域广泛应用。基于此,文章将围绕一种基于深度学习提升人脸识别技术准确率的算法开展研究,在计算框架加速化和网络结构小型化支持下,实时化人脸识别得以实现,由此设计的人脸识别系统可用于物联网设备。

关键词:深度学习;人脸识别技术;人脸检测;物联网设备

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

文章编号:1009-3044(2022)07-0089-03

开放科学(资源服务)标识码(OSID):<H:\飞翔打包文件\电脑2022年第七期打包文件1\8.05xs202207\Image\image88.png>

相较于虹膜识别、指纹识别、密码、密钥等局限性较大的身份验证手段,人脸识别技术已成为现阶段公认的最佳身份验证手段。随着人脸识别技术的快速发展和广泛应用,人们的生活逐渐发生变化,火车站的人脸识别闸机、人脸识别自动售卖机等均属于这种变化的载体。

1 人脸识别算法设计

1.1 人脸检测算法

为实现人脸识别算法效果和性能的平衡,需基于MTCNN框架开展人脸检测网络设计,具体算法流程可概括为:“图像金字塔→[Pnet]检测→[Rnet]检测→[Onet]检测”。图像金字塔可通过放大和缩放图像获取,进入[Pnet]网络的图像金字塔负责生成人脸候选区域,人脸区域多重复冗余通过非极大值抑制开展去重处理,在[Rnet]网络中进一步提取特征并进行边框回归,进一步去重处理,[Onet]网络继续进行提取特征和边框回归,人脸所在区域能够最终获取,人脸关键点的预测5个位置也能够同时获得。为降低学习参数,部分传统卷积层通过可分离卷积结构替代,完成人脸检测网络的深度可分离卷积设计,最终得到[Pnet]、[Rnet]、[Onet]网络结构[1]。

为验证算法有效性,开展算法模型训练,并结合人脸检测测试库对检测速度和效果进行测试,具体选择[wide face]数据集,数据集中的人脸照片、人脸ID数量 分别为 393703张、32203个,从中随机选取40%的每个事件类人脸照片。同时将自建的亚洲数据集作为其中的事件场景照片,数据集的人脸照片、人脸ID数量分别为20000张、10000个。人脸关键点训练集选择[Celeb A]数据集,数据集包含属性标记、人脸特征点数量分别为40个、5个,[Onet]网络基于关键点坐标进行训练。完成数据预处理后,形成各个网络,对比原版[MTCNN]可以发现,训练时精度在每个阶段网络与原版网络差异明显,但这种差异逐渐在测试集上缩小,模型计算量降低得以在算法效果保证的前提下实现,在设备计算能力相同时,能够得到大幅降低的一次正向传播时间,网络设计有效性得到证明[2]。

1.2 人脸识别算法

在人脸识别算法设计中,研究选择的人脸识别损失函数为[insightface loss ],该函数能够在优化和约束间寻求平衡,在训练收敛、训练数据集包容性方面表现出色。损失函数、网络、数据三种因素均会影响模型效果,对于学习导向不准确的损失函数,大规模的高质量数据集具备一定补偿作用,深度CNN模型可基于大数据实现性能提升,而考虑到大型数据集注释过程较为复杂,且人脸识别存在开放性特点,训练时分类模型会遇到很多新的身份,因此本文设计一种能够对未标记数据进行训练的损失函数。设网络模型、样本分别为M、X,送入网络后样本最后一个全连接层输出[(x1,x2,x3,x4,x5,…,xn)],其中n、[x1,x2,x3,x4,x5,…,xn]分别代表类别数、不同身份中心与样本的距离,如预测正确,存在为k的分类结果,条件[k=argmaxxk]满足。在训练集中未出现样本的影响下,其属于新的类别,因此所有[x1,x2,x3,x4,x5,…,xn]在理想情况下需尽可能小,具体样本过滤可选择设定阈值方式,且[x1,x2,x3,x4,x5,…,xn]需要保证概率和为1的所有类别,满足[x1+x2+x3+x4+x5+…+xn=1],具体可表示为:

结合式(1)进行分析可以发现,不存在单一的解决方案,属于典型的多目标约束最小化问题,因此需要保证存在偏向任何身份中心的[x1,x2,x3,x4,x5,…,xn]概率分布,可获得问题解决方案:

考虑到损失函数无法采用最大化目标,基于最小化形式开展目标转换,进行未知身份排斥损失函数的针对性构造,具体为:

基于上式进行组合,最终得到新的损失函数,具体为:

上式中的[ε]表示为超参数,算法在其数值为0.15时存在最好效果。在归一化权重和特征后,存在n维输入向量的全连接层输出,样本特征空间可以此代表。同一类样本映射在特征空间中的特征点需要在对应聚类中心旁围绕,身份类集群相同的特征中心可通过某一行向量表示,该向量原因权重矩阵存在于全连接层中,即[wk],通过将不同身份重心进行稀疏分布,模型具备更好的判别能力,对于任何样本,训练好的模型均能够保证得到逼近中心的特征向量。

开展具体实验,按照两个阶段进行训练,采用的实验环境与人脸检测算法实验相同。在第一个阶段,模型训练采用完全监督方式,这一过程中的主干网络、损失函数分别为[mobilefacene]、[insightface loss(l1)],直到模型收敛。在第二个阶段,一起部署两种损失函数,训练通过半监督方式进行,这一过程存在不变的整体批次大小,减少1/4标记图像在单个批次中的数量,其余1/4通过未标记数据开展补充,分别开展损失计算。对比本文设计损失函数和[insightface loss]损失函数可以发现,各个数据集上损失函数在改进后均有所提升,这种提升在跨角度数据集最为显著,各个数据上损失函数[insightface loss(l1)]的表现优异,原有损失函数受[TAR@FAR]标准提升存在正常的结果下降,但本文设计的损失函数未出现大幅度下降且拥有更高的准确率[3]。

2 人脸识别系统设计

2.1 总体设计

本文研究的人脸识别系统设计从工业角度展开,选择[Windows]系统进行搭建,系统编译语言选择C#和C++,前者用于界面显示和逻辑业务处理,后者用于密集计算模块,具体开发软件选择[Visual Studio 2015]。

通过分析可以发现,整个系统由六个模块组成。密集计算模块属于底层模块,负责承载人脸识别算法和人脸检测算法,可视作正向传播框架,能够满足网络模型加载需要,为正向网络传播提供支持;读卡器模块负责身份证读卡器API的调用,提取身份证照片并对比现场照片;实时人脸检测模块负责人脸检测,需基于实时[rtsp]码进行检测,属于人脸检测算法应用层,能够按照112*112规格对齐人脸区域裁剪图;人脸识别模块存在刷卡、刷脸两种模式,属于人脸识别算法应用层,负责人脸特征提取,证件照片可在刷卡模式中完成人脸特征提取,比对相似度。现场人脸特征可在刷脸模式下与图片特征库比较相似度;数据管理模块负责记录行人来往数据,需转化为本地特征库,程序运行内存中需要由该模块加入本地特征库;界面显示模块的显示形式采用视频流动态,模拟身份证为读卡器数据呈现形式,图标形式负责人脸识别结果表现。

管理员在办公室场景中可基于数据管理模块转换生活照片为人脸特征,二进制特征库在软件本地形成。刷脸模式属于常规系统工作模式,对于进入一定区域的人员,每一帧图像的人脸能够由人脸检测模块进行实时监测,如检测到面积超过一定阈值的人脸后,系统人脸识别功能自动开启,当前被检测人脸通过本地特征库实现身份信息自动匹配,访客数据库负责存储来访的身份信息,辅以其他智能系统,智能化管理可依托访客数据库实现。如本地数据库中不存在来访人员信息,身份校验可基于身份证实现。

对于图像特征库未注册用户,刷脸模式对外来人员按照两个阶段进行人脸识别,第一阶段需要依托读卡器读取的身份证信息,获取用户信息和身份证照片,之后通过字符串数据包将信息传送给人脸识别模块和界面模块,实现信息显示,同时摄像头当前视频帧需要由人脸识别模块读取。完成人脸定位和人脸区域裁剪处理后,通过对特征提取接口调用,归一化图片编码为特征向量,开展向量差异计算,最终完成比对,界面模块能够直观显示比对结果,结果需同时在数据库中保存。

2.2 具体实现

研究采用C++语言设计密集计算模块,网络构建框架选择开源项目[ZQCNN],按照动态链接库进行人脸识别及人脸检测功能封装。基于框架精简特性,对于对数函数、指数、计算正弦,扩展基于单指令多数据流技术实现,开源的[Open Blas]负责基础线性代数。采用类似于[caffe]框架的框架设计,基于[Tensor4D]、[layers]类、[nets]类分别进行数据基本储存单位、神经网络层、多个网络层建立。基于[python]转化算法为C++,并将初始化模型、结果获取等步骤在[Face Extract.dll]和[Face Detect.dll]中封装,图3为密集计算库示意图。

人脸检测模块模型需要对人脸检测库进行调用,保证人脸检测围绕每一帧图片开展,系统开启摄像头类型基于配置文件决定,可对检测感兴趣区域和图像帧分辨率进行设定。每一帧获取需要得到[EMGU]开源库支持,向人脸检测接口传递每一帧图像数据,当前检测图像帧中需要渲染检测结果,效果展示最终在UI界面开展,人脸检测接口设计中[detect]为核心API,[Face Infor Array]结构体负责检测结果返回,具体参数设置通过构造函数完成。人脸识别模块以两种工作模式和对人脸特征库调用为核心,特征提取接口将人脸区域照片输入,依托浮点型数组输入,相似度可通过对[Calculate Similarity]调用获取,是否为同一人通过比较判断阈值实现。

3 结论

综上所述,基于深度学习的人脸识别技术存在较高推广价值。在此基础上,本文涉及的人脸检测算法、人脸识别算法等内容,则直观展示了人脸识别技术应用路径。为更好发挥人脸识别技术优势,还需要关注技术在物联网设备上的应用,这种应用需得到专用人工智能芯片的支持,围绕这类芯片开展的研究将成为笔者下一步研究方向。

参考文献:

[1] 裴庆庆.基于深度学习算法的人脸识别方法研究[J].电子技术与软件工程,2021(6):114-115.

[2] 沈继云.试析基于神经网络深度学习算法的人脸识别技术[J].信息技术与信息化,2020(5):228-230.

[3] 崔庆华.基于深度学习的人脸识别技术分析[J].计算机产品与流通,2020(5):136.

【通联编辑:光文玲】

收稿日期:2021-06-15

基金项目:基于深度学习面向物端实时人脸识别技术研究(项目编号:WAYS202102)

作者简介:张宁仙(1986—),女,陕西澄城人,硕士,讲师,主要研究方向为图像处理、模式识别。

上一篇 点击页面呼出菜单 下一篇