1、第26卷第10期2023年10月软件工程 S O F T W A R E E N G I N E E R I N GVol.26 No.10Oct.2023文章编号:2096-1472(2023)10-0053-05DOI:10.19644/ki.issn2096-1472.2023.010.012收稿日期:2 0 2 3-0 2-2 1基金项目:广州市哲学社会科学发展“十四五”规划2 0 2 1年度共建课题(2 0 2 1 G Z G J 1 7 9);广州软件学院科研项目(K Y 2 0 2 1 0 9)基于深度学习的人脸识别系统林平荣1,吴梓华2,陈 鑫3,施晓权1(1.广州软件学院软件
2、研究所,广东 广州 510990;2.华南理工大学广州学院计算机工程学院,广东 广州 510800;3.广东机电职业技术学院人工智能学院,广东 广州 510550)lin_;lucky_;摘 要:为了提高人脸识别的精度和性能,基于深度学习算法设计并实现了一种实时的人脸识别系统,并分析该系统完成人脸识别任务的基本流程。构建的人脸识别系统采用MT C N N(多任务级联神经网络)作为人脸检测算法,融合K N N(K最邻近分类算法)的F a c e N e t人脸识别方法,利用F a c e N e t进行人脸表征,基于K N N进行人脸特征分类。对设计的人脸识别系统分别进行识别率测试、响应时间测试
3、、复杂环境干扰测试;结果表明:系统准确率达到9 8%,在线平均响应时间为0.6 7 s,在眼、嘴、耳、鼻部位遮挡比例为5 0%的环境下识别成功率平均约为7 2%,验证了系统的可行性及算法的有效性。关键词:深度学习;人脸识别;F a c e N e t;MT C N N;K N N中图分类号:T P 3 9 1 文献标志码:AF a c e R e c o g n i t i o n S y s t e m B a s e d o n D e e p L e a r n i n gLIN Pingrong1,WU Zihua2,CHEN Xin3,SHI Xiaoquan1(1.Institut
4、e of Software,Software Engineering Institute of Guangzhou,Guangzhou 510990,China;2.School of Computer Engineering,Guangzhou College of South China University of Technology,Guangzhou 510800,China;3.College of Artificial Intelligence,Guangdong Mechanical&Electrical Polytechnic,Guangzhou 510550,China)l
5、in_;lucky_;A b s t r a c t:In order to improve the accuracy and performance of face recognition,this paper proposes to design and implement a real-time face recognition system based on deep learning algorithm,and analyze the process of completing facial recognition tasks.The proposed face recognitio
6、n system uses MTCNN(Multi-task Cascaded Neural Network)as the face detection algorithm,and integrates the FaceNet face recognition method of KNN(K-Nearest Neighbor Classification Algorithm).FaceNet is used for facial representation,and facial features are classified based on KNN.Recognition rate tes
7、ting,response time testing,and complex environmental interference testing are conducted on the proposed face recognition system.The results show that the recognition accuracy of the system reaches 98%,with an online average response time of 0.67 seconds,and the recognition success rate reaches 72%on
8、 average in an environment where the occlusion ratio of the eyes,mouth,ears,and nose is 50%.The feasibility of the system and the effectiveness of the algorithm are thus verified.K e y w o r d s:deep learning;face recognition;FaceNet;MTCNN;KNN0引言(I n t r o d u c t i o n)基于深度学习的人脸识别技术是目前人工智能领域被广泛研究的主
9、题之一。人脸识别技术相比传统的身份认证技术,具有显著的可区分特征,并且不用与验证设备进行接触式交软件工程2023年10月互,方便快捷,是人工智能领域一种重要的无接触式身份识别技术1。随着人脸识别技术的不断更新和发展,其识别准确度大幅提升,实际使用场景也越来越广泛。基于人工设计的特征和传统机器学习技术的传统人脸识别方法,已被基于神经网络的深度学习方法所取代2。本文主要论述基于深度学习的人脸识别系统,阐述其人脸检测和人脸识别算法的选型思路,最后进行验证测试。1深度卷积神经网络(D e e p c o n v o l u t i o n a l n e u r a l n e t w o r k s
10、)卷积神经网络(C o n v o l u t i o n a l N e u r a l N e t w o r k,C N N)是深度学习的代表算法之一,相比传统机器学习方法,它含有更复杂的网络结构和更强大的特征学习与特征表达能力,能够实现非常高的准确度3。该算法被广泛应用于图像分类4、物体检测5、人脸识别6、语音识别7等多个计算机应用领域。截至目前,已经有许多优秀的C N N网络被提出,例如L e N e t、A l e x N e t、G o o g l e N e t、R e s N e t等,将这些网络应用到各种检测和识别任务中,实现较高的检测和识别的精度,甚至可以超越人类的感官8
11、。2基于深度学习的人脸识别系统(F a c e r e c o g n i t i o n s y s t e m b a s e d o n d e e p l e a r n i n g)人脸识别系统由人脸图像采集及检测、人脸图像预处理、人脸图像表征和人脸匹配与识别四个部分构成,其结构如图1所示。图1 人脸识别系统结构F i g.1 F a c e r e c o g n i t i o n s y s t e m s t r u c t u r e系统完成人脸识别任务的流程如下。(1)摄像头视频流解析:通过摄像头硬件获取视频流并对其进行解析,完成人脸图像采集,输出预设条件的人脸图像。(2
12、)人脸检测:对采集到的人脸图像使用人脸检测算法寻找图像中人脸的位置和大小,包含人脸的边界框坐标等信息,以便后续进行人脸图像预处理操作。(3)图片预处理:使用人脸对齐、裁剪、归一化等方法对已检测到的部分人脸图片进行图像预处理,以便更好地进行人脸特征提取。(4)人脸特征提取:利用训练好的人脸识别模型对“步骤(2)”和“步骤(3)”中已检测和预处理后的人脸图像进行人脸图像表征,以获得可判别的特征向量。(5)人脸特征比对:将“步骤(4)”中的人脸特征与数据库中的已知人脸特征进行相似度判断,最后输出判断结果。人脸检测及识别对系统的实时性要求较高,因此系统的性能表现是一个很重要的指标。依据软件性能测试中的
13、“响应时间2-5-8原则”(用户在2 s内得到响应时,感觉系统响应速度比较快;在2 5 s得到响应时,感觉系统响应速度还可以;在5 8 s响应时,感觉系统响应速度比较慢;超过8 s,则感觉系统响应速度很慢),系统在进行人脸识别的过程中响应时间应该控制在2 s内,以达到实时识别效果及提升用户体验感。2.1视频流在线识别模块设计人脸识别过程需要在页面实时显示流式视频。通过F l a s k+P y t h o n+O p e n C V搭建流媒体服务器,使用流式响应提供从M o t i o n-J P E G格式的摄像机捕获的视频帧流,将本地图像转为网络U R L地址,输出带识别框的图像9。M o
14、 t i o n-J P E G格式具有易于生成且延迟低的优点,适用于任何浏览器,对浏览器的版本也没有特殊要求1 0。通过模拟的相机驱动程序,使用O p e n C V调用本地摄像机获取图像,并且可以传输由相机获取的一系列j p e g图像,主要通过c a m e r a_o p e n c v类和b a s e_c a m e r a类实现。浏览器实时视频流效果图如图2所示。图2 浏览器实时视频流效果F i g.2 R e a l-t i m e v i d e o s t r e a m i n g e f f e c t o f t h e b r o w s e rc a m e r
15、a_o p e n c v类通过g e t()函数进行一个循环,通过O p e n C V连接摄像机硬件并从中获取实时视频帧流,并将它从摄像机获得的连续返回帧作为响应块。在H t m l页面中相应图像标记的s r c属性指向此后台中的路由,最终实现浏览器的流式实时视频传输。流式传输是让每个块替换页面中的前一块,这使得流可以在浏览器窗口中“播放”,让视频流中的每个块都成为一个图像,并提供浏览器中运行的实时视频源。2.2人脸检测模块设计人脸检测是识别数字图像中人脸的计算机技术,它在不同的人脸识别方法中都是关键且基础的一步。能不能从给定的图像中通过算法搜索图像、判断图像是否存在人脸以及提取的人脸是否
16、符合后期处理标准等,都将直接影响系统后续的识别率。对于人脸检测而言,每个人的表情、相貌都是有区别的,即使同一个人也时刻会产生不同的变化,而且检测过程中可能会受到遮挡物、光照和角度等因素的影响,因此人脸检测算法对环境变化干扰应具有较好的鲁棒性。本文 选 择 的 人 脸 检 测 算 法 为MT C N N(M u l t i-T a s k C a s c a d e d C o n v o l u t i o n a l N e t w o r k s),并使用人脸数据集对模型进行训练。MT C N N是由Z HA N G等1 1于2 0 1 6年提出的一45第 26卷第 10期林平荣等:基于深
17、度学习的人脸识别系统种多任务人脸检测模型。MT C N N由三个神经网络级联组成,即P-N e t、R-N e t和O-N e t,具体对应的网络结构如图3所示。MT C N N可以同时完成人脸检测和对准任务,与传统方法相比,MT C N N具有更好的性能,可以准确定位人脸且速度更快,此外MT C N N可以实时检测,对自然环境中的光线、角度和面部表情变化都有更好的鲁棒性,可以很好地满足人脸检测的实时性要求。图3 P-N e t、R-N e t、O-N e t对应结构图1 1F i g.3 C o r r e s p o n d i n g s t r u c t u r e d i a g
18、r a m o f P-N e t,R-N e t a n d O-N e t1 1给定一个图像,MT C N N算法在进入三个级联网络前,会先将原始图片调整为不同的尺寸,以构建图像金字塔。然后将不同尺寸的图片送到3个级联网络进行训练,让网络可以检测到不同大小的人脸而进行多尺度检测。生成图像进入第一个网络层P-N e t,它是一个浅层的卷积网络,采用非最大抑制(NM S)合并高度重叠的候选窗口,主要用于生成候选窗口和边界回归向量。接下来,P-N e t输出的候选窗口的人脸区域会进入第二个网络层,即R-N e t进行处理。R-N e t结构与P-N e t非常相似,只是多了一层全连接层,因此对脸
19、部特征和窗口的筛选更加严格,它将过滤掉大多数错误窗口(非人脸候选窗口),并将可信度较高的人脸区域输送到下一层网络,即O-N e t网络。O-N e t比R-N e t多了一层卷积层,拥有更加复杂的网络架构,但也因此获得了更好的性能。O-N e t对输入图像进行人脸判别和特征点定位后,将输出人脸区域的5个特征点位置。通过T e n s o r f l o w深度学习框架结合M C T N N人脸检测算法搭建检测模型。搭建好检测模型之后,基于公开人脸数据集W I D E R F A C E对模型进行迭代训练。根据参与任务的不同,将训练数据分为四类:人脸正样本(P o s i t i v e)、非人
20、脸负样本(N e g a t i v e)、部分脸(P a r t f a c e s)、关键点(L a n d m a r k)。由于系统主要是进行人脸识别任务,MT C N N模型主要用于检测人脸并返回边界框,所以只需要将数据集分成N e g a t i v e、P o s i t i v e、P a r t f a c e s三个部分即可,即不对人脸关键点进行训练。三部分数据的比例为1 1 3,在标注好的人脸图片上进行随机人脸剪裁,根 据 切 割 到 的 边 框 和 真 实 人 脸 框 进 行 交 并 比(I n t e r s e c t i o n o v e r U n i o n
21、,I o U)计算,其中最大I o U值为正样本(P o s i t i v e)数据,I o U大于0.4的为部分脸(P a r t f a c e s)数据,I o U小于0.3的为负样本(N e g a t i v e)数据。将三种1 21 2的图像作为P-N e t的输入并进行模型训练,通过P-N e t得到了是否有人脸的概率b a t c h,2,人脸框的偏移量b a t c h,4,以及关键点的偏移量b a t c h,1 0。训练过程中的一部分训练数据图像如图4所示。图4 部分训练数据图像F i g.4 P a r t i a l t r a i n i n g d a t a
22、i m a g e对训练好的模型进行测试,测试结果如表1所示,人脸检测效果如图5所示。由表1可见,训练好的模型在不同视觉角度及遮挡情况下对人脸检测的识别率都有较好的表现,具有较好的鲁棒性。表 1 模型测试结果Tab.1 Model test result识别情况角度及遮挡识别次数/次成功次数/次识别率/%正常2 02 01 0 0遮挡2 01 26 0侧脸2 01 89 0仰角2 01 89 0俯角2 01 68 0(a)侧脸(b)俯角(c)仰角(d)遮挡图5 人脸检测效果图F i g.5 D i a g r a m o f f a c e d e t e c t i o n e f f e
23、c t2.3人脸识别算法设计人脸相关任务分为两个部分:人脸检测和人脸识别。输入一张人脸图像,判断其属于人脸数据库的具体哪一个人,这是人脸识别过程中的重要一环。近年来,随着深度卷积神经网络的引入,人脸识别准确率不断提升。许多经典的基于深度学习的人脸识别模型被提出,如D e e p F a c e、D e e p I D、V G G F a c e和55软件工程2023年10月F a c e N e t等,其中的代表算法是F a c e N e t。表2列举了近几年比较成功的人脸识别模型及在公开数据集L F W上的测试情况,F a c e N e t获得了最高9 9.6 3%的平均分类精度,是目前
24、最先进的人脸识别算法。基于此,本文提出融合K N N分类的F a c e N e t人脸识别方法。表 2 几种经典人脸识别模型在L F W数据集上的测试结果1 2Tab.2 The test results of several classic face recognition models on the LFW dataset 12名称年份/年网络数量/个训练集数据量/万个L F W十折平均精度/%D e e p F a c e2 0 1 437 0 09 7.3 5D e e p I D2 0 1 42 52 09 7.4 5D e e p I D 22 0 1 42 52 09 9.1
25、5D e e p I D 2+2 0 1 52 54 59 9.4 7V G G F a c e2 0 1 512 6 0 09 8.9 5F a c e N e t2 0 1 512 0 0 0 09 9.6 3 F a c e N e t是一种用于人脸识别和聚类的统一嵌入技术,其本质是通过深度卷积神经网络学习从人脸图像到欧几里得空间的映射,将人脸图像映射为1 2 8维的特征向量,使用特征向量之间的距离表征人脸图像之间的相似度。两个人脸图像越相似,其特征向量之间的距离就越小,反之亦然。需要指出的是,F a c e N e t人脸识别算法不是直接进行分类,而是计算出待测人脸和目标人脸特征向量间
26、的欧式距离后,再与预先设定的一个阈值进行比较,它的问题是算法模型训练好后,阈值是人为设定的一个单一的数值,人脸识别在具体应用时是固定的,因此可能会出现一直把某两个人误识别的情况。理论上,可以把更多的人脸图片放到训练集中重新训练,以学习到更多的特征,从而泛化到训练集中未曾出现过的主体;也可以通过调整阈值提高或降低敏感度和特异性,但频繁重新训练这么大而深的网络不现实,调整阈值也可能会造成其他的问题,所以赋予后期模型调整的能力很重要1 3。融合了K N N分类的F a c e N e t人脸识别方法,利用F a c e N e t进行人脸表征,基于K N N实现人脸分类。在实际使用过程中,当类内差异
27、更多时,可以增加相关类别训练样本,只需训练K N N分类模型即可,而不需要调整F a c e N e t网络参数,从而赋予模型后期调整优化的能力。K N N分类器的训练通过S c i k i t-l e a r n库实现。选取本文第二作者的人脸样本(1 0张以上)以及从L F W人脸数据集中随机选取的1 0个人的人脸样本(每个人的样本数在1 0张以上)作为训练与测试数据集,每个人为1类,总共1 1个类别。每个类中7 0%的人脸图片用于训练,其余用于测试。实际应用时,F a c e N e t对MT C N N检测到的人脸进行数据表征,提取出1 2 8维的特征向量,再通过已经训练好的K N N分
28、类器对特征向量分类后实现身份识别。3系统测试与分析(S y s t e m t e s t i n g a n d a n a l y s i s)分别在正常环境和复杂干扰环境下对本文设计的人脸识别系统进行测试,测试说明如下。(1)使用M a c B o o k P r o 笔记本的摄像头作为图像采集设备,对人脸图像进行实时采集,摄像头像素为 1 3 0万,主屏分辨率为 2 5 6 0 1 6 0 0。操作系统为m a c O S系统,版本为1 0.1 4.1。(2)笔记本的摄像头距离人脸大约3 0 c m,保证整个人脸图像能出现在人脸识别系统的验证区域。(3)测试之前,通过自建的人脸数据集选
29、取每个人的3张照片作为已知人脸进行人脸特征训练,并将其录入人脸数据库。3.1正常环境测试在正常环境下,通过录入4个人的人脸图片进行人脸特征提取,并在录入后进行每人1 0 0次,共4 0 0次的在线测试,测试结果如表3所示。表 3 识别率测试结果Tab.3 Results of recognition rate test测试人员测试次数/次正确次数/次识别率/%a1 0 09 89 8b1 0 08 98 9c1 0 09 39 3d1 0 09 29 2 为了测试系统的性能,采用离线测试和在线测试两种测试方法对系统的响应时间进行测试。离线测试:主要测试在离线环境下正确输入和错误输入的系统响应时
30、间。对不同的3人分别离线采集1 0 0张人脸图像,其中两人提取人脸特征录入该系统作为正确输入,剩余1人不录入系统作为错误输入。将采集的3 0 0张图像随机输入该系统进行人脸识别,统计每张图像的系统响应时间。测试结果如表4所示。表 4 离线测试结果Tab.4 Results of offline test测试状态测试次数/次测试总耗时/s单次平均响应时间/s正确输入2 0 01 2 60.6 3错误输入1 0 04 60.4 6 在线测试:直接在线使用人脸识别系统进行实时人脸识别。将已录入人脸信息的测试人员保持人脸无遮挡,并置于人脸识别系统的验证区域持续2 m i n,并在此过程中进行小幅度的转
31、动,统计人脸识别的次数,从而得出人脸识别过程中的系统平均响应时间,测试结果如表5所示。65第 26卷第 10期林平荣等:基于深度学习的人脸识别系统表 5 在线测试结果Tab.5 Results of online test测试时间响应次数/次单次平均响应时间/s第1分钟8 70.6 9第2分钟9 20.6 53.2复杂环境干扰测试系统测试分别在不同的光照、背景、遮挡等干扰环境下进行,测试结果如表6所示。表 6 不同光照和背景环境下测试结果T ab.6 T est results under environments of different light and background环境测试次数
32、/次识别成功次数/次识别率/%正常光照8 07 89 7.5强光环境8 06 37 8.8暗光环境8 04 15 1.3背景(图书馆)5 04 79 4.0背景(白墙)5 05 01 0 0.0背景(办公室)5 04 59 0.0 对人脸各部位进行不同比例的遮挡,测试结果如表7所示。表 7 遮挡干扰测试结果Tab.7 Results of occlusion interference test遮挡部位遮挡比例/%识别成功率/%眼部5 01 0 06 02嘴巴5 01 0 08 06 7鼻子5 01 0 06 01 2耳朵5 01 0 08 67 83.3测试分析分析上述测试结果,本文设计的人脸
33、识别系统在正常环境中达到9 8%左右的识别率,对于表情不夸张、脸部倾斜角度不大或有一些俯视角度,也能达到9 3%左右的识别率。在性能测试方面,离线测试和在线测试的单次识别平均响应时间比较快,最快正确输入为0.6 3 s,最慢正确输入为0.6 9 s,在线测试平均响应时间为0.6 7 s,响应时间均在1 s以内,在用户体验感良好的时间范围内,系统具备较好的性能,达到了实时性要求。在复杂环境干扰测试中,针对不同的光照、背景,依然有不错的识别成功率,即使在人脸部位遮挡比例达到5 0%的环境下,平均识别率约为7 2%,实现了6 0%以上的识别率,证明算法具有较好的鲁棒性。4结论(C o n c l u
34、 s i o n)本文介绍了基于深度学习的人脸识别系统。首先,分析系统完成人脸识别任务的基本流程,阐述视频流在线识别模块、人脸检测模块、人脸识别模块的设计,尤其是人脸检测和人脸识别算法的选型。由于人脸检测具有较高的检测率及实时性要求,因此选用MT C N N作为检测模型的算法,均衡了精度和性能。其次,以提升后期模型调整优化能力为出发点,提出融合K N N分类的F a c e N e t人脸识别方法,利用F a c e N e t进行人脸表征、K N N进行人脸特征分类。最后,对系统进行了测试,结果证明人脸识别系统具备较高的准确率,响应时间比较快,在一些复杂环境场景下也有不错的表现。因此,本文所
35、设计的基于深度学习的人脸识别系统具有推广的意义。参考文献(R e f e r e n c e s)1 郑方,艾斯卡尔肉孜,王仁宇,等.生物特征识别技术综述J.信息安全研究,2 0 1 6,2(1):1 2-2 6.2 T R I G U E R O S D S,M E N G L,HA R T N E T T M.F a c e r e c-o g n i t i o n:f r o m t r a d i t i o n a l t o d e e p l e a r n i n g m e t h o d sD B/O L.(2 0 1 8-1 0-3 1)2 0 2 2-1 1-1 0.
36、h t t p s:/a r x i v.o r g/a b s/1 8 1 1.0 0 1 1 6 v 1.3 卢宏涛,张秦川.深度卷积神经网络在计算机视觉中的应用研究综述J.数据采集与处理,2 0 1 6,3 1(1):1-1 7.4 郑远攀,李广阳,李晔.深度学习在图像识别中的应用研究综述J.计算机工程与应用,2 0 1 9,5 5(1 2):2 0-3 6.5 郭泽方.图像物体检测深度学习算法综述J.机械工程与自动化,2 0 1 9(1):2 2 0-2 2 2,2 2 4.6 蓝振潘.基于深度学习的人脸识别技术及其在智能小区中的应用D.广州:华南理工大学,2 0 1 7.7 张建华.
37、基于深度学习的语音识别应用研究D.北京:北京邮电大学,2 0 1 5.8 郑志锋,刘金清,施文灶.基于深度学习的智能停车场车位查询系统J.计算机系统应用,2 0 1 9,2 8(1 1):1 0 7-1 1 4.9 W I N D X Y S W.F l a s k_v i d e o s t r e a m_o b j e c t_d e t e c t i o nE B/O L.(2 0 2 2-1 1-1 6)2 0 2 3-0 2-2 0.h t t p s:/g i t h u b.c o m/W i n d x y/F l a s k_v i d e o s t r e a m_o
38、 b j e c t_d e t e c t i o n.1 0 G R I N B E R G M.F l a s k v i d e o s t r e a m i n g r e v i s i t e dD B/O L.(2 0 1 7-0 8-0 7)2 0 2 3-0 2-2 0.h t t p s:/b l o g.m i g u e l g r i n-b e r g.c o m/p o s t/f l a s k-v i d e o-s t r e a m i n g-r e v i s i t e d.1 1 Z HA N G K P,Z HA N G Z P,L I Z
39、F,e t a l.J o i n t f a c e d e-t e c t i o n a n d a l i g n m e n t u s i n g m u l t i t a s k c a s c a d e d c o n v o l u-t i o n a l n e t w o r k sJ.I E E E S i g n a l P r o c e s s i n g L e t t e r s,2 0 1 6,2 3(1 0):1 4 9 9-1 5 0 3.1 2 景晨凯,宋涛,庄雷,等.基于深度卷积神经网络的人脸识别技术综述 J.计算 机 应 用 与 软 件,2 0 1 8,3 5(1):2 2 3-2 3 1.1 3 张双喜.基于深度学习的人脸识别及专注度判别方法研究与应用D.南京:南京师范大学,2 0 1 9.作者简介:林平荣(1 9 8 1-),男,硕士,副教授。研究领域:机器学习,教育信息化。吴梓华(1 9 9 5-),男,本科,工程师。研究领域:机器学习。陈 鑫(1 9 7 9-),男,博士,讲师。研究领域:机器学习。施晓权(1 9 9 4-),男,本科,研究实习员。研究领域:软件工程,服务器虚拟化。75