謝永華,齊 楊
(1. 南京信息工程大學計算機與軟件學院,江蘇 南京 210044;2. 南京信息工程大學電子與信息工程學院,江蘇 南京 210044)
自21世紀初以來,我國的高速公路和隧道工程急劇增加[1],導致交通安全風險也隨之提升,其中裂縫是影響公路和隧道安全的重要原因之一。同時由于裂縫產(chǎn)生環(huán)境,特別是隧道裂縫環(huán)境十分復雜,采集的裂縫圖像除了包含本身需要識別的裂縫等病害之外,還包含各種噪聲干擾,而且有些紋理特征與裂縫特征高度相似,在進行圖像處理的時候很容易將兩者混淆,提取的裂縫特征魯棒性不高,從而導致后續(xù)識別率降低[2]。因此,對裂縫圖像進行必要的濾波去噪處理就顯得尤為重要。
目前裂縫圖像濾波的方法主要有時間域和空間域兩種算法,但這些算法各有各的優(yōu)點和缺陷,Chunquan Dai等提出了采用改進的同態(tài)濾波算法對采集到的圖像進行去霧和清晰處理,并采用自適應中值濾波對灰度圖像進行去噪,有效降低了圖像噪聲,但裂縫細節(jié)出現(xiàn)了斷裂和斷點[3]。Mingfeng Lei等針對裂縫圖像所包含的噪聲類型不同,有針對性的將雙邊濾波和自適應中值濾波相結(jié)合,通過并行濾波得到最終去噪的圖像[4],但裂縫細節(jié)邊緣還是有一些模糊。Xiangyang Xu等研究了高斯濾波的最優(yōu)參數(shù),提出了一種基于信噪比梯度的高斯濾波算法,圖像裂縫細節(jié)平滑效果明顯[5],但仍有明顯的噪聲得到了保留。Lv, Yunlong等提出了一種基于小波變換的增強算法,首先使用小波變換對原圖分解產(chǎn)生低頻和高頻信號,接著對低頻信號進行同態(tài)濾波增強和直方圖均衡化處理,對高頻信號進行半軟閾值函數(shù)去噪,雖產(chǎn)生的圖像紋理細節(jié)清晰,但去噪效果一般[6]。張振海等采用了高斯-快速中值濾波算法來對圖像進行濾波,可以去除大量噪聲,但只能在一定范圍內(nèi)保護裂縫的邊緣細節(jié)[7]。
綜上可知,在裂紋圖像濾除噪聲方面,目前傳統(tǒng)方法很難做到有效去噪同時且很好的保護圖像細節(jié),因此,本文提出了一種連通域的泛水填充和K-means融合的濾波算法,該算法先對裂縫圖像進行預處理,作用于二值化裂縫圖像上,去噪效果明顯,而且保留了裂縫圖像的細節(jié)特征,特別是解決了去噪后圖像細節(jié)部分出現(xiàn)斷裂和斷點的現(xiàn)象,為后續(xù)裂縫特征訓練和識別帶來了有效性和可靠性。
為了使裂縫特征更加明顯,首先對原始灰度圖像進行閾值分割得到二值圖像,圖像閾值分割的方法根據(jù)圖像中所要提取的目標與背景之間的差異性,通過合適的灰度閾值實現(xiàn)圖像分割[8],即將某一個灰度值設(shè)為閾值,圖像中大于這個閾值的設(shè)為255,小于這個閾值的設(shè)為0,如式(1)所示。
(1)
式中:th為設(shè)定的閾值,它的值是在0到255之間,J(x,y)為該點二值化后圖像的灰度值。
選取閾值的方法有很多種,目前有雙峰法,大津法和最大熵等,這里采用的是大津法(Otsu)[9]進行裂縫圖像的二值化。
從圖1中可以看出,二值化后的裂縫圖像中噪點呈現(xiàn)點塊狀,而裂縫圖像則為表現(xiàn)為一定的線性結(jié)構(gòu),因此可以對二值化后的裂縫圖像進行連通域構(gòu)造,方便后面對連通域的面積進行聚類分析,以達到去除噪聲的目的。
圖1 圖像二值化
(2)
式中:xi為第i個頂點的x軸坐標,yi同理,n為總頂點數(shù)目。
通過設(shè)定一個面積閾值T,將二值圖像中小于這個面積閾值的連通域去除掉,則濾波后輸出的圖像可以表示為式(3)。
K(x,y)={Cj(x,y)∣Pj (3) 式中:Cj(x,y)為圖像中第j個連通區(qū)域,n為連通域的個數(shù)。 閾值設(shè)置對濾波效果影響很大,手動閾值設(shè)置需不斷的進行嘗試。若閾值過小,濾波效果不理想,閾值過大,則會出現(xiàn)裂縫斷裂,甚至整個裂縫都會當成噪聲進行濾除。因此,需要根據(jù)連通域的分布,采用K-means算法對連通域的面積進行聚類分析計算自適應閾值。 K-means算法是一種運算簡單、效果優(yōu)良的無監(jiān)督學習聚類分析算法,裂縫圖像濾波的閾值計算可以看成聚類問題,根據(jù)連通域的特征值,把相似的對象規(guī)劃到一類簇中,不相似的對象歸到另一類簇中。它的算法原理如下: 假設(shè)樣本數(shù)據(jù)為{x(1),x(2),x(3),…x(n)},從中隨機選擇k個數(shù)據(jù)作為初始聚類中心,如式(4)所示。 μ1,μ2,…,μk∈Rn (4) 則對于數(shù)據(jù)中的每個樣本,計算它該屬于的類,可采用的不同的距離度量方式,本文采用歐式距離,c(i)表示聚類結(jié)果,如式(5)所示 c(i):=minj‖x(i)-μ(j)‖2 (5) 然后按類別j,重新計算聚類中心,m為每個聚類中的個數(shù),如式(6)所示 (6) 因為裂縫圖像中僅存在兩種類型連通區(qū)域,即裂縫連通區(qū)域和噪聲連通區(qū)域,因此K-means聚類算法中的聚類個數(shù)就是2個,即K值為2,取一些裂縫圖像計算其連通域面積特征,并將得出的700個一維數(shù)據(jù)集作為樣本,k取值為2,隨機選取樣本兩個值作為樣本的初始中心,得出的聚類結(jié)果如下圖2所示。 圖2 連通域面積 由此可見,經(jīng)過預處理后得到的圖像,噪聲面積大多數(shù)偏小,裂縫區(qū)域面積較大。進一步對預處理后包含裂縫和不包含裂縫正常圖像進行聚類分析后可以發(fā)現(xiàn),正常的裂縫圖像連通域面積分布均勻,而含裂縫圖像的連通域區(qū)域可以根據(jù)面積特征劃分裂縫區(qū)域和噪聲區(qū)域。如下圖3和圖4所示。 圖3 含裂縫圖像連通域面積對比圖 圖4 正常圖像連通域面積對比圖 在此基礎(chǔ)上,基于K-means自適應閾值的具體步驟如下: 1)讀取二值圖像,計算并得到二值圖像的面積值的一維矩陣; 2)隨機選取一維矩陣的其中兩個中心值,作為K-means聚類算法的初始點; 3)計算一維矩陣的每個點到中心點的距離,對中心值進行聚類分析并劃分每個點; 4)重復2)和3)步驟,重新選取中心點,然后計算兩個中心點的距離,一直到兩者的中心點不再改變; 5)求得到的兩個中心點的均值作為閾值,如式(7)所示 (7) 式(7)中,K1、K2分別表示噪聲類和裂縫類的最終聚類中心。 在裂紋二值圖像的基礎(chǔ)上進行連通域填充,本文采用的方法是八鄰域泛水填充算法。泛水填充算法涉及到三個參數(shù)的選擇,分別是泛水填充算法的起始點,目標顏色如何判斷以及替換的顏色。具體步驟如下: 1)選擇初始的種子點 2)以初始種子點為中心,判斷8鄰域像素內(nèi)種子點與初始點種子的差值,如果該差值小于設(shè)定的閾值,則將該像素點添加到種子點的區(qū)域內(nèi)。如式(8)所示,p(x′,y′)為該區(qū)域內(nèi)相鄰的區(qū)域像素值,T為閾值。 |p(x′,y′)-p(x,y)|≤T (8) 3)反復進行2)的判斷準則,以初始點為中心,如果滿足2)的判斷條件,用所選顏色替換掉當前顏色。 4)八鄰域填充過程。像素間的連通性是確定區(qū)域的一個重要概念[11],8鄰域是指點的垂直水平方向的四個相鄰的像素點與其對角線上的點組合在一起,定義如式(9)所示。8鄰域相比較4鄰域更為全面、通用性更好,填充過程如圖5所示,通過初始種子點的左、右、上、下、左上、左下、右上、右下八個鄰域像素進行判斷,然后再更新下一個像素點的連通區(qū)域,迭代往復。 N8=(x+1,y),(x-1,y),(x,y+1)∪ (x,y-1)(x+1,y+1),(x+1,y-1)∪ (x-1,y+1),(x-1,y-1) (9) 本文算法針對經(jīng)過預處理后的二值圖像,首先逐個掃描圖像中的每個像素,對二值圖像進行標識,獲得每個連通域的面積,然后初始化圖像聚類個數(shù)和聚類中心,使用K-means進行連通域面積的聚類分析得到自適應閾值,對連通域面積小于閾值的即判斷為噪點并進行濾除,最后保存濾波處理后的裂縫二值圖像。該方法將連通域泛水填充和K-means聚類相結(jié)合,不僅有效的去除了圖像的噪聲而且保留了裂縫細節(jié)特征。具體算法流程如圖6所示。 圖6 本文算法流程圖 實驗采用預處理后的道路和隧道裂縫二值圖像,圖7為橫向、斜向、豎向、塊狀四個方向的代表性隧道和道路裂紋圖像。實驗是在硬件環(huán)境為:GPU是NVIDIA Quadro M4000, 主頻2.10GHz,內(nèi)存32G。采用20張(編號1-20)分辨率大小為226×328大小的裂縫圖像進行濾波實驗,軟件使用的是Visual Studio 2017,基于OPENCV進行圖像處理。 圖7 隧道和道路代表性裂紋圖像 為了得到濾波效果的客觀評價,在此引入了圖像濾波前后的峰值信噪比PSNR和均方差MSE[12],其PSNR和MSE的定義如式(10)和式(11)。 (10) (11) 式中,MAX為處理后目標圖像中像素點的最大值,m、n為圖像的長和寬,I(i,j)為處理后圖像的灰度值,K(i,j)為處理前圖像的灰度值。 圖8和圖9分別列出了4種隧道和道路裂縫類型代表圖像的實驗對比結(jié)果。從對比圖可以看出均值濾波模糊了圖像的細節(jié),而中值、均值以及本文算法并沒有使裂縫圖像變得模糊。因為后續(xù)處理需要的就是裂縫的細節(jié)特征,所以此方法不適合裂縫圖像濾波。中值濾波雖然沒有模糊圖像,但是從圖中可以看出在隧道裂縫圖像濾波的效果一般,在道路裂縫圖像中由于噪聲點細小濾波效果顯得好一點,但是從細節(jié)中可以看出裂縫出現(xiàn)了斷裂,如果增加核的大小裂縫斷裂現(xiàn)象則會更加明顯。高斯濾波是線性濾波器,能很好的保留圖像的細節(jié)部分,但從對比實驗中可以看出無論是在隧道裂縫圖像還是在道路裂縫圖像中濾波效果都很不理想。而本文算法是基于圖像裂縫信息特征在空間分布上具有一定的連通性和連續(xù)性,噪點信息往往是孤立的且在空間上是不連續(xù)分布的,采用基于連通域的泛水填充方法,利用連通域的面積特征約束并對算法中的閾值實現(xiàn)自動獲取進行噪聲的濾除,一定程度上解決了手動調(diào)試閾值的缺點,提升了算法的效率。從實驗結(jié)果對比圖中可以看出在去噪方面能力更強,沒有模糊圖像,并且保留了裂縫圖像的細節(jié),這正與后續(xù)識別處理需要裂縫的細節(jié)特征相吻合,所以該方法相比較傳統(tǒng)的濾波算法更加適合裂縫圖像的濾波,效果顯著。 圖8 隧道圖像濾波方法實驗結(jié)果對比圖 圖9 道路圖像濾波方法實驗結(jié)果對比圖 對隧道和道路裂縫原圖及濾波后的圖像分別計算PSNR和MSE 均值得到的結(jié)果如表1所示。由對比實驗結(jié)果可以看出,本文算法濾波后的圖像峰值信噪比值最大,均方差最小,而在圖像方面,峰值信噪比PSNR越高,均方差MSE越小,說明圖像的濾波效果越好。 表1 4種濾波算法處理后的PSNR和MSE均值對比 針對裂縫圖像的濾波處理,提出了一種基于連通域的泛水填充和k-means融合的方法,首先對原圖預處理后的增強圖像進行閾值分割得到二值圖像,再對其進行連通域標識,獲得連通域的面積特征并進行聚類分析,最后將面積小于閾值的噪聲點進行填充,保存濾波后的裂縫二值圖像。實驗表明,與傳統(tǒng)的的濾波方法相比,本文算法對不同類型裂縫圖像濾波效果明顯,而且裂縫細節(jié)特征保留比較完整。2.3 基于K-means聚類分析的自適應閾值計算通域面積的提取
2.4 連通域泛水填充
3 算法流程
4 實驗結(jié)果分析
4.1 實驗條件
4.2 實驗結(jié)果與分析
5 結(jié) 語