【学习笔记】基于人脸识别的课堂点名系统

  摘要:传统的课堂点名方法效率低下,浪费大量时间。提出基于人脸识别的课堂点名系统,大大提高了课堂点名的效率。本系统提供图像和摄像识别点名,可一次识别多个人脸,同时该系统也对系统难以识别的学生提供手动签到。系统运用OpenCV人脸识别开源库做算法部分,用Qt、C++实现界面交互。

0引言

  人脸识别技术是利用计算机基于人的脸部特征进行人脸图像分析,并从中提取出所蕴涵的有效身份特征信息用以识别人的身份的技术[1]。本系统结合校园的需求,将人脸识别运用于课堂点名中。

1系统设计背景

  在高校的教学和学生工作管理过程中,课堂点名是一项重要的内容。而传统的点名方式效率太低,教师工作量大,花费时间多,并且传统点名记录的数据不易利用。随着科技的进步,人脸识别走进了日常生活中,学校开始出现人脸考勤机,但考勤机点名依旧是单个识别,效率依旧不高。本系统运用人脸识别技术,开发可一次识别多人脸的课堂点名系统,大大提高了点名的效率。

2系统设计中的关键技术

  2.1基于AdaBoost的人脸检测

  AdaBoost算法是通过训练大量图像得到弱分类器,将这些弱分类器根据一定的原则组合起来,形成强分类器,再将多个强分类器进行级联,形成一个多层分类器,如果图像中的某个区域能够通过这个多层分类器,就判定这个区域是人脸[2]。在2001年,VIOLA和JONES M J对AdaBoost进一步修改,运用积分图减小计算量,快速计算出Haarlike特征数值[3]。VIOLA P的算法在人脸检测中取得了突破性的进展,被广泛运用于人脸识别中。本系统采用VIOLA P的算法实现人脸检测部分。

  2.2基于EigenFace的人脸识别

  EigenFace(特征脸)方法是基于主成分分析(Principal Component Analysis,PAC)的一种人脸识别技术,该方法识别率高,识别速度快。特征脸方法将包含人脸的图像区域看作一种随机向量,采用K-L变换(Karhunen Loeve expansion)获得其正交基底。由于对应较大特征值的基底具有与人脸相似的形状,故称之为特征脸“EigenFace”[4]。本系统能实时检测人脸并对比识别,考虑到性能,选用EigenFace方法作为识别算法。EigenFace的人脸识别包括两个部分:训练部分和识别部分。训练部分就是把人脸图像的特征提取出来存放到训练的样本文件中。在对人脸进行识别时,首先对输入的待检测人脸进行特征分析,然后与样本中的人脸进行匹配。如果得到的相似度大于某个预设阈值,则认为该人脸与样本中人脸匹配,确定为“合法”用户;反之,如果得到的相似度小于该阈值,则认为该人脸为“非法”用户[5]。人脸识别流程图如图1所示。

  

3系统需求分析与设计

  3.1系统的需求分析

  对点名系统的业务流程进行分析,并且调研课堂老师的意见,规划出了系统的功能需求。该系统主要分为两大功能模块,一是图像处理算法模块,二是点名系统管理模块。其中图像处理算法模块包括了人脸预处理、人脸检测、人脸识别、人脸采集模块;点名系统管理模块包括信息录入、信息查询、信息管理模块。

  3.2系统设计

  系统设计包括了系统框架设计、主要功能模块设计和数据库设计。

  3.3系统框架设计

  图像处理算法模块用于学生的人脸采集,将采集后的人脸进行预处理,并将处理后的人脸进行训练得到样本文件,其中记录了学生的人脸特征,在识别时系统载入样本文件对学生进行人脸识别。点名系统管理模块主要负责人员的信息、点名信息的查询和管理。系统框架图如图2所示。

  3.4主要功能模块设计

  3.4.1人脸采集模块

  人脸采集模块用于样本文件和人脸识别过程中人脸的提取,在检测出人脸区域后将区域中的人脸经过人脸预处理后保存为图片,供训练时使用。此模块设计了两种采集模式:一是图像人脸采集,在学生的照片中提取人脸;二是摄像人脸采集,学生在摄像头前,由算法提取视频帧中人脸。采取这两种方法为人脸采集提供了方便,学生可将自己拍的照片提供给管理员进行人脸采集。采集后的人脸会保存在以学号命名的文件夹中。部分人脸采集图如图3所示。

  

  3.4.2人脸识别模块

  人脸识别时程序先载入训练好的样本文件,将人脸与训练文件匹配,当置信度大于一定阈值时返回与人脸匹配的学号。人脸识别模块同样也设计了两种模式,一是图像人脸识别,二是摄像人脸识别。这样设计的目的是为识别提供多样化。在算法上本系统采用了OpenCV中的局部二值模式(Local Binary Patterns,LBP)算法[6]。

  3.4.3点名模块

  在点名过程中一般方法是将识别过程中返回的学号与数据库进行匹配,获得学生数据。但此方法效率较低,在识别过程中需要频繁地访问数据库,降低了点名的速度。本系统运用哈希表,在点名时预先将学生的学号和姓名载入哈希表中,在识别过程中只需访问哈希表,大大提高了点名的效率和速度。

  3.5数据库设计

  数据库设计的主要表有管理员表、学生信息表、课程信息表、学生选课表、任课教师信息表、班级考勤表、学生考勤表、学生缺勤记录表。E-R模型图如图4所示。  

4系统实现

  4.1系统运行和开发环境

  系统采用Qt5.5为开发平台,数据库采用了MySQL5.5,在人脸识别模块调用了OpenCV函数库,系统开发环境为Windows 7 64位操作系统。

  4.2系统界面

  系统包括了人脸检测、人脸点名、人数统计、人脸采集、信息查询等功能。系统界面如图5所示。 

  4.3点名模块

  当人脸识别完成后,会显示签到的学生和未签到的学生,供教师确认,发现未识别的学生可点击删除按钮,学生会自动从未签到加入签到列表,再确认课程班级无误后,点击提交便完成点名。点名界面图如图6所示。 

5结论

  基于人脸识别的课堂点名系统运用OpenCV和Qt、C++编程技术实现,界面友好,操作简单,点名快捷,大大提高了课堂点名的效率,也使得人脸识别技术有了更加广泛的应用,对推动学校和新技术的发展有积极的意义。

参考文献

  [1] 文成玉,金欣,董良,等.基于人脸识别的应用程序登录助手设计鄢[J].微型机与应用,2014,33(12):9699.

  [2] 王竹君. 基于人脸检测的移动点名系统研究与实现[D].昆明:云南大学,2014.

  [3] VIOLA P, JONES M J. Robust realtime face detection[J]. International Journal of Computer Vision,2004,57(2):137154.

  [4] 齐礼成. 基于人脸识别考勤系统的设计与实现[D].西安:西安电子科技大学,2012.

  [5] 何荣. 基于OpenCV的人脸识别系统设计[D].广州:华南理工大学,2013.

  [6] 张慧娟. 基于人脸识别的考勤系统的设计与实现[D].武汉:华中科技大学,2011.

(0)

相关推荐