APP下载

基于计算机视觉的学校智能监考系统

2021-01-27尹力威王瀚林雷奕达钱鹏宇

物联网技术 2020年12期
关键词:视频流监考作弊

尹力威,王瀚林,雷奕达,钱鹏宇

(1.西南交通大学 利兹学院,四川 成都 611756;2.西南交通大学 电气工程学院,四川 成都 611756)

0 引 言

近年来,随着教育改革的推进,对学生的考核日益严格,考试科目与次数都在增加,然而传统监考模式却已无法满足学校对于监考的需求。若采用人工监考,存在监考人员任务重,无法在大型考试中及时发现学生的作弊行为等问题;若采用无人监考,存在难以保证考试公平性等问题[1-3]。因此,研发一种具有智能化功能的监考系统实乃当下所需。

近年来,国内在计算机视觉技术及视频处理技术方面已取得长足进步[4],为智能监考系统的设计提供了技术支持。目标检测(Object Detection)是计算机图像、视频处理工作的基础[5]。目标检测即检测图片中的目标物体,需输出图像中所有目标的坐标框与目标的具体类别[6]。YOLO(You Only Look Once, YOLO)算法和SSD(Single Shot Multibox Detector, SSD)算法[7-12]都是深度学习网络应用于目标检测的典型实例。在上述算法中,SSD算法检测性能相对更优[13]。

本文基于OpenCV-Python平台设计了一种SDD算法,可通过前期大量训练集的练习,并结合视频处理技术实现适用于学校的智能监考系统。本系统的使用有利于推进学校标准化、智能化考场建设,为监考人员减负的同时提升监考效果。

1 系统整体设计

基于计算机视觉的学校智能监考系统工作流程如图1所示。其工作流程分为以下四步:

(1)启动系统并获取视频资料(既可输入摄像头实时视频流,也可输入本地视频流);

(2)对已获取的视频资料进行预处理(本系统利用视频捕获处理算法对视频流进行分帧操作,以10 FPS的速度均匀读入并保存为图像);

(3)系统采用Caffe框架下的SSD算法从图像中检测人体行为,并标记人体边框(Bounding-Box);

(4)将图像按照正常、异常、作弊进行分类,一旦检测到作弊行为系统会自动保存图像,并发出警报。

图1 基于计算机视觉的学校智能监考系统工作流程

2 作弊行为的识别方法

2.1 应用场景分析

监考是在场景相对固定的环境下识别教室内的作弊行为。考虑到学校服务器电脑的配置及运算速度,基于计算机视觉的学校智能监考系统运用SSD算法对分帧后的视频进行分类,通过处理静态图像识别特征以区分作弊行为或正常行为。相比于动作识别,该方法对系统性能要求低,能够在节约成本的前提下提高识别速度。

2.2 算法简介

SSD是提出的一种目标检测算法。与传统区域候选方法相比,SSD算法更高效。此外,SSD算法简化了采样及Proposal生成过程,实现了单网络下的运算,同时SSD算法还具有快速训练和学校集成等功能[14]。

SSD算法的特点如下所示:

(1)具有多尺度特征图检测(Multi-Scale)功能;

(2)相比YOLO算法,SSD算法使用卷积层代替YOLO算法的全连接层进行预测效果更佳;

(3)SSD算法使用默认的边界框+(1,2/1,3/1,1/2,1/3)框进行检测(Aspect Ratios);

(4)SSD算法允许从CNN各层的feature map预测检测结果,便于适应不同规模的物体。

SSD算法是一种具备YOLO算法回归思想及FasterRCNN anchors机制的单次检测深度神经网络。SSD框架通过RPN(Region Proposal Network, RPN)生成候选区域,从输入图像到输出结果只需一个阶段。因此,SSD算法极大地提升了检测速度,降低了网络训练成本。

2.3 SSD训练

SSD训练即将搜集到的训练集输入到Caffe网络中进行训练。本文采用的随机梯度下降方法具有训练速度快,训练使用硬件资源较少等优点。对于样本较少的训练集,可更换梯度下降方式。SGD(Stochastic Gradient Descent, SGD)的梯度更新规则如式(1)所示:

SSD通过一种匹配策略为每个检测器分配一个真实标签,指定标签为前景的预测器称为正样本,指定标签为背景的预测器称为负样本(按照预设正负样本比例,挑选出一定数量的负样本)。SSD的最终损失是挑选的正负样本的总损失。

SSD损失函数主要分为两部分,即对应搜索框的位置损失(Location Loss)和置信损失(Confidence Loss)。总体目标损失是上述两类损失的加权和,如式(2)所示:

式中,N为匹配默认框的数量。

SSD中的置信损失是在多类别置信度上的Softmax Loss,如式(3)所示:

式中:i为搜索框序号;j为真实框序号;p为类别序号,p=0表示背景;xijP={1,0}中取1表示第i个Prior Box匹配到第j个GT box,该GT box的类别为p;表示第i个搜索框对应类别p的预测概率;Pos和Neg分别表示正负样本。

位置损失是经典的Smooth L1 Loss,其计算过程如式(4)所示:

式中:l为预测框;g为ground truth;(cx,cy)为补偿后的默认框(d)的中心;(w,h)为默认的宽和高。

一般情况下,原始数据量越大,得到的最终效果就越好,模型精度越高。但如果数据集照片数量不足,则需要在Caffe中进行数据增强处理,且网络结构中需要使用Dropout层以防止出现过拟合。使用Dropout层的另一原因是对作弊行为和正常行为的分类都是基于“人”,若不采用,则难以提高检测率。

2.4 学生作弊行为检测

学生头部转动或手部、肩膀、臂膀等大幅度肢体活动都被算法视为作弊。当学生头部向前,视线位于桌面上方,手部与臂膀无大幅度动作,即保持正常写作或思考姿势时,被系统视为正常。训练集正常图例如图2所示,训练集作弊图例如图3所示。

图2 训练集正常图例

图3 训练集作弊图例

系统采用SSD算法将特定作弊行为及违禁物品分为8类:正常、左顾右盼、传递物品、转身、睡觉、举手、起立、手机。对于其他类别,可根据实际情况进行适当增加或删减。

2.5 违禁物品检测

除上述作弊行为外,手持或以其他方式持有违禁物品的行为同样会被系统判定为作弊。SSD算法在识别过程中将“人的动作”与“违禁物品”分别识别。如果学生双手置于桌上,头部看向课桌桌面且无其他肢体动作,此时学生的人体部分会被算法视为“正常”;但当算法识别出“违禁物品”时,则会判定其作弊。

3 视频检测方案

3.1 本地视频文件检测

对于放在指定路径的视频文件,若要对其进行检测,首先需要对视频进行分帧处理。根据人的动作幅度与动作速度,在正常视频流即30 FPS以上的视频文件中,每秒取10帧进行作弊行为检测。相比于检测视频的全部数据,此方法大幅缩短了运算消耗的时间。

视频采用OpenCV循环读取视频帧,然后将读取到的每1帧保存为图片,随即用训练好的模型文件对各帧图片进行检测与标注,并在图片上记录此刻时间。

使用OpenCV的DNN接口将训练好的模型文件导入程序中,在设定各项参数后,利用OpenCV中的Mat类将需要检测的每帧数据进行定义和约束。

依照训练好的模型文件,将视频流以10 FPS的速率进行检测。检测完毕后,将异常图片和正常图片分开保存于不同路径下的文件夹,以便之后进行二次审核。视频检测流程如图4所示。

图4 视频检测流程

3.2 实时视频检测

实时视频检测与本地视频检测基本一致,只在前端做了一定修改(将本地视频流输入切换为摄像头实时视频流输入)。

但在实际操作中,由于OpenCV 3系列版本只能使用CPU对图像进行检测,无法进行GPU加速,因此检测效果不佳,实时监测延时较大,故新方案选用2019年12月发布的OpenCV 4.2,此版本具有可运用GPU加速的DNN相关函数。

通过GPU加速后,检测时间缩短了近60%。受实验设备显卡配置条件的限制,暂时无法达到更快的检测速度,此方面有待后续改善。

3.3 作弊检测结果

在验证检测系统时,通过实时监控对相应目标进行判定。样本涵盖两个不同场景的教室与12个不同的人,分别检测单人情况与多人情况下的识别效率。

单人检测的总体准确率约84%,其中“正常”动作的识别成功率约为92%;“举手”动作的识别成功率约为94%;“传递”识别成功率约为76%。多人同时检测时,每个对象的平均精确率约为69%。手机形状较小,相比人体更难识别,尤其是在有部分遮挡的情况下,识别难度更大。

整体而言,本系统的检测精确率较为理想,达到了84%,能够满足现阶段学校对智能监考的要求。相关实验结果如图5、图6所示。

图5 判定转身图例

图6 判定睡觉图例

4 结 语

本文基于计算机视觉技术,通过视频分帧、建立训练集和优化代码的方式,实现了利用计算机检测考场作弊行为并自动保存作弊图像,将作弊信息反馈给人工处理的智能监考系统。实验结果表明,系统检测准确率可达84%。但该系统也存在一些缺陷,如视频分帧和检测速度较慢,无法做到实时检测;检测准确率有待进一步提高。在后续研究中,该系统将在代码编号、运行速度等方面持续优化;建立更多更全面的训练集,提高检测准确率;增加更多角度的视频检测,为后续实现多路摄像并行处理打下基础。通过逐步升级优化,该系统可用于学校建立智能监考系统,并为未来的无人监考系统设计提供参考。

猜你喜欢

视频流监考作弊
基于Excel VBA的考试管理系统设计
作弊
监考时……
基于视频流传输中的拥塞控制研究
铁路货场智能大门集装箱全景图像采集方法研究
美国视频流市场首现饱和征兆
没作弊
监考老师
监考