陶 顯 侯 偉 ,2 徐 德 ,2
表面缺陷檢測是機器視覺領域中非常重要的一項研究內容,也稱為AOI (Automated optical inspection)或ASI (Automated surface inspection),它是利用機器視覺設備獲取圖像來判斷采集圖像中是否存在缺陷的技術.目前,基于機器視覺的表面缺陷裝備已經在各工業領域廣泛替代人工肉眼檢測,包括3C、汽車、家電、機械制造、半導體及電子、化工、醫藥、航空航天、輕工等行業.傳統的基于機器視覺的表面缺陷檢測方法,往往采用常規圖像處理算法或人工設計特征加分類器方式.一般來說,通常利用被檢表面或缺陷的不同性質進行成像方案的設計,合理的成像方案有助于獲得光照均勻的圖像,并將物體表面缺陷明顯地體現出來.一種方式是針對被檢表面顏色選擇光源,例如文獻[1]中選擇復合白色光源成像彩色布匹表面缺陷.另一種常見的方式是依據被檢測表面反射性質選擇不同成像方案,主要包括明場成像、暗場成像和混合成像等.例如,Chen 等[2]針對金屬易拉罐凹凸底部的表面缺陷檢測,設計了兩個同心放置的圓錐環形明場光源,用于同時照亮易拉罐底部的中央和外圍區域.Tao等[3]采用了暗場成像對大口徑光學元件表面微弱劃痕進行檢測.雖然精心構造的成像方案能夠大大減輕經典檢測算法設計的難度,但也增加了檢測系統的應用成本.同時在很多開放式的工業環境下(如圖1(b)和圖1(d)所示的自然場景),期待設計的成像系統完全消除場景或者被檢材料等變化對檢測系統的影響,往往不太現實.在真實復雜的工業環境下,表面缺陷檢測往往面臨諸多挑戰,例如存在缺陷成像與背景差異小、對比度低、缺陷尺度變化大且類型多樣,缺陷圖像中存在大量噪聲,甚至缺陷在自然環境下成像存在大量干擾等情形,如圖1 所示,此時經典方法往往顯得束手無策,難以取得較好的檢測效果.

圖1 復雜工業環境下的表面缺陷圖像Fig.1 Images of surface defects in complex industrial environment ((a)Scratch image of dark field image of optical component;(b)Surface defect of building bridge;(c)Strip surface defect;(d)Unmanned aerial vehicle insulator defect)
近年來,隨著以卷積神經網絡(Convolutional neural network,CNN)為代表的深度學習模型在諸多計算機視覺(Computer vision,CV)領域成功應用,例如人臉識別、行人重識別、場景文字檢測、目標跟蹤和自動駕駛等,不少基于深度學習的缺陷檢測方法也廣泛應用在各種工業場景中,甚至國內外一些公司開發出多種基于深度學習的商用工業表面缺陷檢測軟件,如表1 所示.全球傳統工業視覺及其部件的市場規模在2025 年將達到192 億美元[4],其中中國占比約為30%,并保持14%的年度平均增長率,這一領域正在逐步被新一代基于深度學習的工業視覺技術替代.同時我國在 《中國制造2025》白皮書中提出“推廣采用先進成型和加工方法、在線檢測裝置、智能化生產和物流系統及檢測設備等,使重點實物產品的性能穩定性、質量可靠性、環境適應性、使用壽命等指標達到國際同類產品先進水平”.因此,基于深度學習的表面缺陷檢測方法不僅具有重要的學術研究價值,同時有著非常廣闊的市場應用前景.

表1 商用基于深度學習的缺陷檢測軟件Table 1 Commercial deep learning based defect detection software
鑒于目前國內還沒有全面細致論述基于深度學習表面缺陷檢測方法的綜述文獻,本文通過對2014 年~ 2019 年相關文獻進行歸納梳理,旨在幫助研究人員快速和系統地了解該領域相關方法與技術.本文內容安排如下:第1 節給出缺陷檢測問題的定義.第2 節重點對最近幾年相關方法進行詳細介紹、細分和對比.第3 節分析基于深度學習的表面缺陷檢測中三個關鍵問題.第4 節介紹工業領域公開的缺陷檢測數據集.最后,對未來可能的研究焦點和發展方向進行了展望.
1)缺陷的定義.在機器視覺任務中,缺陷傾向于是人類經驗上的概念,而不是一個純粹的數學定義.對缺陷模式認知的不同,會導致兩種截然不同的檢測手段.以布匹表面缺陷檢測為例,如圖2 所示,第1 種是有監督的方法,體現在利用標記了標簽(包括類別、矩形框或逐像素等)的缺陷圖像輸入到網絡中進行訓練.此時“缺陷”意味著標記過的區域或者圖像.因此,該方法更關注缺陷特征,例如在訓練階段將包含大片黑色范圍的區域或者圖像標記為“異色”缺陷用于網絡訓練.在測試階段,當布匹圖像中檢測到大片黑色的特征時,即認為出現了“異色”缺陷.第2 種是無監督的缺陷檢測方法,通常只需要正常無缺陷樣本進行網絡訓練,也稱為one-class learning.該方法更關注無缺陷(即正常樣本)特征,當缺陷檢測過程中發現未見過的特征(異常特征)時,即認為檢測出缺陷.此時“缺陷”意味著異常,因此該方法也稱作異常檢測(Anomaly detection).

圖2 缺陷檢測的問題定義Fig.2 Definition of defect detection problem
2)缺陷檢測的定義.對比計算機視覺中明確的分類、檢測和分割任務,缺陷檢測的需求非常籠統.實際上,其需求可以劃分為三個不同的層次,即“缺陷是什么”、“缺陷在哪里”和“缺陷是多少”.第1階段:“缺陷是什么”,對應計算機視覺中的分類任務,如圖2 中分類三種缺陷類別:異色、空洞和經線,這一階段的任務可以稱為“缺陷分類”,僅僅給出圖像的類別信息.第2 階段:“缺陷在哪里”,對應計算機視覺中的定位任務,這一階段的缺陷定位才是嚴格意義上的檢測.不僅獲取圖像中存在哪些類型的缺陷,而且也給出缺陷的具體位置,如圖2 中將異色缺陷用矩形框標記出來.第3 階段:“缺陷是多少”,對應計算機視覺中的分割任務,如圖2 中缺陷分割的區域所示,將缺陷逐像素從背景中分割出來,并能進一步得到缺陷的長度、面積、位置等等一系列信息,這些信息能輔助產品高一級的質量評估,例如優劣等級的判斷.雖然缺陷檢測的這三個階段的功能需求和目標不同,但實際上三個階段互相包含且能相互轉換.例如第2 階段“缺陷定位”包含第1 階段“缺陷分類”這一過程,第3 階段“缺陷分割”同時也能完成第2 階段“缺陷定位”.第1 階段“缺陷分類”也能通過一些方法實現第2 階段和第3階段的目標.因此,在后文中還是按照傳統工業習慣統稱為缺陷檢測,只是在針對不同網絡結構和目標功能時,才有所區分.
本節總結概述基于深度學習的表面缺陷檢測方法.如圖3 所示,依據數據標簽的不同,將其整體分為全監督學習模型、無監督學習模型和其他方法(半監督學習模型和弱監督學習模型).在全監督模型中,依據輸入圖像方式和損失函數的差異,分為基于表征學習和度量學習的方法.在表征學習中,根據網絡結構的不同可以進一步細分為分類網絡、檢測網絡和分割網絡.目前大量的研究工作都是著眼于全監督學習方向,但無監督學習同樣是一個值得研究的方向.從圖3 中可以看出,本文按照每類方法的處理特點又細分為若干種不同的子方法.

圖3 缺陷檢測方法框架圖Fig.3 Framework of defect detection methods
現階段大部分基于深度學習的表面缺陷檢測是基于有監督的表征學習方法.表征學習的本質是將缺陷檢測問題看作計算機視覺中的分類任務,包括粗粒度的圖像標簽分類或區域分類,以及最精細的像素分類.由于實現的目標與計算機視覺任務完全一致,因此基于表征學習的缺陷檢測方法可以看作是其相關經典網絡在工業領域的一個應用.
在真實的工業生產中,檢測對象形狀、尺寸、紋理、顏色、背景、布局和成像光照的巨大差異使復雜環境下的缺陷分類成為一項艱巨的任務.由于CNN強大的特征提取能力,采用基于CNN 的分類網絡目前已成為表面缺陷分類中最常用的模式.通常CNN分類網絡的特征提取部分由級聯的卷積層+pooling 層組成,后面連接全連接層(或average pooling 層)+softmax 結構用于分類.一般來說,現有表面缺陷分類的網絡常常采用計算機視覺中現成的網絡結構,包括AlexNet[5],VGG[6],GoogLeNet[7],ResNet[8],DenseNet[9],SENet[10],ShuffleNet[11],MobileNet[12]等.或者針對實際問題搭建簡易的網絡結構,通過輸入一幅測試圖像到分類網絡中,網絡輸出該圖像的類別和其類別的置信度.依據分類網絡方法實現任務的差異,我們將其細分為三個小類:直接利用網絡做分類、利用網絡做缺陷定位和利用網絡作為特征提取器.
1)直接利用網絡進行分類
直接利用分類網絡做缺陷的分類任務是CNN最早應用于表面缺陷檢測中常用的手段.根據研究工作的特點,可以進一步將其細分為原圖分類、定位感興趣區域(Region of interest,ROI)后分類和多類別分類三種.a)原圖分類.即直接將收集的完整缺陷圖像放入網絡進行學習訓練.2014 年,奧地利科技研究所[13]最早采集光度立體圖像訓練CNN網絡來實現軌道表面空洞缺陷分類,整個網絡共包含兩個卷積層和兩個池化層以及最后一個全連接層,在鋼軌表面數據集上最終達到的錯誤識別率為1.108%.Park 等[14]設計了一種簡易CNN 分類網絡,用于自動檢測表面零件上的污垢、劃痕、毛刺和磨損等缺陷.該方法在實驗缺陷數據集上的平均檢測正確率為98%,其檢測速度為5 285 樣本/min(圖像分辨率為32×32 像素).Kyeong 等[15]提出了一種卷積神經網絡框架對半導體行業的晶圓倉圖(Wafer bin map,WBM)中的混合類型缺陷模式進行分類.文獻[16]采用修改的VGG19 網絡用于識別300×300 分辨率的太陽能面板圖像缺陷,網絡的準確率達到88.42%,超過多種手工設計特征(包括KAZE[17]、SIFT (Scale-invariant feature transform)[18]、SURF (Speeded-up robust feature)[19])和支撐向量機(Support vector machine,SVM)方法的效果.Liang 等[20]提出了一種基于ShuffleNetV2網絡分類復雜背景下的瓶子噴墨碼缺陷,所提出的方法在塑料容器行業的在線噴墨碼檢測設備上獲得了99.88%的分類正確率.直接利用原圖分類的方法應用非常廣泛,可用于多個領域的缺陷分類,例如焊接缺陷分類[21]、聚合物鋰電池水泡缺陷的分類[22]和印刷電路板(Printed circuit board,PCB)缺陷的分類[23]等.b)定位ROI 后分類.這種分類方法在許多工業應用中較為常見.通常來說,針對獲取到的整幅圖像,人們常常只關注某個固定區域中是否存在缺陷,因此往往預先獲取到感興趣的區域(ROI),然后將ROI 輸入網絡進行缺陷類別的判斷.Shang 等[24]提出了一種兩階段的鐵軌缺陷識別算法,首先利用Canny 算子和直線擬合算法在整個原始圖像上對鐵軌區域進行裁剪.然后將裁剪的圖像放入Inception V3 網絡中提取特征以進行軌道圖像分類.文獻[25]中通過級聯的目標檢測網絡對高鐵接觸網螺栓區域進行獲取,然后將裁剪的螺栓圖像輸入到CNN 網絡中進行缺陷分類.Li 等[26]首先利用基于局部二值模式(Local binary pattern,LBP)特征的級聯目標檢測器實現掃描隧道顯微鏡成像材料待檢測區域定位,然后采用CNN 模型來獲取表面缺陷的具體類型.c)多類別分類.當待分類的缺陷類型超過兩類時,常規的缺陷分類網絡與原圖分類方法一樣,即網絡的輸出節點為缺陷類型的數目+1 (包括正常類別).但多類別分類方法往往先采用一個基礎網絡進行缺陷與正常樣本二分類,然后在同一個網絡上共享特征提取部分,修改或者增加缺陷類別的分類分支.通過該方式相當于給后續的多目標缺陷分類網絡準備了一個預訓練權重參數,這個權重參數通過正常樣本與缺陷樣本之間二分類訓練得到.Xie 等[27]首先訓練第1 個ND (normal-defective)-CNN 模型進行二分類(正常圖像和所有其他缺陷圖像),緩解了數據不平衡的問題.在訓練好ND-CNN 模型后,將輸出向量更改為6 維向量來訓練ID (interdefect)-CNN 模型,以使其適合于多類缺陷標簽問題.該模型在ND-CNN 權重的基礎上使用缺陷圖像進行微調,從而減少了樣本量需求并節省了訓練時間.Nagata 等[28]提出了一種seeNet (Net with SVMs to classify sample images)網絡,該網絡有兩個分類分支,第1 個二分類分支用來分類正常樣本和NG 樣本,網絡的模型采用AlexNet進行特征提取,其分類器采用SVM;第2 個分支用于7 類別的缺陷分類.多類別分類采用這種二分支結構,可以充分利用缺陷樣本與正常樣本數目不均衡的特點,挖掘兩者特征之間的差異.
2)利用網絡進行缺陷定位
一般認為,分類網絡只能完成圖像標簽級別的分類,實際上結合不同的技巧和方式,分類網絡也可以實現缺陷的定位與逐像素的分類.根據采用的手段不同,可進一步將其分為滑動窗口、熱力圖(heatmap)和多任務學習網絡三種形式.a)滑動窗口.是最簡單和直觀的實現缺陷粗定位的方法.一般工業表面缺陷檢測處理的圖像分辨率較大,通過較小尺寸的窗口在原始圖像上進行冗余滑動,將滑動窗口中的圖像輸入到分類網絡中進行缺陷識別.最后將所有的滑動窗口進行連接,即可獲得缺陷粗定位的結果.2017 年,Cha 等[29]最早采用基于滑動窗口的CNN 分類網絡實現了裂紋表面缺陷定位,兩種滑動窗口冗余路徑結合實現圖像全覆蓋,如圖4 所示,圖4(a)為滑動窗口路徑示意圖,圖4(b)為裂紋定位的結果圖.文獻[30-32]采用相同的方法應用于金屬表面裂紋、路面表面裂紋和城市建筑物表面缺陷定位.b)熱力圖(heatmap).是一種反映圖像中各區域重要性程度的圖像,顏色越深代表越重要.在缺陷檢測領域,熱力圖中顏色越深的區域代表其屬于缺陷的概率越大.2018 年,Ren 等[33]采用圖像分塊和特征遷移方式獲取每個分塊所對應屬于缺陷的置信度,并將其轉換為熱力圖.在熱力圖基礎上運用Otsu 法[34]和圖割算法進一步得到準確的缺陷輪廓區域.在計算機視覺領域,常采用CAM (Class activation mapping)[35]和Grad-CAM[36]方法獲得熱力圖,其本質上是通過加權特征圖,確定網絡模型是通過哪些像素作為依據來判斷輸入圖片所屬的類別.Lin 等[37]采用CAM 獲取熱力圖,并利用Otsu 二值化方法分割熱力圖,實現LED 燈圖像中劃痕或線缺陷的定位.Zhou 等[38]采用grad-CAM 方法獲取熱力圖,并采用Otsu算法分割得到表面缺陷的準確區域.c)多任務學習網絡.單純的分類網絡若不加入其他技巧,一般只能實現圖像級別的分類.因此,為了精細定位缺陷位置,往往設計的網絡會加上額外的分割分支,兩個分支共享特征提取的骨架(backbone)結果,這樣網絡一般有分類和分割兩個輸出,構成多任務學習網絡.它兼顧兩個網絡特點,對于分割網絡分支,圖像中每個像素都能被當作訓練樣本來訓練網絡.因此,多任務學習網絡不僅利用分割分支輸出缺陷具體的分割結果,而且可以大大減少分類網絡對樣本的需求.Racki 等[39]設計了一個緊湊的一體化多任務CNN 結構用于表面缺陷的分割和分類.所提出的網絡在各種表面紋理缺陷數據集DAGM 2007上取得了最好的效果.Tabernik 等[40]也提出了一個融合分類和分割分支的多任務缺陷檢測網絡,整個網絡只用了50 幅1 408×512 分辨率的缺陷圖像進行訓練,取得的缺陷準確識別率超過了商業Cognex ViDi Suite 軟件.

圖4 基于滑動窗口的裂紋定位Fig.4 Crack location based on sliding window
3)利用網絡做特征提取器
在早期基于深度學習的缺陷分類方法中,不少文獻利用CNN 特征提取的強大功能,先將圖像輸入到預訓練網絡中獲取圖像表征特征,再將獲取的特征輸入到常規的機器學習分類器(例如SVM等)中進行分類.例如Zhao 等[41]采用CNN對電力航拍絕緣子圖像塊進行特征抽取,將特征輸入到SVM 中進行二分類,同時作者還比較了從不同全連接層抽取特征分類效果的差異.Malekzadeh 等[42]采用由VGG-DNN 中的fc6 層的輸出作為特征,輸入到SVM 中實現飛機表面缺陷分類,缺陷分類精度達到96%以上.
綜上,基于分類網絡的方法在實際應用中非常廣泛,同時,不同的子方法本身也各有其自身優劣,具體如表2 所示.

表2 分類網絡各子方法優缺點對比Table 2 Comparison of advantages and disadvantages of each sub-method of classification network
目標定位是計算機視覺領域中最基本的任務之一,同時它也是與傳統意義上缺陷檢測最接近的任務,其目的是獲得目標精準的位置和類別信息.目前,基于深度學習的目標檢測方法層出不窮,一般來說,基于深度學習的缺陷檢測網絡從結構上可以劃分為:以Faster R-CNN (Region-CNN)[43]為代表的兩階段(Two stage)網絡和以SSD (Single shout multibax detector)[44]或YOLO (You only look once)[45]為代表的一階段(One stage)網絡.兩者的主要差異在于兩階段網絡需要首先生成可能包含缺陷的候選框(Proposal),然后再進一步進行目標檢測.一階段網絡則直接利用網絡中提取的特征來預測缺陷的位置和類別.
1)基于兩階段的缺陷檢測網絡
兩階段檢測網絡(Faster R-CNN)的基本流程是首先通過Backbone 網絡獲取輸入圖像的特征圖,利用區域生成網絡(Region proposal network,RPN)計算錨框(anchor box)置信度,獲取Proposal 區域.然后對Proposal 區域的特征圖進行ROIpooling 后輸入網絡,通過對初步檢測結果進行精細調整,最終得到缺陷的定位和類別結果.因此,針對缺陷檢測的特點,常用方法往往針對Backbone 結構或其特征圖、錨框比例、ROIpooling和損失函數等方面進行改進.2018 年,Cha 等[46]最早將Faster R-CNN 直接應用在橋梁表面缺陷定位,其Backbone 網絡被替換為ZF-net,在包含2 366 幅500×375 像素大小的5 類橋梁建筑數據集中,其mAP(Mean average precision)值達到87.8%.Zhong 等[47]提出了一種基于三階段PVANET++的部件缺陷定位系統,用于高速鐵路的懸鏈支撐裝置—開口銷的松動和缺失檢測,PVANET++是一個改進版的Faster R-CNN,相比于原版Faster R-CNN,在最高層特征圖進行Proposal 提取,其改進點在于將低層兩組特征圖進行降采樣與高層特征圖上采樣后聯結形成新的超特征圖用于Proposal 提取.另外,作者采用了54 個不同比例的錨框,而不是原始的9 個錨框.2020 年,Tao 等[48]設計了一個兩階段的Faster R-CNN 網絡用于無人機電力巡檢中絕緣子缺陷定位,第1 階段用于自然場景下的絕緣子區域定位;第2 階段實現絕緣子區域中的缺陷定位.Xue 等[49]基于改進的Faster R-CNN 實現盾構隧道中襯砌缺陷的檢測,其Backbone 采用改進的Inception 全卷積網絡得到特征圖,同時增加兩個錨框比例,使用位置敏感ROIpooling 替代傳統的ROIpooling,所提出模型在單幅圖像48 ms 的測試時間速度下,實現了檢測精度超過95%.Ding 等[50]提出了一種針對PCB 表面缺陷檢測網絡(TDD (Ting defect detection)-Net),該方法通過使用K 均值聚類設計合理的錨框大小;其次引入多尺度金字塔網絡(Feature pyramid networks,FPN)到Faster RCNN 中,加強了來自底層結構信息的融合,使得網絡適應微小的缺陷檢測.最后,考慮到小數據集和樣本不平衡的特點,在訓練階段采用了在線困難樣本挖掘(Online hard example mining,OHEM)技術.該方法在PCB 缺陷數據集上達到了98.90%的mAP.He 等[51]提出了基于Faster R-CNN 的帶鋼表面缺陷檢測網絡,該網絡的改進在于將Backbone 中多級特征圖組合為一個多尺度特征圖.在缺陷檢測數據集NEU-DET 上,提出的方法在采用ResNet-50 的Backbone 下實現了82.3%的mAP.利用Faster R-CNN 的檢測方法也廣泛應用在隧道[52]、液晶面板偏振片表面[53]、熱成像絕緣子缺陷[54]、鋁型材表面[55]和輪胎輪轂[56]等缺陷檢測領域.
2)基于單階段的缺陷檢測網絡
單階段檢測網絡分為SSD和YOLO 兩種,兩者都是利用整幅圖作為網絡的輸入,直接在輸出層回歸邊界框(Bounding box)的位置及其所屬的類別.SSD 的特點在于引入了特征金字塔檢測方式,從不同尺度的特征圖中預測目標位置與類別.它使用6 個不同特征圖檢測不同尺度的目標,一般底層特征圖用于預測小目標,高層特征圖預測大目標.Chen 等[25]采用改進的SSD 網絡進行接觸網支撐裝置上的緊固件缺陷區域定位,其主要改進部分在于采用不同層的特征圖進行目標檢測.Li 等[57]提出了一種基于MobileNet-SSD 的灌裝生產線容器密封表面缺陷檢測方法,通過MobileNet 優化了SSD的Backbone 結構,以簡化檢測模型參數.Liu 等[58]同樣采用基于MobileNet-SSD 網絡來定位高鐵接觸網支撐組部件,相比于原始SSD 網絡,其改進點在于:1)采用 MobileNet 為Backbone;2)只使用4 個不同的特征圖來加速目標檢測.在測試的數據集上,其目標達到25 幀/s 的檢測速度和94.3%的mAP.Zhang 等[59]采用最新YOLOv3 版本應用于橋梁表面缺陷定位,相比于原始YOLOv3 網絡,引入了預訓練權重、批再規范化(Batch renormalization)和Focal loss,進一步提高了缺陷檢測率.
隨著計算機視覺中目標檢測網絡的發展,相信在今后會有越來越多新的檢測模型應用于表面缺陷檢測中.綜上,在現階段追求檢測速度的缺陷檢測領域中,基于一階段的模型應用較多,在強調檢測精度的缺陷檢測領域中,基于兩階段的模型采用較多.
分割網絡將表面缺陷檢測任務轉化為缺陷與正常區域的語義分割甚至實例分割問題,它不但能精細分割出缺陷區域,而且可以獲取缺陷的位置、類別以及相應的幾何屬性(包括長度、寬度、面積、輪廓、中心等).按照分割功能的區別,其大致可以分為:全卷積神經網絡 (Fully convolutional networks,FCN)[60]方法和Mask R-CNN[61]方法.
1)FCN 方法
FCN 是圖像語義分割的基礎,目前幾乎所有的語義分割模型都是基于FCN.FCN 首先利用卷積操作對輸入圖像進行特征提取和編碼,然后再通過反卷積操作或上采樣將特征圖逐漸恢復到輸入圖像尺寸大小.依據FCN 網絡結構的差異,其缺陷分割方法可以進一步細分為常規FCN、Unet[62]和SegNet[63]三種方法.a)常規FCN 方法.Wang 等[64]提出一種基于FCN 的輪胎X 射線圖像缺陷分割方法,相比于原始FCN 方法,該方法通過融合多尺度采樣層的特征圖來細化分割輪胎圖像中的缺陷.Yu 等[65]提出了一個基于FCN 的兩階段表面缺陷分割模型,第1 階段采用一個輕量級的FCN 快速獲取粗略缺陷區域,然后,第1 階段的輸出作為第2 階段FCN 的輸入用于細化缺陷分割結果,該方法在公共數據集DAGM2007上取得了95.9934%的平均像素準確率.Dung 等[66]采用基于VGG16 編碼器的FCN 網絡對混凝土表面裂縫進行分割,其平均像素準確率達到90%.b)Unet 方法.Unet 不僅是一種經典的FCN 結構,同時也是典型的編碼器—解碼器(Encoder-decoder)結構.它的特點在于引入了跳層連接,將編碼階段的特征圖與解碼階段的特征圖進行融合,有利于分割細節的恢復.Huang 等[67]提出了一個MCuePush Unet 的模型用于磁瓦表面缺陷的顯著性檢測.其Unet 網絡的輸入為MCue 模塊生成三通道圖像,包括一個顯著性圖像和兩個原始圖像.Li 等[68]提出了一種基于改進Unet 網絡的混凝土結構表面缺陷分割方法.在編碼器采用Dense Block 模塊,同時跳層連接沒有采用原始的Concat 操作,而是逐像素求和.該方法在包含2 750 幅圖像(504 × 376 像素)4 種缺陷的混凝土結構數據庫上取得了91.59%的平均像素準確率和84.53%的平均交并比(Intersection over union,IoU).Liu 等[69]提出了一種基于ResNet 模塊的Unet 分割網絡,用于TFT-LCD (Thin film transistor liquid crystal display)制造過程中導電顆粒的檢測.c)SegNet 方法.它也是一種經典的編碼器—解碼器結構.其特點在于解碼器中的上采樣操作利用了編碼器中最大池化操作的索引.Dong 等[70]提出的FL-SegNet 方法將原始的SegNet 網絡與Focal loss 損失函數進行結合應用于分割隧道襯砌中的多種缺陷.Roberts 等[71]設計了一種基于SegNet 的網絡,用于掃描隧道顯微鏡成像下材料晶體缺陷的語義分割.在少量高質量的鋼缺陷圖像上三種缺陷的像素分類正確率為:位錯為91.60±1.77%,沉淀物為93.39±1.00%,空隙為98.85±0.56%.Zou 等[72]在SegNet 的編碼器—解碼器體系結構上構建DeepCrack 網絡,用于地面裂紋檢測.在該模型中,將分層卷積階段學習的多尺度深度卷積特征融合在一起,以捕獲精細的裂紋結構.Deep-Crack 在三個具有挑戰性的數據集上獲得了平均87%以上的F 值.
目前,基于深度學習的分割網絡還在不斷地提出,例如,LinkNet[73]、DeepLabv3[74]、PSPNet[75]等.很多最新模型中的模塊,例如空洞卷積[76-77]和金字塔Pooling[78]也被添加到FCN 框架中,廣泛應用于各種場景的缺陷分割.近年來,生成對抗網絡(Generative adversarial network,GAN[79])在計算機視覺領域得到廣泛應用,常常用來生成圖像.GAN由生成器和判別器模型構成.在結合GAN 的缺陷分割方法中,生成器往往直接采用FCN 網絡,判別器通過分類模型來區分生成器的結果和Groundtruth,通過生成器和判別器的不斷博弈,讓生成器的輸出結果逐漸接近Groundtruth.結合GAN 的分割方法已經用于在手機蓋板玻璃信號孔缺陷分割[80]和道路裂紋缺陷分割[81]中.
2)Mask R-CNN 方法
Mask R-CNN 是目前最常用的圖像實例分割方法之一,可以看作是一種基于檢測和分割網絡相結合的多任務學習方法.當多個同類型缺陷存在粘連或重疊時,實例分割能將單個缺陷進行分離并進一步統計缺陷數目,然而語義分割往往將多個同類型缺陷當作整體進行處理.目前大部分文獻都是直接將Mask R-CNN 框架應用于缺陷分割,例如路面缺陷分割[82]、工業制造缺陷[83]、螺栓緊固件缺陷[84]和皮革表面缺陷[85].
相比分類和檢測網絡方法,分割方法在缺陷信息獲取上有其優勢.但與檢測網絡一樣,需要大量的標注數據,其標注信息是逐像素,因此往往需花費大量的標注精力和成本.
度量學習是使用深度學習直接學習輸入的相似性度量.在缺陷分類任務中,往往采用孿生網絡(Siamese network)進行度量學習.不同于表征學習輸入單幅圖像轉化為分類任務,孿生網絡的輸入通常為兩幅或多幅成對圖像,通過網絡學習出輸入圖片的相似度,判斷其是否屬于同一類.孿生網絡損失函數的核心思想是讓相似的輸入距離盡可能小,不同類別的輸入距離盡可能大.
一般原始孿生網絡的輸入是兩幅成對的圖像,網絡的“連體”是通過共享權值來實現的.Kim 等[86]設計了一個基于CNN 結構的孿生網絡對鋼表面缺陷圖像進行分類,首先將兩幅圖像輸入到共享權值的CNN 中完成特征提取,然后利用基于相似度函數的對比損失計算兩個特征之間的差異程度.在NEU 鋼表面缺陷數據集[51]上,該方法只通過5 幅和10 幅少量樣本圖像進行網絡學習,在9 種缺陷類別上網絡的分類準確度分別為85.1%和86.5%.Wu 等[87]提出了一種基于孿生網絡的相似度度量方法來分類紐扣缺陷.網絡設計了新的損失函數用于自動特征提取和樣本的相似性度量,所提出的方法在包括凹痕、裂紋、污點、孔洞、凹凸不平等多種缺陷的紐扣數據集上進行了評估,達到的分類精度為98%.Liu 等[88]基于改進的孿生網絡對大型緊固件缺陷進行同時定位和缺陷分類.其孿生網絡后接兩個分支:第1 個分支利用對比損失來實現緊固件定位;第2 個分支采用softmax 損失對緊固件缺陷進行分類.在測試的數據集上,緊固件定位的平均檢測率達到99.36%,緊固件分類的平均檢測率達到92.69%.Staar 等[89]將原始的孿生網絡擴展為Triplet 網絡,它具有三個輸入,包括兩個相同類別和一個不同類別,其原理與孿生網絡一致.除了缺陷分類,孿生網絡也能用于缺陷定位與檢測.Tang等[90]提出了一個基于深度學習模型的PCB 缺陷檢測模型,模型的前端將無缺陷的正常樣本和有缺陷的圖像對輸入到孿生網絡后進行特征差分,將差分結果采用群組金字塔合并模塊進行缺陷定位.在DeepPCB 數據集上,該方法以62 幀/s 達到98.6%的mAP.Liu 等[91]將孿生網絡輸出的特征圖與其他子網絡輸出的結果進行特征融合來提高缺陷目標的顯著性.
度量學習可以近似看作為學習樣本在特征空間進行聚類;表征學習可以近似看作為學習樣本在特征空間的分界面.相比于表征學習,度量學習的方法應用在表面缺陷定位中不太多,目前大部分都是應用在缺陷分類任務中.在缺陷定位方面,輸入孿生網絡的圖像對需要具有統一的內容形式,要求比較嚴格,現階段還無法適應復雜的工業環境.
目前,最常用于表面缺陷檢測的無監督學習模型是基于正常樣本學習的方法.由于只需要正常無缺陷樣本進行網絡訓練,該方法也常稱為One-class learning.正常樣本學習的網絡只接受正常(無缺陷)樣本進行訓練,使得其具備強大的正常樣本分布的重建和判別能力.因此,當網絡輸入的樣本存在缺陷時,往往會產生與正常樣本不同的結果.相比于有監督學習模型,它能夠檢測到偏離預期的模式或沒有見過的模式,這些模式都可以稱為缺陷或者異常.依據處理空間的不同,本文將該缺陷檢測方法分為基于圖像空間和特征空間兩種.通常該方法采用的網絡模型為自編碼器(Autoencoder,AE)和GAN.
基于圖像空間的方法是在圖像空間上對缺陷進行檢測.因此,該方法不僅能實現圖像級別的分類和識別,也可以獲取到缺陷的具體位置.該方法常用的手段主要有以下兩種.
1)利用網絡實現樣本重建與補全.其原理類似去噪編碼器,當輸入任意樣本圖像到網絡中,都可以得到其重建后對應的正常(無缺陷)樣本,因此,網絡可以看作具備自動修復或者補全缺陷區域的能力.用輸入圖像分別減去這些重建或修復圖像可以獲得殘差圖像,這些殘差圖像也稱為重建誤差.它能作為判斷待檢測樣本是否異常的指標.當重建誤差過大時,可以認為輸入圖像存在缺陷,差異過大的區域即為缺陷區域.當重建誤差很小時,即認為輸入圖像是正常樣本.Mei 等[92]通過使用卷積自編碼器網絡在不同的高斯金字塔等級上重建圖像子塊,并合成來自這些不同分辨率通道的重建結果,其網絡的重建誤差采用均方誤差(mean-square error,MSE)損失.該方法在多個數據集上取得了相比傳統圖像處理方法好的效果.Haselmann 等[93]設計了一個基于全卷積的自動編碼器網絡,基于正樣本圖像補全和重建的誤差實現裝飾性塑料零件表面缺陷檢測.Kang 等[94]設計了一個深度去噪編碼器,基于其重建誤差來檢測絕緣子圖像中的缺陷,其重建損失采用L2 損失.Youkachen 等[95]使用卷積自動編碼器(Convolutional autoencoder,CAE)用于圖像重建,通過銳化處理重建誤差獲取最終的熱軋帶鋼表面缺陷分割結果,其重建誤差采用MSE.Zhao 等[96]利用GAN和CAE 實現表面缺陷圖像的重建,該方法將輸入圖像和重建圖像輸入到LBP算法處理后再做差.Bergmann 等[97]首次將傳統圖像處理中的結構相似度(Structural similarity,SSIM)指標作為重建損失,引入到基于自動編碼器的圖像重建中,實驗結果表明相比于傳統L2 損失,SSIM損失能大幅提高表面缺陷檢測的效果.Yang 等[98]提出了一種基于無監督多尺度特征聚類的全卷積自動編碼器(Multi-scale feature-clustering-based fully convolutional autoencoder,MS-FCAE)方法,
該方法利用處于不同比例等級的多個FCAE 子網來重建若干紋理背景圖像.為了最大程度地提高效率和編碼特征圖的判別能力,每個FCAE 子網采用全卷積神經網絡和特征聚類方法,所提出的MSFCAE 方法在多個紋理表面檢測數據集上進行了評估,缺陷檢測精度達到92.0%.
2)利用網絡實現異常區域分類.這類網絡通常采用GAN 的判別器.該方法原理是訓練生成對抗網絡GAN 以生成類似于正常表面圖像的偽圖像,這意味著訓練好的GAN 可以在潛在特征空間中很好地學習正常樣本圖像.因此,GAN 的判別器可以自然地用作分類器,用于分類缺陷和正常樣本.Zhai 等[99]采用多尺度融合策略融合GAN 鑒別器的三個卷積層的響應,然后利用Otsu 方法在融合特征響應圖上進一步分割出缺陷位置.該方法與文獻[33]的原理類似,但是利用了正常樣本進行訓練,且其網絡模型是GAN 的判別器.Hu 等[100]提出了一種基于深度卷積生成對抗網絡(Deep convolutional GAN,DCGAN)的自動檢測織物缺陷的新型無監督方法.該模型包括兩個部分:第1 部分利用模型中GAN 的判別器生成一個缺陷分布似然圖,其中每個像素值都表示該位置出現缺陷的概率;第2 部分通過引入編碼器到標準DCGAN,實現重檢測圖像的重建.當從原始圖像中減去重建圖像時,可以創建殘差圖以突出顯示潛在的缺陷區域.聯合殘差圖和似然圖以形成增強的融合圖.在融合圖上采用閾值分割算法進一步獲取準確的缺陷位置,該方法在各種真實紡織物樣品上進行了評估和驗證.
基于特征空間的方法是在特征空間中,通過正常樣本與缺陷樣本特征分布之間的差異來進行缺陷檢測.特征之間的差異也稱為異常分數,當異常分數高于某個值時,即可認為出現缺陷.2017 年,Schlegl 等[101]最早提出了深度卷積生成對抗網絡AnoGAN,實現檢測圖像從圖像空間到潛在空間的映射,其異常分數由圖像空間中的差異和GAN 網絡中判別器最后一層特征圖之間的差異來計算.Lai 等[102]基于上述映射方法,在潛在空間中直接采用Fréchet 距離來實現缺陷與正常樣本的區分,在太陽能面板數據集上取得了93.75%的分類正確率.Soukup 等[103]采用變分自編碼器(Variational autoencoder,VAE)網絡在潛在空間中實現缺陷檢測.Liu 等[104]設計了一個基于GAN和單類分類器(One-class classifier)的表面缺陷分類模型,GAN中生成器G 采用編碼解碼器,其編碼得到隱空間的特征輸入到SVM 分類器中進行缺陷分類,提出的方法在鋼材表面多缺陷數據集上獲得的平均分類精度為94%.2019 年,Schlegl 等[105]針對之前的AnoGAN 工作提出了改進f-AnoGAN,其異常分數由引入編碼器模塊實現的圖像樣本重建損失和GAN 網絡中判別器最后一層特征圖之間的差異來計算.Akcay 等[106]提出了一種GANomaly 用于圖像異常檢測,該模型的創新點在于引入了編碼解碼和再編碼模塊.其異常分數由三個部分組成:圖像樣本重建差異和GAN 網絡中判別器最后一層特征圖之間的差異,以及編碼器隱空間的特征與再編碼后的特征之間的差異.雖然文獻[101,105-106]應用對象不是表面缺陷,但是其方法完全適用于表面缺陷檢測.傳統上認為基于特征空間的方法往往只能實現圖像級別的分類或識別,無法獲取像素級別的缺陷位置,實際上,通過AE和GAN 模塊也能實現與圖像空間檢測方法類似的缺陷精確定位.
綜上,目前基于正常樣本學習方法常用于簡單統一的紋理表面缺陷檢測,在復雜的工業檢測環境下,相比于監督學習的方法,其檢測效果還不太理想.
相對于全監督和無監督的方法,目前弱監督和半監督方法在表面缺陷檢測中的應用相對較少.
通常基于弱監督的方法是指采用圖像級別類別標注(弱標簽)來獲取分割/定位級別的檢測效果.Marino 等[107]采用一種基于峰值響應圖(Peak response maps,PRM)的弱監督學習方法[108]來對馬鈴薯表面缺陷進行分類、定位和分割,從而實現質量控制任務的自動化.Mayr 等[109]在原始ResNet-50 分類網絡上,通過刪除原始全連接層和平均池化層,在網絡最后添加兩個1 × 1 卷積來獲取缺陷響應特征圖,實現只用圖像標簽完成太陽能板上裂紋缺陷初步檢測.Niu 等[110]提出一種基于GAN 的弱監督學習缺陷檢測方法.通過CycleGAN[111]實現輸入測試圖像到其對應無缺陷圖像的轉化,比較輸入圖像和生成的無缺陷圖像的差異,進而實現表面缺陷檢測.半監督學習通常會使用大量的未標記數據和少部分有標簽的數據用于表面缺陷檢測模型的訓練.He 等[112]提出一個基于半監督GAN 網絡的方法[113]應用于鋼材表面缺陷分類,在設計的CAEGAN 缺陷檢測網絡中,采用一個基于CAE 的編碼器并饋入softmax 層以形成鑒別器.鑒別器不是直接預測輸入圖像的真假二分類,而是預測N +1 類,其中N 代表缺陷種類的數量,額外的類表示輸入圖像是來自真實數據集還是來自生成器.該方法在熱軋板圖像分類上取得了96.5%正確率.He等[114]提出一種多重訓練的半監督學習方法應用于鋼表面缺陷分類.該方法使用cDCGAN 生成大量未標記的樣本.為了利用未標記的樣本,該模型提出了利用cDCGAN和ResNet-18 的多訓練融合算法用于未標記樣本的類別標簽預測.將預測分配類別標簽的樣本加入訓練集中進一步訓練.重復上述操作來逐步優化模型.在NEU-CLS 缺陷數據集[51]上的大量實驗表明,即使原始樣本有限,該方法對于缺陷分類也非常有效.Gao 等[115]也提出了一種使用卷積神經網絡的半監督學習方法來分類鋼表面缺陷,通過采用偽標簽改進了分類CNN 的性能.在鋼表面缺陷識別基準數據集上的實驗結果表明,所提出的方法在有限的標記數據下可以實現良好的性能,達到90.7%的精度.目前,基于半監督的方法大部分用于解決缺陷分類或識別任務,還沒有廣泛應用到定位與分割任務中.
目前深度學習方法廣泛應用于各種計算機視覺任務中,表面缺陷檢測一般被看作是其在工業領域的具體應用.在傳統的認識中,深度學習方法無法直接應用在表面缺陷檢測中的原因是在真實的工業環境中,所能提供的工業缺陷樣本太少.相比于ImageNet 數據集中1 400 多萬張樣本數據,表面缺陷檢測中面臨的最關鍵的問題是小樣本問題,在很多真實的工業場景下甚至只有幾張或幾十張缺陷圖片.實際上,針對工業表面缺陷檢測中關鍵問題之一的小樣本問題,目前有以下4 種不同的解決方式:
1)數據擴增、合成與生成.最常用的缺陷圖像擴增方法是對原始缺陷樣本采用鏡像、旋轉、平移、扭曲、濾波、對比度調整等多種圖像處理操作來獲取更多的樣本.例如Tao 等[116]、Wei 等[117]和Huang 等[67]采用上述方法將擴增缺陷數據應用到深孔零件銅絲、紡織物表面和磁瓦缺陷檢測中.另外一種較為常見的方法是數據合成,常常將單獨缺陷融合疊加到正常(無缺陷)樣本上構成缺陷樣本.文獻[48]利用分割網絡將帶缺陷的絕緣子從自然背景中分割出來,然后通過圖像融合將其疊加到正常樣本上.Haselmann 等[118]采用骨架和紋理生成的方式得到逼真的缺陷并融合到正常樣本上,形成對應的缺陷圖像.最近,由于GAN 在圖像生成上強大的能力,不少基于GAN 的工作也應用于表面缺陷樣本生成上,如Liu 等[119]、Huang 等[120]、Zhang 等[121]和Chou 等[122]的方法.
2)網絡預訓練或遷移學習.一般來說,由于深度學習網絡參數較多,直接采用小樣本訓練網絡很容易導致過擬合,但在預訓練模型中存在一些比較共性的特征數據與權重信息.因此,基于預訓練網絡或遷移學習是目前針對樣本少最常用的方法之一.2018 年,Ren 等[33]最早將遷移學習應用于表面缺陷檢測,其預訓練模型采用ImageNet 預訓練模型.Yang 等[123]、Zhang 等[124]、Badmos 等[125]和Sun等[126]都采用遷移學習方法分別應用于液晶面板Mura 缺陷、PCB 板缺陷、鋰電池電極缺陷和金屬零件表面缺陷檢測.Kim等[127]在DAGM 缺陷數據集上對比了基于微調(Fine-tuning)的遷移學習和從頭開始訓練網絡的效果,證明基于遷移學習方法的性能優于從頭開始訓練網絡的性能.
3)合理的網絡結構設計.通過設計合理的網絡結構也可以大大減少樣本的需求.例如在文獻[40]中,Tabernik 等設計了一個融合分類和分割分支的多任務缺陷檢測網絡,兩個分支共享特征提取的Backbone,在分割網絡分支,圖像中每個像素都能被當作訓練樣本來訓練網絡.因此,該方式大大減少了網絡對樣本的需求.整個網絡僅采用50 張缺陷樣本訓練就能取得很好的效果.Wei 等[117]提出了一種將壓縮感知與卷積神經網絡相結合的缺陷檢測方法,基于壓縮采樣定理來壓縮和擴充小樣本數據,使用CNN 直接對壓縮采樣的數據特征進行分類.相比于原始的圖像輸入,通過對輸入進行壓縮采樣能大大降低網絡對樣本的需求.此外,基于孿生網絡的表面缺陷檢測方法也可以看作是一種特殊的網絡設計,能夠大幅減少樣本需求.
4)采用無監督與半監督模型方法.這兩種方式都可以減少樣本的需求.在無監督模型中,只利用正常樣本進行訓練,因此不需要缺陷樣本.半監督方法可以利用沒有標注的樣本來解決小樣本情況下的網絡訓練難題.
基于深度學習的缺陷檢測方法在工業應用中包括三個主要環節:數據標注、模型訓練與模型推斷.在實際工業應用中的實時性更關注模型推斷這一環節.目前大多數缺陷檢測方法都集中在分類或識別的準確性上,而很少關注模型推斷的效率.有不少方法用于加速模型,例如模型權重量化[128]和模型剪枝[129]等.在文獻[130]的工作中,提出了一種端到端的手機屏幕表面缺陷檢測模型.為了提高模型計算過程的效率以滿足實際的工業需求,在建立低精度版本網絡而又不損失準確性的前提下,對提出的模型中的權重執行權重量化,其缺陷分析的效率提高了16%.在傳統的基于圖像處理的表面缺陷檢測方法中,FPGA 并行加速架構常用于加速圖像處理算子.Pan 等[131]將FPGA 加速傅里葉重構算子用于紋理表面缺陷分割,其FPGA 并行加速架構比同類服務器CPU 快三倍,從而將整個8.5 代LCD 面板的掃描檢測時間縮短至8.5 s.文獻[132]開發了一種實時熱軋扁鋼雙表面檢測系統,提出的算法在FPGA 上并行實現,其并行圖像處理技術將軋制速度從5 m/s 提升為20 m/s.雖然現有深度學習模型使用GPU 作為通用計算單元,但隨著技術發展,相信FPGA 會成為一個具有吸引力的替代方案.
為了更好地說明基于深度學習的缺陷檢測方法的特點,本小節將基于深度學習的缺陷檢測方法與傳統基于圖像處理的缺陷檢測方法進行對比分析,從方法、本質、所需條件和適應性等四個方面進行比較.其中傳統基于圖像處理的缺陷檢測的相關方法參考文獻[133].詳細對比結果如表3 所示.

表3 傳統圖像處理與基于深度學習的缺陷檢測方法的比較Table 3 Comparison between traditional image processing and deep learning-based defect detection methods
缺陷檢測數據集是開展研究工作的基礎,相比于計算機視覺任務中的ImageNet[134]、PASCALVOC2007/2012[135]和COCO[136]等數據集,缺陷檢測并沒有一個大量和統一的數據集,在不同的檢測對象和場景下,研究往往基于不同的缺陷數據集.
本節按照缺陷檢測方法進行分類,提供了多種表面缺陷檢測數據集的相關鏈接.如表4 所示,涵蓋多個工業應用領域,具體包括:金屬表面[40]、太陽能板[109]、木材表面[137]、磁瓦表面[67]、鑄件X 射線圖像[138]、鋼材和鋼軌表面[51,139]、建筑物和橋梁表面缺陷[140-141]、PCB 板[90]、兩個無監督學習的缺陷檢測數據集:MVTec AD[142]和NanoTWICE[143],以及DGAM2007 紋理缺陷數據集[144].

表4 工業表面缺陷檢測常用數據集Table 4 Common data sets for industrial surface defect detection
由于目前基于深度學習的表面缺陷檢測方法大多數是在特定的數據集上進行應用,很多數據集沒有公開,難以統一比較.為了更好地比較一些典型算法在同一缺陷數據上的應用效果,我們選取了兩個非常典型的數據集作為示例數據集:DAGM和GDXray Casting.
DAGM 為紋理缺陷數據集,它包含6 個類別的圖像樣本,大小為512×512 像素.每個類別包括1 000 個無缺陷圖像和150 個有缺陷圖像,常用于缺陷分類的應用場景中.典型缺陷分類方法在DAGM上的效果對比如表5 所示,表5 按照時間順序進行排序,可以看出滑動窗口使用較多,同時基于CNN的方法在紋理缺陷分類上取得很好的性能.基于滑動窗口和多類別分類相結合的網絡已經達到了99.8%的分類準確率,也是目前基于深度學習的缺陷分類方法在該數據集上的最高水平.Yu 等[65]采用的兩階段FCN 方法是比較具有代表性的分割方法,其在DAGM 數據集上取得了95.334%像素分類準確率.

表5 典型缺陷分類方法在DAGM 數據集上性能比較Table 5 Effect comparison of defect classification methods on DAGM
GDXray Casting 數據集包含2 727 個X 射線圖像,這些圖像主要來自汽車零件,包括鋁制車輪和轉向節.每個圖像中的鑄件缺陷都用邊界框(Bounding box)標記.數據集中圖像的大小范圍為256 × 256 像素到768× 572 像素.不同的缺陷定位方法在DAGM 上的效果對比如表6 所示,其中一階段以VGG-16 為Backbone 的SSD 網絡在單幅圖像獲得了最快的檢測速度,達到了0.025 s/幅(單GPU);而以ResNet-101 為Backbone 的兩階段網絡Faster R-CNN 則取得了最高的檢測正確率.

表6 典型缺陷定位方法在GDXray casting數據集上性能比較Table 6 Effect comparison of defect location methods on GDXray casting
缺陷檢測是一個寬泛的應用領域,具體包括缺陷分類、缺陷定位和缺陷分割等環節,相比于傳統圖像處理方法分多個步驟和環節處理缺陷檢測任務,基于深度學習的方法將其統一為端到端的特征提取和分類.雖然表面缺陷檢測技術已經不斷地從學術研究走向成熟的工業應用,但是依然有一些需要解決的問題.
1)網絡結構設計.第2 節綜述的方法大部分具有不同的網絡結構,這些網絡都是人工設計的,從模型包含多少層到每一層的詳細結構都是一個漫長設計和調參的過程.這種網絡很難說是最優的,只能說這些手工設計的網絡在當前缺陷檢測數據集上大致滿足需求.類似于傳統手工設計的缺陷檢測特征,例如文獻[16]中提到的三種手工特征(KAZE[17]、SIFT[18]、SURF[19]),相比CNN 網絡自身學到的特征,其缺陷分類效果遜色不少.因此,隨著自動機器學習和網絡架構搜索技術的興起,相信會有越來越多機器搜尋和自動生成的網絡逐步替代人工設計的網絡,這些網絡不僅能夠大幅度的減少手工設計網絡參數,同時在檢測的正確率上也會領先.
2)網絡訓練學習.人工在進行工業缺陷的目視檢測時,很難收集到所有缺陷類型的樣本,很多時候只有良品數據(正樣本).然而目前大部分基于深度學習的表面缺陷檢測方法是基于大量的缺陷樣本的有監督學習.深度學習的網絡學習是一個“黑匣子”,需要大量標注好的訓練樣本端到端進行學習,可解釋性差.因此,如何利用類腦(受腦啟發的)計算與仿人視覺認知模型這些先驗知識來指導缺陷檢測網絡的訓練和學習,也是一個值得思考的方向.
3)異域數據聯邦學習.單個表面缺陷檢測數據集往往都很少,雖然小樣本問題可以通過第3 節介紹的方法緩解相關問題,但是實際上不同工業行業和領域中,真實工業表面缺陷數據是非常多的,一些缺陷種類也是共同的,例如劃痕廣泛存在于金屬、液晶屏幕、太陽能電池板、玻璃等等一系列材質表面.同時,人類也會將統一類型的缺陷進行標記,并不會因為檢測領域的不同而產生差異.但是由于涉及隱私敏感,不同檢測領域之間數據并沒有有效結合和利用.如何利用不同工業領域的缺陷數據集來進行網絡學習,也是表面缺陷檢測的一種重要研究方向.因此,基于異域數據的聯邦學習將會成為一個趨勢,它能夠打破不同應用場景之間的壁壘,充分學習不同領域之間數據來提升網絡性能.
隨著人工智能技術的發展,目前基于機器視覺的表面缺陷檢測的研究焦點已經從經典的圖像處理和機器學習方法轉移到深度學習方法,在很多工業場景下解決了以往傳統方法無法解決的難題.本文系統地總結、對比和分析了深度學習算法在表面缺陷檢測領域的研究進展,同時對基于深度學習的表面缺陷檢測的研究趨勢進行了展望,以期為相關研究人員提供詳實和有效參考.