張來勝,李亞萍
(1.鄭州市人力資源和社會保障數(shù)據(jù)管理中心,河南鄭州 450052;2.華北水利水電大學物理與電子學院,河南 鄭州 450046)
大壩作為國民經(jīng)濟的重要基礎設施,在防災減災、緩解水資源供需矛盾等方面具有重要作用。由于大壩長期受水壓、溫度等因素影響,堤壩工程可能會出現(xiàn)不同程度的裂縫、滲透、磨損、侵蝕、氣蝕等問題。其中,裂縫是最常見的堤壩安全問題,不僅存在于堤壩表面,甚至能夠延伸到堤壩內(nèi)部[1]。因此,定期對堤壩表面狀況進行檢測評估,及時、精確地檢測水下堤壩表面的裂縫情況,對保持堤壩混凝土結(jié)構(gòu)穩(wěn)定、延長大壩使用壽命至關重要。
目前,分析堤壩表面問題的主流方法是通過光學相機在水下拍攝的堤壩表面圖像,自動識別堤壩表面裂縫。相較于傳統(tǒng)的視覺檢測方法,自動裂縫檢測算法更安全,人工成本更低、實時性更強,檢測結(jié)果也更客觀[2-4]。隨著數(shù)字圖像處理技術和計算機視覺的發(fā)展,裂縫檢測算法得到了發(fā)展[5-8],并已成功應用于橋梁道路裂縫檢測領域[9]。但水下圖像與陸上圖像存在較大區(qū)別,光在水中傳播時會出現(xiàn)嚴重的衰減現(xiàn)象和散射效應,水中的懸浮物及水游動植物也會對水下成像系統(tǒng)造成干擾,使圖像具有低照度、低對比度、模糊、亮度不均勻等特性,大幅度增加了水下堤壩裂縫信息識別的困難程度[10]。
為此,國內(nèi)外科研人員提出了多種算法以提高檢測水下堤壩表面裂縫的準確性。付軍等[11]提出了基于BP 神經(jīng)網(wǎng)絡的堤壩裂縫檢測算法,通過分析二維圖像的亮度值,映射得到三維立體表面圖像。Cong 等[12]提出了基于多結(jié)構(gòu)和多規(guī)模元素的自適應水下堤壩圖像裂縫檢測算法。張大偉等[13]提出了基于最大熵理論改進的Canny 算法,通過自適應Canny 算子提高邊緣檢測的準確性,但當水下堤壩裂縫圖像背景十分模糊或圖像中的裂縫特征較小時,大部分檢測算法將無法有效、準確地提取出水下堤壩裂縫圖像中的裂縫特征信息。
由于水下環(huán)境的復雜性,圖像采集易受到水下光學特性的影響,堤壩裂縫圖像低照度的情況,且壩體上存在的泥沙附著物,也會導致圖像具有嚴重的背景噪聲。針對以上問題,本文根據(jù)堤壩細狀線性裂縫和寬裂縫兩種情況的特點,分別采用不同的裂縫分割和提取方法:前者通過結(jié)合Prewitt算子邊緣檢測的閾值分割算法[14],分割水下圖像存在的細小裂縫,并結(jié)合形態(tài)學處理消除分割后的水下堤壩裂縫二值圖像的噪聲;后者采用自適應閾值分割方法結(jié)合Gamma 校正[15]進行多次處理得到水下堤壩裂縫圖像的最佳分割閾值,并結(jié)合形態(tài)學方法[16]對裂縫二值圖像進行連通域提取和空洞填充,得到完整的裂縫二值圖像。最后,根據(jù)像機的分辨率估算圖像中每個像素點所對應實際長度,進而得到堤壩裂縫的特征參數(shù)值。
由于水下圖像的堤壩裂縫區(qū)域多為弱目標,且存在大量的泥沙背景,傳統(tǒng)方法提取效果較差,尤其在面對細線狀裂縫的邊緣時,檢測效果最差。因此,根據(jù)細狀線性裂縫和寬裂縫兩種情況,采用不同的裂縫分割和提取方法。
該區(qū)域具有亮度較低、背景灰度差別較小、背景噪聲大且所占像素較少等特點。為此,采用對背景噪聲有抑制作用的Prewitt 邊緣檢測算子進行邊緣提取,利用膨脹和最大周長操作確定裂縫區(qū)域,分割方法如圖1所示。
Fig.1 Flow chart of segmentation method for fine linear cracks圖1 細狀線性裂縫的分割方法流程圖
通過Prewitt 邊緣檢測算子使用一階微分求取邊緣,對噪聲具有一定的抑制作用,既能夠得到的水下堤壩裂縫二值圖像P,又突出了目標裂縫的邊緣信息。但由于水下圖像會受到泥沙、水下生物等干擾,會導致連通域出現(xiàn)誤判。因此,為了準確提取大壩的裂縫區(qū)域,采用形態(tài)學處理方法對二值化的水下堤壩的裂縫圖像進行確認,提取的細性線狀裂縫結(jié)果如圖2所示。
Fig.2 Segmentation results of fine linear cracks圖2 細狀線性裂縫分割結(jié)果
首先,采用膨脹操作處理水下裂縫圖像,得到二值圖像P1。然后,進行最大周長選擇操作,以S0為周長閾值,消除周長小于S0的小面積區(qū)域,獲得裂縫邊緣區(qū)域Cr0。但由于在圖像拍攝過程中,可能會出現(xiàn)曝光導致的亮斑,它會對裂縫邊緣提取造成的干擾較大。為此,在處理過程中需要對裂縫邊緣Cr進行亮斑限制調(diào)節(jié),根據(jù)增強后的圖像R設置灰度閾值Tx0,提高裂縫邊緣提取準確性。最后,對裂縫連通域進行空洞填充操作,得到水下堤壩裂縫提取圖像Cr。
在實際情況中,水下堤壩出現(xiàn)寬大的線狀裂縫情況較多??紤]到堤壩水下裂縫區(qū)域存在泥沙附著、裂縫和背景區(qū)域差別不大等特點,首先采用自適應最大類間方差閾值分割方法(Otsu)[17]計算圖像的分割閾值,按照灰度特性將水下堤壩裂縫圖像分為背景區(qū)域干擾部分和目標裂縫部分[18]。為了提高裂縫提取的準確性,采用Gamma 校正對降低增強圖像R的亮度,得到圖像K。
接下來,采用Otsu 方法對圖像R和圖像K進行處理,得到閾值T及T1。但實驗表明,直接采用閾值T對圖像R進行二值化處理得到的結(jié)果并不理想,背景區(qū)域存在大量噪聲。因此,為了盡可能降低背景區(qū)域的干擾,選擇圖像R中灰度值在T1~T間的像素點(其余像素點置0)進行二次Otsu 處理得到閾值T2。對于背景區(qū)域干擾過多、目標裂縫區(qū)域和背景區(qū)域不易區(qū)分的圖像采用多次迭代計算得到閾值Tk,相較于采用閾值T,利用Tk對增強后的水下裂縫圖像進行二值化處理得到的水下裂縫二值圖像效果更好,背景干擾顯著減少。
最后,為保證水下堤壩裂縫的完整性,采用形態(tài)學處理方法去除背景區(qū)域殘留的少部分噪聲,并填充目標裂縫區(qū)域的空洞,得到完整的目標裂縫二值圖像。寬型線性裂縫區(qū)域分割方法如圖3所示。分割效果如圖4所示。
1.3.1 裂縫面積
通過計算二值裂縫圖像中白色區(qū)域裂縫像素點的總數(shù)值可得到水下裂縫連通域的面積。
1.3.2 裂縫長度和最大寬度
運用Steger 算法[19]得到裂縫中心線,以此可估算裂縫長度l和裂縫最大寬度Mw。對于任意一幅二維圖像,其Hessian 矩陣[20]表示為:
式中,兩個特征值分別為圖像二階導數(shù)的極大值和極小值,所對應的兩個特征向量則表示了兩個極值所取的方向,并且兩者方向正交。
裂縫法方向n(x,y)對應Hessian 矩陣的最大絕對特征值的特征向量,設定(nx,ny)表示法方向n(x,y),=1,二圖像灰度函數(shù)在(nx,ny)方向的二階導數(shù)對應于Hessian 矩陣的最大絕對特征值。通過求得Hessian矩陣的最大絕對特征值和所對應的特征量,即可獲得法方向(nx,ny)和在該方向的二階導數(shù)。
Fig.3 Flow chart of segmentation method of wide linear crack圖3 寬型線性裂縫的分割方法流程圖
Fig.4 Crack binary image extraction圖4 裂縫二值化圖像提取
二維圖像中任意像素(x0,y0)的相鄰像素圖像可通過二次泰勒多項式進行表示,由于裂縫中心點在裂縫法向量上,若已知裂縫法向量(nx,ny),則:
對于裂縫灰度圖像,裂縫中心點處的一階導數(shù)為0,即認為法方向n(x,y)上的一階方向?qū)?shù)為0,二階導數(shù)取極大絕對值的點就是裂縫中心點。因此,令f[(tnx+x0),(tny+y0)]=0,可得:
因此,圖像灰度極小點為(px,py)=((tnx+x0),(tny+y0))。
如圖5 所示,通過遍歷所有裂縫中心點可得到裂縫中心線能夠估算裂縫長度l。然后,計算裂縫中心線某點的法向量可得到該處裂縫寬度wi=,最后比較可得最大裂縫寬度為:
Fig.5 Target crack centerline圖5 目標裂縫中心線
由于水下裂縫圖像中提取出的參數(shù)為圖像的像素值,為了獲取裂縫的物理尺寸,采用融合視覺處理方法對裂縫參數(shù)進行估算。視覺估算模型如圖6 所示,該系統(tǒng)中激光測距裝置和水下攝像機平行擺放,由攝像機光心O和光軸構(gòu)建坐標系OXYZ及像平面坐標系UV。水下堤壩裂縫上任一點(x,y,z)在圖像中像素坐標為(u,v),攝像機焦距為f,激光測距裝置、水下攝像機和堤壩三者的距離均為d。
在不考慮折射影響的情況下,裂縫上任一點(x,y,z)可以表示為:
Fig.6 Crack parameter estimation圖6 裂縫參數(shù)估算
式中,1/kx和1/ky為單像素在U、V方向上的物理尺寸,單位為mm/pixel,(u0,v0)為像平面的中心點坐標,λ為徑向放大倍數(shù),z用距離d近似表示。
融合視覺成像原理,根據(jù)圖像提取的最大裂縫寬度Mw和長度l,可估算裂縫的實際尺寸(裂縫的寬度max?width和長度length):
其中,f和k均通過相機先前標定設定,距離d由激光測距儀測得。
基于以上分析,對圖2(a)、圖4(a)進行裂縫參數(shù)提取,相機與對標注區(qū)域的參數(shù)估計如下:相機焦距f為12mm,相機與堤壩表面距離d約為1 500mm。實驗可得,細型線狀裂縫區(qū)域長為420.80mm,最大寬度為11.55mm,面積為1.78×103mm2;寬型線性裂縫區(qū)域長為747.44mm,最大寬度為82.36mm,面積為2.21×104mm2。
為驗證本文算法對于水下堤壩裂縫檢測的有效性和優(yōu)越性,將該算法與現(xiàn)有算法進行比較。實驗選取6 幅水下堤壩裂縫圖像:第1 幅圖像(如圖7(a1)所示)亮度均勻,背景無太多噪聲,含有一條清晰的線狀裂縫;第2 幅圖像(如圖7(b1)所示)亮度均勻,背景存在部分噪聲,含有一條清晰的較寬線狀裂縫;第3 幅圖像(如圖7(c1)所示)背景光照不均勻,圖像對比度較低,背景存在較多噪聲,含有一條模糊且傾斜的細小線狀裂縫;第4 幅圖像(如圖7(d1)所示)圖像整體亮度很低,圖像霧化嚴重,對比度極低,背景存在大量噪聲,含有一條模糊垂直的細小線狀裂縫;第5幅圖像(如圖7(e1)所示)整體亮度均勻,背景存在部分噪聲,含有一條清晰的寬大線狀裂縫;第6幅圖像(如圖7(f1)所示)整體亮度偏低,對比度較低,圖像存在霧化現(xiàn)象,背景存在大量噪聲,含有一條模糊的較寬線狀裂縫。這6 幅圖像涵蓋了有無背景干擾、圖像是否霧化模糊、不同長短寬細的線狀裂縫等問題,并且圖像尺寸也存在一定的區(qū)別。
比較算法選擇目前較為常用的基于Canny算子的邊緣檢測方法和改進的Otsu 方法[14]。前者對6 幅圖像的檢測效果如圖7(a2)-圖7(f2)所示;后者檢測結(jié)果如圖7(a3)-圖7(f3)所示;本文算法檢測結(jié)果如圖7(a4)-圖7(f4)所示。圖7(a5)-圖7(f5)為標記的目標裂縫信息,估計的裂縫信息特征參數(shù)值如表1所示。
Table 1 Characteristic parameter values of target crack表1 目標裂縫的特征參數(shù)值
Fig.7 Comparison of different experimental results圖7 不同實驗結(jié)果比較
由圖7 可見,現(xiàn)有算法在無背景干擾或背景干擾較少的情況下裂縫獲取效果較好,但遇見較為模糊霧化的水下堤壩裂縫圖像時,圖像通常會產(chǎn)生大量噪聲,導致算法無法準確、有效地提取目標裂縫信息,而本文算法在背景復雜且干擾較大的低照度情況下,均能夠準確、有效地提取圖像中的裂縫信息。
針對現(xiàn)有裂縫檢測方法無法準確、完整地提取堤壩存在的細狀線狀裂縫和寬型線性裂縫的問題,提出了融合視覺處理的水下裂縫檢測方法。
通過結(jié)合邊緣檢測和自適應閾值分割方法對裂縫圖像進行二值化處理,既抑制了噪聲的干擾,又有效提取細小和寬大線狀堤壩裂縫。
此外,運用Steger 算法定位裂縫中心線,通過裂縫中心線和成像原理成功計算出裂縫的長度和最大寬度信息,提高了裂縫檢測方法的適用性。實驗表明,本文算法在復雜的水下環(huán)境中均能準確、高效地提取堤壩裂縫,算法的魯棒性較高,然而該算法在圖形二值化處理過程中,對部分背景干擾過大的圖像處理效果并不理想,還需要進一步優(yōu)化。