張偉,周利君,夏堅(jiān)
(1.福建省建筑科學(xué)研究院有限責(zé)任公司,福建 福州 350028;2.福建省綠色建筑技術(shù)重點(diǎn)實(shí)驗(yàn)室,福建 福州 350028;3.福州大學(xué) 土木工程學(xué)院,福建 福州 350108)
建筑裂縫是建筑物中常見的病害形式,能夠直接反映建筑物的安全狀況。顯然,對(duì)建筑裂縫進(jìn)行準(zhǔn)確檢測(cè)具有十分重要的社會(huì)效益和現(xiàn)實(shí)意義。目前,裂縫檢測(cè)主要以人工檢測(cè)為主,檢測(cè)效率低下,不安全,識(shí)別精度低。近年來,隨著計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展,眾多學(xué)者將數(shù)字圖像處理技術(shù)應(yīng)用于裂縫的智能檢測(cè)中,已取得了一定的研究成果[1]。
圖像邊緣信息是一種重要的圖像特征信息,邊緣檢測(cè)方法研究是圖像分析和識(shí)別領(lǐng)域的一個(gè)熱點(diǎn)[2]。魏海斌[3]等比較了Roberts算子、Sobel算子、Prewitt算子的邊緣檢測(cè)效果,結(jié)果表明Roberts算子與理想圖像的吻合度最高;張陽[4]等提出了一種自適應(yīng)均值濾波并與LOG算子結(jié)合,進(jìn)行邊緣檢測(cè);宋人杰[5]等利用混合濾波代替高斯濾波,并且將線性邊緣增強(qiáng)與Otsu算法相結(jié)合對(duì)Canny算子進(jìn)行改進(jìn);胡文文[6]等利用Canny對(duì)量子圖像進(jìn)行檢測(cè),結(jié)果表明該方法對(duì)其邊緣檢測(cè)效果較好;商景輝[7]對(duì)Canny算子邊緣檢測(cè)進(jìn)行了實(shí)驗(yàn),結(jié)果表明當(dāng)圖片目標(biāo)與背景對(duì)比不明顯時(shí),檢測(cè)效果不太好。
然而,上述文獻(xiàn)中的邊緣檢測(cè)方法對(duì)非線性噪聲效果不太明顯,且存在漏檢邊緣信息的情況。為此,本課題對(duì)傳統(tǒng)的Canny算子進(jìn)行了3方面改進(jìn):(1)利用中值濾波代替原有的高斯濾波;(2)采用Sobel算子八方向模板進(jìn)行梯度計(jì)算;(3)使用Otsu法得到閾值,將改進(jìn)的Canny算子應(yīng)用于建筑裂縫圖像邊緣提取實(shí)驗(yàn)。
建筑裂縫圖像中可能會(huì)包含大量的噪聲,如混凝土表面的污染痕跡、陽光的不均勻照射以及表面的紋理等,這些因素會(huì)影響邊緣提取的效果。為此,需要對(duì)裂縫圖像進(jìn)行預(yù)處理。建筑裂縫圖像預(yù)處理主要包括圖像灰度化、圖像增強(qiáng)、濾波等。圖1為建筑裂縫圖像預(yù)處理的流程。
圖1 圖像預(yù)處理流程Fig.1 Image preprocessing procedure
其中,圖像灰度化是為了去除圖像色彩在邊緣提取中的干擾;建筑裂縫圖像在經(jīng)過模糊增強(qiáng)處理后,亮度更強(qiáng),清晰度也得到了提升;采用高斯濾波能夠有效去除裂縫圖像中大部分噪聲的干擾,使目標(biāo)圖像更清晰;圖像分割能夠?qū)D像目標(biāo)與背景按照某種規(guī)則分開來[8],得到所需要的目標(biāo)圖像。
由圖像預(yù)處理以及圖像分割得到的圖像仍然存在不同程度的干擾,為了后續(xù)得到較好的邊緣檢測(cè)效果先對(duì)裂縫進(jìn)行孤立點(diǎn)的去除。如圖2所示為去除孤立點(diǎn)后的圖像,只有黑色背景和白色裂縫兩類,這樣就將裂縫明顯分離,有效提高了裂縫檢測(cè)的準(zhǔn)確性。
邊緣[3]是指在其周圍像素灰度急劇變化的那些像素點(diǎn)的集合,它是圖像的最基本特征。對(duì)邊緣提取有利于后續(xù)對(duì)圖像進(jìn)行分析、識(shí)別、檢測(cè)等。圖像邊緣提取常用的是基于Canny算子的邊緣測(cè)。
傳統(tǒng)Canny算子邊緣提取的操作步驟如下[9]:
使用高斯平滑濾波器卷積降噪;均值為0的二維高斯函數(shù)為:
(1)
其中σ是標(biāo)準(zhǔn)差,影響高斯模板生成的關(guān)鍵參數(shù),代表著數(shù)據(jù)的離散程度。
假設(shè)f(x,y)為大小是M×N的輸入圖像,g(x,y)為經(jīng)過高斯濾波器后輸出圖像,則高斯濾波過程可以表示為:
(2)
其中,x=0,1,…,M-1,y=0,1,…,N-1,k,l是根據(jù)所選領(lǐng)域大小而確定的。
計(jì)算水平與垂直的梯度幅值與方向;該方法中使用一階偏導(dǎo)的有限差分來計(jì)算梯度幅值與方向。對(duì)于函數(shù)圖像f(x,y),計(jì)算如下:
方向梯度計(jì)算:
(3)
(4)
梯度幅值計(jì)算:
(5)
梯度方向計(jì)算:
(6)
對(duì)梯度幅值進(jìn)行非極大值抑制,找出圖像梯度中的局部極大值點(diǎn);
使用雙閾值檢測(cè)和邊緣連接。
傳統(tǒng)Canny算子簡(jiǎn)單但也存在著一定的缺陷:(1)使用了高斯平滑濾波,但是該濾波的效果與標(biāo)準(zhǔn)差σ選取有關(guān)系,影響濾波的效果,且該濾波是線性濾波,對(duì)非線性噪聲無用;(2)采用兩個(gè)方向的一階差分會(huì)損失一些信息;(3)雙閾值檢測(cè)采用人工定義閾值會(huì)帶來一定的誤差。
針對(duì)傳統(tǒng)Canny算子的缺點(diǎn),本研究提出了一種改進(jìn)的Canny算子。具體改進(jìn)措施為:
首先,使用非線性中值濾波代替高斯濾波。中值濾波是一種非線性濾波,其原理是將圖像像素按照升序排列取其中間值。
其次,使用Sobel算子的8方向模板進(jìn)行圖像梯度計(jì)算。
Sobel算子能夠增強(qiáng)圖像的邊緣,假設(shè)縫f(x,y)為一幅圖像,則其定義式如下所示:
Sx=|f(x-1,y+1)+2f(x,y+1)+f(x+1,y+1)|-
|f(x-1,y-1)+2f(x,y-1)+f(x+1,y-1)|
(7)
Sy=|f(x+1,y-1)+2f(x+1,y)+f(x+1,y+1)|-
|f(x-1,y-1)+2f(x-1,y)+f(x-1,y+1)|
(8)
可以用模板表示為:
為了能夠保留更多的邊緣信息本文所采用的是Sobel算子的8模板形式,其可通過旋轉(zhuǎn)擴(kuò)展得到。
再使用Otsu法獲得閾值來代替人工閾值的選擇。
Otsu算法是一個(gè)經(jīng)典的閾值分割算法,其計(jì)算流程如下:
統(tǒng)計(jì)圖像中灰度總級(jí)數(shù)L,統(tǒng)計(jì)各灰度出現(xiàn)的次數(shù)ni;計(jì)算一個(gè)M×N圖像的各級(jí)灰度出現(xiàn)的概率:
(9)
選擇一個(gè)閾值T,將圖像分為目標(biāo)區(qū)域和背景區(qū)域, 計(jì)算目標(biāo)區(qū)域,背景區(qū)域在圖像中的概率Po,PB:
(10)
計(jì)算兩類像素的均值μo,μB:
(11)
計(jì)算總體灰度均值:
μ=po×μo+pB×μB
(12)
計(jì)算兩類像素的方差:
(13)
計(jì)算兩類類間方差:
(14)
令T從0~L-1變化,重復(fù)(4)~(8)步,計(jì)算不同閾值下的類間方差,使得類間方差最大的那個(gè)T即為所求閾值。
具體的改進(jìn)Canny算子處理流程如圖3所示。
圖3 改進(jìn)Canny邊緣提取流程Fig.3 Improved Canny edge extraction process
通過對(duì)兩種方法得到的圖片進(jìn)行觀察比較,人為判斷兩者的效果,如圖4所示。
圖4 傳統(tǒng)Canny與改進(jìn)Canny邊緣檢測(cè)對(duì)比Fig.4 Comparison of edge detection by the traditional Canny and that by the proposed Canny
從圖4可以看出,傳統(tǒng)的邊緣提取得到的邊緣有較多的“毛刺”,且邊緣有一定的損失,而所提出的邊緣檢測(cè)得到的邊緣較平滑,這幅圖在視覺直觀上可以看出本算法可以得到更好的提取效果。
人眼的分辨率有限,對(duì)于在視覺上對(duì)比不太明顯的圖片,直觀上會(huì)看不出差異,因此進(jìn)行了峰值信噪比(peak signal-to-noise ratio,PSNR)以及結(jié)構(gòu)相似性(structural similarity,SSIM)的計(jì)算,從量化的角度來考慮兩種邊緣提取方法。
峰值信噪比是一種評(píng)價(jià)圖像質(zhì)量的客觀標(biāo)準(zhǔn),在圖像中是指圖像可能的最大值信號(hào)與背景噪聲之間的比值。其計(jì)算公式如下:
(15)
(16)
其中,m、n為圖像的行數(shù)、列數(shù);I、J為兩幅圖像;i、j為圖像的第i行、第j列。
結(jié)構(gòu)相似性是一種衡量?jī)煞鶊D像相似性的指標(biāo),它是用均值作為亮度的估計(jì),標(biāo)準(zhǔn)差作為對(duì)比度的估計(jì),協(xié)方差作為結(jié)構(gòu)相似程度的度量。其計(jì)算公式如下:
(17)
c1=(k1L)2
(18)
c2=(k2L)2
(19)
根據(jù)所提改進(jìn)的Canny算子,基于MATLAB2018a平臺(tái)編制了相應(yīng)程序。對(duì)采集到的20張裂縫圖像進(jìn)行量化分析。表1給出了具有代表性的5張?jiān)紙D像的傳統(tǒng)Canny算子以及改進(jìn)算子提取圖像邊緣特征對(duì)比結(jié)果。表2為全部20張峰值信噪比與結(jié)構(gòu)相似性指標(biāo)的計(jì)算表。
表1 圖像對(duì)比
表2 峰值信噪比與結(jié)構(gòu)相似性計(jì)算表
由峰值信噪比與結(jié)構(gòu)相似性的公式可知,峰值信噪比與結(jié)構(gòu)相似性越大說明邊緣提取的效果越好。由表2的數(shù)據(jù)可知,所提出的改進(jìn)Canny算子相對(duì)比傳統(tǒng)Canny算子,兩種統(tǒng)計(jì)指標(biāo)值均略高,顯然所提算法的邊緣提取效果較好。
對(duì)Canny算子進(jìn)行了一定的改進(jìn),并在20張裂縫圖片上進(jìn)行驗(yàn)證分析,結(jié)果表明在預(yù)處理階段進(jìn)行圖像分割與去除孤立點(diǎn)操作能夠?yàn)楹罄m(xù)邊緣檢測(cè)提供質(zhì)量較好的圖像有利于圖像邊緣的提取。利用改進(jìn)后的Canny算子能夠有效提取圖像的邊緣,且圖像的峰值信噪比以及結(jié)構(gòu)相似度均有一定程度的提高,可以得到了較完整清晰的圖像邊緣。清晰的圖像邊緣為進(jìn)一步的圖像分析與識(shí)別奠定了一定的基礎(chǔ),可以得到更為準(zhǔn)確的裂縫長(zhǎng)度與寬度的測(cè)量結(jié)果。并可以在圖像的特征提取方面得到更有效的特征信息,為后續(xù)圖像的識(shí)別分類提供一定的有利條件。