冉 蓉,徐興華,邱少華,崔小鵬,歐陽斌
海軍工程大學 艦船綜合電力技術國防科技重點實驗室,武漢430033
隨著社會經濟的發展,建筑物、橋梁、道路和鐵路等民用基礎設施的規模越來越龐大,保持良好的運行狀態對于公共安全至關重要。而裂紋是威脅民用基礎設施安全運行的重要因素之一,見圖1[1]和圖2。及時準確地檢測出裂紋的萌生及擴展情況,可以有效避免重大災難性事故的發生[2]。因此,裂紋檢測在經濟、交通、建筑、船舶等領域均有重要的應用價值。

圖1 混凝土表面裂紋
裂紋根據其出現材料位置的不同,可分為表面裂紋和內部裂紋,本文主要聚焦表面裂紋的檢測方法。早期表面裂紋檢測的主要手段是靠人眼識別,該方法受視覺分辨力的限制,受外界環境影響較大,容易因視覺疲勞導致效率低、精度低的問題;此外,由于檢測人員個人主觀經驗存在差異性,很難形成一個客觀統一的檢測標準。隨后,類似于聲學、光學、射線等傳統無損檢測方法的應用和各種檢測器件的更新升級推動了檢測精度和檢測速度的相對提高[3]。這些檢測方法雖然涉及了民用基礎設施的各個領域,并在各自的待檢測對象上具備獨特的優勢,但大多數檢測方法的應用還是符合特定檢測條件的前提下所進行的人為操作。這些方法均只能判斷裂紋的有無,無法對裂紋進行定性地分類以及測量[4]。計算機視覺技術通過相機等傳感器設備非接觸式地采集物體表面的圖像并進行自動化地分析處理,具有精確性高、非接觸性、靈活性、成本低等優點,在裂紋檢測領域得到越來越廣泛的應用[5]。王凡等人[6]采用基于數學形態學與圖像融合的方法解決了板帶鋼裂紋檢測的問題;Chambon 等人[7]利用計算機視覺的方法解決了道路裂紋的自動檢測與評估問題;2017年,同濟大學研制出一套隧道檢測系統MTI-100[8],此系統使用圖像處理技術實現了在移動中對裂紋的定位與檢測,但其還需要一定的人工輔助。上述方法雖然在裂紋檢測方面取得了顯著的效果,但是設計特征提取器依賴于豐富的先驗知識,針對特定的裂紋檢測問題需要進行特定的處理與設計,具有特征構造復雜和通用性差等問題。一旦檢測的圖像與環境發生變化,其檢測效果亦會隨之下降[9]。
自2006年Hinton等人[10]在Science上發表深度學習相關論文以來,深度學習技術得到了深入的研究,為解決上述問題提供了新的思路。相較于傳統機器學習算法而言,深度學習具有更強大的特征學習和特征表達能力,在計算機視覺領域的大規模復雜識別任務中表現更為出色[11]。在過去幾年中,許多國內外學者已經將深度學習,特別是深度卷積神經網絡(Deep Convolutional Neural Networks,DCNN)的方法應用于裂紋檢測領域中。Soukup 等人[12]將卷積神經網絡應用于金屬表面裂紋檢測;郭亞萍等人[13]利用SegNet網絡實現了對工件表面裂紋的檢測;Deng 等人[14]提出了CNN 與基于變分模式相結合的裂紋檢測方法,解決了電纜早期裂紋檢測問題。本文對裂紋檢測方法進行了綜述,著重探討了基于深度學習,特別是DCNN 的裂紋檢測方法,分析了現存問題及未來可能的研究方向。

圖2 鋼材表面裂紋
由于裂紋通常是因外界應力或環境作用導致材料內部疲勞,進而在表面產生的細縫、裂隙、斷裂等。根據其產生本質的不同,可分為熱裂紋、冷裂紋、層狀撕裂及應力腐蝕裂紋等。在實際應用場景中,根據裂紋產生部位和宏觀特征的不同,采用的物理檢測手段也多種多樣,例如:超聲波、渦流檢測、散斑干涉和射線檢測等[15-24],如表1所示。
蘇忠高[25]等人利用超聲波時距檢測法實現了對混凝土結構內部深度單一的裂紋的檢測,并發現傳感器與被檢測物表面耦合情況、檢測人員對傳感器按壓力度等因素會影響檢測結果;與此同時,一種用于檢測鋼板結合處的不可見裂紋的超聲波鋼板裂紋檢測方法被Li等人[26]提出,此法解決了檢測范圍受到限制的問題。2015年,Liu 等人[27]利用了雙光束空間載波數字散斑干涉技術實現了零件表面和內部形變的同時測量,但由于粗糙表面的條紋圖案會產生與裂紋相似的散斑噪聲的原因,導致粗糙表面裂紋的檢測精度較低;為此2018 年Vincitorio 等人[28]提出了一種無透鏡傅里葉數字全息干涉技術的光學裂紋檢測方法,利用非均勻熱載荷代替均勻熱載荷作為激勵源,克服了在展開相位圖中無法觀察到干涉條紋位移的問題,有效改善了粗糙表面裂紋檢測的檢測精度。而在電磁學中,Priewald 等人[29]利用基于有限元件非線性正向模型和高斯-牛頓優化算法的閉環偽逆法,實現了對任意形狀裂紋的二維重構,但此法的實現效果依賴于高精度的漏磁檢測器;隨后Cheng 等人[30]提供了脈沖渦流熱成像的表面裂紋檢測方法,能使用簡單設備在短時間內檢測相對較寬區域的裂紋。2020年,眭霄翔等人[23]提出了基于鏡面反射的紅外無損檢測技術,通過鏡面反射擴大檢測范圍,解決了實際工程中因紅外無損檢測設備而導致的檢測不可達問題,但相比于紅外直接檢測,利用鏡面反射的間接檢測因熱激勵能量傳播路徑較遠和兩次反射的特點,導致熱激勵能量和紅外輻射損失,使得其檢測精度低于常規的紅外無損檢測技術。
上述方法均是利用物質的物理性質進行表面裂紋檢測,其中大部分方法已經發展成熟,能實現較好的檢測效果,但同時也存在各自的缺點。由表1 可以看出,人工目視的方法適用范圍廣,但其檢測完全依賴于檢測人員的主觀判斷,沒有客觀統一的檢測標準;電磁渦流法、微波檢測、滲透檢測、磁感應法屬于靜態檢測法,需要被檢測物處于相對靜止狀態,并且對檢測環境要求比較苛刻,實時性較差,這些缺點導致靜態檢測在工業生產中不易得到推廣;射線檢測利用射線的穿透能力檢測物體的缺陷,其對面積型的缺陷(具有二維尺寸或第三維尺寸極小的缺陷,例如裂紋)檢測效果不佳,且射線本身對人體有害,不宜頻繁使用;紅外檢測、超聲檢測的檢測設備體積較大,操作過程繁雜,在實際應用過程中易出現無法接近被檢測物的情況,導致檢測無法進行。

表1 裂紋檢測物理手段
近年來,隨著計算機視覺技術的深入研究,其設備成本低、檢測速度快、檢測精度高、適用范圍廣等優勢日益突出,應用于裂紋檢測領域可大幅度減少設備成本、提高檢測精度、加快檢測速度。國內外許多企業、科研機構和高校也已將計算機視覺技術應用到表面裂紋檢測領域中,例如路面的裂紋檢測[31]、鐵軌的日常檢測[32]、航空行業中飛機板件的裂紋檢測[19]等。目前在計算機視覺技術領域,主要的方法有基于圖像處理的方法、基于機器學習的方法以及基于深度卷積神經網絡的方法三大類。基于圖像處理的裂紋檢測方法主要是對圖像進行閾值分割、特征提取等操作實現裂紋的識別、分割與檢測[31]。基于機器學習的裂紋檢測方法則是使用算法使計算機能夠自動學習或發現圖像數據中裂紋特征實現裂紋的檢測[33]。基于深度卷積神經網絡的裂紋檢測方法是利用卷積神經網絡構建適合于裂紋檢測的深度模型[34],此類方法是本綜述的重點方法,故在第4 章對其單獨進行詳細介紹。下面對計算機視覺技術中基于圖像處理和基于機器學習的方法進行介紹與分析。
基于圖像處理的方法可分為閾值分割、邊緣檢測和區域生長等。基于圖像處理的裂紋檢測方法通常可以分為三步[35]。第一步是圖像的獲取與預處理部分。所謂預處理,就是為了消除圖像其本身存在的缺陷對檢測結果的影響而采取的圖像增強、去噪、濾波、復原、直方圖分析等操作;第二步是邊緣檢測和閾值分割,提取圖像的特征信息,這也是整個檢測算法的關鍵,其處理效果直接影響算法最后的檢測精度;第三步就是圖像后處理部分,確定裂紋位置和形態,如圖3所示。

圖3 基于圖像處理的裂紋檢測方法步驟
2018 年,李慧嫻[36]提出的雙重閾值法,使用了雙邊濾波平滑圖像背景噪聲和保留部分邊界信息,同時利用局部灰度差突出細節部分的邊界信息,實現了對微小類陶瓷元件端面裂紋的檢測,在一定程度上解決了傳統閾值方法無法將細小且灰度不均勻裂紋與背景有效分離的問題。針對道路裂紋檢測中因道路標記在灰度圖像中的值較大而影響閾值選擇的問題,Peng等人[37]提出小于等于閾值T 的灰度值不改變的改進Otsu閾值分割算法去除道路圖像中的標記,再利用自適應迭代法對去除標記后的圖像進行分割,得到裂紋圖像。Xu 等人[38]對經典Canny迭代法中的濾波參數選擇進行改進,利用最小方差作為測量濾波參數的常數因子,并結合各窗口均值的倒數,提高信噪比,消除噪聲,有效提高了混凝土橋梁裂紋的檢測精度。Oliveri等人[39]提出了將3D矩量法與貝葉斯壓縮感測求解器結合使用的檢測方法,用于檢測各向異性材料的裂紋,但此法因涉及相關逆的離散化問題,給檢測帶來了巨大的計算量。而Yang等人[40]提出了一種新的混凝土裂紋檢測圖像分析方法,此法能檢測出比暗線更細的裂紋,減少了手工標記裂紋的需要,但此法是對基于邊緣的裂紋檢測方法的補充,不宜單獨使用。
將圖像處理技術融合到裂紋檢測中具有諸多優勢:
(1)完全非接觸,也就是圖像傳感器無需與被檢測工件發生接觸就可獲取到檢測所需的圖像,完全解決了因工件位置的原因而無法檢測的問題。
(2)檢測速度快,容易實現實時檢測,在確定最優檢測算法之后,剩下大部分操作均可由計算機實現自動化控制,減少了檢測過程中所需花費的人力。
(3)成本低廉,隨著科技的高速發展,相機和計算機已經實現大范圍的普及,對于一般的裂紋檢測,家用照相機和計算機即可實現,無需另外準備其他儀器。
但基于圖像處理技術的裂紋檢測方法也存在缺點:
(1)可移植性不強。基于圖像處理技術的表面裂紋檢測方法需要對圖像進行預處理、分析理解等操作,提取特征并最終實現對表面裂紋的識別與分類。被檢測物體不同,其圖像特征亦不同,因而在實現表面裂紋檢測過程中,往往需要針對特定的圖像特點設計專門的裂紋檢測算法。在實際應用中,基于圖像處理的表面裂紋檢測方法可移植性不高。
(2)提取的特征信息有限。傳統圖像處理技術只能夠提取較為底層的視覺特征,如梯度等信息,對裂紋本身結構的高層語義特征提取能力較差,因為也難以有效應對不同類型、不同紋理背景下的裂紋對象。
傳統機器學習的主要任務[41]是從已有的大量數據中通過學習找出其內含的規律和模式,然后對新數據做出預測。一般根據處理的數據是否存在標注,將機器學習分為監督學習和無監督學習兩大類。
2.2.1 監督學習方法
監督學習是從已標注好的數據集中學習得到一個參數模型,當輸入一個新的數據時,可以根據得到的參數模型預測其結果。因為裂紋特征和形式的多樣性,大部分國內外學者將裂紋檢測的重點放在監督學習上,而理論研究和算法研究都集中于監督學習的特征提取、特征選擇和分類器設計三個方面[3]。目前在裂紋檢測領域中應用最為廣泛的監督學習方法主要是支持向量機[42](Support Vector Machine,SVM)、人工神經網絡[43](Artificial Neural Network,ANN)和決策樹[44]等。
Hittawe 等人[45]提出的木材裂紋檢測方法使用了紋理特征與梯度特征相結合的方法創建了基于詞袋模型的字典,利用字典對特征進行量化,統計圖像中視覺單詞出現的頻率,得到圖像視覺單詞直方圖,將該直方圖作為輸入特征向量,用于后續SVM的分類操作。Martins等人[46]提出了一種基于人工神經網絡的軋鋼裂紋檢測系統,其檢測精度達到了98%左右,但是此法的普適性較低,其人工神經網絡中的參數是根據軋鋼裂紋的特點而進行設置,在應用于其他類型裂紋時,需對參數進行調試;Fernandez等人[47]采用了決策樹啟發式算法對裂紋圖像進行分類,實現了在模擬高速情況下對裂紋進行檢測,但此項工作均是在模擬環境中進行,尚未集成到真實系統中;而Shi等[48]人提出的CrackForest模型,采用隨機森林對包含來自多層次的顏色、梯度信息的整合通道特征重新定義的標記進行處理,同時將利用標記的統計特征提出的裂紋描述子與分類算法相結合,從而減少噪聲對裂紋檢測精度的影響。
監督學習方法根據設定的監督模型,利用數據集對模型參數不斷進行調整以達到更優的裂紋檢測精度。總體來說,優點可以總結如下:(1)有效解決了非線性情況下檢測精度不高的問題;(2)對樣本數量的需求不高。其存在的缺點可以概括為以下兩個方面。
(1)最終模型效果很大部分依賴于樣本質量。此法最終分類器顯示的分類效果取決于訓練所選取的樣本。
(2)模型容易出現過擬合的現象,尤其是在樣本特征比較多的情況下。
2.2.2 無監督學習方法
無監督學習是直接利用沒有標注的樣本數據,從中學習樣本之間的相似性并對其進行分類。在缺乏足夠先驗知識或人工標注數據所需成本過高時,無監督學習的方法能夠產生很好的效果[3]。其中比較常用的Kmeans 算法主要是通過設定不同類別的核心或初始類核,依據樣本與核心間的相似性度量將樣本組劃分為不同類別;而類似于人工種群算法則是根據設定的閾值將圖像中框有目標信息局部窗口的中心像素不斷地與連通鄰域內的像素進行比較,直至滿足設定的亮度、尺寸等條件。
Zou 等人[49]提出了一種基于無監督分類的Crack-Tree自動路面裂紋檢測方法,利用張量投票技術和構造最小生成樹的方法解決了裂紋強度不勻的問題,但仍存在部分與陰影強度相似的裂紋會被作為陰影處理的情況;為了消除陰影對檢測的影響,Ju等人[50]提出了基于光照補償模型和K-means聚類算法的路面裂紋檢測方法,實現了陰影部分的準確去除,使得其檢測精度達到了93.5%,但此法中K 值(所期望的聚類簇個數)的選取直接影響檢測結果的好壞,導致其更換被檢測工件后可能會出現檢測精度大幅度下降的情況。Li 等人[51]于2017年提出了一種基于改進的C-V 模型與Canny 迭代算子相結合的混凝土表面裂紋檢測方法,能準確測量出裂紋大小及位置,具有良好的檢測效果,但由于每次迭代后符號距離函數需重新初始化,導致其運算復雜耗時。
對于基于無監督學習的裂紋檢測方法,其顯著優勢在于無需大量人力制作樣本標簽,可直接從無標簽的樣本中進行學習,但其精確度和有效性劣于監督學習,而且此類方法也存在一些不足:
(1)漏檢和誤檢現象比較嚴重。無監督學習中最典型的方法是聚類,其通常采取的聚類方法屬于非概率模型的硬分類方法,例如K-means 聚類和層次聚類,此類方法相當于決策函數,輸入數據后得到唯一判決結果。將其應用于裂紋檢測問題,結果只有是和不是裂紋兩類結果。但事實上,在裂紋檢測中,這種硬分類方法,對于一些在邊角處的裂紋和一些不清楚的裂紋,易出現漏檢情況;對于一些類似于裂紋的污漬等噪聲易誤檢為裂紋,將會導致大量漏檢和誤檢情況的出現[52]。針對這種情況,可以通過采用基于概率模型的高斯混合模型聚類方法對裂紋存在與否進行判斷[53]。應用于裂紋檢測問題中,輸出的概率值對應的是有裂紋和無裂紋的概率大小,若兩者概率相差較大,可直接確定大概率的作為判決對象,反之則將其視為候選裂紋塊,可對其采取進一步分析判斷。
(2)參數的選擇直接影響其性能。在采用了Kmeans 聚類算法的裂紋檢測方法[50,54]中,最為核心的兩個參數K 值(所期望的聚類簇個數)和means(每個聚類簇的質心),其中means的值是隨機初始化,然后通過最小范數原則調整直至質心收斂;而K 值為事先設定,其值的選定與數據集本身和所選取的特征有關,會直接影響算法的聚類效果,目前針對于K 值的選取使用較多的方法就是肘部法則和間隔統計量法。
深度學習(Deep Learning)是機器學習的分支,由于深度學習領域近十年來發展迅速,也相繼提出一些特有的具有代表性的算法,例如卷積神經網絡等,因此本文將深度學習看成一種與傳統機器學習不同的學習方法。因為深度學習具有很強的特征學習能力和特征表達能力,使其已經逐漸取代機器學習算法成為裂紋檢測領域的主流方法[55]。由于在裂紋檢測領域中使用深度學習的方法大部分都是基于深度卷積神經網絡,故本文只討論深度卷積神經網絡,其他方法不加贅述。
深度卷積神經網絡是一種專門用來處理類似網絡結構的數據神經網絡[56],例如在時間軸上有規律地采樣的一維時間序列網絡和可以看作二維像素網格的圖像數據。CNN 由多層神經網絡組成,每層又由擁有多個獨立神經元的眾多二維平面所組成,其本質就是一種從輸入到輸出的映射,它依靠網絡自身學習大量輸入與輸出之間的映射關系,不需要任何精確的數學表達式。CNN 可以自動地提取圖像中不同層次的特征,再根據這些特征進行分類或者識別等任務,具有高度的抽象性和概括性,可以更好地反映數據的本質。
DCNN 采用了稀疏連接和參數共享的思想。與傳統每一個輸出特征圖與每一個輸入特征圖都產生連接的神經網絡不同,稀疏連接使得每一個輸出特征圖只與上一層特征圖的鄰近區域相關。而參數共享是指在一個模型的多個函數中使用相同的參數,即每次遍歷整幅輸入圖像僅需一個卷積核,這樣不僅大大減少了存儲的參數數目,提高了運算效率,也使得卷積神經網絡具有了平移不變性的特點。
DCNN一般由輸入層、卷積層、池化層、全連接層和輸出層構成。經典卷積神經網絡LeNet 結構如圖4 所示。其中,卷積層進行卷積運算,相當于圖像處理中的“濾波器運算”,主要負責特征提取操作;而池化層是縮小長、高方向上的空間的運算,根據圖像局部相關性的原理,選取輸入特征圖的一個小區域,對圖像進行特征池化(以最大值或平均值的方式),減少模型的計算量,使網絡具有一定的抗噪能力。最后全連接層的作用是對提取的特征進行分類,根據任務的不同輸出最終結果(概率)。
2012 年,Krizhevsky 等人[57]提出了包含5 個卷積層(卷積+非線性激活+最大池化層)與3 個全連接層的AlexNet 網絡模型,此網絡首次使用線性整流函數(Rectified Linear Unit,ReLU)解決了梯度發散問題,并提出在全連接層中使用Dropout 方法避免模型過擬合。2014 年,VGGNet[58]出現,其包含了深度從11 層到19 層不等的網絡模型,比較常用的是VGG16 和VGG19,所有模型結構均采用5 組卷積層和3 個全連接層以及softmax輸出層,所不同的是5組卷積層中包含的級聯卷積層越來越多,此模型的提出驗證了深度的增加有利于分類準確度的提升。同年,GoogLeNet[59]基于“網絡中網絡”[60]的思想提出了Inception 結構,此結構實現了使用稠密組件近似替代最優局部系數結構。在Inception 結構中使用大量1×1 的卷積核,大大減少了參數數目,提高了模型的訓練速度和推廣能力。此外,模型中加入2個輔助分類器用于向前傳導梯度,有效減輕了梯度消失現象。2015年,ResNet[61]引入了直接將輸入信息繞道傳到輸出的思想,將直接學習目標值轉變為學習輸入值與輸出值的殘差。此模型采用這種skip connection 結構在某種程度上解決了信息丟失和耗損的問題,也簡化了學習目標與難度。
近年來,隨著計算機硬件和深度學習算法的不斷發展,深度卷積神經網絡在圖像分類、目標檢測、圖像分割等計算機視覺任務中取得了巨大的成功。以深度卷積神經網絡為代表的許多方法均已應用于表面裂紋檢測領域,根據這些方法處理表面裂紋檢測問題方式的不同,可分為三類:基于圖像分類的方法(image classificationbased methods)、基于目標檢測的方法(object detectionbased methods)、基于像素級分割的方法(pixel-level segmentation-based methods)。

圖4 經典卷積神經網絡LeNet結構示意圖
圖像分類的任務就是對輸入圖像進行分析后返回一個將輸入圖像分類好的標簽,其大致流程如圖5所示。

圖5 圖像分類流程
將此類方法應用于裂紋檢測中,實質是將裂紋檢測問題當作二分類問題,輸出圖像是否包含裂紋的標簽,具體過程是將輸入圖像劃分為很多塊,對塊圖像進行分類,如果塊圖像中包含一定數量的裂紋像素,則會返回是裂紋圖像的標簽,如圖6所示[55]。

圖6 基于分類的裂紋檢測方法
2016 年,Zhang 等人[62]提出了一種使用4 個CONV層和2 個全連接層的卷積神經網絡結構的道路裂紋兩分類方法,此法對大尺寸的裂紋分類效果明顯,但小尺寸裂紋容易被消除。在文獻[63]中,一種基于GoogLeNet的深度卷積神經網絡被用于混凝土表面裂紋的檢測,此網絡能夠自動從輸入圖像中提取特征而不受噪聲的影響,具有較高的準確性和魯棒性,解決了對小尺寸裂紋不敏感的問題。為了排除路面上樹葉、標記線、污漬等物體的影響,Qu 等人[64]提出一種基于改進后的VGG16網絡模型的路面檢測方法,此模型主要采用了VGG16的前兩層模型,并結合Inception 模塊重置部分卷積和參數值,克服了VGG16 提取裂紋位置不準確的缺點,使其準確度比原先的模型提高了近30%。2019 年,王麗蘋等人[65]發表了一種基于AlexNet 網絡架構的裂紋檢測方法,此模型與原始AlexNet模型相比,在第一、二層進行池化操作后分別增添一次局部歸一化操作,并對超參數進行了重新設置,使得優化模型對彩色圖像的識別準確率高達98.5%,大幅度提高了裂紋檢測的工作效率。
基于圖像分類的方法應用于裂紋檢測領域,很好地解決了識別精度不高,圖像質量不好影響效果的問題。但此類方法只能做到有無裂紋的分類,無法對裂紋的形狀、大小及其位置等進行判斷,這在需要確定詳細裂紋的情況下無法使用。
目標檢測的任務是給定一幅圖像,判斷出圖像中是否包含目標,若包含則給出輸入圖像中目標的位置,通常使用矩形框表示。現主流的目標檢測算法可分為兩類:第一類是基于兩階段思想的檢測算法,即算法由兩階段完成,首先是提取候選區域,再對候選區域進行分類和更進一步的精確定位,例如fast R-CNN[66]、faster R-CNN[67]等;而基于單階段思想的檢測算法不需要提取候選區域階段,直接產生物體的類別概率和位置坐標值,只需要一次檢測就可得到最終的檢測結果,其檢測速度快,例如SSD[68](Single Shot MultiBox Detector)、YOLO[69](You Only Look Once)等。基于目標檢測的表面裂紋檢測方法是將裂紋作為目標對象,使用邊界框在圖像中對裂紋進行定位,示意圖如圖7[70]。

圖7 基于目標檢測的裂紋檢測方法
當前基于目標檢測的表面裂紋檢測方法中,效果最為突出的是基于Faster-RCNN 的方法和基于YOLO 的方法。Faster R-CNN算法應用于目標檢測主要分3步:(1)使用類似于VGGNet 的深度CNN 網絡模型提取特征;(2)提出目標的候選區域(RPN 層);(3)對目標類型進行分類并確定邊界框的坐標位置。而SSD 算法是直接利用具有不同分辨率卷積層的多個特征圖,對輸入圖像進行檢測,并將分類結果和坐標位置封裝在一個網絡中。YOLO 系列算法則是利用一個大小合適的M×N的網格覆蓋在輸入圖像中,再分別對每個小網格中的內容進行標注。此算法是單次卷積實現,小網格之間共享了大部分計算步驟,使得此算法的檢測效率高且運行速度快。
Suh和Cha[71]于2018年提出了一種基于faster R-CNN的多類型裂紋檢測方法,使用ZF-net[72]替代了faster R-CNN 原始結構中的VGGNet,加快了特征提取的速度,并對此進行測試,結果表明,魯棒性更佳的faster R-CNN 基本可實現多種類型裂紋的實時檢測與定位。2019 年,文獻[73]從實際應用出發,介紹了一種更加有效且相對便宜的檢測方法,使用改進后的faster R-CNN模型對6 種裂紋實現了平均精度高到96.3%的實時檢測。而Mandal等人[74]在2018年提出了一種基于YOLO V2 網絡架構的自動路面檢測分析系統,但此法的檢測精度有待提高。針對裂紋檢測實時性差以及精度不高的問題,文獻[70]中提出了一種基于YOLO V3 網絡架構的裂紋檢測方法,此法在多尺度預測、基本分類網絡和分類器上做出了改進,使得其準確度達到了88%,基本達到了民用基礎設施監控的要求。除此之外,YOLO網絡架構模型還可以應用于鐵路軌道此類小目標裂紋的檢測中,Li等人[75]利用改進后的YOLO有效提高了軌道裂紋的檢測精度和實時檢測速度,解決了軌道裂紋難以定位的難題。
相較于基于圖像分類的方法,基于目標檢測的表面裂紋檢測方法的識別精度和粒度大幅度提高。但裂紋的大小及紋理等重要信息仍然無法從生成的邊界框中得到。
像素級分割是對輸入圖像中的每個像素點都劃分相對應的類別,此法既可對目標進行分類,又可得到目標的精確位置和結構。將此法應用于裂紋檢測領域中,是對輸入圖像中的每個像素點分配標簽,既可判斷有無裂紋,又可獲得重要的裂紋特征,如圖像中裂紋的位置、大小、形狀等信息。類似于FCN[76]、U-Net[77]、Seg-Net[78]模型均可用于像素級的分割,相比于傳統圖像分割方法無需任何的預處理操作,其檢測效果示例圖如圖8所示[79]。

圖8 基于像素級的裂紋檢測方法
FCN能接受任意尺寸的輸入圖像,并且通過反卷積層輸出與原始圖像尺寸一致的圖像,在保留了輸入圖像空間信息的同時,也對每一個像素點都進行了預測和分類。U-Net是一種改進的全卷積神經網絡模型,一開始應用于醫學圖像處理領域,近些年,在橋梁裂紋[80]、道路裂紋[81]上也被廣泛使用。Seg-Net模型采用的是編碼器和解碼器組成的對稱結構,此結構對細節特征更加敏感,降低了誤分類的概率,提高了裂紋的檢測精度。此類方法的特點是網絡架構由卷積層組成,實現了像素級的分割且對輸入圖像尺寸無要求。
2018 年,Cheng 等人[81]提出了一種基于深度卷積神經網絡U-Net的自動道路裂紋檢測方法,在兩個道路裂紋數據集中測試該方法,像素級分割精度達到92%。文獻[82]對比了用于自動路面裂紋檢測系統的三種不同深度的U-Net算法,其目的是驗證深度越大的模型架構是否一定能獲得更好的檢測精度。實驗證明,選擇深度合適的網絡架構既可保證檢測精度又能提高檢測速度。在Islam等人[83]的文章中提出了一種使用深度卷積神經網絡的混凝土裂紋檢測方法,它由具有編碼器和解碼器框架的全卷積神經網絡組成,其在混凝土公開數據集中的測試結果表明,此方法對混凝土裂紋檢測非常有效。文獻[84]中也設計了一種帶有基于VGG16 的編碼器的整個編碼器-解碼器FCN 網絡,此法能夠更加準確地檢測出裂紋并評估出裂紋密度。
基于像素級分割的裂紋檢測方法能夠預測原始圖像中每個像素的類別。由于其通常不采用全連接層,因此對輸入圖像尺寸沒有任何要求。此類方法會預先設定一個固定尺寸的感受野,當小于感受野尺寸的目標裂紋出現時,會產生誤分類和錯誤標記的現象,從而使得小目標裂紋的局部信息丟失。在復雜背景下,與裂紋相似的偽目標會被誤分類為裂紋也是一個不可避免的問題。此外,該類方法需要大量像素級標注的樣本,因此需要耗費大量人力物力完成收集樣本和標注工作。
在背景紋理較復雜,噪聲干擾大且分布無規律的表面裂紋檢測情況下,基于圖像分類的檢測方法和基于目標檢測的方法由于存在全連接層,容易出現卷積層與全連接層之間存在的維度跨越過大導致局部細節特征丟失[3];針對背景紋理較復雜,噪聲干擾大且分布無規律的裂紋圖像,李良福等人[85]提出的與滑動窗口算法相結合的基于卷積神經網絡的DBCC(Deep Bridge Crack Classify)模型,用于橋梁背景面元和橋梁裂紋面元的識別,通過添加局部響應值歸一層和概率區分閾值,在一定程度上減小了圖像亮度不均勻和噪聲所帶來的誤檢與漏檢問題。此外,充分利用深度殘差網絡加深網絡結構有利于輔助基于目標檢測的卷積神經網絡模型檢測具有強噪聲干擾的裂紋圖像。孫朝云等人[86]提出通過使用深度殘差網絡對SSD 卷積神經網絡模型的特征提取網絡結構VGG16 進行改進并加深網絡層次的方式,引入擬合殘差映射代替原始映射,相比于原始模型,通過使用深度殘差網絡后的模型對噪聲干擾大的路面裂紋圖像的檢測效果有所提升,裂紋檢測準確率上升了10%。
在基于深度卷積神經網絡的表面裂紋檢測算法設計及驗證過程中,數據集的數量及質量起著至關重要的作用。目前,在表面裂紋檢測領域中,被廣泛使用的公開數據集較少,大部分是由一些大型算法比賽中組委會、部分研究人員提供,表2 總結了部分研究中使用較多的公開數據集。
隨著深度卷積神經網絡在表面裂紋檢測領域的廣泛應用,其在實際應用中存在的一些問題也逐漸突顯出來。

表2 表面裂紋檢測常用公開數據集簡介
(1)缺少有標記的、數量龐大的數據集。深度卷積神經網絡利用大體量數據集以監督的方式通過卷積運算提取和學習圖像特征,再利用反向傳播最小化訓練集上的分類誤差,共同優化網絡參數,最終實現裂紋的提取[98]。故深度卷積神經網絡的性能與數據集的大小有直接關系。在裂紋檢測算法的實際工業應用中,由于部分場景本身存在的裂紋數目少、裂紋數據標注工作量極大的原因,導致已有數據集數量偏少,很難有效支撐深度卷積神經網絡的訓練。
(2)對細微裂紋的檢測能力還有待提高。早期細微裂紋尺寸很小,視覺特征較弱,與背景之間對比度低,導致收集到的裂紋圖像信息少。然而早期表面裂紋檢測的實際應用意義更加重大,常規的深度卷積神經網絡算法很難有效地將所有細微裂紋及時檢出,容易出現誤檢和漏檢的情況。
(3)實際應用中的實時檢測問題。在應用中裂紋檢測的實時性更關注于模型推理這一環節。相比于傳統圖像處理或機器學習算法,現有深度卷積神經網絡的方法大多采用全卷積操作,計算量較大,需要足夠的硬件資源作為支撐,難以適應內存小、計算能力弱、通信寬帶低的實際應用場景對實時性的要求。
針對基于深度卷積神經網絡的表面裂紋檢測方法所存在的問題,可以從以下幾個角度進行突破:
(1)樣本量不足的問題。可從以下三方面解決。第一,利用傳統圖像處理方法對已存在的裂紋圖像進行數據擴增。對原始裂紋圖像采用鏡像、旋轉、平移、扭曲、濾波、對比度調整等圖像處理的方法來獲取更多的樣本,還可通過將單獨裂紋融合疊加到正常無裂紋圖像樣本中生成全新的裂紋圖像樣本。第二,利用遷移學習(Transfer Learning)[99]彌補樣本不足所帶來的局部最優解和過擬合等缺點。在裂紋檢測領域中,由于大多數圖像特征具有相關性,遷移學習可將深度卷積神經網絡在海量數據集上訓練得到的模型進行遷移,使用在具有一定相關性的具體裂紋檢測任務中,從而減少對樣本量的依賴,加快模型的學習效率。第三,使用自監督學習(self-supervised learning)的方法訓練樣本數據。其核心思想是輸入沒有人工標注的樣本數據,通過數據本身的結構或特性,由機器構造監督信息對網絡模型進行訓練。因此此法可以自動從無標記的裂紋樣本數據中產生標簽進行學習,完全無需人工參與,有效解決了樣本標記耗時和樣本量缺乏的問題。例如利用生成式對抗網絡模型[100-102](Generative Adversarial Networks,GAN)生成與訓練樣本數據分布類似的新數據,達到擴充數據集的目的。
(2)細微裂紋檢測能力不足的問題。細微裂紋檢測能力不足的問題。細微裂紋本身固有的低分辨率、所占像素比少的特性使其在檢測中能夠提取到的有效信息數量有限,這是造成細微裂紋檢測精度低的根本原因。對于目前常用的裂紋檢測模型而言,通常采用下采樣操作增大感受野并對特征進行降維以便縮小特征圖[72],但由于細微裂紋邊緣信息模糊且語義信息少,易導致細微裂紋信息丟失而不利于細微裂紋的定位。針對此問題,可采取多尺度特征融合的方法,將淺層網絡的細節信息與深層網絡的語義信息相結合,對細微裂紋進行準確地定位,以此提高細微裂紋的檢測精度。針對細微裂紋拓撲連接的特點,可通過有針對性地設計裂紋檢測模型結構和損失函數設計,增強對低對比度細微裂紋的檢測能力。
(3)實時檢測的問題。對民用基礎設施進行實時檢測能及早發現裂紋,達到預警效果,避免造成經濟損失和人員傷亡,故實時檢測是裂紋檢測領域發展的必然趨勢。以后的研究可從網絡結構輕量化設計、模型壓縮、量化編碼等方面出發,設計體積小、計算資源要求低、檢測精度高的網絡模型,滿足手機或者嵌入式邊緣終端設備的實時裂紋檢測。一般地,可以采取模型壓縮的方法,使網絡在減少參數的同時降低網絡的計算復雜度,模型壓縮可通過模型剪枝、低秩分解等方法實現;也可采取將浮點型運算轉化為低比特的運算,減少計算復雜度。此外,還可以通過設計效率更高的輕量化卷積神經網絡計算方式實現在保持較高的檢測精度的同時,大幅度減少參數量、提升檢測速度。目前常用的輕量化模型主要有SqueezeNet[103]、MobileNet[104]和ShuffleNet[105],它們通過特殊的模型設計方法(如fire module、深度可分離卷積模塊等)達到減少特征圖的通道數和權值參數的目的。
深度卷積神經網絡已經成為表面裂紋檢測領域的主流技術。本文總結了裂紋檢測領域中常見的物理檢測方法,討論了這幾類檢測方法各自的應用領域、基本原理及其優缺點,并由此引出了基于計算機視覺的檢測方法,其中包含基于圖像處理技術、基于傳統機器學習和基于深度卷積神經網絡三類方法,闡述了它們各自的應用及優缺點,詳細介紹了基于深度卷積神經網絡的裂紋檢測方法,其中包括了基于圖像分類的方法、基于目標檢測的方法和基于像素級分割的方法。最后闡明了此法所存在的問題及其未來的發展方向。