许锁鹏,卢 健,许心怡,吴 阳
(无锡太湖学院 智能装备工程学院,江苏 无锡 214064)
近年来,随着人工智能技术的发展,深度神经网络算法的应用越来越广泛。深度卷积神经网络是许多视觉任务深度学习范例的关键,包括目标识别、检测、分割等。深层神经网络(DNNs)以端到端的方式,从数据中自动提取判别特征表示,已在很多基准测试中超越了其他机器学习算法。
建筑工地上的安全帽检测方法主要包括以颜色特征来检测[1]或先检测人脸再由安全帽特征通过分类器进行分类[2],虽然精度上满足了需求,但计算量大,时间复杂度高,不利于实时监测。
近年来,人们广泛利用深度神经网络进行物体检测,但需要大数据量训练集且要求精准标注,这给实际应用带来了较大困难,对计算机内存占用大,消耗大量计算资源,难以应用于低成本终端设备。目标检测算法包含单阶段和两阶段目标检测算法,后者需要对物体进行定位,再对定位图像进行分类,是一个两阶段过程。以RCNN[3]、SPP-net[4]、Fast-RCNN[5]、Faster-RCNN[6]及Mask R-CNN[7]为代表,优点是准确率高,但是检测速度慢,难以适应实时要求高的场景。前者是基于回归检测算法的单目标检测,主要以YOLO[8]和SSD[9]为代表,是直接对目标检测框做回归,检测准确率略低,但在检测速度上有较大优势。由于安全帽检测对实时性要求较高,故采用单阶段目标检测的YOLOv5模型,在保证检测速度的同时,在精度上也具有一定优势。实验结果表明,方法识别准确率达到较高水平,占用内存较少,可实现低性能终端上的实时检测并推广到其他类似应用场景。
YOLOv3[10]模型的权重文件远大于YOLOv5的27MB,考虑部署的便捷性及适用性,YOLOv5s具有更大的优势[10],因此选择YOLOv5s模型作为基础网络架构。
该检测系统主要使用python语言进行设计,在模型训练中选用了PyTorch框架,该框架灵活、稳定、高效,系统开发更为高效,性能更加稳定。模型采用YOLOv5模型,检测精度高,体积小。YOLOv5属于one-stage类模型,运行速度快,同时支持在GPU上使用,可极大缩短训练时间。
该系统主要用于建筑工地、矿区、电厂等需要佩戴安全帽的危险工作区域,用户为管理人员和普通用户,需要对视频进行检测并对未正确佩戴安全帽的人员进行报警提示。为了保证及时发现异常,视频分析和检测速度越快越好,减少延迟,界面简洁直观,方便使用者操作。
通过软件运行程序调用设备摄像头,获取实时视频流,判断是否有视频流,若有则对视频流中的每一张图片进行读取识别,如发现有人未戴安全帽则发出报警,同时继续获取实时视频流,若没有检测到视频流,则系统退出检测。图1所示为检测流程图。
图1 视频流检测流程图Fig.1 Flow chart of video stream detection
为了训练出一个识别精度高且泛化能力强的模型,数据集的选择和准备尤为重要。在开始训练模型前,需要做许多数据准备工作。数据获取阶段,数据集使用的是GitHub上的Safety-Helmet-Wearing-Dataset,总共有7 581张图片。如图2所示为某帧训练图像。
图2 数据集图片Fig.2 Dataset image
将在GitHub上获取的Safety-Helmet-Wearing-Dataset数据集的XML格式转化为TXT格式,如图3所示。将数据集划分为三类,数量分别是训练集5 457张图片、验证集607张图片和测试集1 517张图片。
图3 数据的放置格式Fig.3 Data placement format
为了提高模型训练效率,先加载预训练的权值进行网络训练。YOLOv5提供了几种不同尺寸的预训练权重,可根据用户的不同需求选择不同版本的训练前权重。训练前模型的权值文件越大,训练精度越高,但是训练的时长相应地也较长,所需的权值文件可以在GitHub上下载。该训练数据集中使用的预训练权重为yolov5s.pt。
采用Precision(找回率)作为实验结果的评价标准之一,Precision定义为验证集中被正确检测到的目标数量与总的目标数量之比,Precision越高,则在一定程度上代表模型的性能越好。Precision(召回率)和recall(准确率)是一个0~1的小数值,代表概率,越趋于0表示模型质量越差,但它们都仅从一个角度来判断模型的质量。因此,在对模型进一步评价时一般采用mAP(均值平均密度)。通常精度和召回值负相关,从图4可以看出,mAP趋于1,说明该模型的性能相对较好。
图4 训练结果Fig.4 Training results
本算法着重于低成本终端上模型的存储与计算,因此将模型大小和检测速度作为模型评估标准,用以验证模型是否能够满足实时要求。实验表明,检测准确率在95%以上,实时性也满足要求。
本系统开发使用的是Windows11操作系统,操作系统为64位,使用PC级的GPU- GeForce GTX 1650,使用PyTorch深度学习库,图形化界面应用PyQt5编写,系统开发使用PyCharm编译器。
点击视频文件检测,上传待检测的视频,视频检测结果在软件界面展示。图5为视频检测结果演示,此时会框出每个检测到的安全帽并显示出置信度,当检测到有人未佩戴安全帽时则会发出声音报警。
图5 视频文件检测和摄像头实时监测Fig.5 Video file detection and real-time camera monitoring
建筑业的自动化、智能化水平不断提升,但现有的安防措施相对滞后,无法满足实时性的要求。企业对生产安全越来越重视,需采用智能化的方式解决此问题。基于YOLOv5设计了一套以安全帽检测为核心功能的预警系统,用以检测作业人员是否佩戴安全帽,并根据检测情况实时发出预警信息。实验结果表明,系统检测准确率在95%以上,满足了用户需求,能够在保持较高识别准确率的同时占用较少的存储空间,在测试时间上具有一定的优势,可满足生产过程中实时检测的需求并推广到其他类似应用场景。