基于图像灰度值分布的改进多重分形算法及其在溢油监测中的应用

2020-12-09 07:37
水道港口 2020年5期
关键词:溢油维数分形

郭 旭

(交通运输部天津水运工程科学研究所 水路交通环境保护技术交通行业重点实验室,天津 300456)

在石油勘探及储运过程中,发生的原油或油品从作业现场或储器里外泄,流向地面或水面等,这一现象称为溢油[1-2]。由于其发生的不确定性,对其进行长时间监测会造成人力资源的极大浪费。由于出现溢油情况下的图像与正常情况下的图像多重分形维数存在差异,由此可利用求取多重分形维数的方式,实现自动检测海面上溢油情况。

差分盒算法是一种较为简单、迅速的多重分形维数求解方法,普遍应用于各类具有自相似性的图像的自动检测,但该算法对图像灰度情况的差异不敏感,极易产生“空盒子”现象,导致计算中出现误差。针对该问题,学者们也提出了一些改进方法和应用,贾娜[3]等针对木材表面粗糙度检测过程中,轮廓算术平均偏差测量值依赖于木材纹理方向和采样位置,导致波动较大等问题,提出采用分形维数描述木材切削表面三维特征的方法。借助奖励窗口灰度值算法提高图像窗口中的灰度值利用率,优化差分盒维数算法的精度。杨洋等[4]在差分计盒方法计算图像分维数的基础上,提出了一种改进算法,并将其应用到路面裂缝图像的阈值化。朱烨等[5]提出改进的差分盒维数阈值的自然图像分割法,实验表明:该方法比传统方法和盒维数的方法效果好,不仅提高分割速度,而且分割精度也得到提高。目前已有的各类对于差分盒多重分形算法的改进,在减少算法误差方面取得了一定的效果,本文拟通过对灰度变化的分析,引入图像的一维熵和二维熵对盒子高度的判定方式进行修正,从而减少原算法误差,同时基于海面图像的自相似性,将本改进算法应用于无人化的海面溢油监测[6-8]。

1 差分盒多重分形算法介绍

1.1 差分盒算法

差分盒算法[9]的基本原理为:首先将M×M像素的二维灰度图分割为若干s×s像素的网格,将M×M像素的二维灰度图像想象成三维空间中的曲面,图像的长、宽分别代表三维坐标系的x、y轴,图像中每个像素的灰度值代表z轴,在s×s大小的网格上,堆放高度为h的盒子,盒子高度h的计算方法为

(1)

式中:s代表盒子的宽度,取值范围为2≤s≤M/2,M代表图像的宽度;G代表图像总的灰度级。设第(x,y)个网格中的灰度最大值和最小值分别落在第k个和第l个盒子中,则有

ns(i,j)=k-l+1

(2)

式(2)是(i,j)网格中覆盖的盒子数,由此可得覆盖整个图像的盒子数为

Ns=∑ns(i,j)

(3)

取不同的s,应用最小二乘拟合,得到分形维数为

(4)

1.2 差分盒多重分型算法

差分盒多重分型算法(Multiracial Differential Box Counting method,MDBC)是在原差分盒算法基础上的引申,在前述三维空间中,设某一网格中的第i个盒子为Bi,则对应盒子的像素点个数为u(Bi),则某一特定尺度A下的灰度值总数为

u(A)=∑u(Bi)

(5)

(6)

则多重分形维数为

(7)

2 改进算法介绍

2.1 算法改进思想介绍

2.1.1 问题描述

图1 差分盒多重分形算法模型示意图Fig.1 Schematic diagram of multifractal differential box algorithm model图2 “空盒子”现象示意图Fig.2 Schematic diagram of "empty box" phenomenon

MDBC的核心是通过数量不一、形态相同的盒子来近似描述图像中各个点中的灰度情况,进而为图像确定相应的分型维数,但由于实际图像的差异性,当所选取的盒子不能准确描述灰度图像情况时,所得多重分型维数就会产生较大误差,如图1所示。

在确定盒子形态的过程中,误差大多是由于盒子高度h选取的不恰当造成的,原方法只考虑每行中的最大灰度值和最小灰度值。利用其差值,求得每行的盒子数。但当灰度值分布较为离散的情况下,则会出现“空盒子”现象,这是引发算法误差的关键,如图2所示。

2.1.2 算法改进

如前所述,引发“空盒子”现象的核心是灰度差异与盒子选取不匹配,如能结合图像灰度的变化趋势对盒子进行调整,即可有效提高算法精度,由此本文使用图像的熵来对算法进行改进。

图像的熵是一种统计学特征量。图像的一维熵表示的是图像中灰度分布的混乱程度及包含的平均信息量,可定义为

(8)

式中:i为图像灰度值;Pi为灰度值i的像素占总像素数的比例。

图像的二维熵可代表图像空间分布特征。本文选取灰度图像中每像素灰度值i及其邻域灰度均值j组成二元组,作为纹理熵的求解基础,则对M×M像素的灰度图像有

(9)

式中:P(i,j)为每像素灰度值与其周围像素灰度分布的联合概率密度;n(i,j)为特征二元组(i,j)出现的次数,由此定义图像二维熵为

H2=-∑i∑jPi,jlnPi,j

(10)

由此本文结合图像的一维熵、二维熵以及图像的灰度均值,提出改进算法,新的盒子高度的计算方法为

(11)

式中:Gmax为图像中灰度的最大值;Gmin为灰度最小值;μ代表图像的灰度均值,则

(12)

表1 一、二、三重分形维数运算结果Tab.1 Result of multifractal dimension operation

将新的盒子高度应用于原算法,即可求更为精准的多重分形维数。

2.2 算法验证条件介绍

由于分形维数是一个相对量,所得维数的大小并不能说明算法的精确性,由此,通常采用线性拟合误差作为判断算法精度及分形维数是否合适的依据,即该算法所得结果与图像实际灰度情况的吻合程度,拟合误差越小,则说明算法精度越高。

为进一步体现算法的精确程度,引入原算法拟合误差与改进算法所得拟合误差对比的误差改进率,即

(13)

在图片选择方面,选取适用度较为广泛的Brodatz纹理库,从其中随机选择图像进行测试。所选图片如图3所示。

设拟合误差为Fit-e,误差率为E-rate,则所得结果如表1所示。

3-a 图片13-b 图片23-c 图片33-d 图片4图3 Brodatz纹理库纹理库图像Fig.3 Brodatz texture library image

下面对同一重分形维数中误差进行对比,为使不同结果更为清晰,选择不同类型图表。

图4 原算法与改进算法在一重分形维数的拟合误差对比图Fig.4 Comparison of the fitting error of the original algorithm and the improved algorithm in the single fractal dimension图5 原算法与改进算法在二重分形维数的拟合误差对比图Fig.5 Comparison of fitting errors between the original algorithm and the improved algorithm in the double fractal dimension

由上可知,改进算法的误差率明显小于原算法,同时误差改进率也较大,具体如图7所示。

图6 原算法与改进算法在三重分形维数的拟合误差对比图Fig.6 Comparison of fitting errors between the original algorithm and the improved algorithm in the double fractal dimension图7 原算法与改进算法误差率对比图Fig.7 Comparison of error rate between the original algorithm and the improved algorithm

由图4~图7可知,一、二、三重分形计算中,最小的误差改进率约为15%,由此可知算法的改进效果较好,可有效减少计算过程中“空盒子”现象的产生。

3 改进算法在浮油监测中的应用

3.1 图像预处理

由于实际拍摄的图像为彩色图像,而求解多重分形维数需要使用灰度图像,因此在实际应用中,需首先进行灰度化处理,本研究综合考虑处理时间和效果,拟使用平均值法将彩色图像转化为灰度图像求解。本文采用平均值法进行灰度处理,其主要思路是由彩色图像中的R、G、B分量的均值得到一个灰度图像。而后对灰度图像进行形态学处理、边缘检测和图像二值化处理,最终可以求得对应的分形维数。

3.1.1 形态学处理

形态学运算包括:膨胀和腐蚀、开闭运算、骨架抽取、颗粒分形等;其中最基本的是膨胀和腐蚀。开运算和闭运算是腐蚀和膨胀的复合运算。开运算是指先腐蚀后膨胀;反之闭运算是先膨胀后腐蚀。

开运算可以使图像边缘平滑,削弱边缘上的离散点和毛刺,闭运算则可以填充物体内的断层,连接物体边缘。开运算和闭运算均不会显著改变物体的面积。

3.1.2 边缘检测

寻找疵点边缘,是图像评分的关键一步。主要的边缘检测算子有Canny算子、Prewitt算子、Roberts算子、Sobel算子、LOG算子等。根据疵点检测实际情况,本文选择Canny算子。

3.1.3 图像二值化处理

图像的二值化处理中最重要的是分割阈值的选取,使用一个灰度值t(0≤t≤255),将目标图像和背景分为黑白两部分,这个特定的灰度值t,就是阈值。根据阈值确定方法的不同,出现了多种二值化方法,常用的二值化方法有:OTSU算法、灰度拉伸法和Bernsen算法。本文选择OTSU算法,见图8所示。

3.2 自动检测的实现原理

图8 灰度化及最终处理后图像示意图Fig.8 Schematic diagram of grayscale and final processed image

实现自动检测的关键在于存在溢油现象的图像与正常海域图像间存在分形维数上的差异,由此可首先通过拍摄多张所在海域照片的方式确定正常海域所得的分形维数,确定正常海域的分形维数范围,而后不断进行循环拍摄,如出现差异则发出报警信号,并提供相应海面的具体位置,由专业人员进行查看,从而判断所拍摄图像范围是否存在溢油情况。

3.3 提高识别精度

在具体监测中,由于该检测方法是使用分形维数的差异进行分析,当产生非油膜异物时,也会出现误报的情况,为减少误报的概率,引入机器学习方式,具体原理为,当发生报警时,由操作人员首先确认是否为真实溢油,同时根据图像情况确定准确性等级,具体判断方式为:

(1)高精度图像:异常区域与周边环境差异明显,周边图像灰度值平稳连续。

(2)中精度图像:异常区域与周围背景存在融合,对比不是很强烈,异常区域边缘不平滑。

(3)低精度图像:与周边背景融合较多,且异常区域图像不规则性较高。

由此,可结合分形维数和图像精度确定报警前监测的次数,对于高精度图像且监测分形维数在已确认的存在异常的分形维数范围内,直接报警;对于低精度图像,则适度增加检测次数,如每次检测中,分形维数均存在异常后再报警,从而逐步提高检测精度,减少误报次数。

3.4 算法验证

通过该算法对溢油情况进行监测,其中溢油区域与周围环境反差较大时,监测效果较好,如溢油背景颜色较深,与溢油区域差异较小时,则不容易进行监测,对于此类区域,可改变分形维数差异要求,实现对于微小的分形维数差异也可以正常进行检测;但与此同时,错报率也会相应提高,会相应增加人工符合概率。在此种情况下,需要进一步针对周边实际情况进行调整。

4 总结

本文首先对差分盒分形维数和多重分形算法的原理进行了介绍,而后针对其中盒子计算方式不合理的问题,提出了基于灰度图像纹理特征的算法改进方法,通过计算图像的一维熵及二维熵,调整算法中盒子高度的计算方法,并通过实例验证证明了算法结果的优越性和有效性。在此基础上,基于海面图像自相似性,提出了基于改进的多重分形算法的海面自动溢油检测方法,说明了所需条件、步骤以及溢油的判定方式。

猜你喜欢
溢油维数分形
修正的中间测度和维数
长江中下游河段溢油围控回收策略研究
一类平面数字限制集的维数
基于Petri网的深远海溢油回收作业风险演化分析
海底输油管道溢油输移扩散特性
柞蚕茧系统分形研究
含非线性阻尼的二维g-Navier-Stokes方程全局吸引子的维数估计
感受分形
分形
成品油罐车 装油溢油原因及预防措施