黄丽媛,吴南寿,王雪花,曾亚光,韩定安,周月霞
(1.佛山科学技术学院 物理与光电工程学院;2.佛山科学技术学院 电子信息工程学院,广东 佛山 528200)
为了实现课堂教学考勤的自动化,部分高校使用考勤系统来替代人工考勤。常见的考勤系统有射频卡考勤系统、指纹考勤系统和人脸识别考勤系统。与射频卡考勤系统和指纹考勤系统相比,人脸识别考勤系统具有非接触、图像获取简单、在实际应用场景中可以同时进行多个人脸的检测与识别等优点,是一种友好的、直观的、便利的技术[1,2]。目前大多数高校教室里都配备有监测相机,可以利用这些监测相机拍摄课堂照片,通过机器学习的算法对这些拍摄的图像进行人脸识别,实现对上课学生和老师的自动考勤。
图1 算法流程图Fig.1 Algorithm flowchart
在人脸识别考勤时,学生会出现抬头、低头、侧脸等人脸角度变化,以及人脸表情变化和人脸被前面同学遮挡的现象,这些现象是影响人脸识别算法识别准确率的关键因素。为了解决人脸角度、表情变化和人脸部分遮挡导致人脸识别算法识别不准的问题,本文提出一种基于特征向量提取和SVM(Support Vector Machine)分类器的人脸识别方法,该方法包括用于提取人脸特征向量的深度神经网络模型和用于识别的SVM分类器。首先采用三元组损失函数(triplet loss)[3]作为目标函数,训练深度神经网络模型直接学习从人脸图像到欧氏空间的映射,使人脸图像输入训练好的神经网络模型后直接输出人脸特征向量;然后将人脸特征向量作为SVM分类器的输入并训练;最后将训练好的分类器用于课堂人脸识别考勤。在对12名学生同时进行实际课堂考勤的实验中,本文提出的方法在人脸角度、表情变化和人脸部分遮挡的情况下能够达到92.68%的人脸识别准确率。说明本文提出的基于特征向量提取和SVM分类器的人脸识别方法可以实现准确全面的课堂考勤。
本文提出的基于特征向量提取和SVM分类器的人脸识别方法流程如图1所示。在人脸识别前,先使用摄像机采集12名学生的视频图像,再使用MTCNN人脸检测器[4]截取人脸区域图像并保存,用训练好的深度神经网络模型提取人脸特征向量,最后将人脸特征向量输入SVM分类器进行训练。在人脸识别阶段,教室前端的摄像机每隔5min拍摄一张学生上课的图像并保存到服务器,人脸识别的程序在服务器上运行。人脸识别前,同样使用MTCNN人脸检测器截取考勤图像中的人脸区域图像并保存。然后将人脸图像输入深度神经网络模型得到人脸特征向量,并使用训练好的SVM分类器进行识别。最后将学生出勤情况写入Excel中。其中,使用MTCNN进行人脸检测的优势是:该算法对人脸姿态变化和极端光照影响具有一定的鲁棒性;算法运行速度快,实时性能良好。
本文使用Inception-ResNet-v1[5]残差神经网络(Residual neural network)模型[6]提取人脸特征向量。该模型的训练集采用VGGFace2数据集[7]。其中,三元组损失函数作为目标函数用于该模型的训练。三元组损失函数中规定同一个人的两张图像为正样本,不同人的两张图像为负样本。通过训练网络模型最小化正样本特征向量之间的欧式距离的同时增加负样本特征向量之间的欧式距离,从而使人脸特征向量之间的欧式距离直接代表人脸相似度。三元组损失函数为:
公式(1)中的a(anchor)和p(positive)分别表示同一个人的两张不同图像,这两张图像表示一个正样本图像对;a(anchor)和n(positive)分别表示不同人的两张不同图像,这两张图像表示一个负样本图像对;α为阈值;xa和xp表示正样本的人脸特征向量;xa和xp表示负样本的人脸特征向量。
人脸识别是一个多分类问题,本文的SVM分类器训练采用一对一方法(OvO)。要识别K名学生,即K类问题,OvO直接训练出k(k-1)/2个二分类模型,每个模型都只从训练集中接受两个类的样本进行训练。模型Gij(i<j)将接受且仅接受所有第i类和第j类的样本,并尝试通过训练来区分开第i类和第j类;同时,假设Ci代表第i类空间样本,有以下公式[8]
当模型Gij训练好后,OvO将通过投票来进行决策,在k(k-1)/2次中得票最多的类为模型预测结果。
本文所有算法程序在64位Windows 10 操作系统(Intel(R)Core(TM)i7 3.60GHz,CPU 3.60GHz,16.0GB RAM)上运行,使用Python语言编写。本文的算法程序调用了GPU(NVIDIA GeForce GTX 1060 6GB)加速。
本文对12名学生进行了实际课堂考勤实验。使用摄像机对在座学生拍照8张(每张考勤图像大小为1920×1080)。在人脸识别前,本文对12名学生每人选取30张左右的人脸图像,所有训练集人脸图像的特征提取和SVM分类器训练过程用时约10.16s。对8张课堂考勤图像进行人脸识别,总用时约10.67s。考勤图之一的人脸识别结果如图2所示,其中被检测出的人脸用绿色矩形框框出,洋红色英文表示被识别出的学生的代号。
图2 课堂考勤图像识别结果图之一Fig.2 One of the result diagrams of classroom attendance image recognition
在考勤过程中,学生的人脸普遍存在角度、表情的变化和人脸部分遮挡的现象。图3展示本文算法能够准确识别对应学生的部分人脸图像。其中,人脸角度变化主要包括抬头、低头、侧脸,表情变化主要有中性脸、高兴、惊奇;人脸部分遮挡主要包括脸颊、眼睛、嘴唇、鼻子被前面的学生遮挡。本文算法能够准确识别具有一定角度变化和表情变化的人脸,对于半边脸被遮挡的学生也具有一定的识别能力。
本文提出了一种基于特征向量提取和SVM分类器的人脸识别方法用于课堂人脸识别考勤,在含有人脸角度、表情变化和人脸部分遮挡的情况下达到92.68%的人脸识别准确率。该方法首先利用人脸检测器截取人脸区域图像,将人脸图像输入深度神经网络模型中得到人脸特征向量,然后将人脸特征向量作为SVM分类器的输入并训练分类器,最后将训练好的SVM分类器进行人脸识别。值得注意的是,在采集学生的人脸视频图像时,对于佩戴眼镜的学生,需要同时录入佩戴眼镜和没戴眼镜时的图像以保证识别准确率;另外,对学生人脸数据集进行图像增强可以提升算法对人脸姿态变化和光照变化的鲁棒性。
图3 准确识别的部分人脸角度、表情变化和人脸部分遮挡的图像Fig.3 Accurately identified parts of the face angle, expression changes and partially obscured images of the human face