冯庭有,蔡承伟,田 际,江志宏,陈 乐,周俊煌
(1.华能东莞燃机热电有限责任公司,广东 东莞 523000;2.广州市奔流电力科技有限公司,广州 510700)
电厂是整个电网电能资源的源头,电厂的安全运行直接关系到整个电力系统[1]的稳定和安全,涉及国计民生。保障电厂的安全运行主要面向于维护厂内设备的安全运行。
早期对电力设备的维护主要依靠于人工的巡查,然而随着经济社会的不断发展,社会对电力的需求日益剧增。“大电网建设”稳步的推进,电厂的数量和规模也在飞速扩张。传统依靠人工巡查[2]的方式已不足以满足电厂设备运维的需求。
在电厂的运行设备中,包含了许多重要的充油设备和管道。这些设备受温差胀缩、设计、制造工艺、氧化老化和检修维护等因素的影响,常常会出现漏液渗液情况[3]。一方面,影响设备外观及外部构造,增加运营维护成本,影响生产效益,另一方面,设备的渗漏会导致设备的液位降低,引发设备运行的安全警告,甚者会短路放电,导致设备毁坏和火灾等严重后果,从而造成严重的安全事故。
随着传感器、网络通信、计算机性能等相关信息产业技术的发展,实现对电厂生产安全的全方位全天候运维管理已变成了可能。电厂已逐步的向智能化[4],数字化的方向进行转变,只需要通过布控在被监测设备上的传感器获取传感数据并及时传输到终端进行分析和处理,及时反馈设备运行的状态,就能实现管理人员对电厂的全面掌控。
目前,现有设备与管道的油液渗漏检测通常是采用油液检测传感器[5]或者传统的基于机器视觉的算法[6]来实现。然而,现有传感器通常通过接触或管壁附着的方式监测电容变化情况来完成,监测的过程中易受到区域光滑和纹理等特征的影响,导致其监测效果较差,且部分的传感器受限于油液接触的监测方式,往往会导致监测范围较小等弊端。传统的机器视觉的算法依靠人工设定的特征算子(如颜色,边缘轮廓及纹理等特征)来提取先验的特征信息来判别和处理,此类算法受限于人工算子的局限性,在特征提取和分析中往往易受到背景信息,阴影,光照明暗强度等因素变化的干扰,算法鲁棒性较差[7]。目前,如何提升系统检测的准确性和鲁棒性成为了研究改进的重要方向。
基于视觉图像的油液渗漏检测一般存在以下几个难点:
1)油液渗漏检测的图像呈现变化较细微和缓慢,且图像背景复杂。
2)油液渗漏图像差异较大,没有固定的规则处理图像。
随着计算机运算能力的增强,在视觉领域有着广泛应用的深度学习算法通过以数据为基础和载体,损失优化为导向的方式不断迭代,动态的调整模型,自动提取特征,相对于传统的手工设计的算子特征提取,深度学习算法在面对目标和环境的多样性变化往往有着更强的适应性和更好的表现,有关深度学习目标检测算法[8-9]的应用和推广早已遍及多个领域。2017年,曹诗雨[10]等人提出了一种基于Fast R-CNN的车辆目标检测算法。但Fast R-CNN等此类算法在多尺度图像的特征抽取上重复计算较多,算法整体计算复杂度高;张琦,林刚等人基于改进的Faster RCNN[11-12]进行交通目标和输电线等目标的检测,此类算法在特征提取上有角度的改进,但其候选区域的选取导致检测速度较慢,无法满足实时需求。杨罡[13]利用YOLO进行电线的绝缘子检测,傅景超[14]提出基于YoloV3的道路多目标检测,在检测速度上有较多的优势,但是在检测精度上存在着较大的差距。此后基于Mask RCNN[15],SSD(single shot multi-box detector)[16-19]等改进算法应用于各个行业场景中发挥着作用。基于深度学习的检测方法是油液渗漏检测的发展方向和趋势。
基于视觉的图像处理算法已研究多年,传统的图像研究算法有基于颜色,纹理,梯度等类型的图像处理算法。2012年,Alex等人提出的基于深度学习的神经网络算法在Image-Net[20]上有着卓越的表现。此后,神经网络算法不断发展。2014年以后,RCNN[21]等应用多层次的特征的两阶段目标检测算法,使用神经网络提取特征取代传统的手工算子特征提取方式,此类算法有着较高的精度,但过多的模板匹配和特征计算导致检测速度慢。2016年,Joseph Redmon等人提出了YOLO[22]系列算法,通过将目标检测问题转换为回归预测问题,由此大大地提升了图像检测的速度。但回归预测也带来了检测框的不稳定性。其精度较低。Wei Liu结合了YOLO回归预测的思路和RCNN系列算法锚点预测的思想,提出了SSD算法——一种兼顾精度和速度的回归预测的检测算法。但受限于采用深度神经信息的特征作为待检测特征,在预测的过程中,SSD算法对小目标的检测和遮挡目标存在较大的考验。
为了进一步提升特征的表达用以提升特征表达,FPN[23],Mask RCNN[24], PA-Net[25], Bi-FPN[26]等算法提出多了多种不同的特征金字塔以强化特征表达,结合Encode to Decode的沙漏似网络结构作为网络的基本骨架,这也使得网络的计算复杂度升高。2019年,K.Sun[27-28]等人提出了深度高分辨率表征学习网络用于行人姿态的估计,此结构持续维持了高分辨率特征图。这极大地避免了特征分辨率的放缩导致信息丢失的情况,有利于提升对小目标的特征检测。此外,高分辨率特征的并行也有利于多次实现多分辨率特征信息的融合,有利于后续任务的展开。
本文针对油液渗漏图像检测的难点问题,分析其微小目标变化和目标遮挡等情况,本文构建了电厂油液渗漏的数据集,并提出了一种基于深度学习的改进SSD目标检测算法用于油液渗漏检测算法,通过图像发现油液渗漏现象,从而进行预警,提醒电厂巡检人员设备油液渗漏现象,通知维护人员检测维修,进一步找到渗漏点及原因,及时消除安全隐患,降低事故发生的风险,保障电厂的安全平稳运行。本文贡献有以下几点:
1)本文构建了一个实际应用场景下的油液渗漏基础数据集,并提出了一种数据扩增算法用以实现油液渗漏检测网络训练数据的扩增,有利于强化模型的鲁棒性。
2)本文在高分辨率特征的基础上针对性的提出了一种多分辨率特征融合方法,有利于增强特征表达。
3)本文提出了一种基于高分辨率多特征融合改进SSD目标检测网络,用以提升油液渗漏检测的准确性。
SSD目标检测网络结构可大致分为两部分:主干网络和检测分支两部分。如图1(a)所示,其中主干网络由VGG-16主干网络模型构成,用于提取图像信息特征;检测分支通过从主干网络中抽取多尺度特征构成用于后续的目标预测。SSD目标检测网络并没有充分利用特征信息,缺乏上下文信息的融合用以增强特征的预测,使得SSD目标检测效果较差,特别是较小的目标和遮挡目标不敏感。为进一步提升SSD算法的检测性能,提升算法对小目标和复杂环境下遮挡目标的检测能力。
本文在原有SSD目标检测网络的基础上,引入高分辨率网络替代原有的VGG串联式的主干网络,为进一步提升特征的表现能力,增加融合层用以实现上下文信息的融合。其具体的结构如图1 (b)所示。改进的SSD目标检测网络主要包含高分辨率网络、融合层和特征预测3个部分,本部分将从此3部分进行详细介绍。
1.1.1 高分辨率网络
高分辨率网络与原有的VGG19网络卷积层堆叠的方式不同,高分辨率网络通过维持多尺度的并行网络特征。此外,在特征提取阶段也包含了不同尺度的特征融合,这能较充分的提取图像的特征信息。在本网络模型中,模型的输入大小为448×448,为了兼顾模型检测的速度,本模型中的高分辨率保留特征尺寸为[56,28,14,7]。在高分辨率的模型中,如图1(b)高分辨率网络中所示,其横向的箭头采用一个3×3的卷积层和一个BN层操作,其输出后的特征维度与输入的特征维度保持一致。斜向下的箭头表示下采样,包含有核大小为2的平均池化层。向上的箭头表示上采样,其操作为双线性插值的临近插值。上采样和下采样后的特征都通过1×1的卷积核层来整合调整到相同的通道数。多条线指向同一特征时,采用的是基于通道维度的拼接操作实现特征的拼接。
图1 SSD与改进SSD模型对比图
高分辨率网络并行输出1倍、1/2倍、1/4倍、1/8倍维度特征,输出的特征进入融合层进行融合处理后预测。
1.1.2 融合层
在原有的SSD模型中,将直接采用主干网络的特征信息进行目标预测,然这种方式并没有较充分的利用特征信息。针对于此,本模型通过引入一个融合模块来融合上下文信息用以增强待检测特征的表达能力。
本层获取从高分辨率网络中并行输出的4个不同维度的信息特征,其整体结构如图1(b)所示。每个信息特征作为主要的融合信息特征,分别通过4个融合模块融合别的尺度的上下文特征信息特征后,输出4个不同维度的信息特征作为预测层的输入。融合模块具体的方式如图2所示。以1/2倍特征F2为例,1倍F1,通过平均池化的方式下采样将特征图大小变为1/2倍与F2特征图大小对齐,然后再采用1×1的卷积层将1/2倍F1特征通道维度与F2特征通道对齐;1/4倍F3特征图将采用双线性插值的临近插值的方式将特征图大小转变为1/2倍大小,采用1×1的卷积层将1/2倍F3特征通道维度与F2特征通道对齐;1/8倍F4经过双线性插值的方式将其特征图大小变为1/2倍大小,后采用1×1卷积将特征通道维度对齐F2。分别得到通道维度相同的1/2倍F1、1/2倍F2、1/2倍F3、1/2倍F4四个信息特征后,将除1/2倍F2特征外的其余特征进行逐元素相加后加1,再与1/2倍F2特征进行逐元素相乘。其公式可简写为公式(1)所示:
图2 特征F2融合模块示意图
(1)
其中:n= 4,j=1,2,3,4;Fi为第i层特征;Fj为第j层特征;Fp表示用于预测的特征;*表示逐元素相乘;+表示逐元素相加。
经过融合层后输出4个融合后的特征分别用于模型特征预测。
其中:x表示逐元素相乘;+表示逐元素相加;Fjkxk为第j层特征;k表示特征图的大小。
1.1.3 特征预测和模型优化
在模型优化方面,采用交叉熵来计算分类预测与真实值的损失。采用L1损失来衡量预测坐标与真实标签框的距离。
总的损失计算包含有定位的损失和置信度误差的加权和,如公式(2)所示:
(2)
其中:N是匹配到真实框的目标框数量,x为预测标签类别与真实标签类别的匹配系数,其取值为{0,1},c表示预测的类别的概率。δ用于调整分类损失LC和定位损失Lloc的比例,一般为1;b表示为预测的矩形框和真实的矩形框的匹配系数,取值为{0,1};l表示预测的矩形框坐标,g为真实的矩形框。
Softmax分类计算公式如公式(3)所示:
(3)
其定位损失为:
(4)
其中有:
(5)
(6)
(7)
(8)
在深度学习的目标检测中,模型的驱动是以数据为核心的,数据集的构建是至关重要的,如何保证数据的多样性是模型训练具备良好的鲁棒性的关键所在。
目前,电厂设备油液渗漏的图像数据十分匮乏,部分电厂设备油液渗漏检测算法因训练数据过少,导致在实际应用中检测效果表现不佳。为了解决这个问题。本文以电厂为应用场景,通过电厂监控设备视频数据的截取和分析,共收集了3 000张各种设备油液渗漏的图像。如图3所示,其为部分电厂中设备发生漏液现象的场景图像,图片中设备由于漏液而导致设备的下方地面出现了液渍。
图3 电厂油液渗漏数据集
本文对采集到的设备油液渗漏的图像采用VOC[29]2 007的格式进行标记和存储,从而形成电厂设备漏液数据集,并按照训练集:测试集为9:1的数据进行划分,随机选取2 700张图像作为训练集,剩下的300张图像作为测试集。
数据的多样性有利于模型的泛化性能,数据增广策略的选取有利于扩大数据的多样性。受现实的考虑,油液渗漏现象在电厂采集出现的频率不高,出现的次数较少,导致采集的漏油数据较少,同时多样性不足,并不能满足算法模型训练数据量的需求。
为了进一步发挥现有数据的效果,提高模型的性能,本文在现有图像不增加的情况下,采用数据增广策略对数据集进行扩充,从而提高模型的泛化性能。如图4所示。本文在首先采用了基础的旋转,水平翻转,亮度调整的增广策略,对数据集进行扩充。
图4 基础的增广策略
鉴于油液成像目标的多样性,对应为增加数据中目标形态的多样性,本文通过轻度图像旋转和水平翻转的方式增加图像目标形态学上的变化,如图4 (b),图4(c)所示。光照强度对图像检测影响亦大,本文通过增强及降低图像整体亮度(如图4(d),图4(e)所示。)来增强图像光照强度上的变化。
此外,在原有数据增广策略的基础上,为增加障碍物遮挡等情况的图像检测,本文提出了一种随机种子遮挡的图像生成策略用以增加油液渗漏遮挡数据的多样性,该策略的详细算法如流程图5所示,包含有目标框获取、圆心选取、半径选取、颜色填充等步骤。其中:
图5 随机种子遮挡策略流程图
获取目标框:指的是遮挡的内容设定在图像目标框(x,y,w,h)范围内。
圆心选取:指的是在目标框范围内选取一个随机点(x*,y*)。Rand(x*,y* )st.x*∈(x-w/2,x+w/2),y*∈(y-h/2,y+h/2) 其中(x,y为矩形中心坐标点,w为矩形的宽,h为矩形的高)。
半径选取:以(x*,y*)为圆心,随机在圆心到目标框边最短的垂直距离d范围作为半径r,构建圆R。
颜色填充:将所获得的圆R进行颜色填充。本文鉴于油液常为黑色与暗黑色。将圆R的填充颜色值为图像的通道均值像素值进行填充。
重复这一步骤可形成获取不同形状和大小的油液渗漏图像图形区域。鉴于区域目标的大小,在本文中,重复生成的圆的个数不大于2。其变化的示例如图6所示,图6(a)为数据集中图像数据,图6(b)为对原图采用随机种子遮挡图像生成策略后生成的图像数据,会在图像的中间生成带有遮挡性质的图案干扰信息,增加图形变化的多样性,有利于模型的训练的稳定和性能表现。
图6 随机种子遮挡图像生成示意图
经过数据增广的扩充,本数据集在原有的基础上将其数量扩增了6倍。
本模型采用在Image Net数据集上训练模型作为预训练模型,然后在构建的油液渗漏数据集上进行训练。Moment为0.9,初始学习率为0.001,前2 000个迭代次数(iteration)用热身训练(warmup)进行预训练,学习率为0.1,后每经过30周期(epoch)以0.1的系数进行衰减,训练的批次(batch)为显卡内存所容纳的极限,直到训练至120 epoch结束训练。
本文在测试集上进行,为了验证本算法的有效性。本文以传统SSD算法和传统的高分辨率特征融合算法网络为对比,分别从模型的精度和准确率两方面进行对比和衡量。
SSD和改进的SSD模型算法的对比图如图7所示。通过120 epoch的训练,模型损失逐步趋于稳定且处于收敛的状态。因此模型训练基本收敛较好。
图7 训练损失与训练周期图
本文对训练好的模型在测试集上验证,改进的SSD算法在模型的准确率和召回率上都有一定的提升。其对比如表1所示,本模型在测试集的检测准确率达到了91.6%,且检测的召回率也达到了90.5%。
表1 模型准确率与召回率对比
为了进一步验证高分辨率特征网络与融合模块算法对检测准确率的影响,本文逐一消融不同模块,测试模型的准确率。如表2所示。高分辨率算法比原有的VGG的多尺度特征算法有着更强的特征表达性能,高分辨率特征SSD网络不增加融合算法,直接对输出的图像进行分类和回归预测。其准确率比原有SSD模型表现性能要好。达到了90.2%。增加融合模块的高分辨率特征SSD网络比不加的网络在精度上有0.9%的提升。
表2 消融实验结果对比
此外,本文在改进SSD上比较了数据增广策略的效果,相比于不加数据增广策略,数据增广可以使模型提升0.5个百分点。
本文改进的SSD目标检测模型与原有SSD目标检测模型相比,准确率也有3.1%的提升,验证了本文方法的有效性,说明了高分辨率特征模型网络有利于图像特征目标的提取和表达;特征融合引入了上下文信息,有利于强化模型特征的表达,数据增强策略有利于增强模型的泛化性能。
本文利用改进的SSD算法用于检测油液渗漏问题,面对基本的油液渗漏等情况,本算法检测效果表现较好,其效果如图8示。本算法面对如水面等干扰情况,算法仍有较好的表现。如图8(a)所示,图像右上角的水面区域并没有被检测入内。在图8(b)中,不同亮度下的光影场景下可以准确地检测出目标区域。图8(c)中,针对隔断和遮挡也可较好地检测出目标区域。
图8 改进SSD算法检测效果图
本文通过改进高分辨率网络和SSD目标检测算法用于油液渗漏检测,并构建了数据集用以模型训练,取得了较好的性能。尽管本算法对原生的SSD算法存在一定的改进点,但精度提升也有限。此外,原有的SSD算法也还存在采取大量的锚点框预设的方式,在面对高分辨率图像时往往会降低其检测的速度,如何在不降低检测精度的同时进一步提升检测速度将是以后研究的主要方向。