







摘要:文章提出一種基于圖像處理技術的水面漂浮物檢測方法,該方法通過分析和處理水面圖像檢測水面漂浮物。首先,對原圖進行感興趣區域提取和仿射變換,劃分水面區域;其次,使用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 去噪處理及灰度化和灰度增強處理
對圖像進行去噪處理、灰度化和灰度增強處理,以便后續進行漂浮物提取。去噪處理一方面可以去除噪聲點,另一方面可以對圖像進行一定的平滑處理,有利于后續的閾值處理?;叶然突叶仍鰪娞幚淼哪康氖沁M一步方便將漂浮物和剩余背景進行分離,將漂浮物和背景的區別放大,提升漂浮物的亮度。灰度增強處理是對灰度值進行非線性處理,主要目的是增強漂浮物的灰度值,采用指數小于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.