聂逸菲
(长江大学电子信息学院,湖北 荆州 434023)
大学生课堂考勤制度作为校园制度文化建设的重要环节,其所实施的效果将直接影响着学校的规范管理和人才培养质量。课堂教学是学校教学的重要部分,现在高校中,学生逃课的现象却非常普遍,甚至出现了经常不上课的高校“逃课一族”。上课点名的目的是统计学生人数,督促学生按时上课,进而提高学生自觉性,提高教学质量。传统的课堂考勤由任课教师通过花名册进行点名实现,但这种传统的课堂考勤方式通常会占用很多课堂时间,降低了课堂教学质量,且纸质的考勤记录容易丢失,不利于数据的查阅与汇总分析。随着近年来人工智能和电子商务迅速的发展,人脸自动识别技术被视为最有潜力的生物识别技术和生物身份验证的手段之一。人脸识别技术可以被应用在多种不同安全领域,比如证件(如驾驶执照)、护照中的身份认证,数字楼进出的安全控制、智能卡的身份认证等。随着高速度、高性能计算机的出现,人脸识别方法有了重大突破,进入了真正的机器自动识别阶段。目前的人脸识别方法集中在:基于局部特征、模板匹配、弹性图匹配、特征脸的匹配、隐马尔科夫模型、多种分类器结合以及神经网络的人脸识别的研究中。
为了解决课堂考勤问题,本文设计并实现了一个基于人脸识别的课堂签到系统,将人脸识别技术与课堂签到融为一体,通过摄像头采集到的图像进行人脸识别,最终将课堂签到信息保存并汇总。
本系统是调用OpenCV开源库设计的一款人脸识别课堂签到软件,主要以LabVIEW为开发平台。OpenCV是一个基于BSD许可开源的计算机视觉和机器学习库,该库可运行在Linux、Windows、Android和MacOS操作系统上且包含成千上万优化过的算法,为各种计算机视觉应用提供了通用开发工具包。LabVIEW是美国国家仪器公司(NI)提供的一种程序开发环境,采用图形化编程语言和流程图的形式开发应用程序。其中IMAQVision工具包在LabVIEW中增加了机器视觉和图像处理的功能,提供了大量的图像预处理、图像分割、图像理解函数库和开发工具,用于完成灰度、彩色以及二值化图像的显示图像处理,用户可以很方便地进行图像采集分析,创建功能强大的嵌入式图像应用系统,与用传统的语言进行图像处理系统的开发相比,大幅度地降低了难度和开发周期。
本系统实现了一种单机带普通摄像头在教室场景下的人脸识别课堂签到的功能。通过LabVIEW动态链接库实现人脸识别算法的调用,该算法主要用于人脸检测、人脸对齐、特征提取等功能实现。LabVIEW主要用于简单图像处理、人脸信息匹配、人脸库信息管理、软件前面板设计、签到信息管理设计等。
系统基本框架如图1所示。首先需要建立一个人脸库,图片需用学生的基本信息命名,格式为班级+姓名+学号,然后依次通过人脸检测、人脸特征点定位、人脸特征值提取获得人脸库特征值二维数组,并获取学生基本信息数组,调用摄像头实时采集人脸图像,通过人脸检测、人脸特征点定位、人脸特征值提取获得实时人脸特征值一维数组,再经过人脸特征值相似度的比对获取匹配的人脸及其基本信息并在界面显示出来,最后通过对比班级名单信息,筛选出未签到人员名单。
图1 系统基本框架
首先将彩色图片灰度化,通过IMAQGetImageSize.vi和IMAQ ImageToArray.vi分别获取图像的大小(分辨率),提取像素至二维数组中,通过调用detection start函数(该函数通过调用动态链接库实现),通过返回参数判断是否检测到人脸,若检测到人脸则会返回人脸框坐标,可通过矩形框来标定人脸在图像中所处的位置。
首先将彩色图片灰度化,通过调用detection_start函数,分别得到两眼中心,鼻尖和两个嘴角这五个特征点的x和y坐标,以此坐标来对齐人脸,最后将其捆绑成簇数组以便于大量数据的提取与检索。
通过IMAQGetImageSize.vi和IMAQ ColorImageToArray.vi分别获取彩色图像大小(分辨率),提取彩色图像中的像素至R、G、B三个二维数组中,通过调用face_Identification函数,得到人脸特征值数组,该特征提取模块是基于深度卷积神经网络VIPLFaceNet的,引用之前获得的人脸特征点簇数组,直接采用VIPLFaceNet FC2层的2048个结点的输出。
人脸识别是通过1:N比对(N>=1),因此需要事先存储不同人脸特征数组及其基本信息,其理论基础是不同人脸由不同的特征组成,同一个人在不同照片里的脸,在特征空间中非常接近,不同人脸在特征空间中相聚较远,因此进行人脸识别的关键是提取出泛化能力强的特征。本系统通过使用余弦相似度算法来计算人脸特征值数组相似度,再通过设定的阈值和排序获得相似度最高的人脸信息。余弦相似度是一个向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫“余弦相似性”。余弦相似度原理如图2所示。
图2 余弦相似度原理图
通过余弦定理变形成以下形式:
如果向量a和b不是二维而是n维,上述余弦的计算法仍然正确。假定a和b是两个n维向量,则a与b的夹角的余弦等于
每个学生的人脸特征值是2048维向量,人脸库所有学生的人脸特征值构成一个二维数组,获取实时采集的人脸图像的特征值数组与人脸库中的特征值数组中的每一行数组进行余弦相似度比对,取出最大值对应的索引,从而获得出匹配到的学生基本信息。
考勤系统包括以下几个方面的功能:
读取人脸库中的图片获取24位像素图(即二维数组)以及学生基本信息,再通过IMAQArrayToColorImage.vi将其转换为image类型,通过调用动态链接库获取人脸库特征值数组。
当图像控件中的自动识别框中未检测到人脸时,录入按键处于Disenabled and Grayed Out模式下,只有当图像控件中的自动识别框中检测到人脸时,录入按键才处于 Enabled模式下,此时点击录入按键将会弹出对话框,输入需要录入学生的基本信息。若人脸库中存在相同的学生信息,可选择是否进行人脸图片信息替换。
在人脸库名单列表中进行选择要删除的学生,根据数组索引删除选择的学生的基本信息和特征值数组,并同时删除掉人脸库中该学生的全部信息,以致于之后运行不会存在该学生的信息。
当发现某位学生多次识别均无结果时,说明可能存在本人与人脸库中图片人脸相似度相差较大的情况,此时可修改该学生的人脸信息,重新录入该学生的人脸特征值,并更新到人脸库中。
选择本地文件夹批量载入人脸信息,比对新载入人员与原人脸库中的人脸信息是否存在相似度极高的情况,当出现该种情况时,将弹出对话框提示用户“添加库中存在与原人脸库中相同的人脸信息,是否全部进行替换”,选择“是”后将进行全部信息添加并替换相同信息或者仅添加未重复的信息。该模块减少了大量学生人脸信息录入的工作量,实现了批量录入人脸库信息的功能。批量载入人脸模块部分程序框图设计如图3所示。
图3 批量载入人脸模块设计
当人脸正对摄像头且处于图像控件中的自动识别框中时,将框出人脸区域并进行人脸信息自动匹配,并将匹配到的学生信息显示出来,若未出现学生信息,则表示未匹配到符合的人脸信息。
学生在签到后,通过人脸信息在特征值数组中的索引获取到与之相对应的学生的基本信息,实时更新签到学生信息以及签到时间,获取教室在相应课堂时间的班级以及该班级的学生名单,比对签到信息筛选出未签到的学生名单。
本系统在实际测试过程中准确率高达99%,在正常环境中当人面部戴上眼镜,做出表情变化、发型改变等一系列不遮挡大量面部细节的变化时,其人脸相似度均在80%~90%左右浮动。经反复测试,该考勤系统能够很好地应用于实际教室场景中,但系统仍然存在一些问题。如:当人脸角度偏转较大时,无法准确检测到人脸位置;当环境光线较暗时,人脸识别相似度会有一定程度的下降,导致无有效的匹配结果。
本文介绍了一种基于LabVIEW的人脸识别智能考勤系统,该系统具有精度较好,效率较高的优点,能够简单地应用于教室场景下。通过动态链接库对算法进行调用,在LabVIEW上实现了简单的图像处理与学生签到信息的管理,相较于纸质签到信息记录,提高了课堂点名的效率,实现了签到信息自动保存的功能。