卢铿栋,周玲,蔡沛潜,陈晓星,罗中良
(惠州学院电子信息与电气工程学院,惠州 516007)
学校教师为了有效管理学生上课情况,点名考勤是最常见和传统的方式,其占用时间长,又容易出现帮忙应到或者代课的现象存在。随着计算机、通信技术和移动设备应用的普及,出现了各种新的考勤方式,如指纹机考勤,以生物特征指纹作为对象识别依据加快点名考勤,但手指上有灰尘或者有汗液存在或天气较冷季节和地方,指纹识别存在一定的困难;微信考勤也是一种新的考勤方式,它是让学生微信连接特定网络作为到勤依据;虹膜识别考勤,其特点有可依靠性强、识别准确率高的情况。但是在验证的过程中要求被识别者摘下眼镜,存在一定的不方便性。而人脸识别技术具有考勤方便、速度快以及生物特征唯一等特点[1],是大学考勤是较理想的方式。本文针对此需求设计了基于人脸识别的上课点名考勤系统,系统采用树莓派作为系统开发平台,并由充电宝移动电源供电解决其移动应用便利性。设计的系统通过OpenCV人脸识别算法设计和Python语言编程实现,完成人脸采集和识别并与微信相关联,实现将考勤数据在微信上传输给上课教师,同时将缺课学生名单数量加以统计并显示,让教师一目了然,极大地提升点名效率。
根据大学校园点名考勤的经验,系统设计的功能主要包括:①树莓派连接好Wi-Fi后,教师通过启动程序生成微信二维码并进行登录,学生到摄像头面前进行人脸识别,当识别度大于预设的阈值表示识别成功并发出“嘀嘀嘀”提示音;②点名结束后按下键盘按键“Esc”结束录制,到勤学生的名单会以Excel的形式发送到当堂教师的微信,文档里面包括到勤学生的姓名字母缩写与学号,以及出勤时间,进而对学生迟到、缺勤人数进行统计;③与微信平台中的文件传输助手相连,无需关注公众号或下载App,方便使用。
该系统主要由树莓派3B+模块、摄像组模块、有源蜂鸣器模块及电源、按键等外部设备组成,系统总体设计如图1所示。
图1 系统总体设框图
LBP(Local Binary Pattern,局部二值模式)算子在3×3图形领域中,将周围的像素点的灰度值分别与中心像素点的灰度值进行比较,当周围的某一像素点灰度值比中心像素点的灰度值大,便将该点的像素点记为1,反之为0。因此中心像素点的LBP算子[2]可以由图2所示算出。
图2
其中,LBP的公式可以定义为以下公式(1):
其中,(XC,YC)为3×3领域的中心像素,iC是中心像素的灰度值,而iP则是周围像素点的灰度值。P为领域内整个采样点的数量,p为领域内的第p个像素。s(x)是一个符号函数[3],定义为公式(2):
因基本的LBP算子在图像大小发生变化的情况下会发生编码错误。因此本项目使用了可变半径的圆形LBP算子来实现人脸识别。以圆形图像代替原先的3×3方形图形领域[4]。因此圆形图像上可以捕获多个采样点,如图3所示。
采样点的坐标可以通过式(3)和式(4)计算。
其中,(xc,yc)为中心像素点,P为采样点的数量,R为圆形图像的半径[5]。其中P的采样点位置为(xp,yp),p∈P。
图3
人脸检测是目标检测的一部分,主要涉及两个方面:①对检测人脸进行概率统计,从而理解待检测人脸的某些特征,创造人脸检测模型。②再使用已经创造的人脸模型匹配输入图像,如果匹配,则将匹配的区域输出,否则什么也不做。使用OpenCV检测人脸,OpenCV使用对象检测中的Haar功能的级联列表[6]。OpenCV中有一个文件夹数据/haarcascades。该文件夹包含OpenCV这些文件可用于检测相机获取的图像中的静止图像,视频和脸部[7]。笔者的人脸图像检测与捕获如图4(a)所示。然后使用OpenCV进行图像预处理,在从相机获得帧(图像)之后,将图像从RGB模式转换为灰度图像,并且执行灰度直方图均衡操作,因为OpenCV中的面部检测需要灰色空间[8]。
OpenCV有三种人脸识别的方法,它们分别基于三种不同的算法:Eigenfaces、Fisherfaces和 Local Binary Pattern Histogram(LBPH)。所有的方法都有类似的过程,即使用了分好类的训练数据集(人脸数据集[9],每个人都有很多样本,这里我们设置为每个人200张)来进行“训练”,对图像或视频中检测到的人脸进行分析,训练过后将产生后缀名为yml的训练文件。
图4 人脸检测捕获与预处理
通过摄像头捕捉一个新人脸,如果这个人的面孔之前被捕捉和训练过,识别器将会返回其预测的id和索引,并显示其id和匹配正确的概率(概率=100-置信度指数)。同时在识别功能的基础上,我们还引入连接微信的功能,引入itchat接口,使微信可与程序连接起来;同时,当人脸匹配正确的概率大于阈值时,会将匹配成功人的id与对应的名字写入文本,并将文本形式由.txt转化为.excel,同时引入蜂鸣器鸣叫功能,每当识别成功就发出“嘀嘀嘀”响声。引入k=cv2.waitKey(10)函数,使程序能够在键盘按下“Exc”键时就能退出识别,并将写入之前写入带有姓名字母缩写与学号的文本发送到相关联的微信。
图5 人脸识别与匹配考勤结果图
根据上述原理,系统总体软件设计流程图如图6所示。
图6 系统总体软件流程图
本文设计的基于人脸识别的考勤设备,自动生成考勤文本发送到对应的微信账号上,使得考勤信息一目了然,让教师精确掌握迟到、缺课的学生名单、数量。同时采用人脸识别技术这一生物特征识别技术,通过比较不同人脸图像LBP编码直方图达到人脸识别的目的,识别结果不受光照、缩放、旋转和平移的影响[10],保证了识别的精准率,极大地降低了学生找代课的可行性,提高教育质量。所设计的设备经过测试,具备很高的识别精准度,具备一定的应用价值。