APP下载

基于树莓派与深度学习的人脸识别考勤系统

2019-12-13张寅东陈晓填张宇雯

现代计算机 2019年31期
关键词:三元组树莓考勤

张寅东,陈晓填,张宇雯

(广州大学计算机科学与网络工程学院,广州 510006)

0 引言

人脸作为显著的生物特征,被广泛用于生活中个人身份的识别,例如:安保系统、银行结算、手机解锁、刑事侦查等。相比于指纹识别,人脸具有易获取、难伪造的优点,能够克服传统的考勤方式下他人代替考勤这一问题,适合作为考勤系统的身份识别依据。同时树莓派以体积小,价格低的优点常被用于嵌入式开发。构建考勤系统时,只需要在配置好系统环境的树莓派中安装TensorFlow、OpenCV等框架,以及MySQL数据库、QT界面和依赖的第三方库,通过SSH连接树莓派并执行指令开启图形界面执行程序,就可以实现一个简单的嵌入式考勤系统。

本文旨在设计一个能精确识别人脸且搭载于轻量化微型电脑上的考勤系统。所以我们的核心思想是通过关联的USB摄像头和人脸检测算法来获取人脸,并利用深度学习算法提取特征值和人脸识别算法识别待考勤人员,最终将人员考勤记录保存到关联数据库中。管理员可随时查看所有人员的考勤情况。

1 系统设计

考勤系统分为前台和后台两部分,前台功能主要包括待考勤人员基本信息的录入、人脸的采集、人员刷脸考勤以及考勤情况的显示,后台功能主要包括管理员对待考勤人员信息的修改以及对考勤信息进行管理,各部分的流程如下。

(1)管理员对信息的录入

①管理员完成身份认证后登录到信息管理系统;②管理员录入待考勤人员的信息,基本信息包括待考勤人员的ID、姓名、人脸信息,其中人脸的采集可以是现场采集,即通过摄像头现场拍摄一张正脸照片,或是由员工自己提供一张电子版的个人证件照,将大小调整后通过本地传入。系统将利用深度学习算法将获取到的人脸特征存至数据库以便后期的刷脸考勤打卡对比,同时为了使后期的识别更加精确,在录入图片的时候需要尽量录入几张不同角度的人脸照片,如稍微左右侧脸、仰头或者低头等角度。

(2)刷脸考勤的流程

①通过树莓派关联的摄像头和人脸检测算法实时获取人脸;②当有人脸出现在摄像头前时,系统利用模型中的深度学习算法提取当前人脸图像的特征,并与预先保存在数据库中的特征进行比对,若当前人脸图像的特征值与数据库中预留的人脸特征值之间欧氏距离小于设定的阈值时,即可认为两张图片的特征值匹配,当待考勤人员与数据库中预留照片的特征值匹配时,系统便判定两张人脸图像是同一个人,这时便会自动记录下该人员的考勤信息,同时在考勤界面显示打卡成功的消息。刷脸考勤流程如图1所示。

图1 刷脸考勤流程图

(3)管理员对考勤信息的检索

在数据库中有刷脸考勤的记录后,管理员可以验证身份进入管理系统,对考勤情况进行查询检索,如对每天迟到、缺勤的人员信息检索,对某人的考勤信息检索,对某天的考勤信息检索等。同时考勤系统具有按月统计考勤次数的功能,管理人员可以利用该功能检索出每人每月的考勤次数。

2 主体功能实现

系统共涉及两部分的深度学习算法,一部分是录入人脸信息以及刷脸考勤时的人脸检测算法,另一部分是刷脸考勤时的人脸识别算法,两部分算法的算法原理如下。

2.1 人脸检测

人脸检测采用的传统方法是OpenCV中训练好的Haar级联分类器[1]。进行人脸检测时,先将图片灰度化,提取特征值,然后调用相应的级联分类器来检测人脸,但是单靠一个级联分类器来检测人脸,有一定的局限,如在多人脸图或实时检测环境下就会出现较大的误判,同时模型还要实现在树莓派CPU上较为快速的处理,因此我们采用了由中科院提出的人脸检测框架FaceBoxes这一轻量化且能依赖CPU的人脸检测模型[2],其原理如图2所示,它由快速消解的卷积层(Rapidly Digested Convolutional Layers,RDCL)和多尺度卷积层(Multiple Scale Convolutional Layers,MSCL)构成。RDCL主要通过适当的内核大小快速缩小输入空间,同时利用CReLU激活功能减少输出通道的数量,使模型能够在CPU设备上达到实时处理速度;而MSCL的目的是在不同层上丰富感受野和离散化锚点,其算法实现主要是通过沿网络深度维度和沿网络宽度维度的多尺度设计,即对Faster R-CNN网络的改进,以便处理不同尺度的面部。

图2 FaceBoxes原理[2]

2.2 人脸识别

在传统的OpenCV自带的LBPH算法基础上,本文针对人脸识别所需图像要求1:N的情况,采用了Google提出的FaceNet深度学习通用型网络[3]。该网络在传统CNN人脸识别模式的基础上进行了改进,并且模型训练与传统模式相比也有了很大的变化。传统方法先提取人脸特征,然后再利用分类算法进行分类。而FaceNet直接通过学习将特征变为氏平面上的一个点,然后通过比较点之间的距离来进行类别判断。模型利用三元组损失函数进行优化,最后输出128维度的向量。三元组损失函数的约束条件如公式(1)所示:

该公式表示左边类内的距离(加上边际)要小于右边类间的距离,这个约束需要在所有的三元组上都成立。其中α表示正样本对((锚点)(正样本))和负样本对((锚点)(负样本))间的一个约束范围,T表示训练集内任何可能的三元组集合,其基数为N,将公式进行优化后,得到损失函数如公式(2)所示。

最后通过减小损失函数的值,来实现对模型的优化。输入的三元组主要包括一张样本图像缩略图,一张与样本同类的图像略缩图和一张与样本不同类的图像缩略图。损失函数则主要对这三元组通过距离边界进行划分后得出正负类,最终拉近同一样本之间的欧氏距离,推远非同一样本之间的欧氏距离,损失函数的原理如图3所示。当两张图像之间的欧氏距离越近时表示是同一个人,反之则不是同一个人。

图3 三元组损失函数的原理

3 仿真实验

3.1 实验环境

树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,以SD卡为内存硬盘,卡片主板周围有USB接口、HDMI高清视频输出接口和以太网接口,可连接键盘、鼠标、显示器、摄像头、网线等I/O设备,具备所有PC的基本功能,同时它拥有低能耗、移动便携性和GPIO等特性,很多在普通电脑上难以做好的事情,在树莓派上却能很轻易地做到。

Raspbian为树莓派官方深度定制的硬件驱动与软件程序,是一个官方推荐的Linux系统,其内部自带Python 2和Python 3环境,本文使用的是该系统下的Python 3环境。

3.2 实验数据集介绍

Labeled Faces in the Wild(LFW)人脸数据库主要用于研究自然环境下的人脸识别问题[4]。如图4所示,该数据集包含了从互联网上收集的约13k张具有不同朝向、表情及光照环境等非受限环境的人脸图像,每张人脸图像都标注有对应的人物名字。在LFW数据库中,人脸的光照条件、姿态多种多样,有的人脸还存在部分遮挡的情况,使得该数据集中的图像识别难度较大,因此该数据集主要用于测试人脸识别的准确率。测试过程中,LFW给出一张人脸图像,然后把其与待测试的人脸图像进行比较判断是否属于同一个人,最后经过测试6k对的人脸测试图得出属于同一个人的人脸图张数与真实数量的比值,即获得人脸识别准确率。

图4 LFW部分图像[4]

3.3 系统实验结果

经测试,本文在LFW数据集上的人脸识别正确率约为97.83%,识别精度可以满足大部分环境下的识别要求。以下是对系统各功能测试的实验结果。图5是人员刷脸考勤时的界面,图6和图7分别是对考勤数据的查询和统计。

人员考勤时,点击打卡按钮,系统会自动检测摄像头前的人脸,并别当前打卡的人,并将成功打卡的信息显示至主界面,刷脸考勤成功的界面如图5所示。

图5 考勤人员识别

考勤信息的检索分为按照姓名查询,按照ID号查询,按照日期查询。按照姓名查询的结果如图6所示。

图6 按照姓名查询考勤信息

图7 考勤系统统计功能

考勤信息的统计功能可以显示所有人员每个月的考勤的总次数。通过该功能,管理员可以记录缺勤人员的信息。

4 结语

本文设计实现了一个基于树莓派的人脸识别考勤系统,该系统利用了Python语言和人脸识别框架,在传统人脸识别方法的基础上进行了改进,实现了人脸的精准定位与识别。我们对于人脸的检测主要是使用轻量化的FaceBoxes模型,对于人脸的识别主要是使用FaceNet模型。另外,我们还利用树莓派实现嵌入式开发,克服了传统考勤方式中的漏洞和传统人脸识别算法的不足。经数据集和实际使用的测试,该考勤系统可以实现考勤系统所需的各项功能,具有较高的准确率,在高校和企业的考勤中具有较高的使用价值。

猜你喜欢

三元组树莓考勤
国有企业考勤管理的问题和对策探究
TransP:一种基于WordNet中PartOf关系的知识图谱嵌入方法
基于卷积神经网络的知识图谱补全方法研究
事业单位人员考勤管理存在的问题及对策
K-VQA:一种知识图谱辅助下的视觉问答方法
三级甲等医院应用PDCA循环提升考勤管理的创新
黄金水果红树莓
树莓红了 游人醉了
e络盟率先推出第三代树莓派
年度睡姿大盘点(下)