楊國慶,吳 昊,方振江
(天津城建大學(xué) 控制與機械工程學(xué)院,天津300384)
建筑墻體都會出現(xiàn)裂縫,建筑物的健康狀況可以通過裂縫的變化進(jìn)行評估,所以裂縫變化檢測是一項重要監(jiān)測工作.所采集的裂縫圖像如圖1 所示,由圖1可見,首先受損墻面為水泥墻面,無損墻面便攜帶大量噪聲干擾,再加上常年日曬雨淋導(dǎo)致結(jié)構(gòu)老化出現(xiàn)裂縫且裂縫所處背景區(qū)域形成大量面積較小并向下凹陷的坑,造成采集圖像包含大量噪聲干擾. 其次建筑裂縫寬度小,背景顏色與裂縫顏色相近導(dǎo)致圖像對比度較低,部分裂縫存在自然間斷、分叉,導(dǎo)致分割難度大.裂縫圖像所具有的獨特特征要求對其進(jìn)行處理的圖像算法需要具有出色的降噪能力和邊緣分割能力.
圖1 裂縫圖像
劉麗霞等[1]提到Sobel,Prewitt 算子對噪聲敏感,邊緣厚且不準(zhǔn)確;LoG 算法采用拉普拉斯濾波,會造成圖像邊緣方向模糊;Canny 算法不易受噪聲影響,采用雙閾值檢測強邊緣和弱邊緣,由于采集到的裂縫圖像往往帶有噪聲,并且需要檢測裂縫的邊緣,所以優(yōu)先考慮使用Canny 算法.徐歡等[2]將Canny 算法用于路面裂縫的檢測,實現(xiàn)了對路面裂縫實時、準(zhǔn)確的檢測.Anand 等[3]改進(jìn)傳統(tǒng)Canny 算法得到DGW-Canny 算法優(yōu)化了細(xì)節(jié)特征的提取,但該方法使用傳統(tǒng)高斯濾波對圖像進(jìn)行降噪,降噪效果一般且圖像細(xì)節(jié)失真.在對圖像進(jìn)行降噪的過程中,Canny 算法在避免假邊緣出現(xiàn)的同時會丟失邊緣信息,相對的,保證邊緣信息完整的同時會出現(xiàn)錯誤的邊緣信息.可見傳統(tǒng)Canny算法在處理裂縫檢測這類對精度有一定要求的任務(wù)時存在邊緣丟失的問題.隨著機器學(xué)習(xí)的不斷發(fā)展,機器學(xué)習(xí)中的方法被應(yīng)用到圖像處理中,張娟[4]使用主成分分析的方法,優(yōu)化了圖像的降噪效果.
本文根據(jù)裂縫特有的圖像特征,針對性地改進(jìn)傳統(tǒng)Canny 算法,使用PCA 算法進(jìn)行降噪,優(yōu)化其在建筑裂縫檢測應(yīng)用中的效果.
PCA 可降低原始輸入的數(shù)據(jù)的維度,原始數(shù)據(jù)的元素之間線性無關(guān),可將原始輸入數(shù)據(jù)的主要成分作為降維后原始數(shù)據(jù)的表示.在降維的過程中對主要成分只提取不變換,所以PCA 在降維的同時不會出現(xiàn)失真現(xiàn)象.圖2 為圖1 的直方圖表示,可見圖中的噪聲干擾類似高斯噪聲且獨立存在.
圖2 裂縫直方圖
PCA 算法可以在除去噪聲的過程中很好地保存原始圖片的特征,原理如下.
設(shè)樣本矩陣為G∈RN×W,計算G的協(xié)方差矩陣C,即
特征分解得C的特征值矩陣A,同時存在矩陣P,使得PCPT=A,從大到小取前個P特征組成對角矩陣A1,與其對應(yīng)的特征向量矩陣為P1.則可以求得PCA變換后的矩陣G1,即
將原始數(shù)據(jù)從W維降到了P維.A1為對角矩陣,所以每個維度空間相互獨立.
Canny[5]于1986 年提出Canny 算子. 該算法使用二維高斯函數(shù)的一階導(dǎo)數(shù)對圖像待濾波的像素點及其鄰域點的灰度值進(jìn)行加權(quán)平均,以達(dá)到圖像降噪的效果.二維高斯函數(shù)如下
然后使用卷積算子sx和sy進(jìn)行卷積得出x、y軸的梯度方向和幅值,卷積算子如下式
再根據(jù)梯度方向上的幅值大小確定邊緣像素,完成對原始裂縫圖像裂縫邊緣信息的提取.
將原始裂縫圖像即含噪裂縫圖像用Iv表示,I為不含噪裂縫圖像,v為噪聲,Iv的表達(dá)式為
通過計算求估計,使與I近似相等.
設(shè)置一個K*K的方塊矩陣X,設(shè)X =[x1,x2,…,xi]T,其中由式(5)可得
所以可得
提取X中的訓(xùn)練集,計算PCA 轉(zhuǎn)換矩陣.以X為中心設(shè)置一個L*L且(L>K)大小的訓(xùn)練塊.如圖3 所示.Xv中每一個xkv共有(L-K+1)2個訓(xùn)練樣本.
在訓(xùn)練窗口中,用y0v表示被噪聲污染的目標(biāo)塊中像素,用yiv表示第i個被噪聲污染的K*K訓(xùn)練塊中像素,其中i=1,2,…,(L-K+1)2-1,n=K*K.ei為第i個訓(xùn)練塊與目標(biāo)塊的歐氏距離,其表達(dá)式為
圖3 LPG 模型
設(shè)置y0和yi分別為與y0v和yiv相關(guān)的無噪聲像素.由式(5)可得,y0v=y0+σ2,yiv=yi+σ2.其中σ 為噪聲的方差,由此可以將式(7)改寫成下列形式
當(dāng)ei小于某個閾值T時,可以將訓(xùn)練塊與訓(xùn)練窗口近似相等,即
結(jié)合式(8)可得
則訓(xùn)練塊中的像素可以作為訓(xùn)練樣本.
為保證足夠多的訓(xùn)練樣本,規(guī)定訓(xùn)練樣本數(shù)l必須滿足以下條件
其中:c為常數(shù),取值為[8,10].如果不滿足以上條件則規(guī)定最佳樣本數(shù)目c·m為實際樣本數(shù)目.
PCA 可以降低處理前后數(shù)據(jù)維度間的相關(guān)性從而提取主要成分.由于噪聲與需要提取目標(biāo)不相關(guān),可見PCA 算法具有降噪的效果.
首先計算訓(xùn)練樣本Xv的平均值uk和均值公式如下
由于噪聲vk的數(shù)學(xué)期望為0,所以對訓(xùn)練樣本Xv中心化,可以得到即
同理該樣本的無噪聲污染像素塊X:
然后計算的協(xié)方差矩陣,由于圖像受噪聲污染,所以無法直接計算,需要先計算的協(xié)方差矩陣表達(dá)式如下
其中:COVv為噪聲的協(xié)方差矩陣,COVv為一個m*m的特征值為σ2的對角矩陣,可以改寫為σ2I,其中I為單位矩陣.可以推斷出有相同的特征向量Q,并且Q是正交矩陣.改寫式(15)可得
最后對去中心化便可以得到降噪后的圖像I.
設(shè)置圖像I在x軸上的偏導(dǎo)數(shù)為P(i,j),公式如下
設(shè)置圖像I在y軸上的偏導(dǎo)數(shù)為Q(i,j),即
已知P(i,j)和Q(i,j)可以計算I[i,j]的幅值μ(i,j)和方向θ(i,j),即用圓周的四個扇區(qū):0°,-45°,90°,+45°,表示不同的梯度方向如圖4 所示.
圖4 梯度方向示意
計算得圖像的梯度和幅值,通過梯度方向上像素幅值的比較判斷該像素點是否為邊緣點.使用3×3 的核進(jìn)行抑制運算.如果當(dāng)前像素的幅值比梯度方向上前后兩個像素幅值中的任意一個低,該像素點為非邊緣點,抑制.反之則表示該像素為邊緣點,保留.
選擇高低兩個閾值TH和TL,將小于TL的像素點賦值為0,對于介于高低閾值之間的像素點則轉(zhuǎn)而判斷其相鄰像素點是否為1,相鄰像素為1 則該像素為1,否則為0.大于高閾值的像素點賦值為1.
本文算法先對輸入圖像進(jìn)行局部像素分組,之后使用PCA 做降噪處理,最后利用Canny 算法進(jìn)行分割,算法流程如圖5 所示.
在對圖像進(jìn)行降噪的過程中,訓(xùn)練窗口的邊長設(shè)置為20 像素,訓(xùn)練塊的邊長設(shè)置為3 個像素.由于本實驗中采集的原圖背景為水泥墻面,所含噪聲與高斯白噪聲相似,所以設(shè)置噪聲方差為20,根據(jù)多次試驗的結(jié)果,濾波閾值為25.
在對圖像進(jìn)行邊緣檢測時,高低閾值選取由圖像中的最大像素點max 決定,低閾值為0.1*max,高閾值為0.3*max.
將試驗結(jié)果分別與采用高斯濾波的傳統(tǒng)Canny算法、采用鄰域平均法降噪Canny 算法、采用中值濾波的Canny 算法、采用自適應(yīng)濾波的Canny 算法的處理結(jié)果相比較.降噪效果如圖6 所示.
圖5 基于PCA 降噪的Canny 算法流程
圖6 降噪效果
圖6 中a 為原圖,b 為采用高斯濾波降噪的效果圖,c 為采用鄰域均值法處理后的效果圖,d 為采用中值濾波降噪的效果圖,e 為自適應(yīng)濾波后的效果圖,f為PCA 濾波之后的效果圖.使用峰值信噪比(PSNR)對處理結(jié)果進(jìn)行評判,結(jié)果如表1 所示.
表1 不同方法所得PSNR
試驗證明PCA 算法在對建筑裂縫特別是背景為水泥墻面的裂縫進(jìn)行降噪處理時可以取得很好的效果. 邊緣檢測結(jié)果如圖7 所示.
圖7 處理結(jié)果
圖7 中a 為本文基于PCA 降噪Canny 算法處理結(jié)果,從b 開始依次為傳統(tǒng)Canny 算法、采用鄰域均值濾波的Canny 算法、采用中值濾波的Canny 算法、采用自適應(yīng)濾波的Canny 算法的處理結(jié)果.
實驗證明,本文中提出的基于PCA 降噪改進(jìn)的Canny 算法對建筑裂縫有理想的處理效果.相比于傳統(tǒng)Canny 方法,本文所提基于PCA 降噪的Canny 算法有效減少了噪聲干擾,優(yōu)化了分割效果.
針對建筑裂縫的圖像特征將PCA 降噪方法與傳統(tǒng)Canny 相融合,通過分解原圖像的協(xié)方差矩陣得到特征值和特征向量.將特征值由大到小排序,過濾掉原圖像中的次要成分,提取圖像中的主要成分,完成對圖像的降噪處理,然后使用Canny 對裂縫進(jìn)行邊緣檢測.通過試驗結(jié)果證明,本文提出的基于PCA 降噪的Canny 方法在處理噪聲污染嚴(yán)重的建筑裂縫圖像時,可將峰值信噪相比傳統(tǒng)Canny 提高2.62 dB,從分割的結(jié)果圖可明顯看出本文所提算法的效果要優(yōu)于傳統(tǒng)Canny 算法,為之后的檢測工作提供必要的依據(jù).