人脸识别算法在考勤系统的应用①

2021-01-22 05:41王治强孙晓东
计算机系统应用 2021年1期
关键词:通过率线程考勤

王治强,孙晓东,杨 永,孙 鹏

(大连东软信息学院 智能与电子工程学院,大连 116023)

随着深度学习的飞跃发展,人脸识别技术趋于成熟,被广泛应用于企业、学校、机构等各种考勤场景.使用人脸识别进行考勤克服了传统IC 卡考勤易忘、易替代的缺陷,也比指纹考勤更方便卫生,易被用户所接受[1].然而,现今的人脸识别考勤系统普遍识别速度慢,在早晚高峰的时候排队考勤成为常事,并且考勤的时候头部要摆的很端正才可以识别成功,因此,用户体验并没有达到令人满意的程度[2].

本文针在系统设计上对现今人脸考勤系统存在的速度慢、只能逐人识别不能群识别、需要摆正头部体验不自然等缺陷进行改善,实现体验自然的人脸识别考勤系统.

1 人脸识别算法解析

在人脸识别应用中,涉及到的人脸识别相关算法主要包括人脸检测、人脸跟踪以及人脸匹配3 方面[3].由于大数据技术与深度学习的结合,使得人脸识别在精度和鲁棒性方面得到很大的提高[4],然而由于人脸的非刚性特点和角度等多种因素的影响,在实际应用场景中并没有达到令人满意的效果,尤其是在移动中和人的自然状态下多角度人脸识别还存在诸多难点和挑战[5,6].此外,由于人脸跟踪抓拍算法差异较大,导致人脸识别算法的运行效率和匹配效果产生了较大差异.有的研究中通过分布式技术,采用服务器机群解决速度提升[7],虽然有一定成效,但成本巨大,难于推广.

本文针对考勤场景中的人脸识别算法进行了多种实验与探索,最终归结出导致在实际应用场景中效果不佳的最核心的问题主要有两方面:一是要解决人脸的跟踪,尤其在M:N 模式下的多人脸跟踪问题;二是多角度人脸的精确匹配问题.由于人脸精确匹配的运算量极大,如果对图像进行逐帧的特征提取及匹配运算,在普通处理器的计算能力下是无法满足的.另一方面,运动中人脸的角度变幻莫测,若采用逐帧匹配,在角度不佳情况下漏识率会大大提高[8].因此,本文重点关注这两点问题,优化人脸跟踪算法降低实时图像处理运算量,同时在跟踪过程中捕捉最佳角度和图片质量的人脸图像,从而提高精确匹配成功率[9,10].此外,提出多角度采样的方法提高自然状态下人脸识别通过率.在人脸识别考勤系统中进行实现和验证,实验证实这样的解决方案提高了人脸识别的速度与识别通过率.

2 人脸识别算法设计

2.1 人脸跟踪算法

人脸跟踪算法主要有3 种:基于模型匹配的跟踪、基于区域匹配的跟踪和基于特征匹配的跟踪[11].在实际应用中基于特征匹配的方法使用较为广泛,如Azarbayejani 等提出的递归估计算法[12]和清华大学的艾海舟等采用的基于人脸检测的跟踪算法[13].但是在多人脸跟踪情况下,如何降低人脸检测中的负荷以及如何保证后进入摄像机视野的人脸被快速检测仍然是研究的重点.

本文的人脸跟踪算法属于特征匹配,是在递归估计算法思想基础上进行改进,提出一种递归最小检测窗口的方法(Recursion Minimum Window,RMW)降低人脸检测的负荷,并进行多线程扩展,从而实现多人脸同步跟踪.本文采用的人脸检测算法是的基于模板的方法,该方法鲁棒性较好,检测运算量与图像像素大小成正比[14].RMW 方法工作原理就是尽可能缩小人脸检测的范围,从而提升处理速度.具体处理方法为,根据人脸尺寸和运动速度预测目标在下一帧中最大可能的运动范围,也就是包含目标物体在内的最小图像,然后基于预测的目标范围裁剪图像,作为人脸检测算法的输入.如此便可以在图像输入到人脸检测模块之前极大的裁剪掉无效图像,提升目标检测的效率和准确性.如图1所示为RMW 方法工作原理.

图1 RMW 方法原理图

RMW 算法对单人脸检测跟踪处理速度提升计算公式如式(1)所示,W,H为原始图像的宽高,W′和H′为最小预测窗口的宽高,V为人脸移动速度,R为视频图像的帧率,σ为常量.由公示可见,速度提升倍数约为原始图像面积和人脸边框面积的比值.即人脸在图像中尺寸越小,则跟踪速度越快.

RMW 算法的整体处理流程如图2所示.首先根据上一帧跟踪状态预测当前帧最小检测窗口,如果是起始帧则窗口初始化为整幅图像,然后根据最小窗口剪裁图像,调用人脸检测算法检测人脸并根据人脸信息更新跟踪状态,如此循环跟踪直到退出.

图2 RMW 算法处理流程

多人脸同步跟踪情况下,对RMW 算法进行多线程设计,每张人脸使用独立线程跟踪,多人脸跟踪的处理线程模型如图3所示.结构上包含全幅人脸检测线程和RMW 人脸跟踪线程两部分,全幅检测线程执行周期较长,可以间隔多个图像帧执行一次,为发现新进入摄像机视野的人脸做整幅图像的人脸检测,一旦检测到新人脸,则启动RMW 跟踪线程对人脸进行跟踪,RMW 跟踪线程检测目标丢失的时候则退出,全幅检测线程发现新人脸则继续添加新的跟踪线程,从而持续维护跟踪列表.

图3 多人脸跟踪线程模型

从摄像机获取一帧实时图像,采用RMW 算法预测截取最小检测窗口,然后调用人脸识别库检测人脸,更新跟踪列表并计算人脸角度、速度、图像质量等状态信息,通过线程池方式并发执行跟踪处理,并在一帧检测的开头和结束进行线程同步.具体一帧图像的检测跟踪的详细流程图如图4所示.

图4 RMW 人脸跟踪处理详细流程图

2.2 多角度人脸匹配精度优化

自然状态下的人脸被摄像机捕捉到的角度与状态存在各种可能,传统多角度人脸识别算法有很多种,如线性判别分析(LDA)、主成分分析(PCA)、回归函数法等[15,16].然而在实际应用中,在采集人脸信息环节并不容易实现.为了让用户体验更加自然,本文在人脸采集的时候对采集角度做了扩展,每张脸采集:正中、偏上、偏下、偏左、偏右5 张照片.在精确匹配的时候根据抓拍人脸的当时状态完成匹配,同时加上人脸角度的约束条件,则会使匹配结果更加精确.人脸采集的图样如图5所示.

图5 人脸多角度采集

3 人脸考勤应用系统设计

3.1 系统功能需求

本文所设计的人脸识别考勤系统主要包含如下几方面功能:

1)用户管理功能:采集用户的人脸信息,还有对员工信息的增、删、改、查管理功能;

2)人脸识别功能:采用实时M:N 的方式进行多人脸同步识别,支持多人同时考勤,并支持人脸大角度识别,增强用户体验;

3)考勤管理功能及其他:包含员工考勤管理、数据统计、考勤设置、考勤语音提示和系统设置功能.

3.2 系统软件设计.

人脸识别验证功能是本系统的核心功能,系统使用第三方颜行人脸识别库实现人脸检测与匹配,软件模块图如图6所示.RMW 人脸跟踪以及人脸匹配的应用算法在人脸跟踪识别模块中实现,调用颜行Facevall lib 实现人脸检测与匹配.调用Speech lib 实现语音提示功能.

图6 系统软件结构框图

4 系统实现

4.1 系统硬件实现

为满足计算性能要求,考勤终端硬件设计采用X86架构CPU 为Intel i7-8550u,RAM 为8 GB 的工控机为主控单元,使用1080P 帧频30 fps 的高清摄像机采集人脸图像,外接触摸屏等人机交互外设.

4.2 系统软件实现

软件开发基于Windows C# Visual Studio 开发环境,依据面向对象设计思想,采用多线程方式,实现了用户界面、图像采集、人脸跟踪和检索算法、考勤管理和网络通信等功能.软件界面基于WPF 窗体设计,采用C#5 新特性async await 关键字和lambda 表达式方便地实现多线程异步执行,提升系统并行效率.在多线程并发执行方面,用线程池技术实现多线程并发处理.数据存储采用MySQL 数据库.考勤终端与数据库采用C/S 架构,支持多终端同步运行,多终端同步考勤.

人脸考勤界面采用单独的窗口,实现效果图如图7所示.人脸考勤成功后会记录数据库,保存考勤时人脸照片,用于考勤记录查询及统计报表功能.

图7 人脸考勤界面

人脸信息采集窗口如图8所示,采集上下左右及正中5 张人脸照片.

5 系统测试

针对人脸识别在实际应用中的效果,从两方面验证算法性能,一方面是处理每个图像帧的时间效率,另一方面从实际应用的效果,即识别通过率进行测试.

图8 人脸信息采集界面

5.1 图像帧处理效率测试

为测试人脸跟踪与识别算法的效率,对一分钟1800 帧视频图像进行识别,统计平均每帧图像的处理时间.为检验RMW 人脸跟踪算法性能,与不使用RMW 算法,即与每帧图像都全幅检测的普通跟踪算法相对比,计算RMW 算法在处理效率方面的效果.测试视频中人脸移动速度较慢,小于0.5 m/s,分别在不同人数和距离情况下测试了多组数据.

如图9所示,从测试结果可以看出,RMW 算法大大降低了每帧图像的平均处理时间,效率提升很明显,为普通算法的两倍以上,并且人数越少效果越明显.另外,从RMW 算法的两组数据可以看出,人脸距离摄像机的距离对处理时间的影响也很大,因为距离越远,人脸所占像素越小,检索与匹配的计算量也越小.

图9 人脸数与每帧处理时间曲线图

5.2 人脸识别通过率测试

为检验人脸识别实际应用的通过率,使用1000 人共5 千张人脸的人脸检索库,测试从单人到6 人同时考勤效果.运动状态包括静止、缓慢行走(0.5 m/s)、正常速度行走(1 m/s).测试结果记录识别时间和漏识次数.时间记录从距离摄像机3 m 开始计时到识别到人脸后屏幕提示姓名为止的时间.

测试结果如图10所示,静止状态下识别率都达到100%,人数的增加和移动速度的加快都会降低识别通过率,平均识别时间会随人数增加而增加.漏识的主要原因是由于人脸移动速度快的情况下,还没等到系统捕捉到高质量的图像,人就已经走过去了,并且人数越多,捕捉人脸需要的时间就越长,从而导致漏识几率增大.

图10 识别通过率和平均识别时间结果图

5.3 自然状态下人脸识别测试

为测试人脸检索库引入正中和上下左右5 张人脸图片的效果,对缓慢行走状态下人脸识别通过率进行测试,分别对人脸角度为正中、偏左、偏右、偏上、偏下5 种状态进行测试.测试结果如表1所示.

表1 单张采集与多张采集识别通过率对比(单位:%)

由测试结果可见,采集多角度采集的情况与单张采集情况相比,除了正中角度外,其余4 个角度都有明显提升,平均通过率提升11%,可见该方法在实际应用中是切实有效的.

6 结论

本文在人脸识别考勤系统的设计中引入RMW 跟踪算法,提高了多人脸同步跟踪的效率,并通过采集正中、上下左右5 张人脸照片的方式增强自然状态下人脸识别通过率,取得了较有成效的实际应用效果.但在同时考勤人数大于4 的时候,由于处理性能和摄像机图像质量下降的原因,会导致漏识率明显增高.然而,对于一般应用场景,本文的算法基于现有人脸识别库、普通处理器以及相机条件下,已经可以达到实际应用需求.如要进一步提高应用效果,除了继续优化算法,还可以从提高处理器性能和采用高速相机角度进行解决.

猜你喜欢
通过率线程考勤
5G终端模拟系统随机接入过程的设计与实现
国有企业考勤管理的问题和对策探究
瓦里安VitalBeam直线加速器Portal Dosimetry验证通过率低故障维修
实时操作系统mbedOS 互斥量调度机制剖析
浅析体育赛事售票系统错票问题的对策研究
三级甲等医院应用PDCA循环提升考勤管理的创新
新形势下高职铁道交通运营管理专业的技能考证探讨
如何提高大学英语统考通过率
基于校园卡的学生考勤系统研究
提高护士执业资格考试通过率的几点措施