林 颖,张峰达,李壮壮,孙艺玮,于文牮
(1.国网山东省电力公司电力科学研究院,山东 济南 250003;2.国网山东省电力公司威海供电公司,山东 威海 264200)
红外热成像技术通过非接触式探测获取电力设备的温度信息,具有探测距离远、探测速度快、不受电磁干扰、安全可靠、图像直观等特点,因此在电力设备的日常巡检中得到广泛的应用。对获取的红外图像中电力设备区域的温度分布情况进行分析,可有效发现设备局部过热等潜在缺陷,为设备管理和状态检修提供重要依据,避免因电力设备故障造成一系列损失。
然而,红外检测技术的大范围推广产生了海量的红外图像。如何对红外图像中不同类型的电力设备进行自动检测识别和智能故障诊断,实现设备异常的准确判断和实时预警,成为当前急需解决的问题,亦涌现出了诸多的研究工作[1-2]。而其中的电力设备区域分割,是红外图像自动分析和故障诊断的基础,受到了研究者的广泛关注[3-8]。
早期的红外图像电力设备分割多基于传统的图像处理技术和机器学习方法[1-8],包括阈值分割、自动聚类、分水岭法和交互式分割法等。例如,Shao等[3]基于经典的一维Otsu 阈值分割算法提出了一种改进的二维多阈值自动提取方法,能够更加清晰地将管道从复杂背景中分割出来;聂方彦等[4]提出了一种基于非广延高斯熵的图像阈值分割方法,缓解了图像中像素灰度极不均衡的问题;李唐兵等[5]设计了一种通过改进飞蛾扑火算法的红外图像多阈值分割方法,能够准确确定每个部分的温度范围;王晶等[2]针对红外视频图像提取时空特征,利用基于沙普利加法特征归因聚类算法对时空特征聚类,从而实现目标分割;王晓飞等[6]提出了一种基于分布信息的直觉模糊C 均值聚类分割算法,有效抑制边缘模糊和图像不均匀对分割造成的干扰;王如意[7]设计了一种基于分水岭的电力设备红外图像分割算法;叶健强等[8]在GrabCut 交互式分割算法的基础上,使用目标检测得到标定框代替用户选择的初始框,实现目标区域的分割。这些传统的分割方法多依赖于人工设计的特征和浅层学习模型,无法适应复杂多变的成像条件和背景环境,模型的检测性能与场景泛化能力较低。
近年来,随着深度学习技术的快速发展,特别是基于深度卷积神经网络的语义分割方法如全卷积网络(fully convolutional network,FCN)[9]、DeepLab[10]、金字塔场景解析网络(pyramid scene parsing network,PSPNet)[11]、高分辨率网络(high resolution network,HRNet)[12]等在可见光图像公开数据集中性能的提升,深度神经网络亦逐渐应用于电力设备红外图像的检测及分割[13-18]。例如,Liu 等[13]利用深度残差U型网络(U-Net),Zhao 等[14]利用DeepLab 网络对红外图像中的电力设备进行分割。这些方法将在可见光数据集中预训练得到的网络迁移至自行构建的小规模红外图像数据集中进行调优。其存在的问题是:1)由于分割任务需要像素级的标注,人工标注代价大,红外图像数据集的规模受限,制约了深度神经网络模型的性能;2)模型只能分割出电力设备的主体目标,不能做到对任意感兴趣的设备目标进行分割。此外,当分割结果不理想时,无法进行进一步的修正。
为解决上述问题,提出了一种红外图像电力设备的交互式分割方法,基于可见光图像中预训练的FocalClick 模型[19],对电力设备红外图像中的感兴趣目标进行分割。一方面,可极大地降低人工标注的代价,快速获得较大规模的红外图像标注数据集供分割和其他像素级理解任务的使用;另一方面,可对指定的特定目标进行分割或修正分割结果,提升分割的性能,从而提升后续分析的准确性。
交互式分割旨在利用简单的人工交互方式如点击、画线、画框等方式对图像的语义分割结果进行修正,从而提升分割的精度。现有的交互式分割方法[19-20]多针对可见光图像数据集。文中将可见光图像数据集中预训练的FocalClick 模型迁移到红外图像中,实现对红外图像中电力设备区域的交互式分割。用户可通过点击的交互方式指定感兴趣的电力设备目标,得到初步的分割结果后,对分割不完整的区域进行再次点击,进一步得到准确完整的目标区域,如图1 所示,图1 中红色和绿色的点分别为第一次和第二次点击的点。
图1 电力设备交互式分割示意图Fig.1 Interactive segmentation sample for electrical equipment
在电力设备的红外图像中训练交互式分割模型时,利用人工标注的分割结果作为已知的真实掩模,使用一种基于随机采样的点击生成策略来模拟用户的输入。分割模型则基于FocalClick 框架,并采用当前性能较优的语义分割网络HRNet 作为骨干网络进行目标掩模的粗略预测。
如果从真实用户那里收集交互点击序列,代价太过昂贵。即使对于同一张图像中的同一个目标,不同用户生成的交互序列也不唯一,具有随机性。因此,更好的方式是模仿用户的点击习惯,使用含有随机性的点击生成策略来自动产生这些点击序列[20]。首先采用随机采样的方法生成初始点击。如果初始分割的结果需要进一步的修正,则采用迭代采样的方法生成后续点击。生成的点击包括正、负点击,前者落在感兴趣目标上,而后者落在背景区域内。
随机采样方法具体如下。设O是物体的真实掩模像素的集合,为了采样正点击,随机选择O中的n个像素作为正点击,同时这些点击需要满足以下两个过滤条件:1)任意两个点击之间至少相距dstep个像素;2)任意点击距离目标边界至少要有dmargin个像素。
在得到初始分割结果后需要进一步采样时,采用的迭代采样方法如下:
1)对比先前掩模与真实掩模之间的区别,获取差异区域。使用连通分量将这些差异像素分为不同的集群,并根据连通面积选择其中最大的一个集群。
2)在这个集群内产生一个点。如果之前在该集群中没有采样过点,那么应当选取此集群的中心点;如果之前采样过点,那么此次采样的点要与之前采样的点以及该集群边界的欧式距离最大,从而避免多个点击之间距离过近。
3)确定点击的性质。如果该集群中对应的像素位置在目标对象上,则产生的点为正点击,否则为负点击。
采用FocalClick 框架作为交互式分割网络架构。如图2 所示,该网络架构包括目标裁剪模块、粗略分割模块、焦点裁剪模块、局部细化模块以及渐进合并模块。
图2 FocalClick框架示意图Fig.2 Architecture of FocalClick network
首先,使用高斯图来表示点击,将红外图像、高斯点击图与先前掩模连接起来,如图3 所示。连接后的图像输入到目标裁剪模块中,选择目标对象周围的区域并将其裁剪出来,将其大小调整为较小的比例后发送给粗略分割模块用以预测粗略掩模。然后,焦点裁剪模块通过形态学分析找到需要细化的局部区域,并将其放大后输入到局部细化模块中进行进一步优化。最后,采用渐进合并将细化后的局部掩模与全图掩模对齐合并。
图3 交互式分割网络输入示意图Fig.3 Input diagram of the interactive segmentation network
1.2.1 目标裁剪模块
目标裁剪模块的作用在于过滤掉与目标对象无关的背景信息。该模块首先计算先前掩模和新添加的点击最小外部框,然后按照1.4 的比率进行展开。最后,裁剪图像和点击图中的相应区域并将其调整为小尺度。
1.2.2 粗略分割模块
粗略分割模块的目的在于通过一个分割网络得到目标的粗略掩模,以便后续定位焦点裁剪区域并进行进一步的局部细化操作。选择高分辨率网络HRNet 作为分割网络,其结构如图4 所示,通过融合不同分辨率的分支,获得优异的分割性能。
图4 HRNet结构示意图Fig.4 Architecture of HRNet
HRNet 网络包含4 个层级。其中层级1 中的网络使用BottleNeck,层级2 和层级3 中的网络使用BasicBlock。每个层级由多个分支组成。层级1 包含一个迁移层,层级2 和层级3 包含融合层和迁移层,层级4 包含一个融合层。其中,迁移层用来生成一个下采样两倍分支的输入特征图,而融合层用于不同分支信息的交互融合。通过4 个层级不同分辨率分支的特征提取与信息交互,取得优异的语义分割性能。HRNet 将在可见光图像集ImageNet 中进行预训练后,用于红外图像分割的训练学习。
1.2.3 焦点裁剪模块
焦点裁剪模块的作用在于定位新点击试图修改的区域,使得算法在每次单击后无须更新所有像素的掩模,而只在用户期望修改的区域进行更新,实现局部区域的修正。具体地,该模块首先比较原始分割结果和先前掩模之间的差异,以获得差异掩码Mxor;然后,计算包含新点击的Mxor的最大连通区域,并为该最大连通区域生成外部框,称此区域为焦点区域;与目标裁剪类似,以1.4 的比率对焦点区域进行裁剪和扩展。此外,该模块使用RoiAlign 来裁剪分割网络预测得到的特征。
1.2.4 局部细化模块
局部细化模块的作用在于恢复焦点裁剪所得到的粗略掩模中的细节。首先使用Xception 卷积从裁剪的张量中提取低层特征。同时,调整通过RoiAlign 后的特征通道数,并将其与所提取的低级特征融合。为获得精细预测,使用两个分支来预测细节图Md和边界图Mb,并通过更新粗略预测掩模的边缘区域Ml来计算精细预测Mr,计算方法为
1.2.5 渐进合并模块
渐进合并模块的作用在于将细化后的局部掩模与全图掩模对齐合并。该模块使用形态学分析来确定用户意图。添加新的点击后,将新预测的掩模以阈值0.5 进行二值化,并计算新预测掩模与现有掩模之间的不同区域,然后选择包含新点击的最大连通区域作为更新区域。在这个区域中,将新预测的掩模更新到先前掩模的对应位置上,并且在其他区域中保持与先前掩模相同。
边界图Mb的监督损失函数通过对真实掩模进行8 次下采样并重新调整到原始大小来计算获得。经过这一操作后发生变化的区域,意味着含有更多的细节。在整个分割网络中,采用一个二元交叉熵损失Lbce来监督边界检测结果,用归一化焦点损失[20]Lnfl监督粗分割结果,用边界加权的归一化焦点损失Lbnfl监督精细分割的结果。因此,完整的损失函数定义为
在训练过程中,对损失函数L进行求导后,利用梯度回传(backpro pagation,BP)的方法对网络的权重进行学习,从而得到训练后的网络,实现交互式分割。
在电力设备的日常巡检中收集了3 327 张红外图像,其电力设备或部件包括电流互感器、电压互感器、开关、避雷器等。为了验证文中的方法,对采集的图像进行了像素级的人工标注。在实验中,随机选取数据集中90%的图像进行训练,剩下10%的图像用于测试,由此得到2 994 张训练图像以及333 张测试图像。
采用Pytorch 版本的FocalClick 框架实现电力设备交互式分割模型。在实验过程中,将电力设备红外图像及模拟生成的点击分批次地输入到网络中,利用Adam[21]优化器训练网络,更新深度神经网络的参数。Adam 优化器的参数设置为β1=0.9,β2=0.999。使用随机翻转和随机缩放进行数据增强。采用在ImageNet 上预训练得到的HRNet 模型来初始化网络的权重。
实验使用的主机CPU 为Intel Xeon E5-2620 v4,GPU 配置为GeForce GTX 1080Ti,深度学习框架平台为Pytorch。实验过程中,总共进行230 次迭代训练,每次迭代输入2 994 张训练图像,计算损失函数的值并对模型的参数进行更新。初始学习率设置为5×10-4,并在第190 次和第220 次迭代后分别将其降低10 倍。批大小(Batchsize)设置为32,在4 块GeForce GTX 1080Ti 显卡上进行并行训练。
实验训练过程中整体损失函数的下降曲线如图5所示。从图中可以看出,训练过程中损失函数的值不断下降并最终保持稳定,说明模型得到了有效训练。
图5 模型训练过程中损失函数曲线Fig.5 Loss curve of the model during training
训练完成后,在测试集上对交互式分割模型进行评估。使用的评判标准为点击次数(number of clicks,NoC)和分割交并比(intersection over union,IoU)。在测试集中评测结果为:在达到85%的IoU时所需的平均NoC 为1.72 次;在达到90%的IoU 时所需的平均NoC 为2.88 次。
此外,在参与测试的333 张图像中,仅有1 张图像在20 次点击后无法达到85%的IoU,仅有9 张图片在20 次点击后无法达到90%的IoU。此外,所有测试图像总共用时为97 s,每张图像的平均处理时间为291 ms。
上述实验结果表明,在小规模已标注图像的支撑下,训练得到的模型能够在极少交互点击次数的情况下得到较好的分割结果。与分割任务所需的像素级标注相比,通过少数几次点击交互的方法能够极大地缩短标注所需的时间。因此,文中方法有望帮助标注人员快速、准确地在红外图像中标注出感兴趣的电力设备目标或部件。在大大降低人工标注代价的同时,进一步构建大规模的红外图像电力设备分割数据集。
图6 展示了测试集中部分样例的分割结果,包含数据集中的四种电力设备的类别,其中绿点为交互点击的点,蓝色区域为分割结果。从图6 中可以看出文中使用的模型能够对不同类型的电力设备或目标部件进行准确分割,并能适应不同的温度场景,同时对抗复杂背景环境的干扰,具有良好的鲁棒性。
提出了一种针对电力设备红外图像的交互式分割方法,允许用户通过交互式的点击迭代控制分割结果,直到达到满意的分割效果。该方法可以帮助标注人员快速、准确地在红外图像中标注出感兴趣的电力设备,从而大大节省了人力成本和时间成本。相比于传统的分割方法,文中方法对于复杂的背景变化具有更强的鲁棒性。
此外,文中使用的方法无须在每次单击后都更新所有像素的掩模,只在用户期望修改的区域进行局部更新,不仅避免了原本已经标注好的细节的丢失,而且减少了重复计算和冗余,从而大大节省了计算量,提高了网络的运行速度。