胡曉勇, 徐嘉明, 劉愛榮, 楊智誠, 楊永民
(1.廣州市市政工程設計研究總院有限公司,廣州 510060;2.華南理工大學自動化科學與工程學院,廣州 510640;3.廣州大學風工程與工程振動研究中心,廣州 510006;4.仲愷農(nóng)業(yè)工程學院城鄉(xiāng)建設學院,廣州 510225)
混凝土結構性能退化主要通過缺陷的形式變現(xiàn)出來,其中包括裂縫、剝落、洞穴和風化等,而裂縫是主要的基礎形式病癥[1-2]?;炷两Y構裂縫的擴展降低了結構的安全性、穩(wěn)定性和可靠性,由此需要對其進行必要的檢測和維護。在檢測階段,需要獲取裂縫的形態(tài)、病癥、損害程度等信息作為結構可靠性評估和損害管理的依據(jù)。目前,基于機器視覺的自動化裂縫檢測技術快速發(fā)展,搭載了機器視覺的水下檢測機器人或無人機通過攝像機捕獲結構表面視頻序列,結合圖像處理算法對裂縫進行提取以及分析[3],并且能夠?qū)崿F(xiàn)在從光照不均勻和復雜紋理背景中快速精確分離裂縫區(qū)域[4]。
近年來,學者們設計了不同的算法以提取復雜背景中裂縫的特征。Chen 等[5]針對電致發(fā)光圖中的裂縫提出了方向可調(diào)證據(jù)濾波來生成裂縫顯著性圖,能夠突出隨機分布的晶格背景中的裂縫信息,但濾波核的尺寸自適應確定是該方法的難點。Cho等[6]基于邊緣檢測算法提出了一種寬度變換裂縫檢測算法,通過搜索垂直于裂縫伸展方向的邊緣點對,并將其連接起來組成裂縫區(qū)域。該方法效果的優(yōu)劣取決于提取邊緣是否連續(xù),如果出現(xiàn)邊緣斷裂或者丟失,則邊緣點對會搜尋錯誤,最終導致裂縫分割失敗。Qu 等[7-8]基于滲透模型建立了一種魯棒的裂縫檢測方法,其原理是依次遍歷圖像像素點,并通過灰度信息和圓度信息進行區(qū)域生長,滿足一定條件的像素點則被認為是裂縫缺陷中,但由于每個像素點的分類過程十分復雜的,所以該方法難以應用到在線檢測中。
基于深度學習的端到端網(wǎng)絡方法實現(xiàn)裂縫特征自動學習和檢測分割具有良好的效果[9-10]。其中,Unet++是目前較為通用的卷積神經(jīng)網(wǎng)絡,其在充足的訓練數(shù)據(jù)和標記數(shù)據(jù)下可以獲得理想的性能,但該方法需要獲取的大量的裂縫樣本數(shù)據(jù),特別是對稀有類型的裂縫樣本,存在較大的難度[11-13]。本文提出了一種快速、準確的裂縫自動分割方法,包括圖像預處理增強圖像對比度,基于改進的局部二值模式生成裂縫的顯著圖來緩解背景光照不均勻以及噪聲影響問題,提取裂縫區(qū)域并迭代修正裂縫分割結果等過程。該方法只需要少量的訓練樣本來自適應配置參數(shù)便能獲得較好的檢測結果,并且可應用到在線檢測中,有利于工程應用。
圖1給出了本文關于裂縫自動分割方法的主要流程,主要包含圖像預處理、顯著圖生成和裂縫分割。本文的最終目的是要將裂縫區(qū)域從復雜的背景中分離出來,具體的步驟如下:
(1)圖像預處理。圖像預處理的主要目標是增強裂縫與背景間的對比度。從圖1(a)可以看到,裂縫區(qū)域的灰度值比背景低,而主要關注區(qū)域正是低灰度值的部分。因此,采用了對數(shù)變換將較暗的裂縫缺陷進行灰度范圍擴展,使得圖像顯示出更多低灰度細節(jié)。根據(jù)變換后圖像灰度的值將圖像灰度范圍映射到[0,255]之間,從而實現(xiàn)裂縫與背景之間的對比度增強,如圖1(b)所示,增強圖記為G。
(2)全局和局部二值模式顯著圖。局部二值模式(Local Binary Patterns,LBP)主要是用來描繪局部紋理特征,而本文改進的LBP算法是針對裂縫檢測設計的,該方法不僅繼承了原始LBP 的局部特性,同時也考慮到了全局信息。為了更好地說明本文提出的全局和局部二值模式顯著圖算法,首先回顧一下旋轉不變LBP算法。該算法中,圖像上的任意像素點會與其相鄰的像素點集依次進行比較計算LBP碼[14]:
圖1 裂紋自動分割方法的框架
式中:C為LBP碼;gt為目標像素點pt的灰度值;gi為第i個相鄰像素點pi的灰度值;n表示相鄰像素點的總個數(shù)。
由此,得到旋轉不變LBP碼為
式中:IRC為旋轉不變LBP 碼;B2D 表示二進制轉換為十進制;D2B表示十進制轉換為二進制;Rot(x,j)表示對二進制數(shù)值x執(zhí)行j次循環(huán)按位旋轉。
雖然旋轉不變LBP 描繪局部特征被應用到紋理檢測中,但是這種特征結果用于缺陷檢測是困難的,因為其檢測結果受目標像素點到相鄰像素點的距離r=的影響。當r小于缺陷最短距離的1/2 或當r遠大于缺陷最短距離時,處在缺陷內(nèi)部的像素點和處在背景中的像素點的IRC 幾乎沒有區(qū)別,這樣會導致檢測結果出現(xiàn)較多假陰性和假陽性。多數(shù)情況下,該算法只能檢測出粗糙的缺陷邊緣。
為了緩解這個問題,本文提出了改進的LBP 檢測方法,兼顧局部與全局信息來測量所有像素在4 個方向(即:水平,垂直以及兩個對角線)的變化,如圖2 所示,其中,綠色空心圓表示目標像素;正方形框表示相鄰的像素,不同顏色的直線代表代表不同的方向。
備份和恢復:語料文獻數(shù)據(jù)的備份由數(shù)據(jù)庫自動完成,語料文本的備份還需要更新數(shù)據(jù)庫中備份文件路徑的信息。并做一個鏡像文件到備份的磁盤中。根據(jù)需要可以隨時恢復備份了的語料文木。
圖2 改進的LBP檢測方法示意圖
在每個方向中,目標像素會與其所在方向均布的n個點進行比較,比較的規(guī)則與原始的LBP 一致。在本文中,取n=8,圖像灰度范圍控制在[0,255]。這n個點的灰度值可由7 ×7 矩形領域灰度均值替代,由此可以降低噪聲的影響,同時將式(1)中的閾值常數(shù)值0設為1 個相對閾值TR,即:
式中:d表示上述的4 個方向,d=1 為左上對角線方向,d=2 為水平方向,d=3 為垂直方向,d=4 為左下對角線方向。
由此,每個目標像素會有4 個IRCd值,即有4 幅不同方向的旋轉不變LBP檢測圖,如圖1(c)~1(f)所示。取其平均作為顯著圖,如圖1(g),記為S。從圖中可以看到,復雜的背景被過濾掉了,裂縫顯而易見,但仍然存在一些離散的噪聲,因而需要進行第3 步裂紋分割與修正。
值得注意的是,上述相對閾值TR是由對比度增強后圖像的灰度直方圖確定的。如圖3 所示,首先鎖定最大的駝峰,為1 個類高斯分布[15]
式中:μH為類高斯曲線最大值所對應的灰度值;σH為類高斯曲線的標準差。
圖3 預處理后圖像的灰度直方圖
根據(jù)高斯分布可知,背景出現(xiàn)的概率在高斯分布的中部,而缺陷總是出現(xiàn)在其兩端,因此需要粗略計算背景灰度范圍。由圖3 可以看到,腰部以下的地方可能會受到噪聲影響,所以通過對類高斯曲線求導,求得函數(shù)y最大值所對應灰度值μH左邊部分一階導數(shù)為0 的位置(即μH-σH)。由于裂縫是暗缺陷,且認為類高斯分布是對稱的,只需計算左邊即可,然后令相對閾值TR=ασH。
式中:AReg表示某區(qū)域Reg 的像素個數(shù);DReg表示區(qū)域中心到邊緣最大的距離。
若區(qū)域是個圓形,Cir =1;若區(qū)域有空洞或很長,Cir <1。同時基于萬有引力定律,認為裂縫區(qū)域面積越大,其端點對附近點的影響范圍越大,即
式中:RReg表示區(qū)域的影響半徑;k是1 個變化系數(shù)。
綜合以上的特點,設計了如下裂縫分割程序:
本文提出了全局和局部二值模式裂縫自動分割方法(GLBPCS)的性能評估,對照已公開的裂縫數(shù)據(jù)集Crack Forest 1. 0(https:/ /github. com/cuilimeng/CrackForest)上圖像分別用可控證據(jù)濾波法(SEF 方法)[5],寬度變換法(WT 方法)[6],滲透算法(P 方法)[7],改進的U 型卷積神經(jīng)網(wǎng)絡法(Unet++方法)[13]進行檢測并比較,性能指標分別采用重合率Dc(即真實值與預測值的重合率),準確率Pr(即正確缺陷像素個數(shù)占總預測缺陷值的比值)和召回率Re(即正確缺陷像素個數(shù)占總的真實缺陷值的比值)以及運行時間來表示。
式中:TP表示真實值和預測值皆為缺陷的像素個數(shù);FP表示真實值是背景但預測值是缺陷的像素個數(shù);FN表示真實值是缺陷但預測值是背景的像素個數(shù)。
圖4 不同方法對公開裂縫數(shù)據(jù)集Crack Forest 1.0的檢測結果
Crack Forest 1.0 中包含118 張480 ×320 的三通道圖像,如圖4 所示,其中從上往下分別是原始圖(圖4(a1)~(a6)),真實值(圖4(b1)~(b6)),SEF(圖4(c1)~(c6)),WT(圖4(d1)~(d6)),P(圖4(e1)~(e6)),Unet++(圖4(f1)~(f6))和GLBPCS(圖4(g1)~(g6))的檢測結果。原始圖選取了不同樣式的裂縫形狀進行分析,如圖4(a1)、圖4(a4)和圖4(a6)均為單支裂縫,圖4(a3)和圖4(a5)為多支裂縫,圖4(a2)為網(wǎng)狀裂縫。同時圖像中還包含了噪聲的影響,如圖4(a3)中存在油漆,圖4(a6)中存在油斑。由此,將數(shù)據(jù)集平均分為訓練集和測試集,GLBPCS 采用自適應的方法配置參數(shù),具體為從訓練集中任意選取5個樣本計算Dc來調(diào)節(jié)各參數(shù)取得較優(yōu)結果。程序自動生成4 幅曲線圖,即閾值系數(shù)α,標準差系數(shù)λ,變化系數(shù)k,允許灰度變化范圍δ分別與重合率Dc的關系,如圖5 所示,程序自動選取平均最大Dc所對應的值,即α=3,λ=1,k= 7,δ=11,考慮到算法精度和運行時間的平衡,k微調(diào)為5。
圖5 GLBPCS的參數(shù)自適應配置
實驗結果從視覺比較和定量分析兩方面進行評價:①SEF方法,如圖4(c1)~(c6)所示,該方法能夠檢測出各種裂縫的類型,但其檢測效果受限于濾波核尺寸,當核較大時該方法能檢測較寬的裂縫,當核較小時其能檢測較窄的裂縫;②WT 方法,如圖4(d1)~(d6)所示,該方法檢測效果較差,幾乎無法辨識裂縫的特征,這是因為該方法依賴邊緣提取效果,對于裂縫與背景過渡平滑的位置,邊緣提取可能會失敗,導致邊緣點對尋找失敗或錯誤;③P 方法,如圖4(e1)~(e6)所示,該方法對復雜背景中的缺陷提取效果一般,僅在背景較為純凈而且無太多噪聲干擾的情況下能取得較好的效果;④Unet ++方法,如圖4(f1)~(f6)所示,該方法基本能完全提取裂縫區(qū)域,主要得益于上百萬的樣本參數(shù),即使這樣也引入了較多的假陽性區(qū)域;⑤本文提出的GLBPCS 方法,如圖4(g1)~(g6)所示,該方法能夠較好地檢測出裂縫的區(qū)域,而且不會引入過多假陽性,主要是因為改進的LBP算法融合了全局與局部信息,加上修正算法中引入了萬有引力理論和圓度特征,使得裂縫特征能夠較好地被提取。
圖6給出了不同裂縫檢測方法的定量分析結果。由于真實值是人為標記,存在主觀因素,因而3 個指標Dc、Pr、Re≥0.5 即認為該算法檢測效果較好。從圖中可以看到,本文提出方法的3 個指標均超過0.6,檢測效果優(yōu)于其他方法。雖然其檢測速度慢于SEF 方法和WT方法,但是還是能達到1 s內(nèi)在線檢測的要求。
圖6 不同方法檢測結果的定量分析柱狀圖
本文提出的混凝土結構裂縫自動分割方法,利用對數(shù)變換增強裂縫圖像的對比度,使得裂縫的暗部信息更加豐富;改進了旋轉不變局部二值模式紋理特征,融合四方向的全局信息,生成裂縫顯著圖;最后,引入了萬有引力定律,以及灰度和圓度特征對裂縫分割結果進行修正,提高了分割精度。該方法能夠在光照不均和復雜紋理的背景中分割出裂縫區(qū)域,具有較好的魯棒性,且滿足在線檢測要求。然而,裂縫區(qū)域附近的噪聲還是難以完全過濾,這是下一步需要改進的地方。