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

軍事應(yīng)用中深度學(xué)習(xí)的挑戰(zhàn)與機遇
NPU在深度學(xué)習(xí)中的應(yīng)用
GPU深度學(xué)習(xí)應(yīng)用案例
激光雷達技術(shù)的基于深度學(xué)習(xí)的進步
FPGA做深度學(xué)習(xí)能走多遠?
深度學(xué)習(xí)算法在嵌入式平臺上的部署
利用Matlab函數(shù)實現(xiàn)深度學(xué)習(xí)算法
基于Python的深度學(xué)習(xí)人臉識別方法
深度學(xué)習(xí)在工業(yè)機器視覺檢測中的應(yīng)用
基于AI深度學(xué)習(xí)的缺陷檢測系統(tǒng)
深度學(xué)習(xí)在視覺檢測中的應(yīng)用
基于深度學(xué)習(xí)的小目標(biāo)檢測
深度學(xué)習(xí)在計算機視覺領(lǐng)域的應(yīng)用
外觀缺陷檢測原理

評論