滕明星,佘夢坤,何科均
(1. 重慶大學土木工程學院,重慶 400045; 2.重慶南江地質工程勘察設計院,重慶 401121)
一種橋梁裂縫信息提取的改進算法
滕明星1*,佘夢坤1,何科均2
(1. 重慶大學土木工程學院,重慶 400045; 2.重慶南江地質工程勘察設計院,重慶 401121)
采用數字圖像處理技術實現橋梁裂縫信息提取一直是研究熱點,本文對數字圖像處理橋梁裂縫信息提取算法分割和細化兩個方面進行改進,提出了改進的Kittler-Bersen二值化算法,解決了Kittler算法處理光照不均圖像效果不佳和Bersen算法運算速度慢等問題,提出了改進的ZS圖像細化算法,解決了ZS算法處理冗余像素效果不佳的缺陷,并通過實驗對上述算法的有效性進行了檢驗。
橋梁裂縫;信息提取;濾波;二值化;圖像細化
橋梁裂縫嚴重影響著橋梁的運營安全,如何及時有效提取橋梁裂縫信息一直是研究熱點。目前橋梁裂縫信息提取最常用的方法是數字圖像提取法[2],包括BP神經網絡數字圖像提取法[1]、順序相似性探測數字圖像提取法[2]、形態學分水嶺數字圖像提取法[3]等。
數字圖像提取法通常包含圖像灰度化、灰度圖像增強、圖像濾波去噪、灰度圖像分割、二值圖像形態學操作、二值圖像細化、幾何特征計算等步驟。目前,灰度化主要有分量法、平均值法、最大值法和加權平均值法等四種[5];灰度圖像增強主要有灰度拉伸、直方圖均衡化等方法[2];濾波去噪主要有均值濾波、中值濾波等方法[6];圖像分割主要有邊緣檢測(如梯度算子、Canny算子等[2])和閾值分割(如Ostu法[7]、Kittler法[8]等)兩類方法;圖像形態學操作主要有腐蝕、膨脹、閉運算、開運算等方法[2,3,4];圖像細化主要有Hilditch、Zhang-Suen等算法[9];幾何特征計算有像素統計、曲線擬合等方法[4]。但橋梁裂縫圖像存在圖像噪聲大、背景像素與裂縫像素重疊、圖像光線較暗、裂縫與背景像素灰度值相差不大等特點,目前還沒有一種算法能夠實現完全準確可靠提取橋梁的所有裂縫信息,還需進一步研究上述相關算法,找出一種更可靠更有效的算法。
Kittler算法[7]受圖像光照均勻的程度和梯度豐富程度影響較大,而Bersen算法[8]運算速度較慢,針對此問題,本文將兩種算法組合,對灰度值位于[T-a,T+a]區間(T為全局閾值,a為區間寬度參數)的像素進行Bersen局部二值化處理,而對其他像素進行Kittler全局二值化處理,其具體步驟如下:
①獲取圖像的高度h和寬度w,初始化圖像坐標參數(i1,j1)=(0,0);
②設置區間寬度a(a∈[10,30],a越大,處理效果越好,而計算速度越慢,本文取中間值a=20);
③計算梯度最大值累計和SGm、梯度最大值與目標像素灰度值的乘積累計和SGmg
(1)

(2)
式中,Gx=g(i1-1,j1)-g(i1+1,j1),Gy=g(i1,j1-1)-g(i1,j1+1),g(i1,j1)表示像素(i1,j1)的灰度值。

⑤若i1>h,轉;
⑥若j1>w,則i1=i1+1,j1=0,轉⑤;
⑦若g(i1,j1)>T+a,則g(i1,j1)=255,j1=j1+1,轉⑥;
⑧若g(i1,j1) ⑨設置模板(2n+1)×(2n+1)的大小(通常n∈{5,…,9}),以(i,j)為中心,取出內核模板內的所有像素灰度值,記為集合{g0(k)},其中,k為灰度值g0(k)在集合中的位置,k=0,…,(2n+1)2-1; ⑩計算模板內灰度最大值gmax=max{g0(k)}和灰度最小值gmin=min{g0(k)}; 其算法流程圖如圖1所示。 圖1 Kittle-Bersen算法流程圖 Zhang-Suen算法[9]無法消除斜線方向的冗余像素,EPTA[10]算法雖能消除了左下角和右下角兩方向的冗余像素,但無法完全消除左上角和右上角兩方向的冗余像素,且會造成圖像斷裂,針對此問題,本文增加2個新的斜線冗余像素消除條件,并引入文獻[11]中的4個斜線保留條件對ZS算法進行改進,其算法流程是先采用ZS算法對整幅圖像進行細化,再通過上述消除和保留條件對斜線冗余像素進行處理,具體步驟如下: ①獲取二值圖像的高度h和寬度w,初始化圖像坐標值(i,j)=(0,0),設置從操作標志IsModified=true; ②若IsModified=true,則IsModified=false,否則i=j=0,轉; ③若i>h,則轉; ④若j>w,則i=i+1,j=0,轉③; ⑤取出(i,j)處的像素灰度值為g(i,j),若該點為非白點(g(i,j)≠255),轉,否則更新8鄰域灰度值數組nb,即nb[0]=g(i,j+1),nb[1]=g(i-1,j+1),nb[2]=g(i-1,j),nb[3]=g(i-1,j-1),nb[4]=g(i,j-1),nb[5]=g(i+1,j-1),nb[6]=g(i+1,j),nb[7]=g(i+1,j+1); ⑥計算nb的二值化數組 ⑨若nnb[0]×nnb[2]×nnb[6]=0(表示0,2,6處至少有一個黑點),且nnb[0]×nnb[4]×nnb[6]〗=0(表示0,4,6處至少有一個黑點),則轉; ⑩若nnb[0]×nnb[4]×nnb[6]=0(表示0,4,6處至少有一個黑點),且nnb[2]×nnb[4]×nnb[6]〗=0(表示2,4,6處至少有一個黑點),則繼續,否則轉; 其算法流程圖如圖2所示。 圖2 改進ZS算法流程圖 橋梁裂縫信息提取改進算法采用平均加權法進行灰度化,采用灰度拉伸和直方圖均衡化進行圖像增強,采用基于高斯加權的中值濾波算法進行濾波去噪,采用Kittler-Bersen法進行二值化,采用先閉運算再開運算進行形態學操作,采用改進的ZS算法進行圖像細化,采用像素統計的方法計算長度和面積,在計算其平均寬度,其流程圖如圖3所示。 圖3 改進的橋梁裂縫信息提取算法流程圖 為了驗證本文系統各項功能的有效性,本文選用兩張橋梁裂縫真實圖像(如圖4所示),并進行如下處理: 圖4 原始圖像 (1)對原始圖像進行灰度化、圖像增強處理后,采用基于高斯加權的中值濾波算法進行濾波去噪; (2)分別采用Ostu、Kittler、Niblack、改進Kittler-Bersen算法(Bersen算法處理區間寬度a=20,局部閾值窗口大小為5×5)對上述處理后的濾波圖像進行二值化圖像分割,其結果如圖5、圖6所示,各種算法運算時間如表1所示; (3)采用圖像形態學操作對圖5(a)和圖6(a)的二值圖像進行處理,采用像素統計方法計算處理后的圖像中的裂縫面積; 圖5 縱向裂縫二值化處理結果 圖6 橫向裂縫二值化圖像 不同分割算法運算時間比較 表1 (4)分別采用Hilditch算法、Zhang-Suen算法、改進的ZS算法對上述處理后的圖像進行圖像細化處理,其結果如圖7、圖8所示,各種算法細化后的像素數目如表2所示;采用像素統計方法計算圖7(c)和圖8(c)的圖像中的裂縫長度,再由面積與長度的比值計算平均寬度,計算結果如表3所示。 圖7 縱向裂縫圖像細化結果 圖8 橫向裂縫圖像細化結果 不同細化結果裂縫像素點數目統計 表2 裂縫幾何特征信息計算結果 表3 由上述圖表可以看出: (1)在分割方面,由圖5、圖6可看出Ostu二值化算法處理效果最好且運算速度最快。Ostu算法是一種通過統計整個圖像直方圖特性實現閾值自動選取的全局閾值分割算法,由表1可看出其運算速度快,合適本文實驗圖像中的裂縫提取。Niblack算法是一種局部閾值分割算法,適用于細節豐富的裂縫圖像,處理后能保留較多的圖像細節,但運算速度極慢(見表1),但由于本文的兩幅實驗圖像內裂縫像素較集中,圖像細節信息較少,故使用該算法處理后產生了較多的噪聲點(如圖5(c)、圖6(c)所示)。Kittler算法是一種基于圖像像素水平方向和垂直方向的最大梯度累積的全局閾值分割算法,適用于梯度變化較大的裂縫圖像,本文實驗圖像梯度變化較小,故使用該算法處理效果欠佳(如圖5(b)、圖6(b)所示)。而本文提出的Kittler--Bersen二值化算法是一種結合全局閾值和局部閾值的分割方法,由圖5(d)、圖6(d)可看出其處理效果要優于原始的Kittler算法,對適用Kittler算法的所有裂縫圖像都適用且處理效果更優,同時該算法也適用于光照不均的裂縫圖像處理,但由于加入了局部閾值方法導致其運算速度較Kittler算法稍慢(如表1所示)。由于裂縫圖像形式多樣,故本文系統設置可根據不同圖像選擇最合適的圖像分割方法。 (2)在細化方面,Hilditch算法處理結果中含有部分分叉點(圖7(a)、圖8(a)中橢圓標記部分),Zhang-Suen算法和改進的ZS算法處理結果中未含有明顯的分叉點,但僅通過圖7(b)(c)、圖8(b)(c)的結果圖像來看Zhang-Suen算法和改進的ZS算法區別不大,但從表1中統計的各種算法處理后的裂縫像素點數可以直觀地看出改進的ZS算法可以獲得更細的單像素裂縫圖像,這是斜線冗余像素消除的結果,因此計算該算法處理后的圖像中的裂縫長度值更接近裂縫長度的真值。 (3)改進的橋梁裂縫信息提取算法提取兩幅圖像中裂縫寬度分別為 11.930 13 mm、15.138 85 mm,與實際量測的平均寬度(10.4 mm、14.3 mm)相比,其絕對誤差分別為 1.530 13 mm、0.838 85 mm,相對誤差分別為14.7%、5.9%,滿足精度要求[5],改進算法可靠。 橋梁是一個地區經濟發展的樞紐,而裂縫是危害橋梁健康最嚴重的因素,因此及時有效的獲取裂縫信息對保障橋梁健康狀態具有重要的現實意義。本文對裂縫提取過程中的部分算法進行了改進,并通過實驗驗證了本文系統算法的可行性。但并未涉及橋梁裂縫檢測方法的研究,如何實時有效地檢測出橋梁裂縫比裂縫信息提取具有更重要的現實意義,此外,本文系統還存在很多不足如不能自動以及批量處理圖像,這些都是下一步需要研究的問題。 [1] 曾燕華. 基于計算機視覺的橋梁表面缺陷檢測技術研究[D]. 廣州:廣東工業大學,2005. [2] 李強強. 基于圖像處理技術的橋梁裂縫檢測算法研究[D]. 洛陽:河南科技大學,2014. [3] 李強強,黎蔚. 一種改進的橋梁圖像分水嶺分割算法[J]. 計算機工程與科學,2015,37(3):605~610. [4] 黃衛嶺. 基于圖像處理技術的橋梁裂縫測量系統研究[D]. 北京:北京交通大學,2012. [5] 宋平麗. 基于視頻圖像的橋梁裂縫檢測[D]. 武漢:武漢理工大學,2010. [6] 李旭,趙文杰,楊凱達. 一種改進的中值濾波算法[J]. 中國體視學與圖像分析,2013(1):7~11. [7] 楊碩,尚振宏. 一種新的二維條碼圖像二值化算法[J]. 昆明理工大學學報·自然科學版,2008,33(1):43~46. [8] 張明,夏銘. 一種改進的文本圖像二值化算法[J]. 科技信息,2009(27):555~556. [9] 望建國. 圖像預處理的若干問題研究[D]. 南京:南京理工大學,2012. [10] 包建軍,樊菁. 魯棒的二值圖像并行細化算法[J]. 計算機輔助工程,2006,15(4):43~46. [11] 陳梅,王健. 圖像并行細化算法改進研究[J]. 中國印刷與包裝研究,2014,6(1):30~34. AnImprovedAlgorithmforBridgeCrackInformationExtraction Teng Mingxing1,She Mengkum1,He Kejun2 It has always been a hot research topic that using digital image processing technology to realize the bridge crack information extraction. This paper improves the segmentation and refinement of bridge crack information extraction algorithm by digital image processing technology. A Kittler-Bersen binarization algorithm is proposedto solve the poor processing result of image which is uneven illumination of Kittler algorithm and the slow speed of image processing of Bersen algorithm,and an improved ZS image refinement algorithm to solve the defect that the poor result of processing the redundant pixels by ZS algorithm.Then the effectiveness of the above algorithms have been tested by experiments. bridge crack;information extraction;filter;binarization;image refinement 1672-8262(2017)06-79-05 P234 A 2017—08—18 滕明星(1994—),男,碩士研究生,主要從事誤差理論及激光點云數據處理研究。 重慶市自然科學基金社會事業與民生保障科技創新專項(cstc2016shmszx0299)
2.2 改進的ZS細化算法

2.3 改進的橋梁裂縫信息提取算法

3 實驗分析








4 結 語
(1.School of Civil Engineering,Chongqing University,Chongqing 400045,China;2.Chongqing Nanjiang Geological Engineering Survey and Design Institute,Chongqing 401121,China)