張小偉,包騰飛,高興和
(1.河海大學水利水電學院,江蘇 南京 210098;2.河海大學水文水資源與水利工程科學國家重點實驗室,江蘇 南京 210098;3.江蘇省太湖水利規劃設計研究院有限公司,江蘇 南京 210098)
在混凝土壩的運行期間,由于壩體需要承受很大的水壓、溫度荷載,以及受到水的沖刷、滲透、侵蝕等原因,導致大壩不可避免地產生裂縫[1]。裂縫的產生會降低大壩結構的承載能力以及壩體耐久性[2-3],最終可能導致大壩因結構破壞而失事,因此快速而準確地發現混凝土表面裂縫是混凝土壩安全監測中的一項重要任務。目前,常用的裂縫檢查方法仍是人工檢測法,即由檢查人員用肉眼來檢查,這種檢測方式不僅費時費力,并且在特高壩高程較高的地方,其檢測的危險性大。
隨著計算機視覺技術的發展,以及無人機的廣泛運用,裂縫的檢測具有一種全新的思路和方法。通過遠程操控無人機來獲取裂縫照片,然后結合圖像識別分割算法,就可以自動識別并分割裂縫圖片,進一步自動提取出裂縫特征數據,從而為壩面后期的風險評價提供有力的支持。但是由于光照條件、混凝土表面污漬、混凝土氣泡、陰影等原因,通過無人機拍照得到的裂縫圖片往往存在大量的噪聲污染,傳統的圖像分割算法已不能滿足工程要求。為此,許多學者提出了去噪優化算法,如Fan等[4]通過局部聚類保留存在裂縫的局部區域,同時去除存在噪聲的局部區域,再通過全局聚類計算分割閾值,雖然聚類算法計算速度快,適應性較強,但隨機性強,可能導致局部裂縫區域丟失;Zhao等[5]通過建立一種組合云模型(CMM)來檢測裂縫邊緣,雖然抗噪性較Robert、Prewitt等邊緣檢測算子有所提高,但對混凝土氣泡、陰影等噪聲仍然十分敏感,算法的適應性較差;陳波等[6]采用改進的全卷積神經網絡對裂縫圖片進行預測分割,雖然抗噪性較好,但全卷積神經網絡在訓練過程中容易陷入局部最優,導致算法的適應性較差;Noh等[7]運用掩膜運算以及連通域分析來去除噪聲,算法的適應性較強,能針對不同類型的噪聲設計不同的掩膜,但算法的分割結果中總會剩余部分噪聲,抗噪性較弱;Tsai等[8]通過連接標記的裂縫點來完成裂縫的提取,同時去除噪聲,但算法需要人工預先在裂縫路徑上標記多個裂縫點,算法的自動化程度低,無法快速處理大量的裂縫圖片。
綜上所述,目前已有的一些去噪優化算法往往不能同時兼顧算法的抗噪性和適應性。為了提高算法的抗噪性以及適應性,本文提出一種基于自適應區域生長和局部K-Means聚類的裂縫檢測算法。該算法首先運用雙邊濾波對裂縫灰度圖進行初步降噪,然后采用基于梯度幅度變化的分段雙閾值區域生長算法來分割裂縫圖片獲得粗分割結果并標記之。通過梯度幅度變化分段設定生長閾值來提高算法的適應性以及抗噪性,不僅能有效去除噪聲,同時保證裂縫邊緣完整。標記的目的是提高后面的聚類效果,標記完成后對粗分割結果進行形態學腐蝕以及最大連通域提取,通過提取最大連通域來去除其中孤立的點狀以及團狀噪聲,同時提取足夠多的局部數據點樣本,對該局部數據點樣本進行灰度值以及標記值聚類后,得到最終精確的分割結果。本文檢測裂縫的方法能為實際工程提供大量實時的檢測數據,可以節約大量人力物力,為自動化檢測大壩裂縫奠定基礎。
區域生長算法是基于區域的分割算法中的經典算法[9],運用區域生長算法來分割裂縫圖片,需要在背景區域或者裂縫區域內預先給出種子點以及種子點的生長準則,通過種子點的生長提取出正確的裂縫區域。區域生長的關鍵點是生長準則的設定,閾值是最重要的準則之一。傳統的區域生長算法,閾值一般設定為常數,但是這種設定方法魯棒性差,無自適應性。為提高區域生長算法的自適應性,許多學者提出了改進措施。陸劍鋒等[10]通過計算種子點附近鄰域統計信息來自適應改變生長準則,雖然自適應性有所提高,但計算量劇增。Pohle等[11]通過計算已生長區域的灰度值高斯分布參數來控制生長準則,從而提高算法的抗噪性,但高斯擬合的實際效果較差。王勝軍等[12]通過梯度幅度變化設定閾值,這樣的設定方法使得閾值與種子點灰度值成正相關,當種子點灰度值減小時,閾值也在減小。當分割區域和背景區域灰度值相差較小時,梯度幅度變化減小,閾值的自適應性變差。
基于以上分析,本文提出基于梯度幅度變化的分段雙閾值區域生長方法,該方法采用梯度幅度變化來設定閾值(梯度閾值),當種子點灰度值減小并不斷接近裂縫區域灰度值時,灰度閾值(梯度閾值與種子點灰度值的乘積)減小,生長條件收窄,算法的自適應性提高。為了避免梯度幅度變化過小導致自適應性變差,本文將大津閾值[13]N引入生長準則中,當種子點灰度值大于,小于或等于N時,梯度閾值分別取N1和N2。當種子點灰度值大于N時,種子點主要存在于背景區域內,此時設定的梯度閾值N1較大,保證背景區域內的噪聲被完全去除;當種子點灰度值小于或等于N時,種子點灰度值接近裂縫區域灰度值,此時設定的梯度閾值N2較小,以保證裂縫邊緣完整。綜合大量試驗,梯度閾值N1在0.2~0.4之間取值,梯度閾值N2在0.05~0.1之間取值。通過分段設定梯度閾值使得算法在有效去除背景區域內噪聲的同時有效保證了裂縫邊緣的完整性。改進后的區域生長準則為
|(S-G(x,y))/S|≤T
(1)
(2)
式中:S為種子點灰度值;G(x,y)為種子點鄰域內像素點灰度值;T為梯度閾值。
獲得生長準則之后需要在背景區域內選定種子點,種子點自動選取方法為:用10×10的網格來劃分裂縫圖片,計算網格節點處灰度值,將其中灰度值大于N的節點作為種子點。確定種子點和種子點生長準則之后,就可以運用自適應區域生長算法分割裂縫圖像,提取裂縫的粗分割圖。
K-Means聚類算法[14]是一種基于劃分的聚類算法[15]。算法需要預先指定初始聚類中心,然后根據相似性準則完成聚類,通過不斷更新聚類中心并降低類簇誤差平方和來得到最佳聚類結果[16]。本文將K-Means聚類算法運用到裂縫圖像分割中,通過將屬性值接近的像素點聚為一類來完成裂縫區域和背景區域分割任務。K-Means聚類算法思想簡單,聚類速度快,聚類效果好,但是對初始聚類中心敏感,并且容易陷入局部最優解[17]。目前主要的改進方法集中在以下幾個方向:算法中初始聚類中心個數的選取,初始聚類中心點的選取,離群點的檢測和去除等。
為此,提出局部K-Means聚類算法,該方法的主要思想是對包含裂縫區域像素點的局部像素點樣本進行聚類,由于樣本點中剔除了大部分非裂縫區域而保留了所有的裂縫區域,離群點的干擾減小,并且初始聚類中心易于尋找,所以對該局部像素點進行聚類,不易陷入局部最優解。為了提高聚類效果,對局部數據點樣本中疑似裂縫區域像素點進行標記,標記值為M(權重屬性值),對非疑似裂縫區域像素點標記值為0。運用K-Means聚類算法對該局部像素點進行聚類,像素點屬性值為其灰度值以及標記值,聚類的目的是將灰度值和標記值接近的像素點聚為一類。相似性準則一般由歐式距離來衡量,距離越小,相似性越高。聚類的相似性公式為
d((gij,oij),(g1,o1))=
(3)
式中:gij,oij分別為坐標點(i,j)處像素點灰度值和標記值;g1,o1分別為初始聚類中心的灰度值和標記值。
此時對應的誤差平方和公式為
式中:Ct為第t個聚類;gt、ot分別為第t個聚類的聚類中心(gt,ot)的灰度值和標記值。
為了避免初始聚類中心的隨機性導致結果的隨機性,g1取局部區域中疑似裂縫區域像素點灰度均值,g2取局部像素點中非疑似像素點灰度均值,o1取M,o2取0。聚類結果:當M較小時,聚類結果主要由灰度值決定,聚類結果趨近于局部像素點灰度值聚類;當M較大時,聚類結果主要由標記值決定,聚類結果主要由疑似像素點組成。
本文的算法流程主要包括圖片預處理,裂縫粗提取,二值圖像去噪以及裂縫精提取。①圖片預處理:輸入原始裂縫圖片,灰度化, 然后運用雙邊濾波進行初步去噪平滑,雙邊濾波能在保留裂縫邊緣信息的同時降低噪聲平滑圖像。②裂縫粗提取:運用自適應區域生長算法進行分割,得到裂縫的粗分割圖。③二值圖像去噪:經過區域生長分割后,裂縫圖像被分割為裂縫區域和背景區域兩部分,裂縫區域灰度值設定為0,標記值為M,背景區域灰度值設定為255,標記值為0。對二值圖像進行形態學腐蝕操作以及最大連通域提取,連接斷裂裂縫,并去除二值圖像中孤立的團狀及點狀噪聲。④裂縫精提取:由于環形裂縫的阻擋,導致裂縫粗分割圖像中仍有許多未被生長的區域,需要運用局部K-means聚類算法,通過局部區域灰度值以及標記值聚類進一步去除其中非裂縫區域。在裂縫精提取中,通過試驗研究發現,當裂縫圖像中裂縫區域灰度值與背景區域灰度值相差較大時,像素點灰度值聚類的效果好;當裂縫圖像中裂縫區域灰度值與背景區域灰度值相差較小時,通過區域生長分割獲得的分割圖更加準確,所以標記值M應該選取能夠表征原灰度圖像裂縫區域灰度值與背景區域灰度值差異的參數。本文M值取原灰度圖中灰度值在閾值N以上的像素點灰度均值與灰度值在閾值N以下的像素點灰度均值之差。綜上所述,可以得到應用本文算法進行裂縫圖片處理的流程如下:
步驟1通過無人機拍攝得到裂縫圖片,經過預處理得到預處理圖片,圖像預處理包括圖像灰度化和圖像雙邊濾波。
步驟2根據灰度圖計算N、M的值。
步驟3運用本文設計的自適應區域生長算法分割裂縫圖片獲得裂縫的粗分割圖,將其中的裂縫區域標記為疑似裂縫區域。
步驟4對粗分割圖進行腐蝕操作,腐蝕操作的目的是連接分割圖像中因局部過生長而斷裂的裂縫,腐蝕操作的結構元素為2×2,腐蝕次數為2次。
步驟5腐蝕完成后,提取被分割部分的最大連通區域,通過最大連通域提取來去除其中孤立的點狀及團狀噪聲。
步驟6再次進行腐蝕操作,為聚類運算提供足夠多的像素點樣本,腐蝕操作的結構元素為2×2,腐蝕次數為2次。
步驟7提取局部數據點樣本,并確定數據點樣本的灰度值以及標記值(標記值的確定需要結合從步驟3中得到的疑似裂縫區域),運用局部K-Means聚類算法進行聚類。
步驟8得到最終的裂縫分割結果。
選取3幅存在噪聲污染的裂縫圖片進行對比分析,如圖1所示。3幅圖片都經過了預處理。裂縫1是1條近似豎向裂縫,裂縫圖片中主要存在污漬噪聲污染,同時背景區域灰度值與裂縫區域灰度值相差較小;裂縫2是1條叉形裂縫,裂縫圖片中主要存在混凝土表面毛刺噪聲,同時裂縫區域灰度值與背景區域灰度值相差較大;裂縫3是1條豎向裂縫,裂縫圖片中主要存在塊狀以及條狀噪聲,這些噪聲污染是由水對壩體的侵蝕造成的。

圖1 裂縫圖片
為了對改進前和改進后的區域生長算法進行比較,分別運用這兩種算法對圖1進行分割,分割結果如圖2所示。分析圖2可知,改進前的區域生長算法(閾值取15)獲得的裂縫分割圖中有大量的灰色點狀噪聲,同時裂縫邊緣存在大量毛刺,裂縫寬度比實際寬度大。改進后的區域生長算法由于梯度閾值的自適應性以及N值對裂縫邊緣分割的控制作用,使得分割圖中點狀噪聲少,裂縫邊緣更加平滑,與實際裂縫邊緣更加接近,但分割圖中仍存在圓形標記處環形裂縫內的誤分割,同時背景區域內存在少量孤立的點狀及團狀噪聲。

圖2 區域生長算法改進前后分割結果對比
對圖2中改進后的分割圖進行形態學腐蝕操作并提取最大連通區域后得到圖3,再對圖3進行形態學腐蝕操作,提取其中包含裂縫的局部區域數據點樣本,運用局部K-Means聚類算法進行聚類,最終獲得分割結果如圖4所示。

圖3 最大連通域提取結果

圖4 局部K-means聚類分割結果
對比圖2和圖3可知,經過腐蝕操作以及最大連通域提取后,裂縫圖片中的點狀和團狀噪聲被完全除去。對比圖3和圖4可知,對提取到的局部數據點樣本進行聚類后,獲得的最終分割圖像不僅有效地保留了自適應區域生長的結果,同時圓形標記處環形裂縫內誤分割區域被正確分割。
為了證明本文算法的優越性,將本文算法與大津閾值分割算法(OTSU)、文獻[5]算法、Canny邊緣檢測算法[18]進行對比,運用以上算法對圖1進行分割,得到裂縫分割結果如圖5所示。為了對裂縫提取效果進行量化分析和評價,本文引入完成度和正確度指數[19-20]。完成度指數用于描述完成裂縫提取這一任務的完成程度,正確度指數則描述完成任務的質量水平,其定義分別見式(5)和式(6)。

圖5 不同算法裂縫分割結果對比
(5)
(6)
式中:Lr為提取結果的真實裂縫長度;Lgt為裂縫的實際長度;LT為提取的總長度。
根據式(5)和式(6)以及圖5中裂縫的分割圖像,計算得到各算法提取的裂縫完成度和正確度指數,計算結果如表1所示。

表1 裂縫分割結果評價
為了對算法的適應性和抗噪性進行評價,將適應性等級劃分為優、良、中、差4個等級,算法能去除的噪聲種類越多則適應性等級越高;將抗噪性等級劃分為強、較強、較弱、弱4個等級,算法獲得的分割結果中噪聲越少則抗噪性越強。根據圖5的分割結果和表1的評價數據可以得到算法的適應性和抗噪性水平。
分析圖5和表1可知,本文算法能有效分割存在污漬噪聲、混凝土表面毛刺噪聲、塊狀以及條狀噪聲污染的裂縫圖片,算法的適應性等級為優,同時分割結果的完成度指數以及正確度指數均在0.95以上,算法的抗噪性強;大津閾值分割算法對裂縫1和3的分割結果差,分割的完成度指數和正確度指數極低,無法確定裂縫的完整形態,但算法對裂縫2的分割結果較好,整體而言,算法適應性等級為中,抗噪性弱;文獻[5]算法對裂縫3的分割效果好,完成度指數和正確度指數均超過了0.95,但是對裂縫1和2的分割效果較差,主要表現在裂縫局部斷裂、裂縫寬度局部偏大以及剩余少量的背景噪聲,但通過分割結果基本可以確認裂縫的完整形態,算法的適應性等級為良,抗噪性較強;Canny邊緣檢測算法對裂縫1的分割結果好,裂縫分割的完成度指數和正確度指數高,對裂縫2和3的分割結果較差,分割圖中存在大量的偽邊緣,但同樣可以基本確定裂縫的完整形態,算法適應性等級為中,抗噪性較弱。
綜上可知,本文算法能有效去除污漬噪聲、混凝土表面毛刺噪聲、塊狀以及條狀噪聲,算法提取的裂縫完成度指數和正確度指數均在0.95以上。不論是適應性還是抗噪性都要優于其他3種算法,能夠滿足實際工程需要的精度要求。
a.本文提出一種基于自適應區域生長和局部K-Means聚類的混凝土壩面裂縫檢測算法,該算法解決了傳統分割算法適應性差、抗噪性性弱的問題。與改進前的區域生長算法相比,改進后的自適應區域生長算法通過梯度幅度變化分段設定生長閾值,不僅提高了算法的自適應性,同時提高了算法的抗噪性,其分割結果中裂縫邊緣更加平滑,背景噪聲更少。
b.本文通過去除離群點以及計算具有強代表性的初始聚類中心來避免聚類算法陷入局部最優解,同時避免算法因聚類中心的隨機性導致聚類結果的隨機性。通過改進后的K-means聚類算法對裂縫進行精確分割,得到的分割結果正確度指數和完成度指數極高,能滿足實際工程要求。
c.與其他圖像分割算法相比,本文分割算法適應性更好,抗噪性更強,能有效去除諸多類型噪聲,算法提取的裂縫完成度指數和正確度指數最高。與傳統人工檢測方法相比,本文基于計算機視覺的混凝土裂縫檢測方法能自動并且快速地檢測大量裂縫,可以節約大量人力物力。