沧州交通学院 邵晓康 张 恒 田春子 孙淑营
人脸识别使用较为流行的开源算法OpenCV,该算法识别准确度较高,占用系统资源较少,响应时间快,可离线进行学习、识别。签到系统如果跟随课程的主程序,不仅对电脑内存消耗会增加,而且也会增加CPU的运算负担,因此设计的系统是单独的程序系统,不会因教师上课方式的改变而无法使用本系统,将签到系统从上课系统中移植出来不仅可以在不改变原来上课方式的情况下使用,而且上课系统更新后不用担心签到系统的异常,该系统可以很好的帮助教师和学生家长督促学生学习,并帮助教师更好的进行授课。
OpenCV算法是由Gary Bradsky在英特尔创立的,该算法的正式版本是在2000年发布的。2005年OpenCV算法在DARPA大战中获得冠军,随着时间的推移,OpenCV算法应用的场景越来越多,从开始的用于汽车开发,到现在的计算机视觉,不仅如此,OpenCV算法支持多种语言,如C++、Python、Java等,还可以在不同的系统平台上使用。
用户首次登录,系统会自动检测是否有该账号的人脸信息数据,系统会自动获取用户的登录账号,用此账号来查找用户的人脸图像数据是否存在,当发现不存在时,系统会提示用户进行相关的人脸数据的采集,用户同意进行人脸数据采集时,系统使用OpenCV算法对用户的人像的采集,并保存人脸数据。
当用户登录验证成功之后系统对已存储的人脸数据进行检测,当发现无本用户人脸数据时,系统会提醒用户进行人脸存储,当用户同意人脸数据采集时,系统将会打开摄像头并独处每一帧的图像,此时开始进行人脸采集并进行相关的存储。
系统启动人脸检测,此时系统会读取每一帧的图像,当读取图像成功时,系统会将所识别的人脸以及用户Id标注在人脸识别的视频图像中。
用户登录之后并进行了相关的人脸数据的存储之后,系统会检测数据库中是否有该用户的基本信息,当发现未有该用户的信息时,系统会提示用户进行基本信息的填写,从而达到信息的上传,方便对课程的统计,以及课程点名的标注。
教师成功完成登录并进入系统主页时,点击开始上课功能,此时系统会进行相关的提示,提示操作者进行相关的信息的填写,这些信息作为课程的上课的基本信息,可作为后面的课程统计。
当教师点击上课按钮进入上课界面以后,系统会提示用户填写基本信息,当用户填写完对应的信息之后,该课程则开课成功,此时系统之系统会自动生成一个上课密令,上课密令需要告诉给学生用户。
教师发布课程以后,会得到课程的开课密令,学生通过教师得到该密令之后,可以通过我要学习按钮进入上课学习模式,在相应的界面填写上课命令,会得到该课程的基本信息。
学生填写密令之后,系统会在数据库中查询该课程的基本信息,当该密令存在时,系统会将该课程的基本信息显示到课程信息界面,用户可以核对课程信息,从而检查课程是否正确,当用户检查该课程无误时,可以点击加入该课程。
进入上课时间后,系统会随机的进行人脸签到,每节课签到次数不固定,签到时间不固定,每次签到时间约为30s。
学生填写完成密令之后,会进入相应的课程,当进入上课时间后,系统会自动进入随机签到模式,上课期间会进行多次人脸识别签到,当学生签到成功以后,系统会记入签到时间、签到课程信息等相关信息,当学生未签到成功时,系统会将本次未签到成功的时间、课程信息等相关信息存入数据库中,方便教师课程结束后统计,每次签到时间未30s,签到完成后签到界面会立即消失,当未签到成功时,签到界面也会立刻消失,签到过程中为了保证签到准确性,在签到时如果界面中出现了多张系统信息人脸,此时系统不会启动签到成功机制,当签到界面出现唯一人脸时,签到成功机制才会启动。
抬头检测功能是学生签到功能的衍生功能,该功能是在整个课程的上课阶段进行的,抬头检测主要是检测学生是否听课,以及对整个课程是否满意的检测。抬头检测还能反映出同学们在本节课中的状态及时发现学生的问题,及时对学生针对性辅导。
抬头检测主要是为了对课程满意度的检测,学生在课程中抬头的次数可以十分直观的表现出该课程是否受学生的喜欢,同时也可以在一定程度上表现出该课程教师的上课氛围,以及该教师的授课是否被学生认可,该检测功能基于OpenCV算法的人脸检测功能,在上课时间段内系统会多次进行学生抬头的检测,每次检测时间较短,检测时间随机,本设计中的抬头检测主要为了反映教师的授课情况,每节课结束后均会对课程的整体抬头率进行统计,当该课程结束时教师检查该课程时,可以将该课程的学生抬头率导出,将该抬头率作为本课程的教学评估的部分参考。
课程情况导出,主要是将本节课的学生签到情况进行相关的导出,方便教师对课程的统计,以及学生的到课率统计。
课程情况导出主要为了方便教师更加方便的获取本节课的学生签到情况,以及学生到课率情况,教师课程结束后在主页点击签到情况导出,系统会前往数据库中查询本节课的课程情况,获取本节课的学生签到情况,从而获取本节课的签到情况,然后将获取的数据转换为Excel表格形式,最后将本节课的情况导出到本地主机,这样不仅方便了教师对学生的签到,也在一定程度上节省了传统签到方式所带来的对课程时间的浪费,而且这种方式可以更加直观的表现出本节课的到课情况,不仅如此,本节课的课程信息也可作为辅导员对潜在问题学生定位,帮助辅导员更好的寻找潜在问题学生,帮助潜在问题学生更好的去学习,积极学习课程知识。
本设计的反馈功能主要分为两种,一种为用户在使用过程中如果发生异常的错误时,系统会主动将发生在错误时发送系统运行日志到管理员邮箱,通过日志的记录情况来判断发生错误的模块以及错误情况,另一种反馈功能为用户主动提交反馈,用户可以在主页面选择反馈,从而主动将各种自己在使用过程中意见以及对整个系统的建议发送给管理员。
本次测试分别从相应时间、系统资源占用等方面进行叙述,通过进行相关的性能测试,完成对系统的全面测试,防止用户使用过程中发生错误。
(1)性能指标预测是测试系统性能的对比参考材料,具体指标情况如表1所示。
表1 性能指标
(2)测试工具:Quest公司的Quest BenchMark Factory for Database。
(3)测试环境:使用PC机,安装Windows 10系统,数据使用云数据库MySQL。
(4)测试过程:
该测试工具主要测试的是数据的承载能力,本设计主要的测试内容为数据库的测试,因此,使用该测试工具是十分合适的选择,该测试工具通过对数据库工作负责、数据库代码可拓展性、行业标准的基准、虚拟用户和食物负载模拟等测试,对数据库进行全方位的测试,全方位的对数据库进行测试。
(5)测试结果:本次测试结果如表2所示。
表2 性能指标
测试结果显示,本系统的性能可以完成满足本设计的期望值,随然后存在一些隐性问题,单各项指标优秀,可以满足正常的使用。
本论文对基于OpenCV算法的人脸识别课堂签到系统的设计与实现进行了详细的描述与说明。在技术上,针对系统开发中的关键性技术进行了较为详细的较少,还对系统的设计、实现等方面济宁了详尽的介绍,讨论了系统测试原则及性能。
本设计虽然基本完成了功能要求,但有些方面也需要进一步的研究和完善。
(1)论文只考虑了用户的基本使用情况,并未对教师用户的功能更加深入的研究,例如在线文件发送、作业查看等。
(2)针对于信息导出模块,该模块所使用的用户信息并不全面,本设计并未对该部分数据进行更深入的数据挖掘。