一种基于特征引导的电力施工场景工装合规穿戴二阶段检测算法
2022-04-26林其雄闫云凤齐冬莲
林其雄,陈 畅,闫云凤,齐冬莲
(1.广东电网有限责任公司广州供电局,广州 510050;2.浙江大学 电气工程学院,杭州 310027)
0 引言
电力施工场景下的监管一直是国家安全生产监管的一个重要方面。国内电力行业的安全性评价、危险点预控等安全管理方案早在20世纪90年代就开始推广[1],极大程度地降低了电网的事故率。但是在安全制度体系下,由于作业人员的违规行为以及单一依靠人力监管的不完备性等原因,电力施工过程中事故仍偶有发生。目前,电力安全已经得到了学界的重视,并产生了一些结合物联网和人工智能技术的智能监测成果[2-4]。
电力施工现场环境复杂,工种任务多样,工装穿戴的合规性是安全生产的基本要求,正确佩戴安全帽、正确穿戴工装能在很大程度上保护作业人员的人身安全。然而,由于作业人员自身的懈怠疏忽,管理人员监管的放松警惕,施工过程中的安全风险时有发生。借由部署在施工场地的摄像头,引入深度学习技术,对监控图像视频信息进行分析,识别到未戴安全帽或者未正确穿戴工装的作业人员并及时提醒,能够提高监管的有效性,增强作业人员的安全意识,减少潜在的安全风险,保证施工的安全性。
计算机视觉的兴起首先带来了基于传统图像特征提取的作业穿戴规范识别方案,如冯国臣[5]等提出的基于机器学习的人体检测方案,刘晓惠[6]等提出的基于安全帽轮廓特征的检测方法。这些方案或多或少都受到复杂施工环境的影响,很难达到良好的精度和准确率。
近些年来,随着人工智能和深度学习技术的发展,一些基于深度学习的智能监控方案逐步进入施工现场,为安全生产保驾护航。Mneymneh[7]等提出的改进方法可以用来判断作业人员是否佩戴安全帽,但受限于人员工作姿态和身体特征的复杂性,没有达到预期精度。杨莉琼[8]等人提出基于机器学习方法的安全帽佩戴行为,在YoLo系列[9-11]检测基础上,改进原有传统特征提取器,结合SVM(支持向量机)分类器进行分类[12-13],但算法验证集小,测试场地较为单一,无法很好地说明算法的泛化能力。李华[14]等针对复杂场景引入多尺度信息,提升了检测准确度,但是对于小目标仍存在检测困难。在整体穿戴方面,张春堂[15]等人设计了SSD-MobileNet,对多种穿戴设备进行识别,虽然通过小模型优化了检测速度,但是囿于单模型的设计,在整体图片中对于小样本的检测仍有困难。
目前基于深度学习的电力施工场景工装穿戴检测研究存在以下两个问题:现有方法主要针对安全帽佩戴,而没有考虑整体工装穿戴的要求;在针对作业人员进行定位时使用通用的目标检测算法,而无视了生产场景下人员姿态动作的复杂多样性。因此,本文在充分采集作业场地工装穿戴样本的基础上,提出一种二阶段的工装合规穿戴检测算法,并针对上述的第二个问题进一步提出基于Faster R-CNN[16]优化的人员定位算法,通过引入FPN(特征金字塔网络)[17]和Guided An⁃chor[18]模块,增强模型对不同层次特征的提取以及对不同人体检测框的拟合。
1 工装合规穿戴检测算法
电力建设场景下对作业人员工装穿戴的监管主要关注的部分有:作业人员的头部是否穿戴安全帽;工装上衣是否合规穿戴;工装裤子是否合规穿戴。具体来说,除了常规考虑工装上衣、裤子的穿戴,算法设计过程中还考虑了作业人员是否存在卷起袖子等违规穿戴的情况,图1为现场穿戴行为实例。
图1 穿戴行为实例
工装穿戴检测算法主要解决两个问题:电力建设场景下环境复杂,人员流动性强,无法通过传统匹配方案进行高精度的定位;考虑到算法的实用性,算法使用的图像视频数据局限在电力建设场景下部署的现场摄像头,精度有限,且往往部署在与作业人员有一定距离的高处,导致视频图像中作业人员的人体比例较小,对算法的检测能力要求较高。此外,由于卷起袖子等行为在人体图像区域中所占的比例也相对较小,算法设计过程中需要尽可能防止模型对现场情况的误判或漏检。
考虑上述因素,设计了一个二阶段的工装合规穿戴检测算法,包括人员定位阶段和人体区域工装合规检测阶段。人员定位阶段用于在现场监控图像中定位作业人员,裁剪精确完整的人体图像,并得到人员在画面中的具体位置;人体区域工装合规检测阶段则利用裁剪得到的低精度图像,提取图像中的工装穿戴特征,对具体人员的工装穿戴进行检测,结合人员定位阶段所得到的人员位置,给出最终的工装合规穿戴检测结果。
区别于常规的直接对工装区域进行检测再对人体和异常穿戴现象进行匹配的流程,本文所采用的工装合规穿戴检测算法遵循一种“自上而下”的检测流程,即先检测人体区域,再对画面中的各个人体区域逐步进行工装检测,具体流程见图2。“自上而下”的检测流程可以有效避免常规方案在匹配阶段因为人员位置重合而导致的错判和漏判,有效提升了方法的可信度。
图2 工装合规穿戴检测算法流程
2 基于Faster R-CNN 优化的人员定位算法
本文在人员定位部分以Faster R-CNN算法作为研究的基础检测方法,以ResNet[19]作为特征提取的骨干网络。电力建设场景下,图像中人体比例较小,且人员定位框容易受到作业人员不同动作状态的影响,检测框的长宽比分布较为复杂。因此,引入FPN和Guided Anchor模块用于算法在电力建设场景下的优化。基于Faster R-CNN优化的人员定位算法的整体框架如图3所示。
图3 基于Faster R-CNN优化的人员定位算法整体框架
2.1 网络结构设计
Faster R-CNN作为二阶段检测模型,引入了anchor(锚点)概念,通过两条检测支路对特征图的前景目标和背景目标进行区域提取,结合骨干网络提取的特征图信息,通过末尾的几个卷积层和全连接层进行最终预测位置框的回归和框内目标的分类。
为了帮助检测算法提取到更丰富的语义信息,提升网络对于小目标的检测能力,采用FPN 结构使模型能从不同尺度的特征图提取不同层次的语义信息。FPN 保留了骨干网络ResNet 中阶段2 至阶段5 的输出,并对应通过1×1 卷积核卷积,高层输出统一降通道为256,选择最近邻插值法上采样的2 倍,得到与4 个通道数均为256、相对输入图片整体下采样系数为4的特征图组。除了最高层的特征图之外,其余几层分别叠加相邻上层的特征图,再选择一个输入通道、输出通道均为256的3×3 卷积核进行叠加后特征图的卷积,避免直接相加导致的特征混叠现象。
Guided Anchor 模块针对的是Faster R-CNN中的anchor 生成方式。原有anchor 生成方式都是基于滑动窗口的思路,需要研究人员手动预设an⁃chor 的基础尺寸、长宽比后,从特征图的起始点开始生成密集的anchors,并通过anchor 和图像标注的真实框的IoU(交并比)筛选anchor送入网络进行训练。从直观上考虑,此方法生成的anchor 与要求的目标检测框分布是不同的。一方面,真实目标检测框无论是在单张图像上还是在整个数据集上均为稀疏分布,均匀分布生成anchor 这一过程本身消耗了过多的计算资源;另一方面,直接使用IoU 为筛选指标也会导致形状不同的anchor进入网络,使训练更加难以收敛。
Guided Anchor 假定检测目标的位置分布方式如下:
式中:I为输入图片;x和y为检测目标框的中心点位置坐标;w和h分别为检测目标框的长和宽;p(x,y,w,h|I)表示给定输入图片I,对应图片上的anchor 分布位置和形状的条件概率;p(x,y|I)为anchor 位置对图片的条件概率;p(w,h|x,y,I)为anchor 形状对输入图片的条件概率。Guided An⁃chor生成anchor的方式如图4所示。
图4 Guided Anchor生成anchor的方式
显然,检测目标在图像上的位置分布和目标周围的特征信息有关,但是检测目标自身的长、宽与周围的特征信息并不直接相关,而是通过物体本身特征和物体在图像上所处的位置关联的。因此,Guided Anchor 在生成anchor 的部分引入了两个新的训练分支——位置预测分支和形状预测分支,替代传统的RPN(区域候选网络),用来帮助框架依据特征图局部特征完成稀疏anchor 的生成。框架根据这两个分支的输出结果与设定的阈值比较,首先得到特征图上可能存在目标的中心位置,再根据中心位置附近特征的局部特征来预测最有可能的anchor 形状。通过这一流程筛选得到的anchor 形状和大小,本身就包含了所需要检测的电力场景中人员的语义信息和分布信息,近似于对输入图片进行了一次初步的主要物体定位。在同样存在一定量的统计样本情况下,通过Guided Anchor 预测得到的anchor 会比单一通过统计整体真实框分布的原始anchor 生成方案对偏离正常分布的真实框有更好的IoU,降低检测算法在后续定位时对边框线性回归的拟合难度。
2.2 网络损失函数和训练参数
图4 中,Guided Anchor 的位置分支通过1×1的卷积在输入的特征图上产生一个分数图,并通过对应具体目标涉及的sigmoid函数来得到图上每个坐标对应的各种目标的概率值,大于设定阈值则判定为正样本,反之为负样本。为了平衡样本训练过程中正负样本不平衡的问题,位置分支的训练采用Focal Loss,具体如下:
式中:Lloc为检测网络的定位损失;z′为经过sig⁃moid函数的输出结果;z为真实样本标签;α为平衡因子,用来平衡正负样本比例在训练时的影响,本文取值0.25;γ用来调节简单样本权重在训练时下降的速率,帮助模型在训练时更关注难样本,本文取值0.5。
Guided Anchor 的形状分支的作用是预测对应位置anchor 与真实边界框最匹配的宽和高。网络分支首先将anchor与对应的真实边界框进行匹配,再通过给定采样的宽和高的值来计算拥有最大IoU的宽和高。损失函数如下:
式中:Lshape为形状分支的损失;L1为常用的smoothL1函数;wg和hg分别为真实边界框的宽和高。smoothL1中的β取值为0.2,smoothL1函数的计算方法如下:
式中:t为输入的参数。
Guided Anchor 用式(2)和式(3)代替了原始Faster R-CNN 中anchor 生成部分的损失函数,总体的损失函数L计算方法为:
式中:λ1和λ2为权值系数,本文分别取值1.5 和1.0;Lcls和Lreg分别为原始Faster R-CNN中分类分支和位置框回归分支的损失函数。
式中:i为生成初始预测框的编号;pi为预测框是前景的概率;为预测框预测正确的概率(当预测框与标注框重合度大于0.7 时,为1;当重合度小于0.3 时,为0);ti为预测框的边界参数;为前景目标的真实标注框边界参数;smoothL1函数中的β取值为3。
3 人体区域合规穿戴检测算法
在获取作业人员在输入图片中的位置之后,结合基于Faster R-CNN优化的人员定位算法提供的置信度信息,对高于一定阈值置信度的检测框进行裁剪,得到待检测的人体区域。
因为输入的图像尺寸较小,对于待检测的人体区域同样采用基准的Faster R-CNN作为检测算法。对比使用简单的识别网络进行穿戴识别,检测算法在增加一定计算量的前提下,可以更准确地利用图像标注中提供的目标位置信息。因为所需要判别的合规穿戴区域相对固定,以Faster RCNN 所代表的目标检测算法可以快速通过学习穿戴标注在图像中的位置形状信息,拟合出异常或合规穿戴在人体区域中的相对位置,例如卷起袖子一般出现在裁剪后图像的中部,卷起裤腿一般出现在图像的底部。如果直接使用识别网络,则网络获取的信息只包含图像的类别信息,而判别类别所使用的对应区域语义特征是需要学习的。因此,训练一个目标检测算法对于合规穿戴任务来说,训练难度更低,准确度更高。
4 实验结果与分析
数据集的制作采用在广州电力建设现场实际采集的方式,共收集了15 477 张图片用于人员定位算法的训练,包含正常佩戴、未戴安全帽、正常穿工装上衣、正常穿工装裤子、未合规穿工装上衣(卷起工装袖子),共5种穿戴行为。选择其中的12 542张图片作为训练集,剩余2 935张作为测试集。对数据集中的人体进行裁剪后,得到29 341张人体区域图片,其中26 406 张图片用于人体区域合规穿戴检测算法的训练,2 935张图片用于算法性能的测试。本文模型训练与预测的实验硬件条件为NVIDIA RTX3090 GPU,系统环境为Ubuntu 16.04,训练框架为Pytorch。
在训练人员定位算法时,训练图片进入模型训练前进行数据增强,采用随机翻转和颜色通道标准化方法。将数据增强后的图片像素统一缩放至1 333×800。模型采用ResNet50 作为特征提取骨干网络,采用在ImageNet 上与训练的模型参数作为初始化参数,模型训练优化器采用随机梯度下降,批训练大小设置为8,初始学习率为0.02,动量项为0.9,权值衰减系数1×10-4。总迭代次数为50 000,慢启动设置为2 000次迭代,并采用学习率阶段下降方式,在迭代35 000 次和45 000 次时分别将学习率下降为当前学习率的0.1倍。
在训练人体区域合规穿戴检测算法时,将图形像素统一缩放到150×400,批处理设置为128,初始学习率为0.02,动量项为0.9,权值衰减系数1×10-4。总迭代次数为20 000,慢启动设置为500次迭代,在迭代14 000 次和18 000 次时分别将学习率下降为当前学习率的0.1倍。
本文在人员定位算法时使用标准的目标检测指标mAP(平均准确率)作为评价指标,阈值设置为0.5。最终整体的工装穿戴合规检测采用平均准确率Am作为评价指标,计算方式如下:
式中:k为穿戴行为的总类别数;m为算法判断准确的图片数量;n为该类别在测试数据集中的总数。图片中所有人体的某类别都识别代表判断准确。
图5为人员定位结果,图6为人体区域工装合规检测结果,图7为最终的电力施工场景工装合规穿戴检测结果。定量指标见表1和表2。
表1 电力施工场景人员定位准确率
表2 合规穿戴准确率
图5 人员定位结果
图6 人体区域工装合规检测结果
图7 电力施工场景工装合规穿戴检测结果
因为电力施工场景下作业人员的人体形状分布不均匀,原始Faster R-CNN 的人员定位的mAP仅为85.1%;在采用了FPN对底层特征信息进行增强之后,mAP 上升至89.7%;使用Guided Anchor 模块替代原始方案中手工设置的anchor 参数后,mAP 进一步提升至91.1%。由实验结果可知,本文提出的基于Faster R-CNN优化的电力施工场景人员定位算法可以实现电力施工场景人员的准确定位与识别。
二阶段Faster R-CNN方案对工装合规穿戴检测的平均准确率达到92.9%,对于卷起袖子这类不显著的违规穿戴行为检测的平均准确率也达到93.9%。此外,对比单阶段Faster R-CNN 方案对于大图片输入中的小目标漏检,二阶段Faster RCNN 方案通过人体位置的先验,将人体区域合规穿戴检测的平均准确率提升了11.4%。同时,在卷起袖子这类不显著违规穿戴识别任务上,二阶段方案的平均准确率相比单阶段方案提升了16.3%,体现了二阶段方案对于工装合规检测中小目标检测任务的优势。
定量检测结果与图7中检测结果表明,本文所提方案能很好地应用于电力施工场景下的工装合规穿戴检测。
5 结语
工装合规穿戴识别对于电力施工场景下的安全作业具有重要意义,之前的工作大多针对安全帽检测,针对工装合规穿戴检测的研究较少。本文在原有工装检测方法的基础上,将检测内容拓展到卷起袖子、卷起裤腿等穿戴场景,提出了一种二阶段工装合规穿戴检测算法,包括人员定位阶段和人体区域工装合规检测阶段。在人员定位阶段,对原始的Faster R-CNN进行优化,增加了FPN和Guided Anchor模块,用于应对电力施工场景下人员动作导致的人体形状检测存在的问题,有效提升了检测精度。在人体区域工装合规检测阶段,利用目标检测任务能提供给网络更准确的类别位置先验信息,采用Faster R-CNN进行工装穿戴是否合规的识别,对于卷起袖子等不显著的违规穿戴行为也能实现准确的判断。实验结果表明:本文提出的方法对电力施工场景下的人员定位检测精度达到91.1%,相比普通Faster R-CNN方案提升了6.0%;二阶段工装合规穿戴检测方案对人体区域合规穿戴识别的平均准确率达到92.9%,相比单阶段Faster R-CNN提升了11.4%,具有较强的应用性。