楊 曉,姚曉同,葉 琰
(武漢工程大學 機電工程學院,武漢430205)
隨著交通行業的發展,車流量日益增多,橋梁裂縫對橋體承載能力有著巨大影響,因此對橋梁裂縫的排查非常重要。 若橋梁裂縫在早期能被檢測出來并及時修補,便可以極大程度地降低橋梁的維修費用,同時也能確保行車安全。 然而,由于橋梁底部裂縫較為隱蔽,采用傳統的人工檢測所消耗的時間長,并且誤差大;混凝土橋梁底部圖像光照變化不均勻,混凝土裂縫與背景的對比度相對較差,而且混凝土的紋理是多變的。 因此,光線、污漬、混凝土本身的紋理等外部因素很容易影響測量的精度與準確性。 為了提高檢測效率與精度, 需要以COMS工業相機云臺作為圖像采集裝置, 進行圖像采集。在此,采用數字圖像處理,設計出適應性高且識別度高的圖像算法,排除裂縫周圍環境的影響,提取完整的裂縫骨架,并對裂縫進行計算,進而提高檢測水平。
CCD 電耦合器件和COMS 互補金屬氧化物導體是常見的2 種相機傳感器。 CCD 相機圖像靈敏度低,但不能直接訪問每一個像素,沒有片上處理功能。 而COMS 相機可以直接訪問單個像素,動態范圍高,幀率高。 因所檢測的是混凝土橋梁底部的細微損傷,圖像動態范圍高,并且需要訪問單個像素,故在此選用COMS 相機。
相機在圖像采集小車機械臂的作用下,采集裂縫圖像,將光學信號轉換為電信號傳輸到圖像采集卡;圖像采集卡再通過數模轉換,將電信號轉換為數字模擬量,再進行圖像數據處理。
在數字圖像處理中將各種格式的圖像轉化為灰度圖像,后續的圖像處理的計算量便會變得相對少一些。 而灰度圖像仍然與彩色圖像一樣,可以完整地反應圖像的整體、 局部的色度以及亮度等級。一般將一個圖上的一個點定義為(i,j),此處的灰度值定義為gray(i,j),則3 種顏色通道對應的值分別為R(i,j),G(i,j),B(i,j)。 由于橋梁底部拍攝環境受到陽光、陰影、污漬、濕度等不確定因素的影響較大,因此將權值進行加權平均。 對RGB 三分量進行加權平均,就能得到較合理的灰度圖像,即

在盡量保留圖像細節特征的條件下,需要對目標圖像的噪聲進行抑制。 效果處理得好壞會直接影響后續圖像處理與分析的有效性和可靠性,因此濾波去噪是非常關鍵的一步。
信號或圖像的能量大部分集中在幅度譜的中頻和低頻段,而在較高頻段,有用的信息經常被噪聲淹沒。 因此一個能降低高頻成分幅度的濾波器就能夠減弱噪聲的影響。 在此,結合實際的裂縫圖像,分析2 種不同的濾波方式,同時根據二值化圖像的去噪效果,對不同算法的效果進行綜合評價。
1)均值濾波 為典型的線性濾波算法[1],主要方法為鄰域平均法。 一般需要在圖像上對目標像素給出一個模板(內核),該模板包括了其周圍的鄰近像素。 再用模板中全體像素的平均值來代替原來的像素值,即對待處理的當前像素點(x,y)選擇一個模板,該模板由其鄰近的若干像素組成,求模板中所有像素的均值,將該均值賦予當前像素點(x,y),作為處理后圖像在該點上灰度點g(x,y),即

式中:m 為該模板中包含當前像素在內的像素個數。
2)高斯濾波 為一種線性平滑濾波,可以消除高斯噪聲。高斯濾波就是對整幅圖像進行加權平均的過程每一個像素的值,均由其本身和領域內其他像素值經過加權平均后得到。 圖像的高斯模糊過程就是圖像與正泰分布做卷積。高斯濾波器是一類根據高斯函數的形狀來選擇權值的線性平滑濾波器。高斯平滑濾波器對于抑制服從正態分布的噪聲非常有效。
經過濾波處理后的二值化圖如圖1 所示。 由圖比較可見,圖1b 高斯濾波去噪的效果較好,而且很好地保護了裂縫的細節。

圖1 兩種濾波方法處理效果的比較Fig.1 Comparison of processing effects between two filtering methods
混凝土橋梁有大量可見石子,高斯濾波后仍有些許噪點。 為了更好地去除噪點,分割出獨立的元素,在圖中連接相鄰的元素,并且尋找出圖像中明顯的極大值區域或者極小值區域,需要采用膨脹和腐蝕進行形態學處理。
膨脹就是求局部最大值的操作。 從數學角度來說膨脹就是核與圖像卷積,即計算核覆蓋區域的像素點的最大值,并將該值賦值給參考點指定的像素。 這樣就會使圖形中高亮區域逐漸增長。 當的原點位于位置(x,y)時,平坦結構元b 在任何位置(x,y)處對于圖像f 的膨脹,定義為圖像f 中與重合區域的最大值,即

腐蝕與膨脹[2]是相反的一對操作,非平坦結構元具有隨定義域變化的灰度級。非平坦元結構bN對圖像f 的腐蝕定義為

在消除了裂縫周圍的噪點之后,應提取完整的裂縫骨架,即進行Canny 邊緣檢測。
Canny 邊緣檢測的目標是找到一個最優的邊緣檢測算法,即低錯誤率,高定位性,最小響應。 Canny邊緣檢測有以下4 個步驟:
步驟1消除噪聲。 在此使用高斯平滑濾波器卷積降噪,所選size=5 的高斯內核示例為

步驟2計算梯度幅值和方向。 此處按照Sobel濾波的步驟來操作。 首先運用一對卷積陣列分別作用于x 和y 方向,即

再計算梯度幅值和方向:

步驟3非極大值抑制。用于排除非邊緣像素,僅保留一些細線條。
步驟4滯后閾值,即滯后高閾值和低閾值。若像素位置的幅值超過高閾值,該像素被保留為邊緣像素;若像素位置的幅值小于低閾值,該像素被排除;若像素位置的幅值在2 個閾值之間,則該像素僅在連接到一個高于高閾值的像素時被保留。
經過上述處理后的裂縫圖像,不僅有需要的裂縫目標還有大量噪點,需要通過數值對比過濾掉噪點。
使用findContours 函數,追蹤裂縫輪廓圖像,并對連續裂縫輪廓用矩函數[3]將其最小外接矩形表示出來,通過最小外接矩形長寬比、連通區域內裂縫面積與周長比以及圓形度來濾出噪點。 裂縫輪廓以及矩形框框出的裂縫圖分別如圖2,圖3 所示。

圖2 裂縫輪廓Fig.2 Crack outline

圖3 矩形框框出的裂縫圖Fig.3 Crack diagram of a rectangular frame
考慮到橋梁裂縫一般為彎曲、復雜的裂縫。 不能將裂縫最小外接輪廓長寬作為裂縫長寬來計算。為此提出了一種簡單而有效的計算方法。
首先,通過裂縫的自動跟蹤算出裂縫的連通區域的面積A 和圓弧度H。 然后對框選處的裂縫輪廓進行骨骼化,再統計裂縫最小外接矩內的白色像素點個數。 裂縫的長度L 就是這些白色像素點的個數;裂縫的平均寬度即為連通區域面積與裂縫長度之比。
選取部分裂縫并驗算其精度,結果見表1。根據以上數據分析,裂縫的實際寬度均小于寬度的測試值,通過圖像算法測得的裂縫寬度與實際裂縫寬度的誤差均在2%左右。

表1 裂縫尺寸測試Tab.1 Crack size test
使用COMS 相機采集圖像,將圖像采用濾波去噪、二值化、邊緣檢測等一系列數學形態操作,可提取完整裂縫骨架;將裂縫目標細化,使用輪廓跟蹤函數,用最小外接矩形將裂縫輪廓框出,利用圓形度、連通區域內裂縫面積與周長的比值,過濾掉輪廓中的噪點;采用矩函數并結合圖像像素率進行求解,可以檢測出裂縫面積與周長,并計算出裂縫平均寬度,誤差均在2%左右,誤差較低。 測試結果表明,通過圖像算法測得裂縫的方法是可行的,較為精確,自動化檢測效率較高。