楊莎莎,郝 龍,李 瑛,傅少君,賀昌海
(1. 延安大學(xué) 石油工程與環(huán)境工程學(xué)院,陜西 延安 716000; 2.西京學(xué)院 陜西省混凝土結(jié)構(gòu)安全與耐久性重點實驗室, 陜西 西安 710123; 3. 中鐵二十局集團第六工程公司,陜西 西安 710032; 4. 武漢大學(xué) 土木建筑工程學(xué)院,湖北 武漢 430072; 5. 武漢大學(xué) 水利水電學(xué)院,湖北 武漢 430072)
混凝土結(jié)構(gòu)裂縫的產(chǎn)生及延展嚴(yán)重危害建筑結(jié)構(gòu)的健康與安全。大體積混凝土結(jié)構(gòu)內(nèi)部大量的水泥水化熱使得結(jié)構(gòu)內(nèi)部溫度升高,較大的內(nèi)外溫度差形成復(fù)雜的溫度應(yīng)力,最終導(dǎo)致裂縫產(chǎn)生;加上其他各種因素的作用,大體積混凝土的裂縫呈現(xiàn)分布范圍大、形態(tài)不規(guī)則、數(shù)量繁多且交錯復(fù)雜的特征[1-3],因此,識別難度大大增加。這些復(fù)雜裂縫如果沒有被及時的發(fā)現(xiàn)和處理,極易發(fā)展成貫穿裂縫而對結(jié)構(gòu)安全產(chǎn)生嚴(yán)重影響[4]。因此,快速、高效地檢測大體積混凝土裂縫,并采取措施及時修補,對確保混凝土建筑物結(jié)構(gòu)安全和正常運行有著十分重要的作用[5-9]。
人工檢測是混凝土裂縫最常用的檢測方法,主要依靠裂縫刻度尺和放大鏡檢測裂縫表面特征,該方法耗時費力,檢測結(jié)果受人為因素影響大,精度明顯不足[10],在震后鑒定中還具有一定的危險性[11]。隨著計算機性能的不斷提高,借助數(shù)字圖像處理技術(shù)進行混凝土裂縫識別成為可能。亓大鵬[12]建立了分布式集群,實現(xiàn)了隧道裂縫圖像分布式存儲與分布式處理,解決了海量隧道裂縫圖像存儲與處理的問題;TONG Xuhang等[13]和XU Bing等[14]對比了基于自適應(yīng)閾值和基于區(qū)域增長的圖像分割算法,得到了圖像中的裂縫寬度值;方志等[15]研究了采用正拍和斜拍圖像檢測混凝土裂縫的方法;劉娜等[16]運用形態(tài)學(xué)和最大熵圖像分割方法來檢測路面裂縫,較好地實現(xiàn)了裂縫與背景間的分離;QU Zhong等[17]提出的改進基于滲流模型的圖像檢測算法能精確檢測到不清晰的裂縫區(qū)域;衛(wèi)軍等[18]采用遍歷邊緣點的最短距離法求裂縫寬度,但在求取最短距離時無效計算偏多;許薛軍等[19]提出了基于斜率法的裂縫寬度檢測技術(shù),但該技術(shù)不適用于裂縫拐角過多的情況。
筆者基于數(shù)字圖像處理技術(shù),在MATLAB平臺上開發(fā)了一個混凝土裂縫識別程序,可快速、準(zhǔn)確檢測裂縫的位置、寬度和長度,該程序可作為混凝土結(jié)構(gòu)工程健康監(jiān)測的一個新方法。
1.1.1 圖像灰度化
對于由三基色紅(R)、綠(G)、藍(B)相互疊加的RGB彩色照片,R、G、B分量取值范圍為0~255,每個像素點有256 × 256 × 256種顏色。RGB圖像的每個像素點需用8個字節(jié)存放信息,而灰度圖像的每個像素點只需1個字節(jié)存放信息。由于混凝土表面裂縫無須彩色信息,因此,為了減小處理計算工作量,提高運算效率,可將RGB彩色圖像轉(zhuǎn)換為灰度圖像。
當(dāng)RGB彩色圖像的紅、綠、藍3個分量等值時即為灰度圖像。目前,圖像灰度化方法主要有最大值法、平均值法及加權(quán)平均值法。人眼通常對綠色最為敏感,紅色次之,藍色最弱。相對而言,加權(quán)平均值法算出的各像素灰度值較為合理。因此,筆者采用加權(quán)平均值法,即利用YUV空間與RGB空間的對應(yīng)關(guān)系來對彩色圖像進行灰度化。YUV色彩空間中的Y表示圖像亮度,灰度圖的相關(guān)信息包含在Y分量中,轉(zhuǎn)換關(guān)系如式(1):
(1)
從而,可得灰度計算式(2):
Y=0.299R+ 0.587G+ 0.114B
(2)
1.1.2 灰度校正
由于自然光照不充足,或者相機缺陷,或者混凝土表面雜物等影響,灰度化圖像存在失真問題。因此,可用數(shù)學(xué)方法來改變圖像灰度值的分布,使其分布的更加均勻,從而改善圖像的對比度。
一般認為灰度化的圖像由噪聲、背景及裂縫3部分組成。其中,裂縫的灰度值相對較小,背景的灰度值相對較大,噪聲的灰度值介于二者之間。如果不對接近裂縫灰度值的背景及噪聲區(qū)域進行處理,在后續(xù)操作中就會把背景或噪聲處理成裂縫,使參數(shù)的計算結(jié)果出現(xiàn)較大誤差。筆者采用線性變換方法進行校正:用一個線性函數(shù)來改變圖像灰度值,當(dāng)線性函數(shù)的斜率k> 1時,輸出的圖像對比度增大;當(dāng)k≤1時,輸出的圖像對比度減小。對整個灰度范圍進行線性變換的方法不利于將裂縫和背景的對比度很好地區(qū)分,而分段線性變換能較好地解決這一問題。分段線性變換的步驟如下:
Step 1計算圖像的大小,建立矩陣來儲存變換圖像。
Step 2遍歷原圖像的所有像素點,統(tǒng)計其灰度值。
Step 3對于每一個像素點,用分段線性變換式(3)來校正灰度值:
(3)
含裂縫的混凝土結(jié)構(gòu)表面,圖像會受到多個因素影響而產(chǎn)生噪聲。如:在成像過程中系統(tǒng)本身產(chǎn)生的噪聲,日照不充足或不均勻產(chǎn)生的噪聲,結(jié)構(gòu)表面平整度差產(chǎn)生的噪聲,結(jié)構(gòu)表面附著雜物引起的噪聲等。這些噪聲在灰度圖上表現(xiàn)為一系列孤立的像素點或像素塊,導(dǎo)致干擾信息增加、圖像質(zhì)量降低,極有可能誤將這些噪聲識別為裂縫。
圖像濾波處理就是消除或抑制存在于圖像中的噪聲信息,使裂縫特征信息更加明顯,同時盡可能不改變圖像的原始細節(jié)特征。經(jīng)過濾波后的圖像,裂縫和背景的界面更易區(qū)分,更有利于圖像分割處理以及裂縫各個參數(shù)的準(zhǔn)確計算。
通常用到的濾波方法有均值濾波法和中值濾波法。由于中值濾波法是一種基于像素點灰度值大小排序的非線性濾波方法,它能有效地消除圖像中存在的孤立噪聲點,所產(chǎn)生的圖像細節(jié)模糊程度比均值濾波要少很多。因此,筆者采用中值濾波法進行濾波處理。中值濾波法的基本思路是:①選定合適的含有若干個像素點的模板窗口,將模板窗口中心位置放于待處理像素點;②遍歷模板窗口包含的像素點,首先計算出對應(yīng)的亮度值,然后按從小到大的順序排列;③待處理像素點新的灰度值為排序最中間像素點的灰度值即窗口像素點個數(shù)為奇數(shù)時,待處理像素點的灰度值取序列中間的灰度值,而窗口像素點個數(shù)為偶數(shù)時,待處理像素點灰度值取序列中間兩個像素點灰度值的平均。
如圖1(a),設(shè)待處理像素點的原灰度值為22,其與周圍相鄰幾個像素點的灰度值存在顯著差異,可看成噪聲點。采用3 × 3窗口選出包含待處理的9個像素點,并按灰度值從小到大排列:22、39、56、59、63、65、71、88、94,則待處理像素點灰度值取排列中間值63,如圖1(b)。
圖1 原灰度值及中值濾波后灰度值Fig. 1 Original gray value and median-filtered gray value
圖2為將同一圖像經(jīng)過3×3、5×5、7×7不同模板窗口進行濾波處理的結(jié)果。可以看出:中值濾波的效果受模板窗口尺度影響明顯,窗口過小不能很好地消除噪聲,而窗口過大圖像又變得模糊。與7×7窗口相比,3×3窗口的濾波效果較差,但模糊度較小。因此,在圖像識別中應(yīng)考慮選擇合適的模板窗口大小。筆者采取先小尺度模板窗口處理,再逐漸增大模板窗口處理,可獲得很好的效果。
圖2 原灰度圖像及3×3、5×5、7×7中值濾波后圖像Fig. 2 Original grayscale image and 3×3, 5×5 and 7×7 image after median filtering
采用閾值分割方法進行圖像分割處理,即從圖像中提取裂縫。首先,確定圖像分割的合理閾值t;然后,將閾值t與圖像所有像素點進行比較;最后,區(qū)分裂縫區(qū)域和背景區(qū)域。經(jīng)過圖像分割處理后,灰度為0~255的原灰度圖像變成了0~1的二值圖像,從而大大減少了圖像占用的內(nèi)存,并且方便了裂縫參數(shù)的提取。閾值分割法的基本表達式如式(4):
(4)
閾值t的確定對圖像分割效果至關(guān)重要。若t過大,則會將本不被納入的背景像素點當(dāng)成裂縫區(qū)域點;若t過小,則會將本不被納入的裂縫像素點當(dāng)成背景區(qū)域點。為解決這一問題,筆者采用了迭代法、自定義閾值法及Otsu法3種算法來確定閾值t。
1.3.1 迭代法
迭代法的基本思想是預(yù)先設(shè)置一個初始閾值t0,按照某種迭代規(guī)則不斷循環(huán)直至最終閾值的誤差小于預(yù)設(shè)的允許誤差值。迭代法在計算過程無需人為設(shè)定參數(shù),是一種自動求取閾值的算法,簡單易操作、準(zhǔn)確性較高。迭代法的基本流程如圖3。
1.3.2 自定義閾值法
自定義閾值法,即提前預(yù)設(shè)1個閾值t,然后統(tǒng)計所有像素點的灰度值大小,將其逐一與設(shè)定閾值作比較,小于閾值的像素點歸于裂縫區(qū)域,大于閾值的像素點歸于背景區(qū)域。
圖3 迭代法的基本流程Fig. 3 Basic flow of iterative algorithm
1.3.3 Otsu法
假定灰度值范圍為[1,t-1]的像素組成C0區(qū)域,灰度范圍為[t,m]的像素組成C1區(qū)域,原圖像灰度值平均值為μ,則
C0出現(xiàn)概率σ0及均值μ0為
(5)
C1出現(xiàn)概率σ1及均值μ1為
(6)
C0與C1區(qū)域的總方差為
σ2=σ0(μ0-μ)2+σ1(μ1-μ)2
(7)
當(dāng)σ2達到最大時,灰度值t就是最佳閾值。
筆者對某灰度化圖像〔圖4(a)〕,分別采用迭代法、自定義閾值法(閾值t= 128)、Otsu法進行分割處理,處理后的效果如圖4(b)~(d)??梢钥闯?,當(dāng)t=128時,灰度圖像分割效果最佳。
圖4 圖像分割效果Fig. 4 Image segmentation effect
對RGB彩色圖像進行灰度化、濾波及分割處理后得到了二值灰度圖像,但該二值灰度圖像仍然不可避免會存在孤立點或孤立塊等殘余噪聲,從而影響裂縫形態(tài)及參數(shù)的識別精度。針對混凝土結(jié)構(gòu)表面裂縫特點,筆者采取以下方法來消除影響裂縫形態(tài)和參數(shù)識別的殘余噪聲:
1)用標(biāo)記連通域的方法對裂縫對象進行逐個標(biāo)記,得到3個參數(shù):疑似裂縫的面積S、最小外接橢圓長短軸比β、裂縫區(qū)域與最小外接矩形區(qū)域的灰度平均值之差δ。由于裂縫為細長狀,裂縫區(qū)域與非裂縫區(qū)域的3個參數(shù)相差顯著,因而可通過設(shè)定這3個參數(shù)的限值將孤立點或孤立塊等噪聲消除。
2)通過對混凝土結(jié)構(gòu)表面裂縫的統(tǒng)計分析,裂縫連通區(qū)域的最小外接橢圓的長短軸比值β基本上均大于6.5;裂縫區(qū)域的灰度平均值與最小外接矩形區(qū)域的灰度平均值之差δ> 25的情況占90%。因此,若疑似裂縫連通區(qū)域的最小外接橢圓的長短軸比值β< 6.5,或者疑似裂縫區(qū)域的灰度平均值與最小外接矩形區(qū)域的灰度平均值之差δ< 25,則可將該裂縫區(qū)域劃分為背景區(qū)。
3)當(dāng)完成上述裂縫判斷后,有時會存在裂縫區(qū)域片段或不連續(xù),則需對裂縫進行片段連接從而得到連續(xù)裂縫。筆者采用張國旗[21]提出的模型進行裂縫片段連接,模擬效果如圖5。
圖5 裂縫判斷結(jié)果及斷點連接效果Fig. 5 Crack judgment and connection effect of breakpoints
2.2.1 像素標(biāo)定
由于圖像要素的幾何特征(如裂縫寬度、長度)是通過像素個數(shù)來度量的,因此須確定單個像素代表的實際長度大小,也就是單個像素尺寸的標(biāo)定。
拍照前,先在擬拍照的混凝土結(jié)構(gòu)表面刻畫已知尺寸的參照標(biāo)記,通過參照標(biāo)記尺寸反推單個像素尺寸大小。設(shè)參照標(biāo)記的實際寬度為s,對參照標(biāo)記圖像進行圖像處理,可得到二值灰度圖像,再求出參照標(biāo)記寬度的像素個數(shù)a,即可得到單個像素代表的實際尺寸s/a。
2.2.2 裂縫面積S
對于二值灰度圖,白像素點代表裂縫區(qū)域,灰度值為1;黑像素點代表背景區(qū)域,灰度值為0。設(shè)白像素點總數(shù)為N,則裂縫的實際面積S=N(s/a)2。
2.2.3 裂縫長度L
假設(shè)裂縫長度為裂縫兩條邊緣線長度的平均值,當(dāng)裂縫兩條邊緣線的像素個數(shù)共計為M,則裂縫長度L=Ms/(2a)。
2.2.4 裂縫寬度D
裂縫寬度D可近似地看成裂縫面積與長度的比值,即D=2Ns/(Ma)。裂縫寬度計算示意如圖6,計算步驟如下:
1)設(shè)裂縫圖像由m行n列個像素組成,首先統(tǒng)計每列包含像素點個數(shù)B(j),同時記錄對應(yīng)的位置坐標(biāo)〔C(k,j),j〕,j=1~n,k=1~B(j)。
3)第j列的裂縫實際寬度為D(j)=B(j)cosθjs/a。
4)裂縫的最大寬度即D(j)中的最大值。
3.1.1 程序總體框架
筆者利用MATLAB開發(fā)了基于數(shù)字圖像的混凝土結(jié)構(gòu)表面裂縫識別程序identification program of crack width(IPCW)。IPCW總框架如圖7。
圖7 IPCW總框架Fig. 7 Overall framework of IPCW
3.1.2 程序功能
IPCW的主要功能是:讀入數(shù)碼相機采集的混凝土結(jié)構(gòu)表面裂縫圖像;對RGB圖像進行灰度化處理以增強對比度;對灰度化圖像進行濾波降噪處理;分割處理為二值灰度圖像;裂縫判斷和斷點連接處理;計算混凝土結(jié)構(gòu)表面裂縫的面積、長度及最大寬度等參數(shù)。上述功能均為模塊化,既可根據(jù)需要獨立運行也可依序運行。
為了檢驗IPCW的可靠性及裂縫參數(shù)識別精度,筆者構(gòu)建了如下算例:
1)用AutoCAD畫出10條不同寬度的實線A,在實線旁繪制1個正方形塊,并將其打印出來。
2)用顯微鏡讀出實線的最大寬度,每條實線讀取10次,取平均值作為實線的實測最大寬度,結(jié)果見表1。
3)將打印出的紙張固定在墻壁上,用固定在三腳架上、分辨率為2 448 × 3 264的數(shù)碼相機進行拍攝獲取RGB彩色照片。
4)運行IPCW,讀入照片,依次進行圖像處理,如圖8。實線A最大寬度的識別結(jié)果見表1,而正方形塊被IPCW當(dāng)成噪聲去除。
圖8 RGB照片及圖像處理Fig. 8 RGB photo and image processing
表1 實線A最大寬度實測值與IPCW計算值Table 1 The measured value of the maximum width of solid line A and the calculated value of IPCW
由表1可以看出,實線A(即裂縫)最大寬度IPCW識別值與實測值的相對誤差基本隨實測值的減小而增大,變化范圍為1.342%~8.333%。原因是隨著裂縫寬度的減小,一方面顯微鏡讀數(shù)誤差會變大,另一方面裂縫寬度方向的像素點偏少,由此引起的誤差也會增大。
在我國西南地區(qū),某混凝土壩工程竣工時,現(xiàn)場檢查發(fā)現(xiàn),在壩體下游表面存在一些較長的水平裂縫和不規(guī)則裂縫,經(jīng)鑿槽細查,確定均為淺表性裂縫。壩體下游表面裂縫寬度D的實測值與IPCW計算值見表2。
表2 裂縫寬度實測值與IPCW計算值Table 2 The measured value of crack width and the calculated value of IPCW
由表2可以看出,裂縫寬度IPCW計算值與實測值的相對誤差總體在11%以內(nèi),精度滿足工程要求,證明IPCW在實際工程大范圍搜索裂縫中具有明顯優(yōu)勢,適用于工程的裂縫初查。
采用數(shù)字圖像處理方法,構(gòu)建了混凝土結(jié)構(gòu)裂縫識別算法;在MATLAB平臺上開發(fā)了裂縫識別程序IPCW并進行了檢驗;通過工程實例驗證了IPCW的可靠性及精度。研究結(jié)果表明:IPCW對大范圍搜索裂縫具有較大優(yōu)勢,可應(yīng)用于土木工程結(jié)構(gòu)的裂縫初查。