1 绪论
1.1 课题研究的背景及意义
在高校的学习中,学生们的教室考勤率非常重要,它与学生的期末考试成绩挂钩,可以客观的分析出学生们各
学科的学习状态;同时它也可以对教师教学质量的评价做出参考,对高校的教学研究提供支持;并且,教室考勤这
一行为可以减少学生逃课的不良现象,建设优良的学风。因此,教室考勤是教学中的重要环节,不可缺少。目前来
看,大部分高校的教室考勤方式仍旧是班干部点学生人数,或由教师或者班委点名时学生举手或起立答到,或者传
递纸条签字的方式,但这些方式存在着不足之处,不仅占用了教师的教学时间,扰乱了课堂的正常秩序,而且容易
出现学生替答或者替签的现象,并且在一些人数比较多的课堂中,教师因时间关系抽查点名,还容易使学生产生侥
幸心理,不利于学生的学习与心理发展,所以通过这些方式进行考勤统计不是很可靠,也没有对学生起到一个良好
的监督。随着互联网技术的飞速发展,也涌现出了其他方式的课堂考勤:手机应用软件,例如蓝墨云APP,学生进入
班级群,通过输入老师发放的动态码进行签到,学习通APP,通过老师开放打卡时间进行签到,但这些都需要学生带
手机进入课堂,并且在宿舍或者其他地方也能签到成功;射频卡签到,容易出现丢失或者损坏的问题,同样也有代
签的隐患;指纹识别签到,每个学生依次按压指纹,虽然有效避免了同学代签的情况,但因它接触式的识别方式会
存有卫生隐患,若手指有磨损会影响识别结果。
为解决上述提到的现象,教师考勤可以采用人脸识别技术。人工智能为当今时代的潮流,人脸识别技术其实已
经广泛的应用到各个场景中了,像火车站、高铁站的安检、支付宝、微信的刷脸支付、小区的门禁等等。因为每个
人的人脸都是是独一无二的,它无法被替代,即使双胞胎也不例外。因此,将人脸识别技术应用到教室考勤中,杜
绝了代签、替签的不良风气,避免了接触式带来的卫生隐患,并解决了挨个点名方式的考勤所带来的耗费大量时间
的问题,同时也能够让教师更加专心于教学,让学生更加重视教室的上课纪律。
1.2 人脸识别在国内外的发展及现状
人脸识别技术不仅是一项发展起源较早的技术,而且也是一项充满生命力和科学感染力的新兴技术。随着人工
智能、大数据、云计算的创新与发展,以及技术变革速度的加快,人脸识别技术也得到了快速的发展,因此便产生
了一系列相应的技术产品。对于此项技术,最早出现在二十世纪五十年代,经过科研人员坚持不懈的探索与研究,
此技术日益完善。该项技术起初并不是应用于计算机方向,而是心理学方向,也逐渐有从生物角度研究其神奇之处
的,但与人们现在所认知的人脸识别技术真正有较多关联的研究,其实是出现在20世纪70年代,因此人脸识别技术
的发展与研究可以归为三个方面,如下表1-1所示:
1.3 教室考勤方式的发展及现状
在互联网和人工智能的飞速发展下,为了能够更好的改善教室考勤所产生的一系列问题,关于教室考勤的方式
层出不穷,从最初的人工考勤,到利用打孔机的插卡式考勤,到扫描条形码式考勤,再到磁卡式考勤,最后到基于
人生物特征的考勤(声音、指纹、虹膜、人脸等)[2],离不开开发人员的逐步研究与探索。现如今,无论是国内还
是国外的高校,主要的教室考勤方式有如下几种:
(1)通过校园IC卡签到,内部嵌入射频卡,在考勤设备上刷卡实现签到,虽然它的成本低,并减少了耗时,但
容易损坏及丢失。
(2)通过手机应用程序扫描二维码签到[1],老师将二维码粘贴在课件上,学生们扫描其进签到,这种方式虽
然很快捷,但并不能保证全部学生都进入了教室上课,因为二维码很容易被同学们拍照转发,不在场的同学依然可
以识别二维码进行考勤。
(3)通过随机码签到,例如蓝墨云班课程序,老师通过程序产生一个随机数并设置一定的签到时间,学生在指
定的时间内通过输入该随机数进行签到,该方法也同样容易被学生转发,并且学生还能够用多个设备进行考勤,使
得考勤数据不准确。
(4)通过对指纹识别签到,需要提前对同学们的指纹进行采集,在每次上课之前按压指纹打卡,这就需要教学
楼的每间教室都安装指纹识别的设备,成本太高,并且存在卫生隐患,尤其在当今疫情下不太可取。
(5)通过对人脸识别签到,用图像采集设备来获取人脸,每次上课对人脸进行比对识别,具有非接触性。
1.4 本文主要研究内容
本文对于目前教室考勤的需求,在MATLAB软件上,运用AdaBoots人脸检测、PCA人脸识别算法仿真设计学生教
室考勤系统,以便解决在考勤过程中造成的时间浪费,效率低下,影响课堂秩序与进度的一系列问题。该设计的主
要内容如下图1-1:
图1-1 系统流程图
(1)人脸定位检测
检测所获得的图像中是否有人脸的存在,若有则将人脸与其背景做出区分,并用矩形在图像中圈出人脸所在的
大概位置信息。
(2)人脸图像预处理
对上一步检测出的人脸图像进行预处理,如灰度变换、尺寸归一化等。
(3)人脸特征提取
对每个人不同表情姿态的人脸特征进行提取,存入到函数中,以便后续调用。
(4)人脸特征匹配
识别预处理后的人脸图像,将其特征与上步操作提取的特征进行配对,若相似度高,则证明此学生身份,并且
输出该学生信息。
1.5本文章节结构
本文的研究方向是基于MATLAB设计出的教室人脸考勤仿真系统,共七个章节。
第一章是绪论,主要介绍了教室人脸考勤方向的研究背景意义、人脸识别技术在国内外的发展以及教室考勤方
式的发展历程。
第二章为MATLAB软件简述,主要介绍了MATLAB软件的简介、特点及用户GUI界面。
第三章为基于Viola-Jones算法的人脸检测,主要介绍了该算法的原理及函数的应用。
第四章为人脸图像预处理,主要介绍了本文中使用到的图像预处理方法。
第五章为基于PCA的人脸识别,主要介绍了该算法的原理特点及步骤。
第六章为基于MATLAB的教室人脸考勤仿真设计,主要介绍了该设计的整体架构、功能流程及运行结果图。
第七章为总结与展望,主要总结了本设计中所用到的技术及克服的难点,展望该课题接下来可拓展的研究方
向。
2 MATLAB软件简介
2.1 引言
在上一章中,主要讨论教室人脸考勤的研究背景及意义,人脸识别技术的发展历史及现状,以及考勤方式的发
展及现状。本章节将介绍本论文研究的基于平台:MATLAB软件的相关介绍。
2.2 MATLAB软件概述
MATLAB的名称由MATrix和LABoratory两个单词的前三个字母组合而成的,20世纪70年代,美国新墨西哥大学计
算机科学系主任Cleve Moler为减轻学生编程计算的负担,用FORTRAN编写了最早的MATLAB,随后在1894年由
Little、Moler等合作成立的MathWorks公司把MATLAB正式推向了市场,90年代在数据分析专业软件领域独树一帜。
它是一款以数学计算为主的高级编程软件,提供了各种强大的数组运算功能用于对各种数据集合进行处理。
2.3 MATLAB特点及功能
(1)丰富的工具箱。如控制系统工具箱,包括时域、频域响应,根轨迹、极点配置等;符号数学工具箱,包括
微积分、线性代数、因式分解等;样条工具箱,包括曲线拟合及平滑、样条构造等;最优工具箱,包括线性规划、
二次规划、函数最大最小值等;统计工具箱,包括回归分析、主元分析等,这些工具箱为用户提供了超多实用工
具,方便用户选择,同时用户也可修改工具箱中的函数进行扩充添加。
(2)简单易操作的语言。Matlab语言是基于矩阵/数组的高级语言,是一种脚本解释型语言,无论是命令、函
数或变量,只要在命令窗口的提示符下键入并回车,它都予以解释执行,并且与其他编程语言相比,它的书写形式
更接近常规数学的表示,功能操作的指令函数由简单的英文单词表达,如清除功能由clear单词实现,即使不了解编
程细节,也能得出高效的代码。
(3)强大的计算能力。许多大型项目中用到的计算函数都囊括其中,这些函数集中有最简单最基本的加减乘除
函数,也有应用于信号控制处理、3D建模绘图领域中的的傅里叶变换、拉普拉斯变换、牛顿莱布尼茨定理、高斯定
理等复杂函数,用户可根据需求,调用函数来使用。
2.4 GUI界面
GUI是MATLAB软件中的用户可视化交互工具,它可以通过图标的方式来展示程序所编写的界面,使得用户通过
鼠标点击相应的功能按钮便可操作程序。在命令窗口输入“guide”新建GUI界面,在制作界面中使用布局编辑器拖
动添加列表框按钮、文本框、编辑框等控件;使用属性编辑器来设置控件属性,如更改控件的名称、颜色大小等,
右键点击控件进入代码编辑界面,定义控件相应功能的调用函数。
3 基于Viola-Jones算法的人脸检测
3.1 引言
人脸识别功能的首要步骤是对人脸进行检测,确定输入的图像中是否存在人的面貌特征,若存在便用矩形框标
注并返回其位置大小。检测人脸的方法包含两大类,一类是基于知识的方法,将图像进行分割,根据人脸的五官特
征及器官之间的位置关系来判断是否为人脸;另一类是基于统计的方法,把人的面貌看作整体,从大量人脸图像样
本构造的人脸模式空间中找出相似度,来判断是否为人脸。详细方法如下
3.2 算法原理
Viola-Jones算法是由Paul Viola和Michael Jones两位合作提出的一种物体检测算法,并于2001年以《Rapid
Object Detection using a Boosted Cascade of Simple Features》的名称发表在International Journal of
Computer Vision上,这种算法原理简单,耗费时间少,因此受到了广大学者的追捧。该算法的主要核心思想为四个
方面:通过Haar-like特征描述人脸的共有属性;通过积分图快速获取特征;使用Adaboost分类器进行训练;使用
cascade分类器快速将非人脸窗口排除。
Haar-like特征最早由Papageorgiou C.等提出(《A general framework for object detection》),Rainer
Lienhart 和Jochen Maydt在V-J算法提出之后又通过对角特征对其进行了延申(《An extended set of Haar-like
features for rapid object detection》)。Haar特征是计算机视觉领域中一种常用的特征描述算子,本文用来描
述人脸的共有属性,可以理解为只有黑白两种矩形的卷积模板,比如鼻子一般属于脸部的高光区域,会比周围的脸
颊要亮很多,其模板的Haar特征值便为鼻子部分的像素脸颊部分的像素之和。
Adaboost分类器是一种迭代的算法,根据同一个训练集训练出不同的分类器,然后将其中类似于分类能力不是
特别强,正确概率略低的弱分类器集合起来,构成强分类器。
cascade分类器就是将多个强分类器进行级联组成一个级联分类系统,在此系统中,输入的图像依次通过这几个
强分类器,前期通过比较简单,可筛选掉比较明显的非人脸图像,后期便逐渐复杂,因为只有经过前期强分类器筛
选出的图像才能进入后期检测,当图像通过整个系统的强分类器时,证明此图像中包含人脸。
3.3 函数应用
Viola-Jones算法在Matlab软件中应用时,已经对人的正侧脸,上半身、脸部各器官等做好了训练,因此,本文
的人脸检测功能将使用工具箱中已经训练好的级联分类器,直接调用Vision.CascadeObjectDetector函数来实现人
脸的检测,并将识别出的人脸区域用红色矩形框起来。人脸检测结果如下图所示。
图3-2人脸检测定位图像
4 人脸图像预处理
4.1 引言
在实际环境中,图像采集会受到不同因素的影响,如太阳光线、灯光照射的强度,人脸与摄像头之间的距离长
短、角度大小,以及不同硬件设备的物理配置等,而这些因素或多或少都会对人脸识别的结果造成干扰,因此需要
对采集的图像数据进行预先处理,改善质量,使其达到统一的标准,以便于系统的识别。
4.2 人脸图像的灰度变换
一般采集到的人脸图像一般都是彩色图像,因彩色图像占用内存空间较大,不方便运用图像处理的算法进行操
作,所以需要将彩色图像转化成灰度图像,从而提高算法的运算速度。彩色图像一般用RGB三基色来表示,由红
(R)、蓝(B)、绿(G)这三种颜色按照不同的比例组合在 一起,色彩随机,公式如下:
Y=r[R]+g[G]+b[B] (4-1)
当三基色的r、g、b都为0时,Y表示黑色光,当r、g、b都为最大值255时,Y表示白色光,而灰度则表示为黑色
光到白色光之间不同级别的深度,灰度图像没有色彩信息,它的每个像素点只保留一个数值,只反映图像亮度,因
此灰度划分的越细致,重现的原灰度图越准确,经过灰度变换后的人脸图像在保留有了效特征信息的同时,也去除
了冗余的彩色信息,提高了识别的准确度。如下图所示为彩色图像灰度变换的结果。
图4-1 人脸图像灰度变换图
4.3 人脸图像的归一化
由于人脸图像在获取的过程中会有拍摄角度不同、镜头与人脸之间的距离不同等问题,导致人脸图像的大小、
倾斜角度等情况的出现,因此我们要把图像的大小、偏移角度等进行统一,采用图像尺寸归一化的方法,即将图像
做几何校正。对于拍摄角度不同的图像归一化,要使图像人脸的眼睛在水平线上,对图像进行适当旋转,把多余地
方裁剪掉。对于人脸大小不同的图像需将图像按长宽比例缩放即可。归一化后的图像如下图所示。
图4-2 人脸图像归一化
5 基于PCA的人脸识别
5.1 引言
人脸识别中最核心的部分就是人脸匹配,人脸匹配成功与否的关键所在即是否能够准确的提取出人的面部特
征。对于人面部特征提取的方法主要有基于线性分解的独立分量分析法ICA、基于投影的线性判别分析法LDA、基于
统计学的主成分分析法PCA。目前使用最广泛的方法为PCA,它在降维和特征提取两部分取得的效果很好,因此本章
节主要研究PCA算法。
5.2 PCA概念
PCA(Principal Component Analysis),即主成分分析法,是一种非监督的机器学习算法,它最早于1901年被
Truk和Pentland提出,直到20世纪90年代被引入到人脸图像的表示与识别中来,用于探索高维数据结构。它是一种
建立在适量表示的统计特性基础上的线性变换,旨在利用降维的思想,把高维空间上的数据映射到低维空间中去,
将多元数据的特征在低维空间里直观地表示出来。举一个简单的例子,假设在三维空间中有一个球体,使它在坐标
轴方向投影(即降维处理),其变成了二维空间的一个圆形,那么在三维球体经投影变成二维圆形的过程中,丢失
了球的体积这一性质,而保留了球是圆的这一性质,更加直观。
5.3 人脸识别
PCA人脸识别共分为四个步骤:第一步使用K-L变换得到图像的特征值和特征向量;第二步利用SVD定理将特征值
构造新的低维正交基空间;第三步将待识别图像和系统库中的图片投影到特征空间;第四步用欧式距离计算与待识
别图像距离最近的库中图片,完成此识别过程,下面详细介绍人脸识别各过程用到的算法。
5.3.1 K-L变换原理
主成分分析(PCA)是一种多变量分析技术,它的基础是Kauhunen-Loeve变换(K-L变换),是一种常用的正交变
换[8]。
定义X为n维的随机向量:
(5-1)
上式中:αi为加权系数,φi为基向量,当Φ=(φ1,φ2 …,φn ),
α=(α1,α2 …,αn)T时可将X表示为矩阵形式:
X=(φ1,φ2 …,φn ) (α1,α2 …,αn)T= Φα (5-2)
取基向量为正交向量,即:
根据定义,Φ为正交矩阵,即:
ΦTΦ=I (5-4)
将公式(5-2)两边同时乘以ΦT,得:
XΦT=α (5-5)
即:
XΦiT=αi (i=1,2,…,n) (5-6)
对Φ中的向量进行约束,设随机向量X的总体自相关的矩阵为:
R=E[XTX] (5-7)
又要求向量α各个分量间互不相关,即满足以下关系:
矩阵形式即:
=Λ (5-10)
则:
R=ΦΛΦT (5-11)
再将公式(5-10)两边同时乘以Φ,得:
RΦ=ΦΛΦTΦ=ΦΛ (5-12)
即:
RΦi=λiΦi (i=1,2,…,n) (5-13)
由公式(5-12)以及特征值的定义可知,λi 是矩阵R的特征值,Φi 是特征值对应的特征向量。因为R矩阵是
实对称阵,则Φ向量集中任意向量具有正交性。
综上,K-L变换实现了把高维数据向低维数据投影的转换,并且去除了一些相关性的数据干扰,对原来的复杂数
据进行了简化,并最大程度保留了原始数据的最大特征。
5.3.2 SVD定理
通过K-L变换获得样本的特征值和特征向量之后,其结果大多数为高维矩阵,并且所需计算量极大。而SVD定理
可以轻松得到任意矩阵的满秩分解,从而对数据进行压缩,因此便通过SVD定理来解决上述问题。
假设A是一个MN的矩阵,那么得到的U是一个MM的方阵,∑是一个
MN的矩阵,VT是一个NN的矩阵,公式如下:
公式中r是一个远小于m、n的数,可看成
r越接近于n,则相乘的结果越接近于A,而这三个矩阵的面积之和远远小于原始的矩阵A,便得到了压缩空间的效
果。
5.3.3欧式函数
欧式距离[16](Eudidean distance)是指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点
到原点的距离)。欧式距离看作是衡量物质的相似程度的依据,两个点的距离差越小就越相似。
N维空间的距离公式可表示为:
(5-18)
6 基于MATLAB的教室人脸考勤系统的设计与仿真
6.1 界面总体设计
在MATLAB中搭建GUI界面包括:控件添加、属性设置、回调函数设置,本设计通过鼠标点击按钮来实现相应操
作,该设计的GUI界面如图6-1所示:
图6-1 总体设计
6.2 系统框架设计
本设计主要有六部分组成:读入人脸图像、人脸检测、图像预处理、人脸识别、输出识别信息、考勤统计,其
设计框架如下图6-2所示:
图6-2 设计框架
。
首先,需要分别建立他们的人脸库,后续运用PCA算法从人脸库中提取特征值信息,进行个人信息的匹配。为方
便特征信息的提取,需将图片的大小格式进行统一,全部更改为92*112的分辨率。如下图所示为学号为17040441006
杨幂(女)的人脸库,其他同学同上操作,在此不一一列举。
图6-3 人脸库
(5)打卡统计
如上操作,当学号为17040441001、17040441002、17040441003、17040441004、17040441005、17040441006的
六名同学都打完卡后,点击打卡统计按钮,显示本次课程的打卡结果,如下图所示。
图6-8 打卡统计结果
(6)出勤率统计
如若该课程每周上5节课,而学号为17040441001、17040441002、17040441003、17040441004、17040441005、
17040441006的同学分别打卡了1次、2次、3次、4次、0次、5次,点击出勤率统计那么统计他们的周出勤率结果如下
图所示。
图6-9 周出勤率统计结果
7 总结与展望
此次毕业设计以高校教室考勤现状为研究点,为解决传统考勤方式所引起的耗时长、效率低等问题,在MATLAB
平台上,设计出了一个教室人脸考勤仿真系统,该系统界面功能比较完整,识别准确率较高,较好的解决了传统考
勤所带来的弊端问题。本系统应用的主要技术及步骤有,先建立好要识别人脸的人脸库,然后对测试的图像进行图
像灰度变换、归一化操作,使得图像容易识别,接着运用AdaBoots检测算法检测出人脸,运用PCA识别算法、欧氏距
离对图像进行识别,最后得出识别结果及打卡时间,并统计考勤结果。
在写论文的过程中,通过不断查阅资料,搜索相关知识,使得我对Matlab这款强大的软件及论文中涉及到的相
关算法的原理及公式有了更深刻的了解。通过不断努力,此次设计的功能基本得到了实现,但美中不足的是,本设
计只适用于小班考勤,人数太多系统容易崩,造成识别结果不准确,未能把MATLAB软件和数据库软件连接起来,以
储存多数学生的考勤情况,也未能实现考勤数据以EXCEL形式保存的功能,因此还需要进一步的研究与开发。