王 月,金映谷,李 陽,楊亞寧
(大連民族大學 a.信息與通信工程學院;b.機電工程學院,遼寧 大連 116605)
混凝土表面裂紋是民用建筑的主要缺陷,這些缺陷對混凝土建筑結構的美觀性、持久性甚至安全性都帶來非常不利的影響。因此混凝土表面裂紋缺陷檢測在檢查建筑物健康方面起著重要作用。現階段,對于混凝土表面裂紋缺陷的檢測大多采用人工檢測方法,這種方法勞動強度大,消耗時間長,易造成工人的視覺疲勞,引起檢測誤差,不僅效率低、檢測準確率不高還會增加人力成本。
近年來,隨著深度學習、圖像處理技術的迅速發展,已有很多科研工作者對混凝土表面缺陷檢測進行了研究。王林林[1]提出了一種基于數字圖像處理技術的混凝土裂縫特征檢測與計算分析方法。首先對采集的圖像進行預處理,其次采用基于灰度圖二值化的閾值分割算法與Canny邊緣檢測方法進行處理,得到邊界曲線,使用像素計算方法計算裂縫寬度,對最大裂縫寬度和平均裂縫寬度的檢測精準度分別為95.81%和92.81%。劉鵬[2]提出了一種基于圖像處理的混凝土預制構件裂縫檢測系統。首先,對圖像進行預處理,減小外界環境因素對圖片檢測的影響;其次,采用改進脈沖耦合神經網絡(PCNN)對混凝土裂縫圖像進行分割,以裂縫的幾何形態特征為基礎對圖像中的裂縫進行識別并計算已識別裂縫的長度和平均寬度,實驗證明具有可行性。Manjurul Islam和Jong-Myon Kim[3]提出了一種基于機器視覺的深度卷積神經網絡裂縫自動檢測方法。將深度神經網絡和一個基于語義分割的編碼器與解碼器框架組成,從像素級別進行分類,實驗結果表明,該方法對混凝土裂縫分類非常有效,召回率和F1平均值均達到約92%。翟磊[4]等提出了一種基于深度學習的混凝土表面缺陷檢測方法。該方法采用兩段式學習網絡,第一部分提取圖像中像素級別的特征以完成對圖像的像素分割;第二部分對第一部分處理的圖像是否存在缺陷進行判斷,實驗證明,該方法分割準確率高,魯棒性強。上述方法取得了較好的缺陷檢測成果,但在檢測準確率方面仍有待提高。
隨著科研人員對卷積神經網絡的不斷研究,其應用范圍也越來越廣泛。為探索卷積神經網絡在建筑物檢測方面的應用,進一步提高檢測效率,本文提出了一種基于SqueezeNet的混凝土表面裂紋檢測方法,其利用SqueezeNet網絡模型訓練裂紋缺陷分類器,得到混凝土表面裂紋檢測模型,最終利用檢測模型對混凝土表面裂紋進行檢測。結果表明,該方法獲得了較高的準確率,極大的提高了檢測效率,為混凝土表面裂紋缺陷檢測的研究提供了一定的參考價值。
SqueezeNet是一種輕量級卷積神經網絡,該網絡結構的核心部分是Fire Module結構。Fire Module結構由Squeeze結構和Expand結構組成,如圖1。Squeeze結構采用s1×1個1×1卷積代替3×3卷積核對前一層輸出的特征映射進行卷積,從而降低特征維數,完成卷積后經過ReLU激活函數;Expand結構由e1×1個1×1卷積核和e3×3個3×3卷積核共同組成,將卷積的結果進行串聯實現擴展,完成卷積后再經過ReLU激活函數。Fire Module中應設置s1×1 圖1 Fire Module 本文網絡模型結構如圖2。主要由卷積層、池化層以及Fire Module層組成。網絡輸入層的混凝土圖像大小為224×224×3。每個卷積層連接ReLU激活函數,改進網絡模型的非線性特征;模型共堆疊8個Fire Module,每個Fire Module的參數設置見表1,且每個Fire Module內部先通過Squeeze減少通道數,再通過Expand增加通道數;在第一層、第四層以及第七層后連接降采樣的Max Pool,縮減尺寸;在Fire9 Module后,使用ratio大小為0.5的Dropout改善過擬合,接著的卷積層為上一層結果圖的每個像素預測分類得分;再使用一個Global Average Pool獲得結果圖得分,使用Softmax分類器歸一化為概率。 表1 各個Fire Module參數設置表 圖2 網絡模型結構 本文使用了來自中東技術大學[7]的各個校園建筑物的混凝土裂紋圖像的開源數據集進行分類。此數據集包含40 000張具有RGB通道的227×227像素的混凝土表面圖像,沒有應用隨機旋轉,翻轉或傾斜方面的數據增強。這些圖像被分為“裂紋”和“無裂紋”兩類,其中“無裂紋”數據集是指包含沒有任何裂紋的混凝土數據集,部分示例樣本如圖3。本文隨機選取數據集的70%作為訓練集,15%作為驗證集,15%作為測試集。 a)裂紋 b)無裂紋圖3 混凝土圖像示例 首先對數據集進行預處理,由于樣本數據集大小是227×227,而本文所用網絡輸入層圖像大小是224×224,因此需要將樣本圖片統一縮放至224×224。 本實驗的相關編程均在機器視覺軟件HALCON中進行,實驗環境配置見表2。 表2 環境配置 本文根據訓練的混凝土類型數據集設置Batchsize(批量傳輸至設備存儲器中的圖像數)為64,迭代200輪次;InitialLearningRate(初始學習率)為0.001,本文將學習率每50個周期縮小0.1;Momentum(將先前的更新矢量添加到當前更新矢量的程度)設置為0.9;Weightprior(應對訓練中存在的過擬合現象的正則化參數)為0.000 5。 設置模型超參數后,對混凝土圖像訓練集進行訓練。其中利用非線性優化算法將損失函數值最小化,利用隨機梯度下降算法進行優化,其會在迭代時將前一次迭代次數t的權重更新為新值,如式(1)。 (1) 式中:u表示動量;λ表示學習率;w表示網絡權重;f(x,w)表示根據w和輸入x所得出的分類結果;vt表示動量產生的影響。本文使用多項式邏輯損失作為損失函數如式(2)。 (2) 其中,yn為one-hot編碼目標向量[8],對包含N個圖像的批次x的第n個圖像xn的標簽進行編碼;正則項Eα(w)為加權的L2-范數,可以通過控制α來影響它。同時,本文獲取模型損失值并繪制損失曲線如圖4。在訓練和驗證集上對分類器進行評估,并繪制訓練和驗證的錯誤率曲線如圖5。曲線1表示訓練過程的誤差曲線,曲線2表示驗證過程的誤差曲線,曲線3表示學習率的變化。 從圖4可以看到,當模型迭代至110次時,損失函數基本不變,說明網絡已經收斂。在圖5中,可以看出該模型在迭代73次之后,誤差曲線趨于穩定,訓練效果較好。 圖4 損失函數曲線 圖5 訓練、驗證誤差曲線 本文將通過準確率(Accuracy)、召回率(Recall)、精確率(Precision)和F1值來評價訓練出的分類模型的有效性能,其計算公式見表3。 表3 評價指標計算公式 其中,TP(True Positive)表示正樣本被網絡模型正確的分類到該類別的樣本數量;FP(False Positive)表示負樣本被網絡模型錯誤分類為正樣本的數量;FN(False Negative)表示正樣本被網絡模型錯誤分類為負樣本的數量;TN(True Negative)表示負樣本被網絡模型正確分類到負樣本的數量。F1值表示網絡模型召回率與精確率的調和平均,是對召回率與精確率的綜合數值。 本文將測試集樣本應用到分類器中進行分類,部分分類結果如圖6。其中0表示NOTOK(裂紋),1表示OK(無裂紋),Ground truth class ID表示混凝土表面實際類別,Result class ID表示分類器檢測結果,Prediction表示檢測結果正確與否。 a)結果一 b)結果二 c)結果三 d)結果四圖6 測試集檢測結果 經過對測試集進行測試得到的模型混淆矩陣見表4。矩陣的每一行表示分類器的預測類別,每一列表示樣本的真實類別,通過3.1節模型性能評價指標能夠評定分類器的性能,計算出各類別的召回率、精確率、F1值和準確率見表5。 表4 模型混淆矩陣 表5 模型分類性能 由表5結果可知,本文所用分類器對混凝土裂紋缺陷檢測的準確率高達99.85%,且各個性能指標均在99.7%以上,單張平均檢測時間0.155 s,檢測效果較好。其中,對識別有誤的樣本分析可知,當混凝土表面有遮擋物(如樹葉等)干擾,裂紋較淺、較小時,可能會對模型識別造成影響,如圖6d所示的部分識別錯誤樣本。為進一步驗證本文算法的有效性,將本文算法同其他算法進行比較,結果見表6。 表6 性能F1比較結果 從表6結果可知,本文算法的F1值比CrackNet-T算法提升了0.011 7,較ResNet提升了0.014 2,較AlexNet提升了0.036 2,檢測效果較好。 本文針對混凝土表面裂紋檢測準確率不高,效率低的問題,提出一種基于SqueezeNet的混凝土表面裂紋缺陷檢測方法。該方法主要利用輕量級卷積神經網絡SqueezeNet模型訓練檢測分類器,實現了高準確率、高效率檢測混凝土表面裂紋缺陷的目的。實驗證明,該方法提高了檢測結果的可靠性和穩定性,檢測準確率高達99.85%,可以滿足混凝土表面裂紋的實際檢測需求。但該方法目前只能對混凝土表面是否存在裂紋缺陷進行檢測,后續將通過銳化、邊緣檢測、分割等技術對混凝土不同裂縫寬度的檢測進行研究。
1.2 模型構建


2 混凝土表面裂紋缺陷檢測
2.1 數據集及其預處理

2.2 環境搭建及超參數設置

2.3 訓練過程


3 實驗結果與分析
3.1 模型性能評價指標

3.2 結果分析







4 結 語