基于图像处理技术的水面漂浮物检测方法
2024-08-05张薇刘晓亮董博周坤李坤煌葛长赟
摘要:文章提出一种基于图像处理技术的水面漂浮物检测方法,该方法通过分析和处理水面图像检测水面漂浮物。首先,对原图进行感兴趣区域提取和仿射变换,划分水面区域;其次,使用HSI(色调、饱和度、亮度)颜色空间对水面背景进行提取与去除,减小水面对后期图像处理的影响;最后,经过图像去噪、灰度图像增强、灰度化和阈值化处理、形态学处理、边缘提取和轮廓提取等步骤,实现对漂浮物的检测。其中,灰度增强采用了非线性映射函数提升漂浮物的灰度特征,以便更好地分离漂浮物。使用实际水域采集的图像对检测方法进行验证,结果表明,该检测方法在特定水域能较好地完成水面漂浮物的检测,准确率在90%以上。
关键词:图像处理技术;水上漂浮物检测;HSI颜色空间
中图分类号:TP391" " 文献标识码:A" " " 文章编号:1674-0688(2024)04-0095-06
0 引言
水资源是生态环境的基本组成部分,也是一个国家综合国力的重要体现。随着城市化进程的加快和工业化程度的提高,水资源的污染和破坏情况日益严重,水质检测和保护工作成为当务之急。水面漂浮物是导致水体富营养化和水质恶化的重要因素之一,因此有效检测和管理水面漂浮物对水资源保护具有重要意义。传统的水面漂浮物检测方法主要依赖人工观测或固定摄像头监测,存在检测范围有限、效率低、成本高等问题。随着无人机技术的应用与发展,无人机因其具有灵活、高效、低成本等优势,成为水质检测领域的重要工具。同时,智能时代的到来使水面漂浮物自动检测变得可行。本文提出一种基于图像处理技术的水面漂浮物检测方法,该方法利用无人机搭载的高清相机对水面进行高效拍摄,并结合图像处理技术及相关算法,实现对水面漂浮物的自动检测,可极大地提高水质检测的效率,为水资源保护和环境管理提供重要支持。本文将详细介绍该方法的设计与实现过程,并通过实验验证其在水面漂浮物检测方面的可行性和有效性,旨在为水质检测领域的进一步研究和实践提供参考和借鉴。
1 相关研究综述
水面漂浮物检测是一项高难度的工作,也是水利工程中亟待解决的问题之一,因此水面漂浮物检测方式一直以来备受研究人员的关注。随着信息化和人工智能的发展,基于图像处理技术和智能算法的水面漂浮物检测方法得到了广泛应用。
1.1 基于YOLO(You Only Look Once)的水面漂浮物检测
基于YOLO的水面漂浮物检测算法应用广泛,取得了不错的检测效果。侯添[1]提出一种基于YOLOv5(FMA-YOLOv5s)网络的针对8种类型水面漂浮物的检测算法,通过在主干网络末端增加一个特征图注意力层及采用数据增强的方式提升对小目标的检测效果。李国进等[2]提出一种基于改进的YOLOv3的水面漂浮物目标检测算法,主要针对人工湖面的水面漂浮物进行检测。在数据集处理上采用K-means聚类算法提高定位框与数据集标注框的匹配度,在网络上将基于边界框的定位方式替换成基于像素点的定位方式。任英杰等[3]提出一种基于改进的YOLOv3的轻量化漂浮物检测算法,使用轻量级网络MobileNet3代替主干特征提取网络,有效降低了计算量和参数量,为在移动端进行实时检测提供了可能性,并且减少了对硬件的需求。
1.2 基于深度学习方法的水面漂浮物检测
基于深度学习方法完成水面漂浮物的检测也取得了一定的研究成果,其中包含一些新颖的方法。李国进等[4]提出基于改进的Faster R-CNN(Faster Regions with Convolutional Neural Network)算法的水面漂浮物识别与定位方法,在输出的结果中采用类别激活网络去除边界框,提高识别与定位的精准度。陈任飞等[5]提出基于改进的SSD(Single Shot Multibox Detector)模型自适应滤波算法的水面漂浮物的检测跟踪算法,在单帧图片中采用SSD检测网络、在多帧滤波中采用自适应滤波算法完成信息融合,实现持续检测跟踪。黎嘉明等[6]采用基于对抗生成网络的水面漂浮物分割算法,去除多余的检测信息,精细化分割水面漂浮物,获取水域的漂浮物污染程度。
1.3 基于机器视觉方法的水面漂浮物检测
基于机器视觉方法的水面漂浮物检测具有实时性好、资源需求低的优势。林友鑫[7]提出基于机器视觉的河道表观异物检测方法,通过采用通用性的水体分割算法,设计局部二值化模式和色调值方差的水体描述特征,并使用改进的核相关滤波算法实现河道表观异物的跟踪。张堡瑞等[8]提出一种将三维激光雷达点云数据和视觉信息融合的检测方法,采用CornerNet-Lite目标检测网络,通过对大量样本的训练实现水面漂浮物的检测。
2 水面漂浮物检测方法采用的图像处理技术
本文提出的基于图像处理技术的水面漂浮物检测方法可通过利用无人机平台采集的图片完成检测,是一种轻量化、便捷化的水面漂浮物检测方法。该检测方法主要采用的图像处理技术包括感兴趣区域(Region of Interest,ROI)、仿射变换、HSI颜色空间、去噪、灰度化(阈值处理)、形态学处理、边缘提取及轮廓检测等。拍摄水域图片的复杂度很高,受环境及拍摄技术的影响非常大。本文提出的方法主要解决一些特定水域的水面漂浮物检测,从而实现快速清理。基于图像处理技术的水面漂浮物检测方法流程图见图1。
2.1 ROI区域及仿射变换
数字图像处理中的ROI指图像中用户感兴趣或希望关注的特定区域。ROI区域通常是图像的一个子集,可能包括感兴趣的对象、区域或特征。本文中ROI指图片中包含漂浮物的一个水面区域。
仿射变换是一种基本的几何变换,在图像处理中,仿射变换可实现图像的平移、旋转、缩放和剪切等操作,可以维持原始图像中直线和平行线的状态,并且保持图像的平行性和共线性。仿射变换的数学表达式如下:
[x'y'1=ab0cd0txty1xy1]" " " " " " " " " " " "[1]
其中:[xy1T]是原始图像中的一个点,[x'y'1T]是变换后的点,[abcd]是线性变换矩阵,[txty]是平移向量。
对原始图像中的每个点应用仿射变换矩阵,可以得到变换后的图像。平移变换是通过将平移向量[txty]加到每个点的坐标上实现;旋转变换可以通过设置线性变换矩阵实现。
2.2 剔除水面颜色
为了减少背景(即水面)对漂浮物检测的影响,本文使用HSI颜色空间对水面颜色进行剔除。水面一般呈蓝绿色,根据HSI颜色空间将此颜色部分剔除,同时根据现场实际采集的数据,统计实际图片中的水面颜色,得到其范围后同样将这部分剔除。
RGB(红绿蓝色彩模式)向HSI的转换是一种常见的颜色空间转换,其转换关系如下:
[H=θ360−θ B≤G Bgt;G]" " " " " " " " " " " [2]
[θ]、[ S] 、 [I] 的计算方式如下:
[θ=cos−10.5×R−G+R−BR−G2+R−BG−B]" " " [3]
[S=1−3×minR,G,BR+G+B" R+G+B≠0 ]" " " [4]
[I=R+G+B3]" " " " " " " " " " " " " " " [5]
公式(2)至公式(5)中,R、G、B分别是像素的红色、绿色、蓝色通道的值;[H]、S、I分别是色调、饱和度、亮度的值;[θ]是RGB值的三角函数。
本文使用的水面蓝绿色的HSI范围为(60,50,50)~(100,255,255),实际采集水面数据的HSI范围为(70,10,65)~((100,55,200)。
2.3 图像去噪
为了减少噪声点对图片质量的影响,本文采用均值滤波和高斯滤波2种滤波方式进行图像去噪,目的是尽量减小噪声点和波浪的影响。在图像中,滤波是一种常见的图像处理技术,用于去除图像中的噪声,平滑图像。其原理是对图像中每个像素周围邻域内的像素灰度值进行卷积计算,从而实现图像的模糊化处理。具体来说,对于图像中的每个像素,选择一个固定大小的滤波器窗口,将该窗口内计算出的像素值与卷积核的卷积结果作为新的像素值,即源图片滤波器大小窗口区域像素值与卷积核对应位置相乘并相加。不同的滤波采用不同的卷积核。滤波能有效地去除噪声信号,使图像变得更清晰和平滑。
设原始图像为[ I(x, y)],滤波器的卷积核为[G(x,y)],经过滤波处理后的图像[ Ismootℎ(x,y)]可以表示为
[Ismootℎx,y=Ix,y∗Gx,y]" " " " " " " " "[6]
其中:[∗ ]表示卷积操作;x,y表示像素坐标值。
均值滤波中,卷积核为
[Gx,y=1n1…1⋮⋱⋮1…1]" " " " " " " " " "[7]
其中,n表示卷积核的大小。
高斯滤波中,卷积核服从高斯分布,表示为
[Gx,y=12πσ2e−x2+y22σ2]" " " " " " " " " " "[8]
其中,σ是高斯函数的标准差,对高斯滤波器的形状和大小有影响,[σ]越大,高斯滤波器的形状越宽,平滑效果越明显。
2.4 图像灰度化与阈值化
图像灰度化是指将彩色图片转换为灰度图片,图像灰度化通常使用以下公式进行计算:
[Y=0.299×R+0.587×G+0.114×B" " " "][9]
其中,Y表示灰度值。
图像阈值化是将图像根据设定的阈值进行二值化处理的过程,即将灰度图像中的像素值与设定的阈值进行比较,大于阈值的像素设为一个值(如255,表示白色),小于等于阈值的像素设为另一个值(如0,表示黑色)。阈值化的功能是分离前景与背景,本文通过使用一定的阈值实现漂浮物和水面分离。
2.5 图像灰度值增强
图像灰度值增强的作用是改善图像的质量、增强图像的对比度或凸显图像中的特定细节。由于本研究中漂浮物的灰度值一般高于背景,因此本文使用小于1的指数函数对原灰度值进行非线性变换,对灰度值大的数据进行增强,以利于图像背景分割。灰度值非线性变换公式如下:
[f'x,y=(fx,y255)z×255]" " " " " " " " " [10]
其中: [f'x,y]表示变换后的像素值; [f(x,y)]表示原图像素值;z为指数函数,取值小于1。
2.6 形态学处理
形态学处理是一种基于数学形态学理论的图像处理技术,主要用于对图像中的形状和结构进行分析和处理。形态学处理的核心是应用数学形态学的基本操作,如腐蚀、膨胀、开运算、闭运算等。本文主要使用的形态学处理技术为开运算,开运算是先进行腐蚀操作,再进行膨胀操作的组合运算,通常用于去除图像中的小物体、孤立的像素及细小的噪声,本文将其用于边缘提取前去除漂浮物以外的噪声。开运算操作的集合表示方式为
[A°B=∪Bz|Bz∈A]" " " " " " " " " "[11]
其中:A为原图;B为结构元;[(B)z]为结构元的平移操作。
2.7 边缘提取及轮廓检测
边缘是图像中像素灰度值快速变化的区域,通常表示物体的边界或区域的分界线。边缘提取的目标是识别这些快速变化的像素,以便定位物体的位置和形状。本文采用的边缘提取方法为Canny边缘提取法,该方法首先采用高斯滤波降低输入图像的噪声,高斯滤波可以平滑图像并模糊细节,使后续的边缘检测更稳定和准确;其次,利用梯度计算找到图像中像素的梯度和方向,常用的方法是使用Sobel算子对图像进行卷积,分别得到水平方向(x方向)和垂直方向(y方向)的梯度值;计算得到梯度值和方向后,对图像进行非极大值抑制,保留梯度图像中的局部最大值点,以便更精确地定位边缘;再次,通过设置2个阈值(高阈值和低阈值),对非极大值抑制后的梯度图像进行阈值处理,像素值高于高阈值的被认为是强边缘,像素值低于低阈值的被认为是弱边缘,介于两者之间的被视为可能的边缘;最后,利用边缘连接算法将弱边缘连接为强边缘,从而得到完整的边缘,通常采用的方法是通过像素的连接形成连续的边缘线段。
轮廓提取是基于边缘检测的结果,查找图像中的连续像素点集,从而找到物体的边界。本文采用的是基于图像扫描和轮廓跟踪思路的轮廓提取算法。从图像的左上角开始扫描,以第一个白色像素点为起点;从起点开始,按照顺时针或逆时针方向,依次检查相邻像素点的连通性,如果相邻像素点是白色且未被访问过,则将其添加到当前轮廓中并将其标记为已访问;继续跟踪直到回到起点,形成一个完整的轮廓。继续从图像中查找下一个未被访问的白色像素点作为起点,重复上述轮廓跟踪过程,直到所有的白色像素点都被访问过为止,并且记录每一个轮廓的一系列像素点。
3 实验测试
3.1 实验准备
本次实验中的数据均采用实际采集的图片完成,图像分辨率为2 560×1 920。评价标准为水面漂浮物的识别情况,即是否能够正确地圈出漂浮物。
本实验基于图像处理开源工具OpenCV,使用“PyCharm IDE+Anacond”完成程序编写。个人电脑配置为CPU Intel(R) Core(TM) i7-10510U,RAM 16GB。
3.2 实验过程
本文使用的水面漂浮物检测方法具有一定的难度,对采集的图片要求较高,漂浮物和水面的颜色不能太接近,因此只适合固定的场景,这也与图像处理技术能实现的效果一致。纯图像处理技术的优势在于实时性强、硬件需求较低。为了更好地完成漂浮物的检测,在算法上除了使用感兴趣区域处理、仿射变换、图像去噪等基本的图像处理流程,还使用基于颜色空间的背景剔除和指数函数的非线性灰度映射,以得到更好的图像处理结果。
3.2.1 去除水面外的信息干扰
对读取的图像进行感兴趣区域处理,去除水面以外的区域,同时完成仿射变换,避免区域非矩形影响图片质量。由于本文采用的是基于纯图像处理的方法,非水面的内容会严重影响图像算法的效果,因此需要完全剔除非水面内容的影响。通过感兴趣区域完成水面内容的提取,由于感兴趣区域可能是非矩形的,因此需要做一次仿射变换矫正图像(见图2)。从图2可以看出,整体区域选择较完整,仿射变换结果保留的图片信息与原图相近,一致性高。
3.2.2 分离水面漂浮物
由于检测物是在水面上,水面是背景部分,剔除水面将对后续检测有很大帮助。根据水面具有特定颜色的特点,本文采用HSI颜色空间进行水面检测与剔除。水面(河水)的颜色一般为蓝绿色,针对本文应用场景对水面进行数据统计,得到水面的颜色范围,对此部分的颜色范围进行检测,认定为水面部分后将水面部分赋值为0,方便后续对图像进行处理。
水面检测和去除水面后的结果见图3,从图中可以看出,经过水面去除操作后,可以在一定程度上剔除背景水面的内容,使后续图像处理的难度大大降低。从结果上看,水面分离得还不够全面,主要原因是HSI阈值范围设置不够广,但后续的图像处理难度已经降低,而且阈值范围如果设置较广,可能会破坏漂浮物的信息,因此目前的方法已经能够满足检测要求。
3.2.3 去噪处理及灰度化和灰度增强处理
对图像进行去噪处理、灰度化和灰度增强处理,以便后续进行漂浮物提取。去噪处理一方面可以去除噪声点,另一方面可以对图像进行一定的平滑处理,有利于后续的阈值处理。灰度化和灰度增强处理的目的是进一步方便将漂浮物和剩余背景进行分离,将漂浮物和背景的区别放大,提升漂浮物的亮度。灰度增强处理是对灰度值进行非线性处理,主要目的是增强漂浮物的灰度值,采用指数小于1的指数函数完成映射,其中指数选择为0.75。
去噪、灰度化和灰度增强结果见图4,从图4可以看出,经过图像增强的图片目标物的灰度值得到一定的增强,有利于提升后继的图像处理效果。虽然整体漂浮物的增强只是局部性的,但是这种提升对于漂浮物的分离已经足够。
3.2.4 阈值处理与形态学处理
通过以上图像处理操作,漂浮物的整体轮廓已经显现,接下来采用阈值处理方法将漂浮物分离出来,同时采用形态学处理方法(主要是开运算操作)去除小的噪声点。阈值处理采用的是动态阈值的方式,即每张图片设置的阈值不同,类似于经典的双峰法,基于整体灰度统计数据设置阈值,在均值和分布的基础上设置一个增量完成阈值处理。阈值处理和形态学处理结果见图5,从结果上看,大部分漂浮物区域通过处理获得MASK(掩膜),方便通过后续的处理画出漂浮物区域。
3.2.5 边缘检测和轮廓绘制
通过边缘检测和轮廓绘制输出最终结果。边缘检测采用的是Canny边缘提取法,根据边缘图绘制外轮廓,最终实现漂浮物的检测。轮廓绘制结果见图6,从结果上看,本文的方法可以成功地绘制出漂浮物的区域。虽然部分图片存在一些轮廓提取不完全的情况,但是已足够解决实际清理中的检测问题。
3.3 实验分析
本文针对特定水域环境下的漂浮物检测进行了定量实验,实验结果表明,能够检测出90%以上的漂浮物。对于目标较明显的漂浮物,能够非常完整地检测出漂浮物的准确位置;对于边界不明显、与水面颜色接近的漂浮物,虽然存在检测不完全的情况,但是也能绘制出部分漂浮物的轮廓。对于非本实验环境下的漂浮物,本文的方法也有一定的参考价值。
4 结语
水面漂浮物检测对于水利工程及水质维护工作具有重要的意义。本文提出的基于图像处理技术的水面漂浮物检测方法在一定的水域环境下有较好的应用效果,漂浮物的检测率达到90%以上。和常规的图像处理技术相比,本文采用了基于HSI颜色空间的水面去除技术及基于非线性变化的灰度增强方法,使检测的适应性和准确率得到提高。本方法不需要大量的数据进行模型训练,也不需要进行图像压缩,对硬件要求较低,并且实时性强。
5 参考文献
[1]侯添.基于智能视觉算法的河道漂浮物检测[D].杭州:浙江大学,2022.
[2]李国进,姚冬宜,艾矫燕,等.基于改进YOLOv3算法的水面漂浮物检测方法[J].广西大学学报(自然科学版),2021,46(6):1569-1578.
[3]任英杰,李传奇,王薇,等.改进YOLOv3的轻量化漂浮物检测算法[J].水利水电技术(中英文),2023,54(10):170-179.
[4]李国进,姚冬宜,艾矫燕,等.基于改进Faster R-CNN的水面漂浮物识别与定位[J].信阳师范学院学报(自然科学版),2021,34(2):292-299.
[5]陈任飞,彭勇,吴剑,等.基于改进SSD模型和自适应滤波算法的水面漂浮物目标检测跟踪方法[J].工程科学与技术,2023,55(4):119-129.
[6]黎嘉明,谢兴,张铅海,等.基于对抗生成网络的漂浮物分割算法研究[J].数字技术与应用,2020,38(1):108-109,111.
[7]林友鑫.基于机器视觉的城市河道表观异物检测方法研究[D].杭州:浙江大学,2020.
[8]张堡瑞,肖宇峰,郑又能.基于激光雷达与视觉融合的水面漂浮物检测[J].应用激光,2021,41(3):619-628.