随着教育领域的数字化和智能化发展,考试中的作弊行为已成为影响考试公平性和效率的重要问题。为了解决这一问题,本研究设计并实现了一种基于YOLOv8深度学习模型的智慧考场考试防作弊行为检测系统。系统采用YOLOv8算法对考场中的视频图像数据进行实时分析,能够自动检测并识别考生的异常行为,如偷看、使用电子设备等潜在作弊行为。项目结合PyQt5开发了一个用户界面,方便考务人员对考试过程进行监控、分析和管理。
该系统的核心模块包括数据集的采集与标注、YOLOv8模型的训练与优化、作弊行为检测算法的设计,以及检测结果的展示与存储。数据集包含多个考场场景下的图片和视频数据,经过精确标注用于训练深度学习模型。训练后的YOLOv8模型可以对考场中的关键行为进行识别,并以图像、视频形式输出检测结果。系统提供了高效的数据存储与管理功能,便于后期分析和作弊证据的保留。
实验结果表明,基于YOLOv8的防作弊行为检测系统在多种考场环境下表现出优异的检测精度和处理速度,能够快速识别作弊行为,显著提升了考试管理的智能化水平。该系统具有较强的扩展性和实用性,可广泛应用于各类考试场景中,有助于提高考试的公正性和安全性。
通过本系统的设计与实现,展示了深度学习技术在智慧考场中的应用前景,并为未来考试作弊防控系统的发展提供了有力的技术支持。
算法流程
项目数据
通过搜集关于数据集为各种各样的课堂行为相关图像,并使用Labelimg标注工具对每张图片进行标注,分3个检测类别,分别是Bend Over The Desk表示 “低头”、Hand Under Table表示 “手放在桌子下面”、环顾四周表示 “Look Around”、Normal表示 “正常”、Stand Up表示 “站立”、Wave表示”举手”。
目标检测标注工具
(1)labelimg:开源的图像标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面,简单好用(虽然是英文版的)。其注释以 PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持 COCO数据集格式。
(2)安装labelimg 在cmd输入以下命令 pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
结束后,在cmd中输入labelimg
初识labelimg
打开后,我们自己设置一下
在View中勾选Auto Save mode
接下来我们打开需要标注的图片文件夹
并设置标注文件保存的目录(上图中的Change Save Dir)
接下来就开始标注,画框,标记目标的label,然后d切换到下一张继续标注,不断重复重复。
Labelimg的快捷键
(3)数据准备
这里建议新建一个名为data的文件夹(这个是约定俗成,不这么做也行),里面创建一个名为images的文件夹存放我们需要打标签的图片文件;再创建一个名为labels存放标注的标签文件;最后创建一个名为 classes.txt 的txt文件来存放所要标注的类别名称。
data的目录结构如下:
│─img_data
│─images 存放需要打标签的图片文件
│─labels 存放标注的标签文件
└ classes.txt 定义自己要标注的所有类别(这个文件可有可无,但是在我们定义类别比较多的时候,最好有这个创建一个这样的txt文件来存放类别)
首先在images这个文件夹放置待标注的图片,这里是一类图片,就是using phone。
生成文件如下:
“classes.txt”定义了你的 YOLO 标签所引用的类名列表。
(4)YOLO模式创建标签的样式
存放标签信息的文件的文件名为与图片名相同,内容由N行5列数据组成。
每一行代表标注的一个目标,通常包括五个数据,从左到右依次为:类别id、x_center、y_center、width、height。
其中:
–x类别id代表标注目标的类别;
–x_center和y_center代表标注框的相对中心坐标;
–xwidth和height代表标注框的相对宽和高。
注意:这里的中心点坐标、宽和高都是相对数据!!!
存放标签类别的文件的文件名为classes.txt (固定不变),用于存放创建的标签类别。
完成后可进行后续的yolo训练方面的操作。
模型训练
模型的训练、评估与推理
1.YOLOv8的基本原理
YOLOv8是一个SOTA模型,它建立在Yolo系列历史版本的基础上,并引入了新的功能和改进点,以进一步提升性能和灵活性,使其成为实现目标检测、图像分割、姿态估计等任务的最佳选择。其具体创新点包括一个新的骨干网络、一个新的Ancher-Free检测头和一个新的损失函数,可在CPU到GPU的多种硬件平台上运行。
YOLOv8是Yolo系列模