倪彤元, 周若虛, 楊 楊, 楊學(xué)成, 張武毅, 林楚軒
(1. 浙江工業(yè)大學(xué)土木工程學(xué)院,浙江杭州310023;2. 浙江省工程結(jié)構(gòu)與防災(zāi)減災(zāi)技術(shù)研究重點實驗室, 浙江杭州310023;3.臺州元合建設(shè)發(fā)展有限公司,浙江臺州318000;4. 浙江交科工程檢測有限公司,浙江杭州311215)
裂縫是影響高強混凝土耐久性的重要因素之一,裂縫發(fā)展?fàn)顟B(tài)是反映高強混凝土結(jié)構(gòu)服役階段健康狀態(tài)的重要指標(biāo)[1]。檢測和評價混凝土表面裂縫的寬度、面積、長度、深度等特征值成為評價混凝土結(jié)構(gòu)健康狀態(tài)的重要手段。傳統(tǒng)的混凝土表面裂縫檢測方法主要是以人工檢測為主,如使用塞尺、裂縫測寬儀來檢測裂縫寬度,不僅檢測效率低下、檢測結(jié)果主觀性強,而且在許多場合下檢測危險性較高,存在安全隱患[2]。隨著計算機數(shù)字圖像處理技術(shù)的發(fā)展,數(shù)字圖像處理法檢測混凝土表面裂縫因其精確、高效和非接觸式、無損的檢測特點逐漸成為國內(nèi)外學(xué)者的研究和應(yīng)用的熱點[3~10]。但由于受測量原理限制,二維圖像無法實現(xiàn)裂縫深度檢測。
目前,市場流行的智能手機各項性能指標(biāo)已經(jīng)發(fā)展到可以與筆記本電腦、數(shù)碼照相機相媲美的水平[10~12]。在文獻[13,14]的研究中將混凝土表面裂縫的數(shù)字圖像處理技術(shù)應(yīng)用于Android手機平臺,并提出了一種基于智能手機APP的混凝土裂縫特征值檢測計量方法;即通過對Android手機機型攝像頭的參數(shù)標(biāo)定,可以確定各機型在不同拍攝距離、不同變焦鏡頭下拍攝圖像的單顆像素點尺寸。本文基于Android手機APP以實現(xiàn)對智能手機相機或其他方式獲取的裂縫圖像進行圖像灰度化、濾波去噪算法等圖像處理過程,從而得到裂縫邊緣信息清晰的圖像,并根據(jù)像素點坐標(biāo)間的幾何關(guān)系計算得到除裂縫深度外的長度、寬度、面積等特征值,實現(xiàn)對混凝土表面裂縫特征的非接觸無損檢測計量。Android手機APP流程圖如圖1所示。
圖1 裂縫檢測算法研究流程圖Fig.1 Flow chart of crack detection algorithm
2.1.1 圖像灰度化
彩色數(shù)字圖像中的每個像素都被RGB顏色模型分為紅、綠、藍3個通道,每個通道的分量值可在0~255范圍確定,因此彩色數(shù)字圖像中任意一個像素點有接近1 600多萬種顏色變化范圍。而灰度圖像作為一種特殊的彩色圖像,使其中每個像素點在R、G、B這3個通道中的分量值相等,這樣任一像素點的顏色變化范圍為256種。圖像的灰度化處理是將彩色圖像轉(zhuǎn)化為灰度圖像的過程?;叶然梢允沽芽p圖像在保留整體色度、亮度等級的分布與特征的基礎(chǔ)上減少后續(xù)圖像的計算量。
數(shù)字圖像處理中使用較多的灰度化方法為加權(quán)平均值法,即根據(jù)三通道的重要性賦予R、G、B不同的權(quán)值并加權(quán)平均。研究表明:人眼對綠色(G)的敏感度最高,對紅色(R)次之,對藍色(B)的敏感度最低。采用式(1)[14]對三通道分量值進行加權(quán)平均可得到較合理的灰度圖像:
f(x,y)=
0.30R(x,y)+0.59G(x,y)+0.11B(x,y)
(1)
式中:R(x,y),G(x,y),B(x,y)分別為坐標(biāo)(x,y)處像素點R、G、B這3個通道的分量值。
圖2所示為APP圖像灰度化處理前后的裂縫圖像效果對比。
2.1.2 圖像濾波去噪
手機相機采集裂縫圖像的過程中,會受許多類型圖像噪聲污染。這些噪聲信號影響裂縫圖像成像質(zhì)量,并干擾目標(biāo)裂縫的提取分析,影響裂縫特征的識別與測量計算。圖像降噪就是在盡可能保留圖像裂縫區(qū)域細節(jié)特征的情況下抑制、減少甚至消除噪聲。降噪處理效果可直接提高目標(biāo)裂縫特征提取的可靠性。
中值濾波是一種基于排序統(tǒng)計理論的非線性濾波技術(shù)[15],該技術(shù)原理是用一個包含有奇數(shù)個像素點的滑動窗口對像素點進行處理,用該像素點鄰域窗口中各點的中間值代替該像素點的灰度值,從而消除孤立的噪聲點。常見的濾波窗口為3×3、5×5區(qū)域。中值濾波的處理效果很大程度上取決于濾波窗口尺寸的選擇。
濾波窗口尺寸較小時,可以保護圖像中的某些細節(jié),但去噪效果不好;濾波窗口尺寸較大時有良好的噪音過濾效果,但會對圖像邊界造成模糊。因此,本文采用一種自適應(yīng)尺寸的中值濾波算法。算法步驟如下:
(1) 選擇一個3×3的初始濾波窗口Sxy,這個濾波窗口會在濾波過程中自適應(yīng)地改變。
(2) 如果Zmed-Zmin>0且Zmed-Zmax<0,跳轉(zhuǎn)到步驟(3);否則,增大Sxy的尺寸,重復(fù)步驟(2)。
(3) 如果Zxy-Zmin>0且Zxy-Zmax<0,則輸出Zxy;否則輸出Zmed。
(4) 將輸出結(jié)果賦予濾波窗口中心位置(x,y)處的像素灰度值。
(5) 遍歷裂縫圖像中的像素點。
其中:Zmin表示Sxy中的最小灰度值;Zmax表示Sxy中的最大灰度值;Zmed表示Sxy中的灰度值的中值;Zxy表示濾波窗口中心位置(x,y)處的灰度值。
當(dāng)噪聲出現(xiàn)的概率較低時,自適應(yīng)尺寸的中值濾波算法能夠較快得出結(jié)果,反之若噪聲出現(xiàn)概率較高時,需要增大濾波器窗口的尺寸。采用自適應(yīng)尺寸的中值濾波算法對裂縫圖像進行去噪的效果見圖3。
圖3 裂縫圖像去噪效果對比Fig.3 Comparison of denoising effect
從圖3中可以看出利用均值濾波進行裂縫圖像去噪時,在一定程度上模糊了裂縫目標(biāo)的邊緣,對后續(xù)裂縫特征值計算帶來了影響,見圖3(b),而采用自適應(yīng)中值濾波算法能夠在達到良好去噪效果的同時保護裂縫目標(biāo)的邊界,見圖3(c)。
泛洪填充是一種模擬流體擴散過程的算法,該算法被廣泛應(yīng)用在多維空間中確定連通區(qū)域的圖像處理中。其基本原理是從一個選定的種子點出發(fā),根據(jù)種子點與周圍像素點灰度值的差值判斷周圍目標(biāo)像素點是否與種子點灰度相似,以確定目標(biāo)點是否屬于可填充區(qū)域。滿足判斷,則對該點進行填充,并將該目標(biāo)點作為新的種子點進行下一輪填充過程。泛洪填充有四連通和八連通兩種算法,如圖4所示。
圖4 四連通和八連通泛洪填充算法Fig.4 Four-way and eight-way flood fill algorithm
四連通算法是指從種子點出發(fā),對上、下、左、右四個填充方向上的相鄰像素點進行判斷,以確定是否對該填充方向進行擴展,見圖4(a)。八連通算法則加入了左上、左下、右上、右下四個填充方向,見圖4(b);圖4(c)和圖4(d)分別為四連通和八連通填充區(qū)域。較之四連通算法,雖然后者計算量較大、耗時較長,但對復(fù)雜區(qū)域的填充效果較好,見圖4(d),在裂縫圖像中識別復(fù)雜裂縫區(qū)域的“魯棒性”強,因此本文選用八連通算法進行裂縫目標(biāo)提取。
在混凝土裂縫圖像中,由于裂縫目標(biāo)與背景區(qū)域在邊緣處的像素點灰度值存在突變,可以利用泛洪填充算法找到裂縫中的某一像素點作為種子點,實現(xiàn)較好地提取出裂縫目標(biāo)。本文將利用泛洪填充算法進行裂縫目標(biāo)提取的效果與文獻[16~21]中的其他目標(biāo)提取算法處理效果進行對比,結(jié)果如圖5所示。
泛洪填充算法的遞歸函數(shù)F(x,y)如式(2)所示。
(2)
式中:f1(x,y)表示(x,y)處的像素點被認為位于裂縫區(qū)域內(nèi),將該點灰度值填充為0;f2(x,y)表示(x,y)處的像素點被認為位于背景區(qū)域內(nèi),將該點灰度值填充為255;I(x,y)表示填充條件,通過比較當(dāng)前像素點與其鄰域內(nèi)種子像素點的灰度值之差來判斷是否填充當(dāng)前像素點;ξ1表示當(dāng)前像素點與其鄰域內(nèi)種子像素點的灰度值之負差的最大值;ξ2表示當(dāng)前像素點與其鄰域內(nèi)種子像素點的灰度值之正差的最大值。
從圖5可以看出:Canny算子、Roberts算子、Prewitt算子對裂縫的邊緣提取效果并不明顯;Sobel算子在裂縫邊緣檢測的同時,無法有效濾除背景區(qū)域中的噪音;Laplacian算子作為二階邊緣檢測算子,對噪音極為敏感,較難適用于復(fù)雜背景的裂縫提??;OTSU閾值分割算法作為一種自動確定閾值的全局二值化算法,處理裂縫目標(biāo)與背景區(qū)域大小比例懸殊的裂縫圖像的效果并不理想。
本文采用的泛洪填充算法對裂縫的提取效果較好,具有較強的魯棒性。
圖5 幾種算法對裂縫目標(biāo)提取效果對比Fig.5 Comparison of crack target extraction effect using several algorithms
經(jīng)圖像預(yù)處理及裂縫目標(biāo)提取后,裂縫圖像和背景區(qū)域得到明顯區(qū)分。因此可以通過圖像像素點坐標(biāo)計算得到裂縫特征值所包含的像素點個數(shù),再根據(jù)經(jīng)過標(biāo)定的單個像素點的實際尺寸η求得裂縫特征值,見文獻[13~14]。
2.3.1 裂縫寬度計算
如圖6所示,經(jīng)圖像處理后的裂縫圖像可視為一個m×n的離散像素點矩陣,任意一個像素點i的坐標(biāo)可以表示為(xi,yi)。從左至右逐列遍歷裂縫圖像,對每一列上的像素點從上至下遍歷,令灰度值由255變?yōu)?的像素點為裂縫上邊緣像素點,灰度值由0變?yōu)?55的像素點為裂縫下邊緣像素點,可以得到裂縫上、下邊緣的像素點表達式,分別記為T(x)、G(x)。則裂縫中心骨架F(x)可表示為
(3)
對中心骨架上的任意一點x0,均可求出其法線方向函數(shù)U(x)與T(x)、G(x)的交點,其法線與裂縫上邊緣的交點坐標(biāo)為(x1,y1),與裂縫下邊緣的交點坐標(biāo)為(x2,y2),則該點處裂縫寬度的像素W可表示為
(4)
則裂縫的最大寬度Wmax可如下表示:
Wmax=η×MAX(W)
(5)
圖6 裂縫曲線示意圖Fig.6 Schematic of crack curve
2.3.2 裂縫長度計算
(6)
裂縫骨架長度I可表示為
(7)
圖7 裂縫長度計算圖Fig.7 Calculation of crack length
2.3.3 裂縫面積計算
裂縫面積可通過計算裂縫圖像區(qū)域內(nèi)上邊緣線與下邊緣線間包含的像素點個數(shù)求得,即裂縫面積S可表示為
(8)
混凝土表面裂縫檢測軟件框架如圖8所示。根據(jù)手機攝像頭模組標(biāo)定實驗[13]可知不同CMOS (complementary metal oxide semiconductor)機型具有不同的單位像素點尺寸;且在同一放大倍數(shù)的變焦鏡頭下拍攝圖像時,圖像中單位像素點的尺寸與拍攝距離成正比關(guān)系。因此在使用一款新機型進行裂縫檢測時,需進行攝像頭模組標(biāo)定實驗來確定該機型的相機標(biāo)定參數(shù),從而在已知攝像頭放大倍數(shù)、拍攝距離的情況下將裂縫所包含的像素點信息轉(zhuǎn)化為裂縫實際尺寸。
圖8 裂縫檢測軟件開發(fā)的APP框架Fig.8 Development framework of crack detection APP
裂縫檢測APP的操作流程如圖9所示。通過手機CMOS相機鏡頭成像系統(tǒng)采集混凝土表面裂縫區(qū)域圖像,利用數(shù)字圖像處理技術(shù)對裂縫圖像進行灰度化、濾波去噪、裂縫目標(biāo)提取等技術(shù)處理,提取出圖像中的裂縫信息,輸入裂縫圖像的拍攝距離、攝像頭放大倍數(shù)后經(jīng)檢測計算后得到裂縫的長度、寬度及面積,并將裂縫圖像檢測結(jié)果進行存儲,以便后期分析。裂縫檢測APP主界面如圖10所示。圖像選擇界面見圖10(a),檢測計算界面見圖10(b)。
圖9 裂縫檢測APP操作流程圖Fig.9 Flow chart of crack detection APP operation
圖10 裂縫檢測APP主界面Fig.10 Interface of crack detection APP
本文中的實驗使用的手機機型為華為Mate 20 pro, 其參數(shù)如表1所示。經(jīng)標(biāo)定實驗[13]測得華為Mate 20 pro的單位像素點尺寸與攝像頭放大倍數(shù)的關(guān)系如表2所示。
為了驗證APP圖像法檢測裂縫特征值的可行性,本文選擇了一條位于復(fù)雜混凝土背景中的裂縫。經(jīng)華為Mate 20 pro手機App采集圖像、檢測計算后,測得該裂縫的長度為129.971 mm,裂縫面積為77.631 mm2,裂縫最大寬度為1.727 mm。圖11所示為APP測量結(jié)果實時顯示界面,其中圖中黑色箭頭所指為裂縫最大寬度位置。
表1 華為Mate 20 pro手機主要性能指標(biāo)參數(shù)Tab.1 Parameters of Huawei Mate 20 pro
表2 華為Mate 20 pro單位像素點尺寸特征Tab.2 Characteristics of Huawei Mate 20 pro pixel size mm/m
圖11 裂縫檢測APP測量結(jié)果Fig.11 Measurement result of crack detection APP
本文設(shè)計的裂縫檢測APP不僅能夠測量裂縫的長度、面積、最大寬度,還可通過圖11中的“點擊獲取光標(biāo)”按鈕拖動光標(biāo)測量裂縫中任意位置的裂縫寬度。裂縫側(cè)寬儀是目前工程中測量混凝土裂縫寬度的常用標(biāo)準儀器。
為了驗證該APP對裂縫寬度的檢測精度,利用高精度裂縫測寬儀(型號:HC-CK102,精度0.01 mm)對裂縫標(biāo)記位置的寬度進行測量,得到標(biāo)記位置裂縫寬度作為標(biāo)準值,并將APP測量結(jié)果與之對比。為分析裂縫側(cè)寬儀與APP兩種方法在測量時由于位置偏差帶來的實驗誤差,即裂縫原位誤差,研究時選擇了寬度值由0.60 mm至1.00 mm不等的4處測量位置并做標(biāo)記,以減少原位誤差,如圖12所示。
圖12 裂縫寬度測量位置Fig.12 Measurement position of crack width
單個像素點尺寸的增大會導(dǎo)致測量誤差的增加??紤]工程應(yīng)用,本文主要討論單個像素點尺寸小于0.1 mm時變焦倍數(shù)、拍攝距離對測量誤差的影響,將變焦倍數(shù)分成1~5倍和6~10倍兩組。由表2可知5倍和10倍的單位像素點尺寸分別為0.0715 mm/m和0.0358 mm/m。
考慮檢測時的工作距離,通過激光測距儀測定手機與裂縫間之間距離,并以每0.2 m為距離步長區(qū)間,將兩組實驗組的拍攝距離控制在0~1.5 m和1.5~2.5 m。每組用不同的相機變焦倍數(shù)采集裂縫圖像。裂縫檢測APP對智能手機采集到的80張裂縫圖像中的4處裂縫寬度共進行320次寬度測量,平均誤差為6.322%,滿足實際工程檢測的精度要求。其中,對裂縫位置③的誤差分析結(jié)果如圖13所示。
圖13 APP寬度檢測誤差分析結(jié)果Fig.13 Error analysis results of APP width detection
圖13(a)為實驗機型在0 m~1.5 m的拍攝距離內(nèi)利用1~5倍變焦鏡頭采集裂縫圖像測量位置③處的裂縫寬度的40次測量結(jié)果??梢钥闯?測量誤差在±10%以內(nèi)的保證率為90%,其中使用1倍變焦鏡頭的測量結(jié)果波動較大,在拍攝距離大于 1 m 后,測量誤差超過了10%;但隨著變焦鏡頭倍數(shù)的提高,測量誤差逐漸下降, 1~5倍變焦鏡頭在 0 m~1.5 m范圍內(nèi)的平均測量誤差分別為14.884%、7.563%、4.686%、3.978%、3.916%,其中3~5倍變焦鏡頭測量誤差在5%以內(nèi)的保證率達到了70.8%。
圖13(b)為實驗機型在1 m~2.5 m的拍攝距離內(nèi)利用6~10倍變焦鏡頭采集裂縫圖像測量位置③處的裂縫寬度的40次測量結(jié)果??梢钥闯?測量誤差在±10%以內(nèi)的保證率可達97.5%,其中6~10倍變焦鏡頭的平均測量誤差分別為5.23%、4.868%、4.704%、3.569%、2.566%,可滿足實際工程應(yīng)用的精度需求。上述實驗結(jié)果表明:利用智能手機光學(xué)變焦,放大目標(biāo)裂縫可以有效提高APP計量檢測混凝土表面裂縫精度;與裂縫測寬儀比較,APP計量檢測精度誤差小于5%,滿足工程應(yīng)用要求。
(1) 基于智能手機APP的混凝土表面裂縫檢測方法,是通過加權(quán)平均值灰度化、改進中值濾波算法、泛洪填充算法將裂縫目標(biāo)從背景區(qū)域中提取出來,且裂縫提取效果好,具有較強的魯棒性。根據(jù)裂縫目標(biāo)像素點坐標(biāo)計算得到裂縫所包含的像素點個數(shù),結(jié)合拍攝手機機型的單位像素點尺寸特征實現(xiàn)裂縫特征值的計量檢測。
(2) 新開發(fā)的APP裂縫檢測技術(shù)能計量檢測裂縫(任意點寬度、裂縫總長度、裂縫面積、裂縫最大寬度),是一種高效的混凝土表面裂縫非接觸無損計量檢測技術(shù)。
(3) 研究結(jié)果表明:利用智能手機光學(xué)變焦,放大目標(biāo)裂縫可以有效提高APP計量檢測混凝土表面裂縫精度;與裂縫測寬儀比較,APP計量檢測精度誤差可以小于5%,滿足工程應(yīng)用要求。