近年來,隨著深度學(xué)習(xí)的快速發(fā)展,基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的計(jì)算機(jī)視覺技術(shù)在工業(yè)領(lǐng)域得到了廣泛的應(yīng)用。目前,機(jī)器視覺表面缺陷檢測是CNN在工業(yè)上最成熟的應(yīng)用之一。接下來我們將介紹深度學(xué)習(xí)在表面缺陷檢測領(lǐng)域的概述。
01
缺陷檢測問題的定義
1.1 缺陷的定義
當(dāng)前對于缺陷有兩種認(rèn)知的方式,第一種是有監(jiān)督的方法,也就是體現(xiàn)在利用標(biāo)記了標(biāo)簽(包括類別、矩形框或逐像素等)的缺陷圖像輸入到網(wǎng)絡(luò)中進(jìn)行訓(xùn)練. 此時(shí)"缺陷"意味著標(biāo)記過的區(qū)域或者圖像。第二種是無監(jiān)督的方法,就是將正常無缺陷的樣本進(jìn)行學(xué)習(xí),學(xué)習(xí)正常區(qū)域的特征,網(wǎng)絡(luò)檢測異常的區(qū)域。
1.2 缺陷檢測任務(wù)
缺陷檢測的任務(wù)大致分為三個(gè)階段分別是缺陷分類、缺陷定位、缺陷分割,如下圖所示,缺陷分類需要分類出缺陷的類別(異色、空洞、經(jīng)線);缺陷定位不僅需要獲取缺陷的類別還需要標(biāo)注出缺陷的位置;缺陷分割將缺陷逐像素從背景中分割出來。
02
表面缺陷檢測的深度學(xué)習(xí)方法
根據(jù)缺陷檢測的三個(gè)階段其方法大致可以分為三類分別是分類網(wǎng)絡(luò)、檢測網(wǎng)絡(luò)、分割網(wǎng)絡(luò)。
2.1分類網(wǎng)絡(luò)
由于CNN強(qiáng)大的特征提取能力, 采用基于CNN的分類網(wǎng)絡(luò)目前已成為表面缺陷分類中最常用的模式一般來說,現(xiàn)有表面缺陷分類的網(wǎng)絡(luò)常常采用計(jì)算機(jī)視覺中現(xiàn)成的網(wǎng)絡(luò)結(jié)構(gòu), 包括AlexNet, VGG, GoogLeNet,ResNet, DenseNet, SENet, ShuteNet,MobileNet等。利用分類網(wǎng)絡(luò)結(jié)合上滑動(dòng)窗口的方式可以實(shí)現(xiàn)缺陷的定位。
Deep learning-based crack damage detection using convolutional neural networks
檢測對象:混凝土裂縫 主要方法:最早采用基于滑動(dòng)窗口的CNN分類網(wǎng)絡(luò)實(shí)現(xiàn)了裂紋表面缺陷定位, 兩種滑動(dòng)窗口冗余路徑結(jié)合實(shí)現(xiàn)圖像全覆蓋, 如圖所示, 圖中(a)為滑動(dòng)窗口路徑示意圖, 圖中(b)為裂紋定位的結(jié)果圖。
A fast and robust convolutional neural network-based defect detection model in product quality control 檢測對象:布匹缺陷 主要方法:作者使用一個(gè)多層的CNN網(wǎng)絡(luò)對布匹缺陷數(shù)據(jù)集中的六類缺陷樣本進(jìn)行分類,分類結(jié)束之后,對于每一類樣本進(jìn)行缺陷檢測。具體做法是:1.使用滑動(dòng)窗口的方法在512×512的原圖上進(jìn)行采樣,采樣大小為128×128;2.對上部分每一類圖像采樣后的小圖像塊進(jìn)行二分類(有缺陷和無缺陷)。下圖為文章兩次分類使用的CNN網(wǎng)絡(luò),兩次分類的區(qū)別在于:1.全連接層的輸入分別為6和2;2.輸入的圖像尺寸不同。
滑動(dòng)窗口:
2.2 檢測網(wǎng)絡(luò)
目標(biāo)定位是計(jì)算機(jī)視覺領(lǐng)域中最基本的任務(wù)之一, 同時(shí)它也是和傳統(tǒng)意義上缺陷檢測最接近的任務(wù), 其目的是獲得目標(biāo)精準(zhǔn)的位置和類別信息。目前, 基于深度學(xué)習(xí)的目標(biāo)檢測方法層出不窮, 一般來說, 基于深度學(xué)習(xí)的缺陷檢測網(wǎng)絡(luò)從結(jié)構(gòu)上可以劃分為: 以Faster R-CNN為代表的兩階段(two stage)網(wǎng)絡(luò)和以SSD或YOLO為代表的一階段(one stage)網(wǎng)絡(luò)。兩者的主要差異在于兩階段網(wǎng)絡(luò)需要首先生成可能包含缺陷的候選框(proposal), 然后在進(jìn)一步進(jìn)行目標(biāo)檢測。一階段網(wǎng)絡(luò)直接利用網(wǎng)絡(luò)中提取的特征來預(yù)測缺陷的位置和類別。
TDD-net: atiny defect detection networkforprinted circuit boards
檢測對象:PCB缺陷
主要方法:作者提出了一種針對PCB表面缺陷檢測網(wǎng)絡(luò)(TDD-Net), 該方法通過使用k均值聚類設(shè)計(jì)合理錨框大小, 其次引入多尺度金字塔網(wǎng)絡(luò)(FPN)到Faster RCNN中, 加強(qiáng)了來自底層結(jié)構(gòu)信息的融合, 使得網(wǎng)絡(luò)適應(yīng)微小的缺陷檢測。最后, 考慮到小數(shù)據(jù)集和樣本不平衡的特點(diǎn), 在訓(xùn)練階段采用了在線困難樣本挖掘(OHEM)技術(shù).該方法在PCB缺陷數(shù)據(jù)集上達(dá)到了98.90%的mAP。圖 a 是沒有加入FPN的結(jié)構(gòu),通過特征可視化圖片可以看到,隨著提取特征層數(shù)的增加,電路板的特征越來越模糊,圖 b 是加入FPN結(jié)構(gòu)后的可視化圖片。
An End-to-end Steel Surface Defect Detection Approach via Fusing Multiple Hierarchical Features
檢測對象:鋼表面缺陷 主要方法:基于Faster R-CNN的帶鋼表面缺陷檢測網(wǎng)絡(luò), 該網(wǎng)絡(luò)的改進(jìn)在于提出的多級特征融合網(wǎng)絡(luò)(MFN)將多個(gè)分層特征組合成一個(gè)特征,其可以包括缺陷的更多位置細(xì)節(jié)。基于這些多級特征,采用區(qū)域提議網(wǎng)絡(luò)(RPN)來生成感興趣區(qū)域(ROI).在缺陷檢測數(shù)據(jù)集NEU-DET上, 提出的方法在采用ResNet-50的backbone下實(shí)現(xiàn)了82.3%的mAP。
Automatic Defect Detection of Fasteners on theCatenary Support Device Using Deep Convolutional Neural Network
檢測對象:緊固件缺陷缺陷檢測 主要方法:作者將深度卷積神經(jīng)網(wǎng)絡(luò)(DCNNs)應(yīng)用到高鐵線路緊固件缺陷檢測。結(jié)合SSD、YOLO等網(wǎng)絡(luò)方法構(gòu)建了一個(gè)從粗到細(xì)的級聯(lián)檢測網(wǎng)絡(luò)。其過程如下圖所示,分成三個(gè)階段,第一階段采用SSD網(wǎng)絡(luò)對鋼材的懸臂節(jié)點(diǎn)及其緊固件進(jìn)行定位,第二階段crop出緊固件的圖片輸入到Y(jié)OLO網(wǎng)絡(luò)定位缺陷位置,第三階段一個(gè)分類器對緊固件缺陷進(jìn)行分類。
2.2 分割網(wǎng)絡(luò)
分割網(wǎng)絡(luò)將表面缺陷檢測任務(wù)轉(zhuǎn)化為缺陷與正常區(qū)域的語義分割甚至實(shí)例分割問題, 它不但能精細(xì)分割出缺陷區(qū)域, 而且可以獲取缺陷的位置、類別以及相應(yīng)的幾何屬性(包括長度、寬度、面積、輪廓、中心等)。按照分割功能的區(qū)別, 其大致可以分為:FCN(Fully Convolutional Networks)方法和Mask R-CNN方法兩種。
(1)FCN(Fully Convolutional Networks)方法
Automatic Metallic Surface Defect Detection and Recognition with Convolutional Neural Networks 檢測對象:金屬表面缺陷 主要方法:該方法是基于FCN網(wǎng)絡(luò)的改進(jìn),提出的一種能夠?qū)θ毕葸M(jìn)行像素級分割和分類的網(wǎng)絡(luò),整個(gè)網(wǎng)絡(luò)可以分成兩個(gè)階段:缺陷檢測階段和缺陷分類階段。在缺陷檢測階段,作者設(shè)計(jì)了一個(gè)級聯(lián)的自動(dòng)編碼器(CASAE),利用編碼器對正常區(qū)域和缺陷區(qū)域的響應(yīng)不同,通過閾值分割的方式實(shí)現(xiàn)缺陷區(qū)域的像素級定位。然后將缺陷區(qū)域crop出來輸入到缺陷分類網(wǎng)絡(luò)分類缺陷的類別。整個(gè)算法的流程如下圖所示:
AE Network 全卷積網(wǎng)絡(luò):
(2)Mask R-CNN方法 Mask R-CNN是目前最常用的圖像實(shí)例分割方法之一, 可以被看作是一種基于檢測和分割網(wǎng)絡(luò)相結(jié)合的多任務(wù)學(xué)習(xí)方法. 當(dāng)多個(gè)同類型缺陷存在粘連或重疊時(shí), 實(shí)例分割能將單個(gè)缺陷進(jìn)行分離并進(jìn)一步統(tǒng)計(jì)缺陷數(shù)目, 然而語義分割往往將多個(gè)同類型缺陷當(dāng)作整體進(jìn)行處理. 目前大部分文獻(xiàn)都是直接將Mask R-CNN框架應(yīng)用于缺陷分割。Automatic defect segmentation on leather with deep learning 實(shí)現(xiàn)皮革表面缺陷,Road Damage Detection And Classiflcation In Smartphone Captured Images Using Mask R-CNN 實(shí)現(xiàn)路面缺陷分割。
03
缺陷檢測的關(guān)鍵問題
缺陷檢測的關(guān)鍵問題主要是三個(gè)方面分別是小樣本、小目標(biāo)、實(shí)時(shí)性。 (1)小樣本問題,表面缺陷檢測中面臨的最關(guān)鍵的問題是小樣本問題, 在很多真實(shí)的工業(yè)場景下甚至只有幾張或幾十張缺陷圖片. 實(shí)際上, 針對于工業(yè)表面缺陷檢測中關(guān)鍵問題之一的小樣本問題, 目前有3種不同的解決方式:
數(shù)據(jù)擴(kuò)增、合成與生成
網(wǎng)絡(luò)預(yù)訓(xùn)練或遷移學(xué)習(xí)
采用無監(jiān)督與半監(jiān)督模型方法
(2)小目標(biāo)問題,表面缺陷檢測中面臨的另一個(gè)問題是部分缺陷偏小,解決這部分問題可以通過引入特征金字塔結(jié)構(gòu),將不同階段的特征圖,都融合起來,提高多尺度檢測的準(zhǔn)確率;最簡單的辦法是放大圖像尺寸;如果是在兩階段檢測網(wǎng)絡(luò)中可以使用 ROI align 替換 ROI pooling;其次,也可以使用GAN對小目標(biāo)生成一個(gè)super-resolved feature疊加在原來的小目標(biāo)的特征圖上,以此增強(qiáng)小目標(biāo)特征表達(dá)。 (3)實(shí)時(shí)性問題,基于深度學(xué)習(xí)的缺陷檢測方法在工業(yè)應(yīng)用中包括三個(gè)主要環(huán)節(jié): 數(shù)據(jù)標(biāo)注、模型訓(xùn)練與模型推斷. 在實(shí)際工業(yè)應(yīng)用中的實(shí)時(shí)性更關(guān)注模型推斷這一環(huán)節(jié)。目前大多數(shù)缺陷檢測方法都集中在分類或識別的準(zhǔn)確性上, 而很少關(guān)注模型推斷的效率. 有不少方法用于加速模型, 例如模型權(quán)重量化和模型剪枝等。
04
總結(jié)
缺陷檢測是一個(gè)寬泛的應(yīng)用領(lǐng)域, 具體包括缺陷分類、缺陷定位和缺陷分割等環(huán)節(jié), 相比于傳統(tǒng)圖像處理方法分多個(gè)步驟和環(huán)節(jié)處理缺陷檢測任務(wù), 基于深度學(xué)習(xí)的方法將其統(tǒng)一為端到端的特征提取和分類。雖然表面缺陷檢測技術(shù)已經(jīng)不斷地從學(xué)術(shù)研究走向成熟的工業(yè)應(yīng)用, 但是依然有一些需要解決的問題。
陶顯等.表面缺陷檢測綜述,自動(dòng)化學(xué)報(bào)。
責(zé)任編輯:lq
-
計(jì)算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
46014 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5504瀏覽量
121219 -
cnn
+關(guān)注
關(guān)注
3文章
352瀏覽量
22237
原文標(biāo)題:一文梳理缺陷檢測方法
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論