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