基于多梯度融合的污水域污染物边缘提取算法研究
2023-08-08林世基庄光耀于俊利
于 晓,林世基,庄光耀,于俊利
(1.天津理工大学 电气工程与自动化学院,天津 300384;2.天津中天海盛环保科技有限公司,天津 300384)
随着世界经济的快速发展和工业化进程的加速,水污染现象越来越严重,严重制约着国家的经济发展,威胁着人民的身体健康[1]。因此,安全、可靠、有效地检测污水区域,是用水安全的关键,是人类正常生产和生活的坚实保障。
近十年来,出现了各种水域污染监测手段。阮承治等[2]设计了一种游弋式小船水质监测系统,通过检测水域的pH值、溶解度值、浑浊度、温度值来监测水质变化,但是这种检测方式仅适用于开阔水域的监测,同时在极端天气条件下可靠性并不高。随着图像处理和计算机视觉技术的发展,利用图像处理算法可以快速准确地从污水图像进行边缘提取、分割等操作,自动的对该水域进行分析,实现水域中污水、污染物的实时、动态、智能监测,减少或避免污水污染物对水体的影响和经济损失。
在传统的污水图像目标检测算法方面,Otsu[3]提出Otsu分割方法,由于该方法具有简单高效的特点成为图像分割领域中使用广地分割算法之一。胡敏等[4]通过图像轮廓边缘叠加、融合及补偿后,获取完整的分割图像。但是易受外部环境因素的影响导致目标提取精度不高,不具普适性。江杰等[5]针对传统浮标法监视河流表面漂浮物的缺陷,提出了基于混合高斯模型的背景差分法和帧差法的漂浮物自动监测方法。
边缘检测是图像处理中进行图像分割和目标提取关键技术之一,将图像进行边缘检测的目的是剔除污水污染物的冗余信息,减少无用信息对后续进行图像分割的干扰。常见的边缘检测算子有Canny、Robert、Sobel、Prewitt等[6-7]。Canny通过使用高斯滤波器的一阶导数进行检测边缘的空间位置,对图像进行平滑噪声,导致图像模糊,丢失了许多图像细节[9]。Roberts算子采用局部差分算子寻找图像边缘,计算简单,但忽略了水平相邻像素和垂直相邻像素信息,不能有效抑制噪声[10]。在污水域环境下不能有效抑制噪声的干扰。因此,在水域污染物检测的场景下出现边缘连续性差,抗噪声性能不强等问题。Sobel算子根据像素点相邻点四个方向之间的灰度梯度加权差和来检测边缘,对噪声具有平滑作用,能够提供较精确的边缘信息,但缺点是其边缘定位精度不够高[11]。Prewitt算子使用水平、垂直两个方向的模板对图像进行卷积操作,根据目标上下、左右像素点灰度差即可分辨出灰度值较大的边缘点[12]。然而,Prewitt算子需要通过人工判别来选取阈值,算子模板方向过于简单,这样会造成边缘选取粗略,定位不准确。
随着深度学习技术在目标检测领域的广泛使用,越来越多的学者使用深度学习技术进行河道、湖泊的漂浮物检测识别,并提出了多种网络模型的改进和应用案例。雷佳明等[13]通过改进代价函数,将语义分割算DeepLabV3+应用于水库漂浮物智能检测与识别任务中。Hai等[14]采用Faster-R-CNN网络和数据增强算法应用于水体的目标检测中,检测的精度高,但是效率低下。雷李义[15]提出基于深度学习的水面漂浮物检测,使用迁移学习的方法对比了Faster R-CNN、R-FCN和SSD三种目标检测模型,得出Faster R-CNN在检测困难目标有着更好的表现,SSD检测模型有着更高的精度。李宁[16]等人使用在大型数据中的塑料瓶与塑料袋图像训练AlexNet网络用于对这两类漂浮物进行识别。但是,由于在实际的污水环境中,污染物种类繁多、环境复杂,导致小尺度污染物检测精度低,很难应用在实际场景中。
1 问题分析
通过对图像分割算法和图像边缘提取的研究分析,本文将边缘检测算法应用于污水域的目标检测。边缘是由于图像灰度在表面上变化不连续所造成的,即从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。根据这一特征,设计相应的梯度算子进行边缘检测。通常情况下梯度算子对噪声十分敏感,尤其在复杂的水域条件下,检测的质量容易受到天气、光照变化、水面倒影以及图像采集设备的固有缺陷等因素的干扰[17]。为减少图像噪声影响,进行边缘检测前须使用滤波器对图像进行平滑降噪[18]。由于污水环境的特殊性,传统的边缘检测方法对污水域污染物的边缘检测仍存在局限性,具体表现在污染物轮廓不完整、误检率和漏检率高、噪声控制效果不佳等方面。此外,基于梯度变化的边缘检测算子在检测梯度变化幅度小的边缘时灵敏度会降低,这导致很难获得理想的检测结果[19]。
本文针对现有的污水目标边缘提取算法在精度、检测效率以及复杂水域环境干扰等问题,提出基于多梯度边缘特征融合的污水图像边缘提取方法,实现污水污染物轮廓的完整提取。在不同环境、不同类型污水区域的特殊性下,解决用机器拍摄水域环境、对污水区域中污染物进行自动提取的问题。
2 基于多梯度融合的边缘提取方法
基于多梯度融合的污水域污染物图像边缘提取算法由图像预处理、多梯度边缘计算及多梯度边缘融合三个环节构成,如图1所示。首先,对原图像进行灰度处理,得到灰度图像,然后对灰度图像进行中值滤波,减少噪声对污染物边缘提取的干扰。为了提取完整的污染物图像轮廓,对梯度检测算子进行改进,并对滤波后的图像进行多方向梯度的边缘计算,得到图像的八个梯度方向的边缘轮廓特征图。最后,将八个梯度方向的边缘轮廓特征图进行融合,提取到污染物完整的边缘信息。
图1 多梯度融合的图像边缘提取算法流程
2.1 图像预处理
预处理主要包括图像灰度化、平滑化等操作。使用摄像机对污水区域进行图像采集,由于图像采集的过程中,受到复杂的环境因素的干扰,采集到的图像数据有很多与污染物无关的边缘信息,直接或间接地影响污染物边缘的提取。因此,在对污水图像进行边缘提取之前需要对图像进行预处理。
水资源环境中,污染物易受到光照的影响导致RGB变化很大,而梯度信息能提供更本质的信息,同时三通道转为一通道后,运算量大大减少。因此,对图像进行边缘提取的首要步骤就是进行图像灰度处理。中值滤波在图像处理中,常用于保护边缘信息,是经典的平滑噪声的方法。由于进行边缘检测时,容易受到噪声的影响。因此,首先使用尺寸为3×3,窗口大小使用经验值为5的中值波器对灰度处理过的图像进行平滑化。
2.2 图像边缘特征多梯度计算
使用梯度算子进行边缘检测的原理是:当图像中存在边缘时,图像中的局部区域像素会产生突变。基于这一原理,传统的Sobel算子利用3×3的卷积模板对检测图像进行加权平均或邻域平均[20],然后求其一阶导数的极值进行判断是否为边缘像素点。
假设灰度图像上(x,y)处的灰度值为f(x,y),函数在(x,y)处的梯度是一个具有方向和大小的梯度矢量[21]如式(1)所示。
(1)
式(1)中,i、j分别为x、y方向的单位矢量。
基于梯度的算子都是建立在这一基础之上,(x,y)处的边缘梯度幅度和梯度方向[22]如式(2)和式(3)所示。
(2)
(3)
式(2)中,计算出来的梯度值grand[f(x,y)]即为图像的边缘数据,但在实际处理操作中常用模板矩阵与图像像素值矩阵卷积来实现微分运算。如Sobel算子是对离散的数据进行加权计算,采用如图2所示的3×3卷积模板,利用模板与对应的图像数据进行卷积来实现微分运算。Sobel算子考虑了水平、垂直和2个对角共计4个方向对的梯度加权求和,是一个3×3各向异性的梯度算子。
(a)垂直梯度方向,检测水平方向边缘(b)水平梯度方向,检测垂直方向边缘图2 传统Sobel算子模板
不足的是,Sobel算子仅仅考虑水平方向边缘检测和竖直方向边缘检测,对其他方向的边缘信息不敏感[23]。在边缘信息较复杂的情况下,会导致部分边缘丢失。Tang等[24]在传统的Sobel算法上进行改进,提出了四方向的边缘检测器,该算法增加了45°以及135°方向上的边缘检测。方向边缘检测模板如图3所示。
(a)45°方向检测模板(b)135°方向检测模板图3 四方向边缘检测模板
考虑到污水域污染物边缘提取的背景复杂性和传统算子的不足,本文在四个方向的Sobel算子基础上增加了四个梯度方向3×3的边缘检测算子,梯度方向分别为:为22.5°、67.5°、112.5°和157.5°,梯度方向如图4所示。
(a)22.5°和67.5°梯度方向(b)112.5°和157.5°梯度方向图4 增加的四个梯度方向示意
首先,定义一个坐标系如图4(a)所示,给定四个向量来定义两两像素之间的差分方向信息,即:(c,d)→(2,1)、(c,h)→(1,2)、(g,f)→(-2,-1)、(g,b)→(-1,-2)。其中,(2,1)(1,2)(-2,-1)(-1,-2)为四个像素对的矢量方向,矢量的方向与像素c点的坐标有关。
其次,定义一个邻域方向梯度矢量G的幅度[7]如式(4)所示。
(4)
本文采用曼哈顿距离来度量每个像素对之间的距离。显然,四对像素之间的曼哈顿距离均为3。根据式(4),沿着4个方向求其梯度矢量和,如式(5)所示。
(5)
将梯度矢量放大到原来的3倍,去掉分母后整理后,如式(6)所示。
G=[b+3c-2d+2f-3g-h,
2b+3c-d+f-3g-2h]
(6)
得到22.5°方向和67.5°方向的梯度矢量,如式(7)和式(8)所示。
G22.5°=b+3c-2d+2f-3g-h
(7)
G67.5°=2b+3c-d+f-3g-2h
(8)
由此可推导出22.5°、67.5°方向的梯度算子,如图5(a)和图5(b)所示。同理,由图4(b)所示,可求得112.5°、157.5°方向的梯度算子如图5(c)和图5(d)所示。
(a)22.5°方向边缘检测模板(b)67.5°方向边缘检测模板(c)112.5°方向边缘检测模板(d)157.5°方向边缘检测模板图5 四个梯度方向边缘检测算子模板
使用8个3×3的梯度模板进行边缘提取在一定程度上既可以弥补传统算子仅有两个或者四个方向上的局限性,又可以避免采用5×5的大算子使得计算量过大导致处理速度变慢的问题。多梯度算子模板如图6所示。
图6 多梯度边缘检测算子模板
2.3 边缘特征多梯度融合计算
采用八个方向梯度检测算子模板进行卷积运算以获得模板中心点八个方向的梯度值,同时进行梯度融合计算,即八个方向的梯度检测结果中,取梯度方向最大的值替换为待测像素点的灰度值,边缘方向由所得中心像素点的方向决定。融合计算方式如式(9)所示。
F(x,y)=max(Δi·22.5°f(x,y))i=0,1,…,7
(9)
式(9)中,Δi·22.5°f(x,y)为i·22.5°方向上的通过梯度算子计算得到的的灰度值。对图像的所有像素点进行该运算操作,即可确定污水图像所有像素点的灰度值和边缘像素点。将各个方向边缘特征进行融合操作,在一定程度上可以解决边缘提取中的“边缘不连续”现象,保证提取目标能够完整、清晰地提取出来。多梯度融合计算效果如图7所示。
(a)原始图像(b)0°方向边缘提取(c)22.5°方向边缘提取(d)45°方向边缘提取(e)67.5°方向边缘提取(f)90°方向边缘提取(g)112.5°方向边缘提取(h)135°方向边缘提取(i)157.5°方向边缘提取(j)8个方向梯度融合后图7 多梯度融合计算过程
3 实验结果与实验分析
本文提出的边缘提取算法使用MATLAB平台,对不同的污水图像进行边缘提取进行实验。同时,本文提出的算法与Canny算法、Roberts边缘检测算子、Laplace边缘检测算子、传统的Sobel边缘提取算子、改进四方向Sobel的算法和Canny边缘检测算法进行比较分析。经典算法与本文方法的实验结果比较如图8所示。
原图(a)原图(b)原图(c)Sobel算子(a)Sobel算子(b)Sobel算子(c)Roberts算子(a)Roberts算子(b)Roberts算子(c)Laplace算子(a)Laplace算子(b)Laplace算子(c)文献[24]算法(a)文献[24]算法(b)文献[24]算法(c)本文算法(a)本文算法(b)本文算法(c)图8 经典算法与本文方法的实验结果比较
Canny边缘检测算法虽然有较好的噪声抑制能力,但是边缘连续性差,边缘信息缺失严重。Sobel算子虽然有很强的噪声抑制能力,提取到的边缘相较于前两者更加完整,但是有些场景下依然出现边缘提取缺失,在极限场景下出现边缘“过提取”的情况,从而产生大量非边缘的“过提取噪声”。
Roberts算子用的是对角线相邻两像素作差作为梯度差值来检测图像边缘的原理,因此仅在水平和垂直两个方向的边缘检测效果较好。它的缺点是会漏检其他方向边缘,导致污水污染物总体边缘提取效果欠佳。
Laplace算子没有考虑方向性,边缘提取连续性差,边缘信息缺失严重,同时对图像的噪声敏感,没有有效提取到污染物的边缘信息。
四个梯度方向边缘检测算法,在大部分方向都有非常好的边缘提取效果和降噪能力,但是出现部分边缘缺失的情况以及在特殊的污水环境中出现一些非污染物的边缘噪声。
相较于其他传统的边缘检测算法,本文提出的算法在保证边缘连续性的基础上,检测到的污染物目标边缘轮廓更加完整,边缘细节突出且层次感分明。同时,相较于5×5的梯度算子,减少了计算量,提升了检测效率。
4 结论
本文根据污水图像中的边缘信息特征,结合传统的梯度检测模板,提出了一种多梯度融合的污水污染物边缘提取算法。实验结果表明,相较于传统的边缘检测算法,本文提出的多梯度融合边缘检测算法在边缘提取的精度和抗噪能力都有很大的提升。在保证良好的抑制噪声的同时,能准确地检测出0°、22.5°、45°、67.5°、90°、112.5°、135°和157.5°方向的边缘。进行多梯度融合计算后,复杂场景下的污水污染物图像边缘也能实现清晰、完整地提取。因此,本文算法能更好地检测污水污染物边缘,并对下一步的图像分割有较好的应用价值。