基于深度学习的复杂作业场景下安全帽识别研究*

2021-02-04 09:42王岩彬王常亮
中国安全生产科学技术 2021年1期
关键词:安全帽损失框架

李 华,王岩彬,益 朋,王 藤,王常亮

(1.西安建筑科技大学 资源工程学院,陕西 西安 710055; 2.中建科工集团有限公司,陕西 西安 710055)

0 引言

建筑业属于生产安全事故频发的行业,依据《企业职工伤亡事故分类》(GB 6441—86),对我国建筑业近十年出现的生产安全事故进行统计分析,其中起重伤害、坍塌、机械以及物体打击一共发生1 041起,占事故总数的50.42%[1]。在以上4种事故中,因物体高空坠落(撞击)导致脑部外伤死亡事故占建筑工人施工总事故的24%[2]。针对由于未佩戴安全帽而导致的事故,本文对建筑施工人员安全帽佩戴情况进行识别,对解决此类事故具有重要意义。

建筑业相对于其他行业,安全管理主要依赖管理人员的主观监测,受人员流动性、环境的动态性以及生产过程的复杂性等因素影响,导致人工检查效率低、速度慢且精度一般,监测效率低下;信息更新速度快亦存在不容易集成、成本高等问题,因此,需要对建筑施工场所的安全管理方法进行创新提升。

近年来,安全管理与计算机技术相结合以提高施工现场安全管理水平已成为1个主流的研究方向。伴随着深度学习等技术的不断成长,目标检测亦取得了长足的进展,以RCNN为代表的two-stage目标检测算法,例如R-CNN[3],Fast R-CNN[4],Faster R-CNN[5];以YOLO[6]、SSD为代表的one-stage目标检测算法。这些方法的出现极大地提高了信息的收集速度、处理能力以及传递速度,为建筑施工过程中的安全管理的现代化给予了巨大的技术、理论支持。胡恬等[7]最先通过智能算法设计实现工人安全帽检测,这是我国研究人员对工人安全帽佩戴自动识别的最初尝试。Fang等[8]利用深度学习的图像识别方法对施工现场未佩戴安全帽的工人做了大样本收集,并根据图像识别效果影响因素划分为5个大类和19个小类的数据集,结果表明对安全帽的检测精度为90%。张明媛等[9]提出1种基于Tensorflow框架的Faster R-CNN网络框架,监测工人安全帽的使用情况。平均精度达到90.91%。吴冬梅等[10]提出1种基于改进的Faster R-CNN算法,对安全帽的颜色以及佩戴情况进行识别,平均检测准确率达到85.5%。王兵等[11]针对安全帽佩戴识别精度问题,结合GIOU提出基于yoloV3的识别方法,相较于未改进的yoloV3方法mAP提高2.05%。

文献[7]-[11]验证了深度学习方法对安全帽识别问题的可行性,但实际安全帽识别情况中,将Faster R-CNN网络框架运用于安全帽佩戴检测存在检测错误率高、网络难以收敛、精度低等问题;数据层面中建筑作业大多存在于复杂作业环境中,会出现目标重叠以及小目标的安全帽佩戴人员识别情况差等问题。基于网络框架及数据层面出现的问题,本文建立复杂作业场景下安全帽数据集,提出改进的Faster R-CNN的安全帽检测方法,通过增加锚点提升小目标的安全帽检测能力、结合Focal loss[12]替代原本的损失函数解决数据集中类别不平衡问题以及引入ROI Align[13]解决ROI Pooling操作2次量化造成的安全帽预测区域不匹配问题,提升检测模型准确性,进一步改善复杂作业场景下的安全帽识别的准确率。

1 传统Faster R-CNN算法

Faster R-CNN目标检测框架主要由2大模块构成:RPN(候选框提取模块),RPN属于全卷积神经网络,用于候选框的提取;Fast R-CNN(检测模块),Fast R-CNN基于RPN提取的proposal检测并识别proposal中的目标。

1.1 RPN原理

RPN结构如图1所示,其基本思想是在特征图中找到所有可能的候选区域,获取候选区域采用滑动窗口机制,在特征图中使用滑动窗口生成低维向量,低维向量被输入到2个平行的全连接层进行位置和类别的判断。每个滑动窗口的最大可能候选区的建议数量为k,故回归层有4k个输出来编码k个区域的坐标。分类层输出2k个分数用来评估区域包含识别目标的概率。k个建议区域称为锚点。锚点位于滑动窗口中,并与纵横比相关联。

1.2 Fast R-CNN

RPN获取候选区域后,Fast R-CNN模块实现目标的检测和识别。利用RPN网络获取proposal RIO,同时获取positive softmax probability,将获取的数据输入网络进行训练,得到最终的识别分类以及通过边框回归获得检测框最终的精确位置。Fast R-CNN与RPN通过共享卷积层的技术,实现高效检测。

2 建筑施工人员安全帽识别方法

2.1 基本流程

本文基于TensorFlow框架对施工人员安全帽使用情况进行识别。采集尽量多的复杂作业场景下施工人员安全帽佩戴图像和未佩戴安全帽的图像。所采集的图像需要进行预先的标注和拆分使其满足Faster R-CNN网络框架训练要求,根据训练及测试效果改进Faster R-CNN网络框架,通过对网络框架的不断完善,最终实现目标检测,达到精度要求。安全帽识别流程如图2所示。

图2 安全帽识别流程Fig.2 Identification procedure of safety helmet

2.2 数据集构建

复杂作业定义为1个多作业组织同时进行多个简单作业或由多个作业对象1次关联的所有简单作业的组合所构成的作业。复杂作业包括2种类型:平行作业和纵向作业,复杂作业由人员组织、时间、作业对象、作业地点4个特征构成,形成过程如图3所示。黑色实箭头为平行作业的形成过程,黑色虚箭头为纵向作业的形成过程。

图3 复杂作业形成Fig.3 Formation of complex operation

复杂作业场景示例如图4所示。由图4(a)可知,2个作业小组在不同区域对同一作业对象进行施工,体现了平行作业下的复杂作业场景。由图4(b)可知,单个作业小组对多个作业对象在同一区域进行串联工作,体现了纵向作业下的复杂作业场景。

图4 复杂作业场景示例Fig.4 Examples of complex operation scenes

目前无完整的关于施工人员在复杂作业情况下安全帽数据集,需要自行收集1个数据集用以训练和测试Faster R-CNN网络框架。随着摄像头在建筑施工场所的普及以及广泛应用,极大地提高了信息的收集速度,为收集图像提供丰富的数据来源。本文通过截取建设项目施工现场摄像头采集的视频流对复杂作业条件下施工人员佩戴安全帽情形进行收集。

2.3 数据预处理

本文共采集了7 581张人员佩戴或未佩戴安全帽的图像,使用Labellmg标注工具进行标注,标注包括正(佩戴安全帽)、负(未佩戴安全帽)标签,注释结果被保存为VOC格式的XML文件,并可以被Python语言调用。

2.4 Faster R-CNN模型构建

为使得Faster R-CNN网络框架更好地应用于复杂作业场景下安全帽数据集,本文提出在原始的Faster R-CNN网络框架基础上增加锚点、使用Focal loss损失函数代替原本损失函数以及使用ROI Align代替ROI Pooling 3种策略提升模型精度,使改进后的Faster R-CNN网络框架能准确识别复杂作业场景下安全帽的佩戴情况。

2.4.1 锚点(anchor)数量

在对施工现场安全帽佩戴情况进行检测时,由于作业环境复杂,安全帽信息在图像中占比较小。因此在默认参数上加入3组锚点(比默认值小)以更好地适应小目标的安全帽识别。

2.4.2 Focal loss损失函数

Focal loss损失函数着力解决复杂作业场景下安全帽数据集中正负样本比重失衡的问题。Focal loss损失函数在训练中将大量的简单负样本的权重降低,使得模型在训练中注重于难分类的样本,可作为1种困难样本挖掘方法。Focal loss损失函数是在交叉熵损失函数基础上进行的修改,交叉熵损失函数如式(1)所示:

(1)

式中:L为交叉熵损失函数;p为预测样本属于1的概率;y为标签,取[-1,1]。

Focal loss损失函数如式(2)所示:

(2)

式中:Lf为Focal loss损失函数;γ为调节系数;α为平衡因子。

Focal loss损失函数在原有的交叉熵损失函数的基础上添加调节系数,其中使得γ>0减少易分类样本的损失,使得更关注于复杂的、困难的样本。此外,加入平衡因子α,用来平衡正负样本本身的比例不均。

2.4.3 ROI Align

在ROI Pooling中候选框的位置是由回归获得,大多都为浮点数,但在池化后特征图的大小要求固定,故ROI Pooling操作存在2次量化的过程,如图5所示,左虚线框中此时的候选框已经和最开始回归出来的位置有一定的偏差,这个偏差会影响检测或者分割的准确度。为解决ROI Pooling的缺点,提出ROI Align这1改进方法,ROI Align的思路如右虚线框所示,使用双线性插值代替最近邻插值,获得为浮点数的数值,解决量化偏差。

图5 ROI Pooling与ROI Align效果对比Fig.5 Comparison on effect of ROI Pooling and ROI Align

2.4.4 改进后的网络结构

依据在原始Faster R-CNN网络框架测试中所反应的问题,对网络框架进行改进,改进的网络如图6所示。对比VGG等网络,当使用更深的网络时,理论上表达能力会更强,但是随着学习层数的加深会发生网络退化、梯度消失及爆炸问题,这个问题很大程度上通过标准的初始化和正则化来解决,这样可确保几十层的网络能够收敛,但是随着层数的增加,问题仍然存在。而ResNet网络引入了跳跃连接,可以使上1个残差块的信息没有阻碍地流入到下1个残差块,使得信息的传播更加流畅,并且在一定程度上摆脱了由于网络层数过深所引起的网络退化问题。因此本文Faster R-CNN网络框架选择ResNet50网络进行图像提取。

图6 改进后的Faster R-CNN网络框架Fig.6 Improved Faster R-CNN networkframework

2.5 模型训练

将使用Labellmg标注过的图像输入到深度学习的框架中,多次迭代,更新参数。训练过程主要包括以下步骤:

1)对所有数据进行验证和训练集分配。将7 581张标注分类过的图像按VOC2007格式分成4类,安全帽检测图像数据划分结果见表1。

表1 安全帽检测图像数据集划分Table 1 Classification on data set of helmet detection images

2)修改与训练有关的参数,如batch-size,anchor-scale等,以得到较好的训练结果。

2.6 模型性能评估指标

1)AP(Average Precision),实际等于Precision-Recall曲线下的面积。AP是针对单个类别的,衡量的是模型在每个类别上的优劣,先计算每一类的精准率,再计算每一类的平均精度,如式(3)~(4)所示:

(3)

式中:precisioni为准确率;N(TruePositives)i为i类图片真正的数量;N(Totalobjects)i为数据集类别i的所有目标数量。

(4)

式中:∑precisioni为准确率之和;N(TotalImages)i为含有类别i目标的图像数量。

2)mAP(Mean Average Precision)是针对所有类别,衡量的是模型在所有类别上的好坏。mAP计算如式(5)所示:

(5)

式中:MeanAveragePrecision为平均准确率;ΣAveragePrecisioni为平均准确率之和;N(Classes)为所有类别的数目。

3 实例应用

实验环境设置:Windows 10操作系统,Inter(R) Core(TM) i7-8750H6核12线程处理器,NVIDIA GeForce GTX 1080 Ti显卡,12GB系统内存,实验使用基于Tensorflow学习框架进行相关代码和参数训练。

3.1 对比同数据集下Faster R-CNN改进前后的检测效果

使用VOC2007格式的复杂作业情况下安全帽数据集分别对原始的Faster R-CNN网络框架和改进后的Faster R-CNN网络框架进行训练。未改进Faster R-CNN网络框架迭代到80 000次后,损失值趋向收敛,损失值为0.8效果达到最优。改进后的Faster R-CNN网络结构迭代到50 000次后,损失值收敛为0.2,获得最优效果。2种算法最佳效果mAP见表2。

表2 2种模型效果对比Table 2 Comparison on effect of two models

由表2可知,改进后的Faster R-CNN网络框架的mAP相较于未改进的Faster R-CNN网络框架提高15%,2种检测结果如图7所示,未改进的Faster R-CNN网络框架检测出4处,错检1处,平均检测精度为91.48%,改进后的Faster R-CNN网络框架无错检,平均检测精度为99.99%。实验证明,改进后的Faster R-CNN网络框架能够有效地优化模型。

图7 改进网络框架与未改进网络框架的检测效果对比Fig.7 Comparison on detection effect of improved network framework and unimproved network framework

3.2 采用不同策略改进网络的有效性

为突出所采用的3种改进策略对于复杂场景下安全帽识别的有效性,分别采取不同的策略对网络进行训练和测试,测试结果见表3。

表3 不同改进策略的效果Table 3 Effects of different improvement strategies

由表3可知,不同改进策略对网络性能的影响,策略2和策略1相比mAP提升1.2%,因为本文增加了3组锚点,使得网络结构能够检测到更多的小目标安全帽。策略3和策略2相比mAP提升7.1%,由于替换了原本的损失函数,解决了复杂作业场景下安全帽数据集中正负样本比重失衡的问题,增强了网络的分辨率。策略4和策略2相比mAP提升7.6%,解决了2次量化安全帽预测区域不匹配的问题,提升了安全帽预测框的精准度。策略5为本文算法,使用3种改进策略后效果达到最佳。实验证明,3种改进策略均提升了模型的性能。

3.3 采用不同提取网络的检测效果对比

除了原始的Faster R-CNN 模型,本文还与不同特征提取网络的Faster R-CNN模型进行实验对比,不同提取网络的检测对比效果见表4。由表4可知,本文所采用网络框架效果明显,mAP达到0.773,相较未改进的Faster R-CNN网络框架提高15%。

表4 不同提取网络的检测效果Table 4 Detection effect of different extraction networks

4 结论

1)针对智慧工地背景下,施工人员安全防护用具的识别问题,利用Tensorflow构建改进的Faster R-CNN网络框架。通过采集7 581张图像,构建复杂作业场景下的安全帽数据集,进行训练和测试。改进后的网络框架mAP提升15%。该改进方法可有效地用于安全防护用具识别,改善建筑施工作业现场工作人员的安全管理现状。

2)使用3种策略对Faster R-CNN网络框架进行改进,通过增加锚点mAP提升1.2%,改变损失函数mAP提升7.1%,改进ROI层mAP提升7.6%,结果证明3种改进策略都对网络框架的准确性有所提升。

3)下一步研究中,不只针对防护用具的使用情况,可增加人的不安全动作的实时识别,为智慧工地提供更多的技术层面的支持和参考。

猜你喜欢
安全帽损失框架
小小安全帽,生命保护伞
框架
胖胖损失了多少元
广义框架的不相交性
爆笑四格
玉米抽穗前倒伏怎么办?怎么减少损失?
关于原点对称的不规则Gabor框架的构造
一般自由碰撞的最大动能损失
一种基于OpenStack的云应用开发框架
损失