关键词:YOLOv8;人数统计;深度学习;目标检测
0 引言(Introduction)
随着信息技术的发展,智能化管理系统在教育领域的应用日益广泛。传统的教务管理依赖人工操作方式,不仅耗时耗力,还难以保证数据的准确性,在学生人数统计、教室资源分配方面,传统方式暴露出的弊端尤为明显。智慧教室的出现,为自动化人数统计带来了新的解决方案,但其高昂的设备价格及后续的维护成本,成为制约其普及的障碍,特别是在资源有限的地区广泛推广存在困难。传统的教室人数检测任务依赖于专用的摄像头和传感器,尽管这种方法检测精度较高,但是其硬件成本高且安装和维护复杂,并且普通的摄像头设备必须升级或替换才能满足任务需求[1-2]。相比之下,基于计算机视觉的深度学习目标检测方法具有显著的成本优势。该技术通过对现有普通摄像头的视频数据进行处理和分析,即可实现精确的人数检测。
主流的目标检测方法可以分为两类。一类是两阶段目标检测方法,包括R-CNN(Region-Convolutional Neural Network)[3]、Fast R-CNN[4]、Faster R-CNN[5]等。这类方法首先生成一系列候选区域,其次使用卷积神经网络(CNN)对候选区域进行分析后得到检测结果。虽然两阶段目标检测方法具有较高的检测精度,但是其处理速度相对较慢,难以满足实时检测的需求。另一类是单阶段目标检测方法,包括YOLO(You Only LookOnce)[6-8]系列和SSD(Single Shot MultiBox Detector)[9]等。这类方法可以直接在整幅图像上进行目标检测,省去了候选区域生成的步骤,因此具有较快的检测速度。鉴于本系统需要实现实时教室人数检测,因此选择YOLOv8模型作为基础网络。YOLOv8引入了更多的特征提取层和更高效的检测头,其改进的架构能够更好地捕捉图像中的细节和特征,提高小目标检测的准确率,适合在不同的教室环境内进行人数检测。
本文设计并实现了一款高效、低成本的轻量级智能教室人数统计系统,该系统利用现有普通的摄像头即可实现端到端的自动化管理功能,其基于YOLOv8算法实时统计教室内的人数,能直观地显示各个教室的利用率。此外,该系统具备自动记录出勤及教室使用情况的功能,能够生成各个教室在不同时段的出勤及教室使用情况统计表。
1 系统架构(System architecture)
基于YOLOv8的实时教室人数统计系统主要有数据处理与存储模块、YOLOv8人数检测模块、数据统计模块以及用户界面,系统架构流程图如图1所示。由摄像头实时采集教室视频数据,并发送到服务器数据处理与存储模块,处理后的数据通过YOLOv8人数检测模块识别和统计学生人数后,将检测结果发送到数据统计模块,该模块可以为用户提供指定数据的导出。用户界面中可以直观地显示各个教室的实时使用情况,还能通过按钮切换呈现不同教室的实时人数检测结果和统计信息。
1.1 数据处理与存储模块
数据处理与存储模块接收来自摄像头的视频数据,进行初步处理后存储在服务器中。该模块的主要功能如下:从摄像头接收实时视频流并将其缓存在服务器中,模块每3分钟从视频流中提取一帧图像,并将提取的图像进行处理,包括调整图像大小、归一化和数据增强等,以符合YOLOv8模型的输入格式,确保图像适配YOLOv8的输入要求;将处理后的图像和相应的元数据存储在数据库中,以便后续的检测和分析。通过以上步骤,数据处理与存储模块为YOLOv8人数检测模块提供了高质量的输入数据,为检测结果的准确性和实时性提供了保障。
1.2 YOLOv8人数检测模块
YOLOv8算法是Ultralytics公司继YOLOv5之后的重大更新版本,该算法进一步优化了网络结构,并引入了可变形卷积网络(DCN)和全局注意力机制(GAM),这些改进增强了网络对形变、尺度变化和复杂形态目标的适应能力以及特征提取能力。同时,轻量级卷积模型(GPConv)的融入减少了模型的计算量和存储需求,使其更加轻量化,更适用于实时应用场景。YOLOv8采用CIoU损失函数和分布焦点损失(DFL)优化边界框的预测精度,同时利用二元交叉熵损失函数强化分类准确性。基于YOLOv8人数识别的智能检测算法网络结构如图2所示,输入图像尺寸为640×640×3(图像高度、图像宽度和图像通道数)。
1.3 数据统计模块
数据统计模块是基于YOLOv8的实时教室人数统计系统的关键组成部分,负责汇总、分析由YOLOv8人数检测模块生成的学生人数数据,并为用户提供丰富的报表和数据导出功能。
将由YOLOv8人数检测模块得到的检测数据存储在数据库中,以便后续分析和查询。根据时间段(如每分钟或每小时等)汇总实时检测数据,生成教室内学生人数的即时统计结果。根据用户需求,生成详细的学生出勤报告及教室资源的使用报告,包括每日、每周和每月的统计数据。该模块提供数据导出功能,将统计数据和生成的报告导出为常见格式的文件(Excel和PDF)。同时,本系统支持多教室管理,能够汇总多个教室的学生人数统计数据,并生成整体报告。
2 数据集(Datasets)
2.1 公开数据集
SCUT-HEAD是一个公开的头部检测数据集,由A和B两个部分组成,总共包含4 179张标注图像,每个图像中的可见头部都已用坐标标注。当A和B两个部分合并使用时,该数据集具备了较好的多样性和平衡性,覆盖了多种场景、光照条件、姿态和表情,适用于小型教室环境中的头部检测,还非常适用于人脸检测任务 。公开数据集示例如 图3所示。
2.2 自制数据集
为了使系统更好地适应教室场景,本文依托某大学教室内的摄像头资源,采集了大量真实教室场景下的视频素材。在采集过程中,选择不同天气、光照条件和教室使用状态,从而保证了样本的多样性。在处理视频数据时,每隔1 s取一帧,并将每一帧图像调整为640×640的像素尺寸。使用LabelImg开源工具,设置标记类别为person,标注后的文件以xml格式保存。将数据转化成YOLO格式,包含图像文件和相应的标注文件。图像文件以JPEG或PNG格式保存,而标注文件则以TXT格式存在。在标注文件中,每一行代表一个标注对象,格式为“class_id center_x center_y width height”,其中class_id是类别编号,center_x和center_y是标注对象的中心坐标,width和height分别是标注对象的宽度和高度。所有的坐标和尺寸都归一化到[0,1]范围内。最终获得228个样本,自制数据集ClassCount示例如图4所示。
3 实验与结果分析(Experiment and result analysis
本文使用在COCO数据集上预训练的YOLOv8n模型作为预训练模型,在SCUT-HEAD数据集和自制数据集上分别进行了微调。批次大小为16,初始学习率为0.001,迭代轮数为100,选择Adam优化器。
使用两种测试集评估模型的泛化能力。①公开测试集,从公开数据集SCUT-HEAD中随机划分出400个样本作为测试集。② 混合测试集,共由两个部分组成,从自制数据集ClassCount中随机划分出40个样本,加上公开测试集中的400个样本,构成最终的测试集(共440个样本)。
为了从不同的角度评估模型的性能,本文主要使用4个主要指标,即查准率 (Precision)、召回率(Recall)、mAP @50和mAP@50~95。
3.1 模型在SCUT-HEAD数据集上的实验
从SCUT-HEAD数据集中删除图像模糊、重复的样本,得到3 024个样本,除去400个用作公开测试集的样本,随机选取2 224个样本作为训练集用于模型学习,其余400个样本作为验证集用于模型选择。将验证集上的评价指标mAP @50与mAP@50~95按照1∶9的比重进行加权,选取在验证集表现最佳的模型作为最终模型。表1展示了模型在公开测试集和混合测试集上的性能表现。
3.2 模型在自制数据集上的实验
为保证样本的多样性,增强模型的泛化能力,本文对自制数据集ClassCount中的188个样本(去除ClassCount数据集中用来构成混合测试集的40个样本)进行随机翻转与裁剪,数据增强之后得到388 个样本。将两种样本进行组合后共得到3 012个样本,其中2 544个样本作为训练集(包括2 224个公开数据集样本和320个自制数据集样本),468个样本作为验证集(包括400个公开数据集样本和68个自制数据集样本)。表2展示了模型在不同测试集上的性能表现。
实验结果表明,YOLOv8n加入ClassCount数据集进行训练后,其性能相较于未加入该数据集之前有了显著提升。在混合数据集中,mAP@50提高了约7.7%,mAP@50~95提高了约6.8%。这一结果验证了模型的有效性,其能够在教室场景下出色地完成对学生人数的精准检测。
3.3 模型效果展示
图5展示了本文提出的人数智能检测算法使用在教室数据集上的检测结果。在不同的场景下,模型均能准确地检测出人数。
4 UI界面展示及功能介绍(UI interface displayand function introduction
本系统的用户界面(图6)主要由实时监控视频、教室选择按钮、当前教室人数显示区域以及上传视频按钮组成。用户可以通过界面直观地查看所有教室的实时占满率情况,并可以切换不同的教室进行监控。界面具有以下功能。
视频显示区域:显示所选教室的检测结果,视频界面中可以看到检测到每位学生的位置。
文本框区域:显示当前教室的实时人数统计。例如,在图示界面中显示204教室当前人数为11人。
教室选择区域:界面底部提供了多个教室的选择按钮(如204教室、206教室、302教室等),方便查看各个教室的使用情况。用户可以点击不同按钮选择不同的教室,被选择的教室其视频检测结果会出现在上方视频展示区域,并且会在文本框中显示统计人数。每个按钮除了能够进行教室选择,还能以进度条的形式显示当前该教室的占满率。
此外,在界面右下角提供了“上传视频”和“数据导出”按钮。点击“上传视频”按钮可以上传本地视频文件进行检测,处理预先录制的视频文件,扩展系统的应用场景。点击“数据导出”按钮可以导出指定数据。
5 结论(Conclusion)
本文实现了一款高效、低成本的轻量级智能教室人数统计系统,采用普通摄像头即可实现端到端的自动化统计功能。该系统基于YOLOv8算法,能够实时统计教室内人数,并显示各个教室的利用率,同时记录出勤及教室使用情况。通过对真实教室场景下的数据进行采集和处理,本文验证了该系统的有效性和可靠性。实验结果表明,加入自制数据集ClassCount之后,模型在混合数据集上的性能得到显著提升,为智能化的教务管理提供了一种可行的解决方案。未来,随着技术的不断发展和优化,有望进一步提升系统的检测性能和用户体验,推动智能化教育管理的普及应用。