章翌,刘道谱,潘俊杰,张宇轩,甘文霞*
(1.武汉光谷建设投资有限公司,湖北 武汉 430205;2.武汉工程大学土木工程与建筑学院,湖北武汉 430074)
在建筑、采矿等工业生产过程中,存在坍塌、高空坠物等潜在风险,安全帽作为其中常见的防护用具发挥着重要保护作用[1]。然而在实际施工作业中,仍然存在人员未佩戴好安全帽的情况,存在极大的安全隐患。目前,施工现场主要采用的视频监控和人工观察检测方法存在识别效率低、动态性差、成本高等弊端,无法满足精细化安全管理需求[2]。因此,实现施工现场安全帽佩戴的智能识别具有重要意义。
近年来基于深度学习的目标检测算法迅速崛起,其主要分为两类:一是基于候选区域的两阶段法,如Fast R-CNN[3]、Faster R-CNN[4]等;二是基于回归分类的单阶段法,如YOLO 系列[5-9]、SSD[10]等。两阶段方法的识别精度较为出色,但运行推理速度较慢,并不适合实际应用;单阶段方法的识别精度和运行速度则相对均衡,在工业领域中得到广泛应用。
目标检测模型的训练及推理都依赖强大的硬件设备,随着物联网(IoT,Internet of Things)技术的快速发展,大量移动设备和传感器应用于工程领域,但模型却无法适应移动设备有限的内存和算力资源,运行效率和模型大小等方面存在诸多问题。因此,在嵌入式系统领域,需要在保持高精度的前提下,尽可能压缩模型以实现低能耗和低延迟的需求[11]。
为更好地解决上述问题,边缘计算(Edge Computing)作为一种新兴的计算模式和框架应运而生,其核心思想是将数据处理和计算能力下沉到网络边缘。在当前应用中,通常采用云-边协同方式,首先通过云端强大的算力资源进行模型训练以应对大量数据和复杂任务,然后将经过量化的模型迁移至边缘设备进行推理应用。此方式充分利用了云端的计算能力,并将实时推理决策迁移至边缘,实现快速响应[11,12]。
综上所述,针对施工现场人员安全帽佩戴问题,并考虑到云端计算的延时,本文提出了一种基于边缘计算的安全帽佩戴检测系统。利用安全帽数据集训练YOLOv5 目标检测模型,并进行量化转换、迁移部署至SE5 边缘盒子进行推理测试。实验结果表明,该系统能够快速准确的识别施工人员是否佩戴好安全帽,适用于实际施工场景。
YOLOv5 目标检测模型性能均衡,考虑到实际施工现场对安全帽佩戴检测精度和速度的需求,本文选择YOLOv5s 作为目标检测模型,具体结构如图1 所示。
图1 YOLOv5s 网络结构图
YOLOv5 模型的网络结构由输入端、骨干网络、颈部网络和检测端四部分组成。其中,输入端进行预处理工作;骨干网络进行输入图像的特征提取;颈部网络进行特征融合;最终,检测端预测目标的类别和位置信息并生成检测结果。
边缘计算是一种将计算节点部署在数据边缘端的计算方式,相较于传统的云计算,边缘计算在性能响应、可靠性等方面具有较大优势,具体[14,15]如下:
(1)低延迟:边缘计算将数据处理能力迁移至网络边缘端,能够直接对数据进行本地处理和决策,对云端和网络带宽的依赖性小,数据传输快且稳定,满足实时应用需求;
(2)高效率:边缘计算距离用户、数据源更近,可以在边缘节点处实现数据的处理分析,从而提升工作效率;
(3)安全可靠:边缘计算的本地化的数据处理方式能更好地保障数据隐私,减少敏感数据频繁传输到云端的风险。
本文设计了一种基于边缘计算的安全帽佩戴检测系统,其框架如图2 所示,通过将YOLOv5s 模型部署至边缘设备上,系统能够快速准确地识别施工人员是否佩戴好安全帽。
图2 检测系统框架图
检测模型从训练到部署测试的整体流程如下:
(1)模型训练:在主机端Pytorch 框架下,采用YOLOv5s 模型对安全帽佩戴数据集进行训练。
(2)模型预编译:通过使用JIT 工具对原始Pytorch 模型进行预编译,保证模型量化后的运行效率和性能。
(3)模型量化转换:对模型权重文件进行量化转换,将FP32 模型转换为INT8 模型,以减少模型的存储和计算开销。然后将量化模型转换为边缘设备支持的特定文件格式,如Sophon 系列TPU 平台支持的Bmodel 文件。本文使用Sophon SDK 提供的Auto_cali 一键量化工具进行转换。
(4)模型部署推理:通过SSH 协议将Bmodel 模型、测试数据集以及相关Python 文件传输至SE5 边缘端,实现模型部署。然后在适当的Python运行环境加载模型,对数据集进行推理测试,实现实时的安全帽佩戴检测。
本文实验采用两个开源的安全帽佩戴检测数据集,分别为安全帽佩戴数据集和Safety Helmet Wearing Dataset(SHWD)数据集。安全帽佩戴数据集共5000张图像,包含安全帽、佩戴安全帽的人员、未佩戴安全帽的人员三类;SHWD 数据集共7581 张图像,包含安全帽、未佩戴安全帽的人员两类。本文实验将以4:1 的比例划分训练集和验证集。
本文的模型训练阶段实验采用Windows 10 系统,GPU 型号为NVIDIA GeForce RTX 2080 Ti,使用PyTorch 1.10.0 和Python 3.8.搭建模型网络。初始学习率设置为0.01,并通过余弦退火算法动态调整学习率,动量因子为 0.937,权重衰减系数为 0.0005,批处理大小为 8,训练轮次为200。
模型迁移部署阶段实验采用Ubuntu 20.04 系统,边缘设备选择了北京算能科技有限公司的微服务器产品SE5 边缘盒子,该设备搭载算能自主研发的张量处理器(TPU,Tensor Processing Unit)芯 片BM1684,INT8 算力可达17.6TOPS(Tera Operations Per Second),能够同时处理16 路高清视频,并支持38 路1080P 高清视频解码与2 路编码。此外,SE5 支持主流深度学习框架,如Caffe、TensorFlow、Pytorch 等,其在智慧交通、智慧工地等场景中展现了强大能力,为传统行业实现人工智能赋能提供重要支持[16]。
本文采用准确率(Precision)、召回率(Recall),平均精度均值(mAP,mean Average Precision)作为检测精度指标,帧率(FPS,Frames Per Second)作为检测速度指标。
依据参数设置对两个数据集进行了模型评估实验。从表1 和表2 可以看出,在安全帽佩戴数据集中mAP可达88.3%;在SHWD 数据集中mAP 可达94.8%,两者检测速度均满足施工现场需求。检测结果客观地反映了YOLOv5s 模型在边缘盒子上能够快速、准确地实现施工现场安全帽的佩戴检测。
表1 YOLOv5s 模型在安全帽佩戴数据集上的性能
表2 YOLOv5s 模型在SHWD 数据集上的性能
为了直观展示安全帽佩戴检测的效果,本文对部署了YOLOv5s 模型的SE5 边缘盒子进行了实际检测效果的可视化分析。从图3 和图4 可以看出,YOLOv5s 模型在SE5 边缘盒子中可以准确地检测出不同施工场景中人员是否佩戴安全帽,能够充分满足现场的安全管理需求。
图3 安全帽佩戴数据集的可视化检测结果
图4 SHWD 数据集的可视化检测结果
针对实际施工场景中的人员安全帽佩戴检测问题,本文设计了一种基于边缘计算的安全帽佩戴检测系统。该系统通过采用YOLOv5 目标检测模型对数据集进行训练,并对模型权重文件进行编译、量化、转换等处理,将经过处理的模型部署至SE5 边缘盒子中,实现安全帽检测的推理测试。实验结果表明,该系统在安全帽佩戴数据集和SHWD 数据集上的mAP 分别达到了88.3%和94.8%,推理速度分别可达14.39 帧/秒和14.67 帧/秒,能够快速、准确地识别施工人员是否佩戴安全帽,为安全管理提供了可靠的技术支持。