叶健强,张晓晨,孙敦虎,李荆晖,张麒腾,张明璨
(1.国网宁夏电力有限公司建设分公司,宁夏银川 750004;2.西安交通大学电气学院,陕西西安 710000)
随着计算机视觉的飞速发展,图像处理技术在电网中有着十分丰富的应用,包括电网设备故障的识别,电网设备运行状态的监测等。作为电网设备图像处理的基础,电网设备图像的分割算法一直是研究的重点。目前的图像分割算法有基于边缘的分割算法,例如Canny算子分割;基于区域的分割算法,例如分水岭算法;基于阈值的分割算法,例如Otsu 算法;基于图论的交互式分割算法,例如图像切割(GraphCut)算法和GrabCut算法。在众多图像分割算法中,基于图论的交互式分割算法有着十分好的前景[1]。
近年来,众多学者对基于图论的交互式分割算法提出了许多改进之处。文献[2]通过选取感兴趣区域来降低目标周围区域相似像素的影响,以此来减少算法时间,提高分割的精度。文献[3]基于超像素来实现GrabCut图像分割,以此来降低背景对前景的影响,提高了分割的精度。文献[4]提出了一种基于归一化概率随机数的多标签自动GrabCut 技术,可以在不需要用户干预的情况下进行图像分割,但是算法执行的时间和运算量将大大提高。文献[5]提出了一种基于快速区域卷积神经网络与GrabCut 融合的弱监督图像分割算法。文献[6]基于人的视觉注意机制,将其引入到图像的分割和处理之中,提出了一种基于视觉注意机制的GrabCut 算法。文献[7]对高斯混合模型进行优化,从底层优化GrabCut 算法以此来提高算法的准确率和速度。
本文针对电网设备使用环境的特点,提出了一种融合了目标检测的交互式电网设备图像分割算法,使用目标检测得到的标定框作为交互式分割算法的初始化区域来提升初始化区域的选取精确度。
GrabCut 利用彩色图像的高斯混合模型描述前景和背景的像素分布,对像素的3 个通道分别使用高斯混合模型(gaussian mixture model,GMM)建模,再使用迭代的方法实现图能量最小化,收敛到最优分割结果,用户可以通过标记前景和背景来优化GMM 模型,从而优化迭代过程,达到高精度分割的目的[8]。整个过程如图1所示。
图1 算法执行过程
1.1.1 高斯混合模型
高斯混合模型指的是多个高斯分布函数的线性组合,根据中心极限定理,大量统计独立的随机变量的分布趋近于高斯分布,根据这一理论,高斯混合模型可以拟合出任意类型的分布,通常用高斯混合模型来解决同一集合下的数据包含多个相同或不同分布的情况。
高斯混合常用于聚类算法,而聚类算法是迭代过程的基础,使用给定的初始信息,为前景和背景区域分别创建高斯混合模型的k个组件,把前景区域和背景区域中的像素分别划分到k个不同的聚类中,再由聚类中像素值来计算各高斯模型中的参数,从而实现对图像的分割[9]。
1.1.2 最小化能量分割
对于红绿蓝色彩空间上的彩色图像,此算法使用吉布斯(Gibbs)能量作为图像分割的依据,式(1)为Gibbs能量的表达式:
式中:E—Gibbs能量;
U—数据项,与图片中的像素数据有关;
V—光滑项;
α—不透明度,其取值范围为0~1,0 代表景,1代表前景;
θ—图像前景和背景的灰度直方图;
z—图像灰度值数组;
k—高斯混合模型参数。
此算法通过迭代来使Gibbs 能量最小化。在初始化的过程中,背景部分的像素,其不透明度将被设定为1,而被选中的前景的不透明度会被设定为0,依次来初始化前景和背景的GMM 模型。在初始化GMM 模型后,算法将对选中前景中的每一个像素都进行初始化赋值,并用最小割(mincut)和最大流(maxflow)算法来极小化Gibbs能量函数E来得到初次分割的结果。随后,根据初次结果,用户可以交互式的编辑选择被忽略的前景和被误选中的背景,将二者的不透明度分别设置为0和1,以此来优化GMM 模型,并重新进入能量最小化的迭代过程,重复上述迭代和交互式编辑过程,直到输出结果达到要求。
当今的人工智能技术被广泛运用于许多领域,机器视觉领域中的目标检测就是其中之一,与基于机器学习的传统目标检测算法相比,基于深度学习的检测算法有着更快的检测速度和更高的检测精度。其中,基于深度学习的目标检测算法大体可分为两类,一类以区域卷积神经网络(region-convolutional neural network,R-CNN)为代表的基于区域建议的两阶段检测算法,另一类是以你只看一次算法(you only look once,YOLO)为代表的基于回归问题的一阶段检测算法[10]。深度学习之所以能够迅速发展,是因为计算机能够依靠图形处理器(graphics processing unit,GPU)快速地处理矩阵乘法与卷积运算,然而对于一些小型低端的嵌入式设备,它无法配备高性能的GPU以及中央处理器(central processing unit,CPU);因此,在嵌入式设备中实现基于深度学习的目标检测并不理想,特别是基于区域建议的两阶段检测算法,但是对于基于回归问题的一阶段检测算法,嵌入式设备则有能力部署并且做到实时目标检测。本文采用了目前运行速度最快的YOLOFastest 算法,能有效提高深度学习算法在嵌入式设备上的运行速度。
1.2.1 YOLO系列算法
近年来,YOLO 系列算法在目标检测中应用十分广泛。YOLO 系列算法的核心是将分类问题转化为回归问题,采用单一的神经网络来实现目标的检测。有别于区域卷积神经网络,YOLO 算法是端到端的目标检测算法,无需训练区域候选框网络产生推荐框即可高效完成检测任务[11],因此,YOLO 系列算法的训练和检测均在单一神经网络中,通过单次计算即可得到图片中目标物体的种类信息、位置信息以及置信度。
1.2.2 YOLO-Fastest算法
YOLO-Fastest 算法是目前已知开源最快的、最轻量的改进版YOLO 目标检测算法,其初衷就是为了打破算力的瓶颈,在更多的低成本的边缘检测端设备实时运行目标检测算法。由YOLOFastest 算法的开发者测试,相较于当下应用最广泛的轻量化目标检测算法移动网络-单激发多框检测算法(mobilenet-single shot multibox detector,MobileNe
t-SSD),YOLO-Fastest 的速度要整整快3 倍。在模型大小方面,YOLO-Fastest 的模型大小仅为1.3 MB,是MobileNet-SSD 的1/20。表1 为YOLO-Fastest 算法的开发者对YOLO-Fastest 算法与其他目标检测算法的参数以及性能对比,表中数据基于骁龙888 CPU 平台,测试数据集为通用对象(common objects in context,COCO)数据集。由表中数据可知,YOLO-Fastest 模型大小较小,运行速度快,十分契合嵌入式设备的需求。
表1 目标检测算法对比
YOLO-Fastest的整个网络基于暗网(darknet)结构,如图2所示。其中,DBL 为卷积层的基本组件,其为卷积层、批标准化(batch normalization,BN)、漏整流线性单元(leaky rectified linear unit,Leaky ReLU)三层的组合;Res 为残差模块,上采样使用的方式为上池化,使用元素复制扩充的方法扩大特征尺寸;与特征金字塔网络(feature pyramid networks,FPN)中使用的元素相加不同,通道拼接(concat)是在上采样后将深层与浅层的特征图进行拼接。
图2 darknet结构
该特征提取网络由52 个卷积层和1 个全连接层组成,DarkNet 网络使用320×320×3 的输入,在基础网络中大量使用了残差网络连接,使得网络结构可以设计的很深,并缓解了训练过程中出现梯度消失的问题,增加了模型的收敛能力。通过上采样与Concat 操作,将深层特征与浅层特征进行融合,最终输出3 种尺寸的特征图用于后续预测,多层特征图有助于对多尺度目标和小目标的检测。
根据以上原理分析,可以得到本文融合目标检测的交互式分割算法的执行步骤:
1)输入一副图像,对图像进行目标检测。
2)目标检测得到包含目标物体的标定框,作为交互式分割的初始化方框。
3)将初始化方框中的像素视作初始前景像素,其值设置为1,将初始化方框外的像素视为背景像素,其值设置为0。
4)根据初始化前景像素和初始化背景像素,并按照最小能量分割法来初始化前景高斯模型和背景高斯模型。
5)计算方框中的每一个像素属于上述两个混合高斯模型的概率,比较这两个概率的值,则该像素属于概率最大的高斯分量。
6)交互式的选择前景和背景,依次来优化两个高斯混合模型。
7)重复步骤5)和步骤6),直到分割得到的图像满足要求。
8)输出得到分割结果。
图3 以图片的形式描述了整个算法执行的过程。
图3 算法执行过程
将传统交互式图像分割算法与本文的融合目标检测的交互式图像分割算法使用人工拍摄的122 张电网设备数据进行试验,具体电网设备包含绝缘子、变压器、隔离开关等。对交互式图像分割算法的评价指标有算法执行时间和交互次数。算法执行时间是指对122张设备图像的单次分割执行平均用时,交互次数是指对这122 张图像执行算法并得到最终结果时用户的编辑次数。本文所用的实验平台是1 台采用Intel Core i7-10750H CPU 的计算机,最终得到表2 所示的数据。从表中可知,融合了目标检测的交互式分割算法相较于传统的交互式分割算法,其平均执行时间更短,平均交互次数更少。
表2 实验结果
图4是传统交互式图像分割算法对同一张图片执行4次初始化以及融合了目标检测的交互式图像分割算法对同一张图片执行4次初始化。
图4 传统算法与优化算法初始化对比
由于传统交互式分割算法初始化框的选择是基于用户的,所以每一次初始化框选择的长度、宽度以及位置都是变化的,而且很难保证每一次的初始框选择都是包含目标物体在内的最小矩形框;融合了目标检测的交互式图像分割算法的初始化方框的选择是由目标检测算法实现的,这不仅能保证每次初始化框的长度、宽度以及位置固定,而且还能保证每次选择的矩形框是包含目标在内的最小矩形框。正是因为目标检测选择的矩形框能保证是包含目标在内的最小矩形框,使得每一次分割运算时,处理的像素数是所有矩形框选择中最少的,这也使得矩形框中背景像素是最少的,前景的占比最大,所以用户的交互编辑次数也会相应地减少。
图5是使用传统交互式图像分割算法和融合了目标检测的交互式图像分割算法对同一张图片的一次初始化分割结果。
图5 传统算法与优化算法初始化分割结果对比
使用传统算法对图片执行50 次分割操作,其平均执行时间是0.68 ms,同样,使用优化算法对图片执行50 次分割操作,其平均执行时间是0.54 ms。由于传统交互式图像分割算法的初始框是用户选择的,并不是包含目标在内的最小矩形框,这使得算法执行变慢,并且分割结果中可以明显地看到背景的“蓝天”,这需要用户后续的交互式编辑来进一步迭代分割,而融合了目标检测的交互式图像分割算法的初始化矩形框是包含目标绝缘子在内的最小矩形框,这使得其初次分割就能得到十分理想的分割图像,这就减少了用户交互式编辑的次数,也能减少算法执行的时间。
1)介绍了一种融合了目标检测的交互式的电网设备图像分割算法,能够将复杂环境中的电网设备精确地分割出来,供后续的其他图像处理使用。此算法能够完成对大多数电网设备的精确分割,对于使用环境复杂的设备也有很好的分割效果。
2)本算法以高斯混合模型为基础,利用高斯混合模型能拟合任意分布的特点,来实现聚类算法,这是算法迭代过程的基础。迭代的目的是实现图像Gibbs 能量最小化,使用mincut/maxflow 算法来极小化Gibbs能量值,得到一次分割的结果。用户可以通过交互式编辑来不断优化高斯混合模型,并再次进入迭代过程,来得到最佳的分割效果。
3)本算法的目标检测使用YOLO-Fastest 算法相较于目前常用的MobileNet-SSD 等算法,此算法的运行速度最快,模型大小最小,克服了一些低端嵌入式设备算力不足的问题,使得此交互式分割算法在算力不足的嵌入式设备上也能快速运行。
4)相较于传统交互式分割算法,本算法在初始化框的选择上使用目标检测得到的标定框。实验结果表明,融合了目标检测的交互式图像分割算法在每次初始化框选择上都能得到包含目标物体在内的最小矩形框,这使得其比传统算法的运行速度快,交互次数少,分割结果稳定且准确。
5)本算法仍存在一定的交互性,需要用户在算法执行时执行一些交互式的编辑,以实现最佳的分割效果。对于人工智能发展迅速的当今,用户对系统自动化的需求日益增加,使用人工智能来代替用户实现稳定而准确的交互式编辑是本算法未来研究的方向和重点。