基于自适应人脸识别的出入人员管理系统设计
2022-06-21马钵涛
马钵涛
摘 要: 结合云端数据库技术与前沿人脸识别技术,优化模型参数调节策略,设计出一种基于自适应人脸识别的出入人员管理系统。系统提供分布式信息录入、云端数据汇总与存储、人脸识别、数据分析等功能。在使用Arcface深度人脸识别模型的前提下,设计使用多层次多进程并行沟通互联模式,对出入人员实施系统化、自动化的管理,实现管理流程的高效运行。
关键词: 人员管理; 自适应; 数据库技术; 人脸识别技术; 多进程
中图分类号:TP391.4TP183C931.6 文献标识码:A 文章编号:1006-8228(2022)06-66-05
Design of access management system based on adaptive face recognition technique
Ma Botao
(College of Computer Science and Technology, Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China)
Abstract: Combining cloud database technology, cutting-edge face recognition technology and optimization model parameter adjustment strategy, an access management system based on adaptive face recognition is designed. The system includes functions such as distributed information input, cloud data collection and storage, face recognition, data analysis, etc. Using the Arcface deep face recognition model, a multi-level and multi-process parallel communication and interconnection mode is designed to implement systematic and automated management of entry and exit personnel. It successfully reduces the manual burden and enables the efficient operation of the management process.
Key words: personal management; self-adaption; database; face recognition; multiprocessing
0 引言
本文构建一种基于自适应人脸识别的出入人员管理系统,在云端共享、数据同步的支持下,管理者可对多出入口人员流动进行统一管理、分析、优化,并可通过手机端应用,实现管理者与流动人员的信息沟通;在疫情时期尽最大可能避免因管理失误而导致的人群聚集场景的出现;在节约人力的基础上,充分提升管理效能。
1 系统结构设计
1.1 功能模块设计
按照大体功能划分,基于自适应人脸识别的出入人员管理系统可以分为三大模块(如图1)。
⑴ 管理者终端模块,此模块又可分为交互层、中间层、处理层这样的三层结构体系,通过多进程并行运转。
⑵ 云端数据库模块,该模块的服务器上运行着一个汇总数据的SQL,其上用规定的格式存储注册用户的相关信息及每个人对应的人脸图片,而所有信息汇总而成的简化表将返回并提供给各个管理者终端,以确保人脸信息的同步与快速识别。
⑶ 手机端信息模块,该模块以App形式安装于各个流动人员的手机中,以实现用户的分散注册,用于接收通知信息、调度信息。
1.2 技术架构设计
1.2.1 架构总览
系统的总体架构为两层C/S模式[1],包含云端数据库服务总机和单一/多个管理者终端(以下简称终端)(如图2)。在此模式下,云端数据库服务器只负责各种数据的存储和维护,而终端则进行主要的处理工作。
此架构是一种较为典型的“胖客户机(Fat Client)”、“瘦服务器(Thin Server)”网络结构模式[2]。在信息交互上,手机客户端和云端服务器都分别与终端进行信息交流。
1.2.2 三层架构
终端程序的结构设计类似于MVC模式(Model-View-Controller),三个层次其中包括交互层、中间层、处理层(如图3),对应于MVC模式[3]中的视图(View)、控制器(Controller)、模型(Model)三个部分。交互层是与用户联系最紧密的部分,管理者使用程序的UI界面方便地查看画面、发布命令和传递消息。中间层是数据接收、数据处理、数据发送的真正执行者,中间层接收原始视频信息,将视频信息分为两部分,一部分进行预处理,提供处理层的模型使用,另一部分等待与处理层返回的识别信息结合,向交互层传输处理后的视频信息;同时,中间层会实时同步云端数据,以确保系统的可靠性。处理层主要运行系统的核心——人脸识别模型。模型针对堆栈视频取出每一帧图像,將其输入带有边缘夹角附加损失函数(Additive Angular Margin Loss, AAML)的深度卷积神经网络,将识别结果(即目标人脸的名称),反馈回中间层进行整合。三个层级分别运行于各自的进程中,进程互相独立,之间依靠进程锁同步通讯,以减小不必要的交互卡顿。设计模式上的三层架构与程序模式上的多进程共同确保系统内的管理者终端高效、健壮地运行。
2 系统具体实现
2.1 视频预处理过程
监控视频或网络摄像机视频经过格式转换后形成的输入视频需要进行一定的预先处理。若视频中并不存在人脸,人脸识别模型将不需要进行运转,目的是为了节省系统的资源消耗。因此,视频帧图像应先通过三步预处理。第一步,将RGB图像转换为HSI图像,并对I通道进行均衡化处理,对图片的明暗程度进行调整,再转换回RGB图像[4];第二步,调用Dlib开源工具包中的人脸追踪定位函数,对图片中存在的人脸进行定位;第三步,图片存在人脸时,使用获取的人脸坐标信息,定位人脸中心,截取正方形区域内的人脸头像,调整其至112×112像素大小。最后,预处理程序将图片放入进程间的共享堆栈。三步预处理过程,确保模型接收到的输入图片一定存在可识别的人脸信息,使得计算资源得以高效利用。
2.2 系统核心——人脸识别模型
2.2.1 模型优势
Arcface模型[5]是基于ResNet网络[6]进行损失函数优化改进的人脸识别模型。在人脸识别的四个过程:人脸检测、人脸对齐、特征提取、特征匹配中,优化损失函数是除优化网络结构外提升模型性能的第二条道路。传统的损失函数Softmax[7]存在很大的类内距离,缺乏对此的约束;于是Center Loss损失函数孕育而生,但其却不能使类间可分;在新的SphereFace模型研究中发现,模型学习的特征角分布大小,决定着决策边界的明显程度;进而,Arcface模型中提出了新的Angular Margin Loss约束。通过实验证明,加入该损失函数能够压缩同一类别至更紧凑的空间,使得模型学习到的特征具有更加明显的角分布,决策边界也更明显。此外,Arcface模型对网络结构也进行了优化,替换ResNet中第一个7×7卷积层为3×3卷积层、采用Option-E输出、使用改善后的残差块,这些改进对准确度的提升也有很大作用。最终Arcface模型在MegaFace数据集上的测试结果证明,其在Rank1指标(即第一次命中率)上较第二名有近1个百分点的提升。
2.2.2 训练过程
基本学习Arcface原作的训练过程,使用VGGFace2外加一部分自行采集的素材制作人脸数据集,其中运用模型整合的MTCNN网络[8]对其中的人脸图片进行对齐处理,并在预训练模型上进一步训练并验证后使用。
2.3 UI界面
终端的交互层运行着操作界面,使用QT公司的图形用户界面应用程序开发框架进行实现。在框架布局上共分为四个区域(如图4)。左上角的区域是标题区,主要用于设置路径和展示视频数据;右上方的区域是画面区,视频画面会以最大范围展示于此,下方的提示信息栏会提供一些辅助人脸居中的提醒信息,右侧提示栏显示识别人物的身份,若人物为未注册人物时,则提示“未知人物”。左下的区域是具体的操作区,用于对中间层进行发号施令。最后,右下角的区域是综合的反馈区,在此会显示一系列系统运行过程中发出的提示、记录的数据、出现的错误等,需要管理者在有需要时进行应对处理。
2.4 云端存储
注册人员的相关信息,数据量庞大,包括文字、图片,我们将其存储在一个可由任意终端访问的云服务器上。
2.4.1 数据库文字信息
经过终端审核,并注册成功的用户,其文字数据包括:注册时生成的惟一标识编号、姓名、电话号码等基础信息,而基于使用场景的不同,需求表格可以进行自定义设计,但一切文字数据均需保存于云服务器中的数据库内,以表格形式存在,并于最后一个地址属性列,指明其人脸图片的存放路径,方便查找。
2.4.2 存储区图片信息
人物录取的图片信息单独存储在服务器的内部存储中,根据人物姓名或者惟一ID号以文件夹形式分隔开,若录入图片存在多张属于同一人物的脸部图片,图片命名应以“姓名”+“_”+“序号”表示,方便汇总程序调取使用。
2.4.3 信息互联与汇总
每个人都有自己独立的身份证,身份证上记录的信息基本包含了可以证明你个人身份的所有数据,基于此,我们为每个注册人员设计出一张数字化的“身份卡”(如图5),将每个人的文字信息与其图片信息关联。需要搜索查找一个人时,只需要查询名字或ID就可以获取全部的注册信息。并且,对于存储在云端的所有图片信息,服务器端还会运行一个独立程序,用于将人脸信息的特征进行提取,汇总成CSV文件。此数据文件,由各个终端的中间层在需要的时候获取并传递给处理层人脸识别模型,进行对比使用。
2.5 手机端通讯
手机端App的主要使用对象是需要被管理者所管理的流动人员,手机端服务主要包含两个功能:信息收集和消息通知(如图6)。
用户首先需要下载应用并注册。成功注册后,用户会收到通知,并成为管理区域内的可通行人物,通过进出口的摄像头识别人脸即可进出管理区域,这是手机端的信息收集功能。
消息通知功能面向App的用户。管理者发表调度信息和管理提示,例如在高峰时间对于某一进出点人流过大而出现拥堵的问题,管理者可以通过消息滚动条或手机短信提示,让用户提前知晓并改变策略,将人流分散到其他出入口,避免拥堵的产生。
两项功能的存在可以帮助管理者较为方便地沟通管理对象,并根据系统反馈数据,及时对管理进行调整。
3 功能优化
3.1 模型參数自适应调整
在系统的使用过程中,系统内集合的人脸图片数量始终处于变化中。一段时间内,注册用户可能增加也可能减少,但通常模型的训练会取某一固定数据集的图片进行训练,针对此特定状态设定的模型参数值,是当前条件下模型准确度最高的状态,但其并不一定在其他场景中适用。于是,考虑到实际应用场景下模型的识别处于变化的数据集当中,我们应当设定一种对策,使得模型可以根据变化后的数据集来调整自己的某些参数,以保持准确度处于较高位置。
在Arcface模型中存在一個特定阈值,该阈值在人脸比对时起到一种类似选择器的作用,模型在训练过程中会根据学习率以一定步长不断改变该数值,直至测试结果准确度到达可以接受的范围内,训练完成后会不再尝试改变此数值。
由此,我们思考一种更新方式,即在一特定时段(夜间或特定日期)对模型进行更新,在两次更新操作的真空期,注册用户会产生变化,影响模型的准确度。通过将训练过的模型在新数据集上进行新训练,或是在数据庞大时进行挑选训练等手段,产生新阈值并覆盖原阈值,使模型在注册用户这个相对原初训练集更小的范围内精确度始终处于最高状态。这种方法称作模型的自适应方法。
3.2 视频堆栈回收机制与识别机制优化
摄像头记录的视频信息在输入终端的中间层后,会先进行视频的预处理,而经过预处理的视频会压入一个共享堆栈,共享堆栈由处理层取用,此过程是使视频信息得以在两个并行进程间同时得到使用的解决方法,但是其在初期产生了极大的系统资源消耗,甚至导致系统崩溃。为了解决这个问题,共享堆栈的大小有了重新限定,并在系统中引入GC垃圾回收器,在堆栈堆积满时,自动回收缓存。同时也对模型的识别过程进行优化处理,模型并不需要对视频每一帧持续地进行识别,那将导致视频流的输入速度远大于识别帧提取的速度。在模型识别并给出判断后,通过使用预处理时用到的Dlib人脸追踪器,系统将追踪已识别人员的面部在画面中的位置,直至人物面部离开画面或发生切换前,模型将不再对已经识别的对象进行无用的反复识别操作。此改进可显著提高画面帧率,提升39.4%,并极大减少画面卡顿现象的出现。
4 结束语
本文论述了基于自适应参数设置人脸识别模型的出入人员管理系统的设计、实现及优化过程。展示了该系统所使用的C/S架构模式及其独特的“三层结构”程序设计思路;着重介绍了人脸识别视频的预处理过程和模型优势及训练过程;紧接着对系统UI的设计、云端数据服务器的使用、手机端通讯的作用进行了介绍;并阐述了针对环境变化、运行卡顿等问题的优化措施。本系统利用前沿人脸识别模型,结合自适应参数调节策略,提升了出入管理流程的自动化水平,成功减轻了管理人员的数量需求,在应对人力资源短缺问题上有长远效益。
在后续的改进中,应着重于模型轻量化的研究,以减轻管理员终端的计算处理负担,或是整合重复资源尝试进行云端统一处理的可能。
参考文献(References):
[1] 李敏.C/S和B/S模式及混合模式研究[J].西华师范大学学报(自然科学版),2006(2):198-201
[2] 彭洵,李军,廖兆曙.基于Windows的瘦(胖)客户机-终端服务器模式设计及应用[J]. 武汉职业技术学院学报,2006(5):73-75
[3] 陈乐,杨小虎.MVC模式在分布式环境下的应用研究[J].计算机工程,2006
[4] 邹宏伟.基于OpenCV的数字图像处理技术研究与实现[J].无线互联科技,2019,16(22):2
[5] Deng Jiankang,Guo Jia,Yang Jing,Xue Niannan,Cotsia Irene,Zafeiriou Stefanos P. ArcFace: Additive Angular Margin Loss for Deep Face Recognition[J].IEEE transactions on pattern analysis and machine intelligence,2021
[6] Kaiming He,Xiangyu Zhang,Shaoqing Ren,Jian Sun 0001.Deep Residual Learning for Image Recognition[J].CoRR,2015,abs/1512.03385
[7] Weiyang Liu,Yandong Wen,Zhiding Yu,Meng Yang.Large-Margin Softmax Loss for Convolutional Neural Networks[J].CoRR,2016,abs/1612.02295
[8] Kaipeng Zhang,Zhanpeng Zhang,Zhifeng Li,Yu Qiao 0001. Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks.[J].IEEE Signal Process. Lett.,2016,23(10)