雷斯達,曹鴻猷,康俊濤
(武漢理工大學 土木工程與建筑學院,湖北 武漢 430070)
帶裂縫工作是橋梁在運營過程中常見的狀態,然而裂縫的存在不僅會使混凝土保護層脫落、鋼筋裸露、銹蝕,影響結構的耐久性,嚴重時還會降低橋梁的承載能力,因而對橋梁裂縫的識別就顯得尤為重要。當前我國裂縫檢測仍以人工檢測為主,這種方法不僅會干擾交通,還難以保證檢測的效率。近年來,圖像識別技術的興起為裂縫檢測提供了新的手段。劉洪公等[1]基于卷積神經網絡提出了一種能識別大于橋梁規范中混凝土裂縫寬度限值的裂縫及對應類型的橋梁裂縫識別算法。柴雪松等[2]構建了用于裂縫分析的數據集,提出了一個基于深度學習的能夠準確分割出裂縫形狀的算法模型。Yang等[3]利用全卷積網絡同時識別和測量裂縫。馬曉麗等[4]引入神經網絡,采取路面圖像的灰度作為分類特征,成功分類了路面圖像。苑瑋琦等[5]使用機器視覺研究方法對目前的混凝土裂縫檢測算法研究進行了綜述說明,并指出其優缺點。李娜等[6]利用圖像質量評價方法建立了具體的顏色二階矩與人眼視覺信息熵特征客觀評價函數及算法流程,并通過試驗證明了算法的有效性。為了提高識別算法的精度,Brigante等[7]提出了一種與遺傳算法相結合的隨機全局搜索算法用于識別線性裂縫。在常規環境下,王偉等[8]將高斯平滑濾波器改進為選擇濾波器進行路面裂縫識別,能較好地提取裂縫骨架。黃海燕等[9]采用基于K-means的聚類分析算法提出了決策信息概念模型,用以實現對決策特征信息的分類與推薦。張朝等[10]提出基于K-means聚類算法的最優匹配算法,實現了算法穩定性和準確率的提升。嚴盛龍等[11]采用canny算子對裂縫邊緣整像素進行識別,利用原裂縫圖像上對應的附近灰度梯度,實現了對裂縫寬度的測量。阮小麗等[12]將裂縫區域當作連通區域,根據裂縫的特征參數過濾掉虛假裂縫并對交叉的較小裂縫進行提取,從而實現了裂縫寬度的識別。為解決在光照條件不同的情況下裂縫檢測的可靠性,李清泉等[13]提出了一種自動勻光的路面裂縫圖像分析方法,并說明了其合理性及實用性。
以上文獻雖然在裂縫圖像的識別計算上提出了思路方法,但到目前為止,在裂縫圖像背景復雜的情況下及在對裂縫圖像的有效分類和裂縫有效識別兩方面的兼顧上并沒有得出很好的結果。因此,在上述文獻的基礎上,本研究基于卷積神經網絡及初始中心自定義的改進K-means聚類算法,通過設備采集圖像數據組成圖像數據集,對采集圖像進行有無裂縫的分類并進行分割識別,然后運用閉運算的膨脹、腐蝕等操作對裂縫圖像進行處理,提取出在表層脫落、污漬、苔蘚等噪聲導致圖像裂縫信息難以識別的復雜情況下的裂縫骨架,并完成裂縫寬度的計算。
由于混凝土裂縫種類繁多、數量龐大、現場環境復雜,通過人力直接識別裂縫的分布及寬度需耗費大量的時間及精力,因此結合深度學習方法對采集圖像進行智能分類識別,能大大提高處理效率。卷積神經網絡(Convolutional Neural Network,CNN)作為圖像識別領域最具代表的方法之一,具有表征學習(Representation Learning)能力,能夠對所輸入的信息數據依據層次結構進行平移不變分類(Shift-invariant Classification)。它的特點包括局部感受野、權值共享、池化以及多網絡層。
使用深度學習中的卷積神經網絡組建圖像分類模型檢測裂縫,需要以數量巨大的裂縫圖像作為訓練和驗證集對卷積神經網絡進行訓練,同時還需要測試集進行網絡模型測試。由于當前沒有應用于卷積神經網絡的公開的裂縫圖像標準數據集,本研究采用自持設備采集裂縫圖像。考慮到圖像尺寸的影響,在將圖像用合理像素框進行裁剪后制作應用于本研究圖像分類模型的圖像樣本數據集。
卷積神經網絡可以將圖像作為目標直接輸入,在二維圖像處理過程中有很大的優勢,避免了傳統方法中數據重建及特征提取等過程,能夠自動識別提取紋路、顏色、形態等圖像特征及圖像的拓撲結構,在識別處理位移、縮放及其他形式扭曲不變性的應用上具有良好的運算效率和魯棒性等。Xu等[14]采用卷積神經網絡結構從包含復雜干擾信息的現實世界圖像中進行裂縫識別,結果表明,訓練好的改進融合CNN可以自動進行識別。本研究提出一種基于深度學習的圖像分類模型 (Deep-learning-based Image Classification Model,DICM)。在位于模型結構第1層的輸入層中,輸入圖像的像素規格為256×256×3,在輸入層后進入卷積核規模大小為3×3,步長為1的第1個卷積層進行卷積操作,經過批規范化(Batch Normalization)操作后轉入池化層進行第1次最大池化操作。模型使用了C1~C5的5個卷積層及P1~P4的4個池化層,其中池化層的步長選取均為2,池化窗口P1選取規格為2×2,P2選取規格為2×2,P3選取規格為4×4,P4選取規格為6×6。在結構中,樣本經過各層的卷積、批規范化、池化操作,轉入全連接層L10,將前面所提取的特征進行綜合,再經過激活函數層L11的激活處理后轉入輸出層L12,最后由分類層L13判斷結果,得出分類圖像。分類模型的網絡結構圖如圖1所示。

圖1 卷積神經網絡結構
1.2.2訓練圖像分類模型
本研究裂縫識別模型采用基于Caffe的框架進行訓練,其中的主要參數依據經驗設置,設定初始學習率為0.001,批尺寸為128。卷積神經網絡的訓練過程通常分為兩個階段。在第1階段中,經過多層的卷積、池化處理后,在輸入的圖像數據中獲得特征向量并輸送至全連接層中,獲得識別結果,當最終輸出結果與預期估計值符合時,輸出結果。當輸出結果與預期估計值不符合時,進入第2階段,先求出結果與預期值的誤差并逐層返回,計算出誤差梯度,通過訓練樣本和期望值來調整網絡的權值,然后更新權值,獲得最終分類模型。
裂縫識別模型在經過裁剪擴增的樣本數據集的訓練與驗證之后,就可以應用于圖像識別測試:將用于測試部分的數據集導入經過訓練和驗證的圖像分類模型,進行圖像數據測試集中關于含裂縫的目標圖像及不含裂縫的背景圖像的圖像歸類,得到識別結果。圖2為圖像分類測試過程的流程示意圖。
1.3.2測試評測指標
一般用精確率(Precision)、召回率(Recall)及結合精確率與召回率的綜合評價指標F1-measure進行圖像分類模型的指標評價。在評價指標數中,True Positives(TP)代表正樣本被正確識別為正樣本;True Negatives(TN)代表負樣本被正確識別為負樣本;False Positives(FP)代表假的正樣本(即負樣本)被錯誤識別為正樣本;False Negatives(FN)代表假的負樣本(即正樣本)被錯誤識別為負樣本。精確率及召回率就是在此基礎上得出來的。
精確率P是所有被正確檢測識別出來的樣本中正樣本所占的比例;召回率R是測試樣本集的所有正樣本中被正確檢測識別為正樣本的比例,二者可由式(1)~(2)計算得到:
(1)
(2)

圖2 圖像測試流程
F1-measure值表示精確率和召回率的調和均值,式(3)描述F1-measure與精確率P、召回率R的數學關系:
(3)
在圖像分類模型完成分類之后,對分類出的裂縫圖像進行標識處理。通常先將裂縫圖像進行圖像灰度化處理,隨后利用改進K-means算法與形態學方法對裂縫區域進行分割、標記,最終進行裂縫的寬度計算,得出結果。
由于人眼對紅、綠、藍3種顏色的敏感度不同,需采用式(4)對紅、綠、藍三分量進行加權平均計算,從而得到較合理的灰度圖像[14]:
A=0.30R+0.59G+0.11B,
(4)
式中,A為像素值;R,G,B分別為紅、綠、藍的像素分量值。
為了擴大裂縫圖像背景與目標的灰度差,按式(5)進行圖像增強處理[1]:
(5)
式中,F(x,y)為輸出點的灰度值;g(x,y)為輸入點的灰度值;x1,x2分別為兩個橫軸的轉折點;k值決定著變換區間函數的斜率。
K-means算法是一種迭代求解的聚類分析算法,首先隨機選取K個對象作為初始的聚類中心,而對于剩余對象,則根據它們與這些聚類中心的距離,分別將它們分配給聚類中心所代表的聚類,然后再計算每個所獲得的新聚類的聚類中心,即該聚類中所有對象的均值。不斷重復這一過程,直到標準測度函數開始收斂為止[15]。
K-means聚類算法簡單、快速,可以高效處理大數據集,但是K-means算法聚類效果依賴于聚類中心的初始化,需要不斷在計算后調整新的中心點,且聚類結果隨初始輸入的不同而產生波動。針對K-means算法初始聚類中心選擇的缺點,本研究基于回歸分析的方法,結合聚類中心密度高于其臨近區域的特征,并且與密度較高的點的距離相對較大[16]的概念,對K-means算法進行改進優化,使其選擇確定合適的初始聚類中心,減少缺陷造成的影響,以獲取預計的理想效果。
回歸分析是變量間相互依賴的定量關系的一種分析方法。假設e為某個聚類的聚類中心,那么它的局部簇密度ai相對而言是比較大的;同時在簇范圍內,也應該具有較大的歐氏距離bi,可以對對象計算其局部簇密度ai和歐氏距離bi,那么具有較大ai和bi的對象e即為數據集的聚類中心。基于上述特點,提出改進的K-means算法,其計算流程如下。
步驟1:用式(6)對數據進行標準化預處理,消除不同量綱對屬性造成的影響:
(6)
式中,Hnorm為歸一化后的數據;u為原始數據;umax,umin為對應原始數據集的最大值和最小值。
步驟2:將數據標準化之后,分別采用式(7)和式(8)計算歐氏距離bij和局部簇密度ai:
(7)
式中ui和uj分別為處理后的對象數據。
(8)
式中,ε為截斷距離;X(x)中的x即bij-ε;X為x的總集。
步驟3:通過式(9)計算得到簇范圍中所有數據之間的平均歐式距離A-bij,它可以衡量一個數據所在簇的緊密度,值越小,表示所在集合越緊密。通過對比排除明顯異常點,降低誤差:
(9)
步驟5:將得到的擬合值與實際值按式(10)進行標準化處理得到標準化殘差C:
(10)
式中,bsi為實際觀察值;bni為擬合值;σ為C對應的標準差。
步驟6:依據統計學原理,若某個數據點的標準化殘差C∈(-2, 2),則將該數據點視作潛在點,所以選取∣C∣≥2的數據作為輸出結果,即為所需的聚類中心。改進的K-means算法流程圖如圖3所示。

圖3 改進K-means算法流程圖
2.2.2裂縫標識處理
數學形態學是以結構元素為基礎對圖像進行數學分析的工具。在數學分析過程中,利用具有一定形態結構的結構元素度量和提取圖像中的對應形狀,進一步達到對圖像識別和分析的目的,在圖像的處理過程中,有4種數學形態學的基本運算:膨脹、腐蝕、開運算、閉運算。圖像腐蝕能通過選取不同尺寸大小的結構元素,在圖像中去掉不同大小的物體;膨脹操作則能夠填充物體內部的孔洞[17]。假設結構元A對圖像B進行先膨脹后腐蝕的閉預算操作,能夠在平滑邊界的同時不改變其面積大小,膨脹、腐蝕的原理及操作定義如下[18]:
(1)膨脹使目標區域范圍“變大”,用來填補目標區域中的某些空洞及消除區域中的小顆粒噪聲。結構A對B的膨脹操作從數學上可以式(11)表達:
B⊕A={x,y|(A)xy∩B≠?}。
(11)
(2)腐蝕使目標區域范圍“變小”,通過收縮目標區域的邊界來消除小且無意義的目標物,從而避免這些目標物形成噪聲,對裂縫提取的完整性和有效性產生不必要的影響。式(12)定義了數學方法上結構A對B的腐蝕操作:
B?A={x,y|(A)xy?B}。
(12)
初步處理之后再進行形態學深入處理。采用連通區域標記分析二值圖像,讓單獨的連通區域連接成1個被標識的塊,用以獲取輪廓、外接矩形等幾何參數。令P是1個像素集,如果P中的全部像素之間存在1條通路,則認為像素在P中是連通的。對于P中的任何像素Pk,P中連通到該像素的像素集稱為P的連通分量。假定Q為1個適合的結構元,采用式(13)限制P的范圍:
Pk=(Pk-1⊕Q)∩P(k=1, 2, 3,…)。
(13)
界定P的范圍后,可用式(14)計算裂縫的寬度:
Xx=2sx/lx(x∈[1,n]),
(14)
式中,x為真實裂縫;Xx為裂縫寬度計算值;sx為真實裂縫x的面積;lx為周長。
考慮到圖像中可能存在雜質噪聲的影響,通常在剔除異常寬度后,取裂縫中前3個數值的平均值作為裂縫寬度的值。計算出的裂縫寬度為像素單位,按照式(15)將其換算為物理單位:
Y=KX,
(15)
式中,Y為物理寬度;X為像素寬度;K為換算系數,可按式(16)[19]求得:
(16)
式中,t為像平面到目標物之間的距離;f為焦距;kcmos為傳感器像素尺寸,是采樣相機的固定參數。
武漢市某橋為上承式三跨連續拱橋組合體系,跨徑組合(20+38+20) m,橋梁寬40 m,全橋長度為84 m,其橋梁結構簡圖如圖4所示。本研究于該橋結構健康檢測工程期間,采用自持設備采集橋面及橋底不同背景條件下的混凝土圖像數據集。共采集裂縫圖像600張,其中580張裂縫圖像用于圖像分類模型的訓練、驗證,余下20張圖像則用于圖像分類模型的測試。由于采集的原始圖像尺寸很大,為便于模型的訓練,將圖像按256×256像素裁剪框規格對圖像集進行裁剪后,制備獲得數量為15 000張的樣本數據集。

圖4 采樣實例結構(單位: cm)
在圖像樣本數據集中選取8 000張,將其隨機組合成4組,通過觀察卷積神經網絡訓練與驗證過程中的準確率,觀察裂縫識別網絡的效果,判斷超參數設置是否合理。表1列出了4組數據的訓練與驗證的準確率。
由表1可知,4組數據的訓練準確率均大于98.50%,驗證平均準確率約為98.60%,且數據的準確率變化幅度較小,這可以證明裂縫識別模型具有較好的魯棒性。
將用于圖像分類模型測試的20張裂縫圖像分為兩組,用 256×256規格的像素框裁剪之后進行測

表1 裂縫圖像訓練結果(單位:%)
試,選取其中1組的結果進行統計展示,測試結果統計如表2所示。

表2 裂縫圖像測試結果
從表2統計的數據來看,用于測試的10張裂縫圖像的識別精確率及召回率的走勢較為穩定,依據式(1)~(2),得到精確率的值大概為0.94,召回率大概為0.941。對于精確率和召回率的調和均值F1-measure,用式(4)計算得出的綜合評價指標為93.8%,相較于傳統數據而言得到了提升。證明了模型可以較好地完成圖像分類任務。
從分類出的圖像中選擇1張帶裂縫的圖像,其原圖像在進行灰度分析后得出灰度直方圖。以式(6)對原圖像進行預處理,得到預處理后的圖像。

圖5 圖像預處理
對圖像做預處理之后繼續進行形態學初步處理,將灰度圖像去噪后進行膨脹步驟,之后經過再去噪與腐蝕,最后以式(13)進行標識。初步處理圖像及標識后圖像如圖6、圖7所示。

圖6 圖像初步處理

圖7 裂縫標記
圖7中標識寬度存在7個值,剔除異常值后計算的平均裂縫寬度為5。由于圖像采集所用的設備配備約2 420萬像素Exmor R CMOS背照式影像傳感器,經過式(16)計算得出對應圖像裂縫寬度約為0.6 mm。
在裂縫骨架提取方面,本研究所用的圖像處理方法在提取效果上得到了提升。下面將用基于迭代法全局閾值分割、普通K-means、以及本研究的改進K-means 3種方法的圖像裂縫提取結果進行效果對比。由于部分圖像噪聲太多,標識之后影響視覺觀察效果,故只選取分割處理步驟完畢的圖像來對比不同裂縫樣本來展示處理效果,獲得結果如圖8所示。

圖8 處理效果對比
圖8表明,采用迭代法全局閾值分割的圖像中,最終分割效果圖存在較多噪聲,對進一步進行的目標標識測量會產生較大阻礙。普通K-means分割方法較迭代法全局閾值分割而言,其分割效果得到了一定的提升,但仍不足以滿足目標標識測量的要求。同前面兩種方法相比,運用改進K-means算法處理提取的裂縫圖像所包含噪聲更少,裂縫骨架提取更為完整,效果得到了較大的提升。同時改進K-means算法在裂縫提取效果提升的基礎上,還增強了效率,減少了程序處理所耗費的時間。迭代法全局閾值分割處理單張圖像耗時約1.8 s,用普通K-means分割方法需要約1.6 s,而用改進K-means分割方法處理單張圖像所需的平均時間減少到了0.3 s。
從圖像數據集中提取存在諸如表層脫落(圖9(a))、污漬苔蘚(圖9(b))等噪聲情況下的裂縫圖像,驗證本研究方法對復雜場景下混凝土表面裂縫識別寬度的有效性。

圖9 處理效果
從圖9中可以看出, 采用本研究所用方法,對于背景復雜的裂縫圖像,裂縫骨架在排除環境噪聲影響的同時得到了較為完整的提取,證明了本研究所用方法圖像裂縫提取的效率及可用性。
表3列舉的是采用各方法計算圖9中各圖裂縫寬度結果的均值。可以看出,相較用于對比的兩種方法,本研究所采取改進K-means方法計算出的結果誤差更小,更接近于裂縫檢測儀所獲得的數據,這印證了相對于其他兩種方法,本研究所采用方法具備更好的效果。
(1) 經過圖像數據集的訓練,本研究裂縫圖像測試的綜合評價指標達到了93.8%,相較于傳統數據,該圖像分類模型效果良好,具有較好的準確率及魯棒性。
(2) 本研究對傳統普通K-means算法在初始聚類中心的確定處進行了改進,提升了裂縫提取功能的效率、完整性及圖像裂縫的識別速度,對于單張裂縫圖像,進行裂縫識別所需的時間推進至約 0.3 s,經過計算以得出圖像裂縫的寬度數值。
(3) 相較于文中對比方法,本研究在裂縫識別的通用性和效果上有較大的提升。對于存在青苔、污漬等不利復雜背景因素的裂縫圖像,基本實現了裂縫骨架的少噪聲完整提取。但在周圍背景與裂縫色差相差不大時,裂縫周圍的噪聲可能會對細微裂縫的提取產生干擾,最終影響整體的提取效果,對此仍需進一步的深入研究。