宋亚锋,钟 锐,王 晨
(赣南师范大学 数学与计算机科学学院,江西 赣州 341000)
在学校教育中,课堂考勤是了解学生学习状态,保证教学质量的重要保障.目前学校的考勤大多采用传统点名、线上打卡以及人脸打卡等方式.具体的考勤实现方式有:文献[1]实现的在线点名软件,采用实名化的方式来杜绝代替考勤的现象,但依然是采用点名的方式进行考勤,效率问题没有得到解决.文献[2]基于人脸识别提出的移动考勤系统,极大的提高考勤效率,基本能做到实时考勤,但在考勤的准确度上有所欠缺,容易出现漏检误检的情况.文献[3]提出的人脸识别会议考勤系统,该考勤系统只适用于人数较少的会议场景,无法适用于人数众多的高校课堂.尽管以上课堂考勤方式只是在考勤准确率或效率方面具有一定优势,然而在实际应用中的课堂考勤系统,应在实时性和准确性方面同时具有较好的性能,只有这样的系统才具有较好的实用价值.
准确的身份验证是考勤系统的关键,在目前众多的身份验证技术中,人脸识别以其无接触性、高效性以及难以伪造等优势被广泛应用,特别是近年来深度学习技术的快速发展,人脸识别的准确度得到了前所未有的提高,如:文献[4]提出的DeepFace模型首次采用了深度学习方法进行人脸识别,在识别准确度上远远超越了以往的非深度学习人脸识别方法.文献[5]提出的FaceNet模型利用三元组损失替代原来的SoftMax损失,进一步提高了人脸识别的准确度.文献[6-7]提出的SphereFace和ArcFace也是通过改进损失函数来提升人脸识别性能的模型.以上人脸识别算法只能在公共数据集和限制性场景中实现较高的人脸识别率,在复杂的非限制性场景中还难以取得令人满意的结果.特别是在高校课堂中(如:公共课等),学生人数多,环境中存在各种复杂的面部姿态变化、光照不足、图像分辨率低、遮挡等多种干扰因素,若直接使用上述人脸识别算法对教室监控图像进行人脸识别,将出现严重的漏识别和误识别的问题,无法满足课堂考勤的需求.
针对现有课堂考勤系统所存在准确度不高以及实时性不足的问题,本文受到文献 [8]中的无感知课堂考勤方法的启发,提出一种基于多摄像头(Multi Camera,MC)的无感知实时课堂考勤方法.该方法是通过多个摄像头的方式来获取多个角度学生图像,以有效解决遮挡和远距离的问题,然后利用FaceNet模型对学生人脸进行识别考勤.学生在多摄像头的场景下不需要刻意望着一个摄像头,从而实现无感知考勤.由于多摄像头采集的图像中存在重复人脸,因此为了提高人脸识别效率,避免重复人脸的多次识别,本文提出粗筛和细筛相结合的方式去除重复人脸,提高系统的识别效率.
无感知课堂考勤指在学生上课时的无感知状态下对学生进行考勤,本文的无感知课堂考勤通过利用多摄像头采集学生上课图像的方式来实现,这样就不需要学生刻意望着同一个摄像头.本文的多摄像头无感知课堂考勤方法由人脸检测模块、比对筛选模块、人脸识别模块3个部分组成,该方法的总体框架如图1所示.
图1 总体框架结构图
从图1中可知,该方法的总体流程为:
第1步:利用多个摄像头(n1,n2,…,ni)从不同角度获取学生上课图像,再对所采集的图像进行人脸检测,从而获取人脸样本集(a1,a2,…,am).
第2步:将人脸样本集放入比对筛选模块,通过LBP特征粗筛和深度特征细筛相结合的方式去除重复的人脸样本,比对融合时采用两两比对来实现.
第3步:将去除重复人脸后的人脸样本集放进人脸识别模块进行识别,识别结果记录在excel考勤记录表中,并在每次考勤完后更新考勤记录表.
为了能够实现高效准确的人脸检测,本文在人脸检测模块中采用MTCNN算法框架[9]进行人脸检测.MTCNN框架是基于人脸对齐和人脸检测的内在相关性提出的一个深度级联多任务框架,在进行人脸检测时具有较高的准确性和实时性,算法的整体检测流程如图2所示.
图2 MTCNN检测流程
图2 (a)是教室中采集的课堂场景图像,图中部分学生人脸图像存在分辨率低以及遮挡等干扰因素.图2(b)为使用MTCNN人脸检测后的结果图,图中的低分辨率人脸和遮挡人脸无法进行有效检测.为了解决该问题,本文使用多个摄像头从不同角度获取学生图像,来获取课堂中所有学生的人脸图像.
由于多个摄像头所采集的课堂场景图像中存在着大量重复人脸,若直接对图像样本进行识别,将出现重复人脸多次识别的问题.为了解决该问题,本文采用初筛和细筛相结合的比对方法,对重复人脸进行比对筛选,以此来提高人脸识别的效率,使考勤系统具有更好的实时性,具体的实现方法如图3所示.
图3 比对筛选模块
从图3中可以看出,最初每个学生有若干张重复样本,在粗筛这一阶段通过 LBP特征提取并使用欧式距离进行特征比对,当两两比对的样本特征距离小于所设定的阈值时,则将这两个样本判断为同一人脸.为了进一步提高重复样本的筛选精度,本文采用深度卷积特征来进一步筛选粗筛后的重复样本,从而得到具有较少重复率的人脸样本集.欧式距离的具体计算方法如式(1)所示:
(1)
式中X和Y表示比对筛选的人脸样本,每个人脸样本的特征有n维,xi和yi为待筛选人脸样本的第i维特征.3.2.1 LBP特征粗筛
本文采用LBP特征[10]对人脸样本进行粗筛,由于LBP特征提取的人脸特征属于脸部的浅层特征,具有特征维数低、效率高等优势,利用该特征能够快速的筛除大量显著的重复样本 .该特征的提取方法如式(2)所示:
(2)
式中(xc,yc)代表图像中心像素点;I(p)表示第p个像素点的灰度值,I(c)代表中心像素点的灰度值,LBP特征提取方法如图4所示.
图4 LBP特征提取
从图4中可以看出,将图像中每一个像素与中心像素相减,大于中心像素的为1,否则就为0,这样就会形成一个8位的二进制数,也就是该中心像素的LBP值,此时该图像所提取的 LBP特征维数为28=256维,具有较低的维数.使用LBP特征粗筛可以通过人脸的浅层特征筛选显著的重复样本,大约60%.
3.2.2 细筛
为了在不影响筛选效率的前提下来提高筛选的精度,本文使用精简的卷积神经网络进行特征细筛,该网络由4个卷积层和1个池化层的构成,该网络的具体框架结构如图5所示.
图5 CNN网络框架
从图5中可以看出,该网络每个卷积层的卷积核都为3*3,步长也均为1,采用RELU激活函数进行激活,池化层使用最大池化,步长为2.深度特征提取方法如式(3)所示.
CNNi(X)=max(0,Wi*CNNi-1(X)+Bi)
(3)
式中i为当前卷积层的编号,Wi表示第i个卷积层中卷积核参数,其中包括卷积核个数和卷积核尺寸,Bi为当前所在卷积层的偏置,最后本文应用Relu(max(0,x))函数作为各卷积层的激活函数.对粗筛后的人脸样本提取完深度特征后,通过相似度度量的方法来实现比对筛选,如果相似度大于这个阈值则判定为同一人脸,此时便去除掉该样本,阈值大小通过实验确定.通过简单的神经网络,可以从剩下的40%重复样本中简单快速的进行进一步筛选,这可以大大提高人脸识别的时间效率,但是还会剩下难以筛选的人脸样本会进入到识别阶段,不过与不经过筛选的人脸识别方法比较,效率得到了明显的提高.
由于课堂考勤非常注重实时性能,这就需要我们对图像人脸进行快速准确的识别,前面对人脸进行比对筛选也是如此.因此本文选择了识别速度较快且识别准确也不低的FaceNet模型作为整个课堂考勤系统的人脸识别模型.FaceNet模型通过把原来的SoftMax损失替换为三元组损失来提升人脸识别的准确度和速度,具体的模型框架如图6所示.
图6 FaceNet模型框架
三元组损失是每次在训练数据中抽出3张人脸样本,分别为锚点、正样本和负样本,使得锚点到正样本距离小于到负样本的距离,如式(4)所示.
(4)
(5)
为了验证基于多摄像头的无感知实时课堂考勤方法的性能,本文在实际应用场景中对筛选模块和整个考勤方法进行对比实验.实验中所使用的数据来自实际课堂场景,采集了10张教室中不同角度的场景图像,场景中共有17名学生,通过人脸检测算法,共计得到168张人脸图像.每个学生选择3至5张较为正面的人脸图像用于构造训练集,剩余100张人脸用于构造测试集,实验数据集如图7所示.在训练模型时通过Casia预训练的模型作为本文考勤方法的预训练模型,并在模型训练时通过翻转、仿射变换、缩放等操作对训练集中的样本进行扩充,以此来防止模型训练时由于数据量不足出现的欠拟合问题.本文使用的实验平台为个人PC,具体硬件配置为: i5 10400 CPU、16G运行内存,虚拟环境和软件开发平台分别为tensorflow2.0.1和PyCharm Community Edition 2022.1.
图7 实验数据集
测试集中共有100个人脸样本,共有17名学生,数据集中含有87张重复人脸样本.为了更好的去除测试集中的重复样本,本文利用LBP+CNN来对人脸进行比对筛选,从而进一步提高考勤方法的高效实时性.本文在实际场景中将该方法与其他人脸比对筛选方法进行对比实验来验证LBP+CNN比对筛选方法的准确性和实时性.
在进行比对筛选实验时,首先单独使用HOG[11]、LBP和CNN深度卷积特征进行独立特征筛选实验.然后采用粗筛和细筛相结合的方式进行重复人脸筛除,即采用LBP和HOG等浅层特征进行粗筛,使用CNN卷积特征进行细筛,实验的具体对比结果如表1所示.
表1 LBP+CNN与HOG+CNN的对比实验
从表1中可以看出,使用浅层特征进行单轮比对筛选,其准确度没有达到理想中的效果,其主要原因是浅层特征算法无法有效提取人脸图像中具有判别特性的特征,深度卷积网络具有较好的特征抽象能力,但网络模型的构建和训练较为复杂,因此直接使用CNN深度特征进行比对筛选,需要耗费大量的时间,为了确保筛选的准确度和筛选效率,本文使用LBP特征与CNN深度特征相结合的筛选方式来去除重复的人脸样本.
通过LBP+CNN方法对人脸样本进行比对筛选后,去除了多个摄像头采集的图像中的重复人脸.然后将比对筛选后的人脸样本放入FaceNet人脸识别模型中进行识别考勤.图8为考勤方法所统计到的到课学生图像和相应的人脸标签.
图8 FaceNet识别结果
从图8中可知,用于实验的17名学生都可以识别到,这说明该方法应用在实际场景中是可行的.为了能够更准确的评价方法的准确率和实时性,本文将文献[12-14]中的考勤方法与本文所提方法进行对比实验,总共进行了10次实验来计算本文方法的平均识别率,实验结果如表2所示.
表2 考勤系统性能对比
从表2中数据可知,本文所提的无感知考勤方法在准确度和时间效率上都要明显优于文献[12-14]所提的考勤方法,主要是由于本文采用多摄像进行图像采集,能够获取所有到课学生的人脸图像.其他方法只有一个摄像头,当人脸图像中出现低分辨率和遮挡等干扰因素时,将导致系统识别失败.由于本文在进行实验是在配置不高的PC端进行的,性能上达不到实时的效果.对此,在配置为RTX3060 8GB的云端GPU上进行了测试实验,考勤时间缩减到了5 s,满足了课堂考勤所需的实时性能,云端GPU实验结果如表3所示.
表3 云端GPU实验性能对比
以上实验结果说明本文所提的无感知考勤方法对提升课堂考勤的性能上有着较大的帮助,但是会因为实验终端配置不同而不同,这就要求我们在使用人脸识别进行考勤时需要注意终端的使用.
本文提出一种基于多摄像头的无感知实时课堂考勤方法,该方法分为人脸检测、比对筛选、人脸识别3大模块.首先通过多个摄像头获取学生上课图像来达到无感知考勤,其次通过LBP粗筛+CNN细筛方法来去除图像中的重复人脸样本,提高系统的识别效率.经过多次实验的验证,这种比对筛选方法能有效减少FaceNet人脸识别的样本量,从而使课堂考勤更具高效实时性.