基于人脸识别技术的高校在线考试系统设计与实现

2022-07-05 21:36李福海宋皓宇马宏琳
电脑知识与技术 2022年14期
关键词:人脸检测人脸识别

李福海 宋皓宇 马宏琳

摘要:在线考试是检验在线教育效果的有效手段,而基于人脸识别的监考机制是保证在线监考的关键。在线考试系统采用前后端分离的开发技术,实现题库管理、用户管理、在线考试、考试分析等功能。系统通过人脸检测模型和深度卷积网络进行人脸识别,并引入残差学习,实现了基于人脸识别的考生在线身份验证和实时在线监考,保证了考生在线考试成绩的真实性和有效性。

关键词:在线考试系统;在线监考;人脸识别;深度卷积网络;人脸检测

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2022)14-0056-02

1 背景

利用网络资源实现线上教学已经成为重要的教学途径,同时在线考试也越来越受到高校的广泛关注。利用人脸识别监考技术实现在线考试系统,将有效地杜绝考试替考等作弊行为的发生,并促进便捷、公平、高效的考试模式变革,使得在线考试系统成为教学效果的重要检验方式。

根据教育部高等教育司的统计,2020年疫情期间,全国千余所高校的103万名教师在线开设了107万门课程,参加在线学习的学生共计1775万人,合计23亿人次[1]。人脸识别在线考试系统既能延续并扩展线上考试稳定可靠的优点,并且在监考方面采用科学准确的人脸识别技术来弥补由于达不到传统监考面对面效果的缺点,从而有效地保证线上考试的质量,为高校提供一个优秀的在线考核的平台。

2 系统设计

人脸识别技术是一种新型生物特征识别法[2]。“基于人脸识别技术的高校在线考试系统”采用前后端分离的开发技术,其中前端采用了只关注视图层的轻量型Vue框架,后端则采用主流的Spring Boot框架。系统使用Python语言编写人脸识别程序,不仅语言简洁、功能强大,而且还独立于系统。同时,采用进程通信的方式处理人脸识别监考请求,可以为考试监考提供强有力的保证。在人脸识别模块中,采用TensorFlow[3]人脸检测模型,然后使用深度卷积网络进行人脸识别,具体采用Inception V4[4]版本模型,同时引入了残差学习,大大提升了网络深度和准确度。

2.1 系统整体功能设计

对于人脸识别在线考试系统而言,首先要给广大用户提供一个优质的在线考试平台,此外准确科学的监考手段也是保证考核质量的重要一步。因此,设计系统的主要功能如下:

1)用户管理:实现对考生、教师、管理员等用户的信息管理。

2)浏览并查看考试:可以浏览所安排的各项考试,并查看考试的详情。

3)进行在线考试:可以选择需要进行的考试进入答题,考生完成答题可以提交试卷结束考试。

4)人脸识别监考:考试全程系统自动调用摄像头进行人脸识别监考,并对考生的不当操作做出响应。

5)查看考试结果:用户能够查看考试成绩,并得到成绩走势图和分布图等。

6)考试管理:发布考试并编辑考试的各项信息。

7)题库管理:使用题库进行自动组卷。

8)留言互动:师生间可以发布留言进行交流互动。

基于上述功能分析,把人脸识别在线考试系统的用户视域功能,设计为6个功能模块。分别为:用户管理模块、题库管理模块、在线考试模块、人脸识别模块、考试分析模块、讨论区模块。

2.2 “人脸识别监考”的具体功能设计

在上述系统功能中,人脸识别监考是本系统的核心。人脸识别监考需要实现以下具体功能:

1)捕获图片:前端可以在考试过程中实时捕获摄像头前考生的考试状态,并上传至服务器本地。

2)建立连接:服务器接收到待识别图片时,可以与Python端的人脸识别模块建立连接,发送人脸识别请求并等待识别结果。

3)处理人像:Python端接收请求后,进行技术处理,并得到包含人脸的区域图像。

4)人脸识别:Python端使用深度卷积网络,利用提前训练好的模型处理待检测图片,得出识别结果。

5)显示识别结果:人脸识别结果返回至前端呈现给用户,实现监考。

2.3 系统详细设计

系统使用IDEA开发工具,采用Java 语言和Python语言混合编写开发,使用MySQL数据库提供数据存储功能。根据系统的整體功能设计,进行系统详细设计。

1)用户相关业务:使用Vue前端框架的Element—UI进行组件化开发,给用户提供信息管理操作;后端使用MyBatis框架访问数据持久层,对相关数据进行增、删、改、查。

2)捕获图片:前端Vue在渲染页面时,使用Canvas对象进行摄像头图像绘制和捕获待检测图片。使用video标签显示识别区域展示给用户。捕获前端图片后首先将图片编码转格式,然后通过Ajax传递至后端。

3)建立连接:后端使用进程通信的方式与Python端的人脸识别模块建立连接。采用Socket套接字创建连接对象,然后发送人脸识别请求,Python端接收请求后开始执行识别操作。

4)处理人像:使用基于TensorFlow的MTCNN模型[5]进行人脸检测和人像处理。对待检测图片进行“图像金字塔”预处理,得到不同尺寸的图像。然后图像依次进入P-Net网络、R-Net网络、O-Net网络,得到准确的bbox坐标和landmark坐标。

5)人脸识别: 使用Inception v4进行人脸判别,然后通过SVM[6]分类训练进行分类,即得到识别结果。

6)识别结果显示:Python端识别完成后,将识别结果通过进程通信传递给后端,后端再通过AJax将结果返回至前端,前端对结果进行处理,展示给用户。

3 系统实现

本系统使用Vue框架进行组件化开发,将各个功能模块及操作进行组件化处理,使用路由进行调用跳转,设立触发器监听用户操作以完成相应的功能。人脸识别模块采用深度卷积网络来实现,当Socket对象接收到后端发送的识别请求,便会开始执行人脸识别操作。在此之前,需要将下载的数据集对模型进行训练,然后将图像中的人脸进行预处理,然后验证模型,最后使用SVM分类训练验证其分类结果。系统考试界面,如图1所示。考试异常界面,如图2所示。由图1可知,考生答题过程中有一人脸监考区域实时显示考生状态,考生本人在进行考试时会提示“本人考试中”。如果考试过程中出现其他异常情况则会返回提示信息,同时存储识别结果至相关的考试信息中,如图2所示。

4 结束语

基于人脸识别技术的在线考试系统是保证考生在线考试成绩真实性的有效手段。系统的整体设计采用了前后端分离技术,使用Java语言和Python语言共同开发,完成了用户管理、试题管理、考试管理等功能。人脸识别模块采用了深度卷积网络,并使用TensorFlow和Inception模型等实现了人脸检测。两者通过进程间通信交换数据,实现了利用人脸识别进行实时监考的在线考试系统。经实践检验,系统运行稳定,效果良好,可以满足高校在线考试的需求,有效确保对考试全过程的实时监控。

参考文献:

[1] 李健.习近平统筹推进疫情防控与互联网发展治理的辩证思维[J].中国卫生法制,2021,29(2):100-104.

[2] 李飞,邢倩.在线教育“常态化”下高校专业课程教学实践分析[J].高教学刊,2020(36):102-105.

[3] 高见.TensorFlow框架下的人脸识别系统优化设计[J].电子元器件与信息技术,2021,5(1):142-143.

[4] 张景异,梁宸,吴攀,等.基于改进Inception V4的面部表情识别算法的研究[J].光电技术应用,2020,35(1):56-63.

[5] 祁星晨,卓旭升.基于改进MTCNN算法的低功耗边缘人脸检测跟踪系统[J].电子技术应用,2021,47(5):40-44.

[6] 郭月.基于SVM的高分圖像自动分类算法研究与系统实现[D].石家庄:河北科技大学,2017.

收稿日期:2021-06-25

基金项目:2020年度河南省精品在线开放课程立项建设项目(教高〔2021〕4号);河南省“十四五”普通高等教育规划教材重点立项建设项目(教高〔2020〕469号);河南省科技厅自然科学项目资助(202102110062)

作者简介:李福海(1999—),男,河南信阳人,河南工业大学2017级本科生,主要研究方向为计算机软件技术应用;宋皓宇,河南工业大学2020级本科生;马宏琳,副教授,硕士。

猜你喜欢
人脸检测人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
基于(2D)2PCA-LBP 的人脸识别方法的研究
人脸识别在高校安全防范中的应用
JNI技术在基于OpenCV的人脸与微笑检测中的应用
基于人脸特征定位的SNS网站应用组件研究与设计
基于Android平台的人脸识别系统设计与实现
基于Matlab的人脸检测实验设计
基于类独立核稀疏表示的鲁棒人脸识别
基于JSeg和显著性检测的服装图像分割方法