李雪露,楊永輝,儲茂祥
(遼寧科技大學 電子與信息工程學院,遼寧 鞍山 114051)
受生產(chǎn)環(huán)境和機器裝置的影響,鋼板易產(chǎn)生麻點、劃傷、裂紋等缺陷。這些缺陷使鋼板的抗腐蝕和耐磨性能變差,產(chǎn)品質(zhì)量降低,美觀程度大打折扣[1]。隨著“工業(yè)4.0”“中國制造2025”等概念的提出,我國對制造業(yè)生產(chǎn)提出了更高的要求,不僅要求產(chǎn)品的使用性能要加強,對其質(zhì)量、形狀、美觀也提出較高標準。發(fā)展制造業(yè)必須提升企業(yè)綜合素質(zhì),強化行業(yè)創(chuàng)新能力,加強產(chǎn)品質(zhì)量檢測。其中,鋼板表面缺陷檢測對降低生產(chǎn)成本,提高生產(chǎn)效率和產(chǎn)品質(zhì)量有著重要意義[2]。
早期的鋼板表面缺陷檢測方法主要包括人工檢測法、渦流檢測法[3]、紅外線檢測法[4]、漏磁檢測法[5]、超聲波檢測法[6]等。盡管這些方法取得了一定的成就,但是仍有許多不足,檢測效率低、適用范圍小、難以實現(xiàn)自動化檢測。近年來,隨著以卷積神經(jīng)網(wǎng)絡為工具的深度學習技術(shù)的快速發(fā)展,已經(jīng)有很多深度學習網(wǎng)絡模型應用于鋼板表面缺陷檢測中,但在一些評價指標和小目標檢測上效果表現(xiàn)較差,同時檢測速度也比較慢。針對上述檢測技術(shù)存在的問題,本文對基于機器視覺的鋼板表面缺陷檢測算法進行全面、細致的梳理,既包括傳統(tǒng)機器視覺的鋼板表面缺陷檢測算法,也包括深度學習的鋼板表面缺陷算法,重點闡述基于深度學習表面缺陷檢測算法及其改進的算法。
機器視覺是一種無接觸的自動檢測技術(shù),是實現(xiàn)裝置自動化檢測、智能化檢測的有效手段,主要特點是安全準確、使用范圍大、不受檢測物件形狀的影響、檢測效率高。傳統(tǒng)機器視覺檢測技術(shù)主要由圖像采集和缺陷檢測兩方面構(gòu)成。圖像采集部分主要是選擇合適的光源、專業(yè)攝像頭、以及合適的圖像采集卡實現(xiàn)對樣本的圖片采集。受圖像采集裝置、攝像頭拍照角度、光源變化等環(huán)境因素的影響,會采集到不同質(zhì)量的鋼板缺陷。采集的圖像質(zhì)量,決定了圖像處理的難易程度[7]。缺陷檢測部分主要包括圖像去噪、圖像增強、邊緣檢測、圖像分割、特征提取、目標檢測和分類等幾個方面。不同的圖像處理方法將直接影響鋼板表面缺陷檢測的正確率和漏檢率。傳統(tǒng)機器視覺檢測流程圖如圖1所示。
傳統(tǒng)機器視覺自動檢測技術(shù)廣泛用于鋼板表面缺陷檢測。Wen等[8]提出一種將灰度圖像和3D深度信息相結(jié)合的檢測方法。測試結(jié)果表明,該算法對凹坑類型鋼板缺陷檢測效果較好。為了實現(xiàn)對厚鋼板表面缺陷的檢測,Yun等[9]提出了一種雙重照明結(jié)構(gòu)的缺陷檢測系統(tǒng),通過表面噪聲區(qū)分不均勻缺陷和顏色變化,圖像處理算法由檢測切換模式的Gabor濾波器組成,并采用二值化方法提取缺陷形狀,在厚鋼板圖像上驗證了該方法的有效性。Wang等[10]提出一種基于引導模板的帶鋼表面缺陷檢測算法,依據(jù)大量無缺陷圖像,獲取正常紋理的統(tǒng)計特征,利用高斯函數(shù)擬合無缺陷鋼板圖像的直方圖,并搭建缺陷匹配模板,通過與匹配模板進行減法運算、反向排序和自適應閾值運算,準確找到缺陷位置,在1 500張測試圖像的數(shù)據(jù)集上達到96.2%的平均檢測率。為了提高缺陷識別的局部變形能力,Song等[11]采用基于小波變換的散射卷積網(wǎng)絡(Scattering convolution network,SCN)對熱軋帶鋼表面缺陷進行檢測,檢測正確率為98.60%。Sun等[12]提出一種基于缺陷圖像奇異值分解的鋼板檢測方法,可以有效檢測及定位缺陷的位置。Hou等[13]提出二階錐規(guī)劃(Second-order cone programming,SOCP)優(yōu)化多核相關(guān)向量機(Multiple kernel relevance vector machine,MKRVM)的帶鋼表面缺陷檢測方法,可以對核函數(shù)進行更優(yōu)的選擇,提高分類精度和泛化能力,實驗結(jié)果表明SOCP-MKRVM算法在精度和運行速度上都有顯著的優(yōu)勢。Tian等[14]提出改進的極限學習機(Extreme learning machine,ELM)算法和遺傳算法相結(jié)合的熱軋鋼板表面缺陷識別算法,將ELM隱層的輸出矩陣作為染色體處理,并添加一些新的迭代規(guī)則,采用1 675個熱軋鋼板試樣對該算法進行測試,訓練集和測試集的最高識別準確率分別為98.46%和94.30%。
雖然傳統(tǒng)機器視覺檢測技術(shù)在鋼板表面缺陷檢測方面得到很好應用,但也存在著一些不足。第一,設備通用性較低,檢查尺寸一致且制造精良的帶鋼試樣時能夠可靠運行,但在缺陷形狀特殊時,將無法檢測缺陷;第二,對光源環(huán)境和圖像采集設備等硬性條件要求過高;第三,缺陷檢測裝置需要較高使用和維護成本。
深度學習檢測技術(shù)因通用性廣、適應力強、省時高效等優(yōu)點被廣泛應用于鋼板表面缺陷檢測。深度學習理論包含多種網(wǎng)絡模型,例如多層感知機(Multilayer perceptron,MLP)[15]、卷積神經(jīng)網(wǎng)絡(Convolutional neural network,CNN)[16]、循環(huán)神經(jīng)網(wǎng)絡(Recurrent neural network,RNN)[17]、深層置信網(wǎng)絡(Deep belief networks,DBN)[18]、生成式對抗網(wǎng) 絡(Generative adversarial networks,GAN)[19]等。不同網(wǎng)絡模型適用于不同的場景,MLP適用于分類預測和回歸預測,CNN適用于圖像處理,RNN適用于語音識別,DBN適用于圖像識別,GAN適用于數(shù)據(jù)增強。不同網(wǎng)絡模型應用在不同的領(lǐng)域。網(wǎng)絡模型總體框架如圖2所示。
在鋼板制造生產(chǎn)中,受光源條件和檢測目標的形狀、顏色、灰度、背景等復雜因素的影響,使鋼板表面缺陷分類成為一項艱巨的任務,深度學習網(wǎng)絡具有的強大特征提取能力可以較好地解決這一問題。根據(jù)缺陷樣本有無標簽,深度學習分類模型分為有監(jiān)督學習模型、半監(jiān)督學習模型和無監(jiān)督學習模型[20]。
2.1.1 有監(jiān)督學習模型 卷積神經(jīng)網(wǎng)絡在分類領(lǐng)域避免了對圖像的復雜前期預處理,可以直接將原始圖像輸入,降低網(wǎng)絡模型的復雜度,減少權(quán)值的數(shù)量。采用局部連接和共享權(quán)值的方式,使網(wǎng)絡易于優(yōu)化,也降低了過擬合的風險。卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)包括卷積層、采樣層和全鏈接層,基本結(jié)構(gòu)圖如圖3所示。
卷積神經(jīng)網(wǎng)絡是有監(jiān)督學習分類模型的經(jīng)典代表之一,廣泛用于解決鋼板表面缺陷分類問題。Liu等[21]提出一種基于CNN和長短時記憶(Long short-term memory,LSTM)的缺陷檢測方法。將CNN提取到的缺陷特征輸入到LSTM分類網(wǎng)絡中,檢測識別率為81.9%。
He等[22]提出一種分類優(yōu)先網(wǎng)絡(Classification priority network,CPN)的鋼板表面缺陷分類方法。使用多組卷積神經(jīng)網(wǎng)絡(MG-CNN)進行圖像分類,提取不同種類缺陷的特征,根據(jù)分類結(jié)果,將可能包含缺陷的特征映射組單獨輸入到另一個基于YOLO構(gòu)建的神經(jīng)網(wǎng)絡中,回歸相應缺陷邊界框。在不同鋼鐵生產(chǎn)線上進行大量試驗表明,熱軋鋼平均表面缺陷檢測率均在94%以上,分類率均在96%以上。
Liu等[23]提出一種基于深度卷積神經(jīng)網(wǎng)絡的缺陷分類方法,采用GoogLeNet作為網(wǎng)絡基礎(chǔ)模型,并添加身份映射,同時對數(shù)據(jù)集進行數(shù)據(jù)增強,對六種類型缺陷進行檢測,準確率達到98.57%。
He等[24]提出一種基于深度學習的缺陷檢測系統(tǒng),采用CNN提取缺陷特征,并利用多級特征融合網(wǎng)絡(Multilevel feature fusion network,MFN)將多個層次特征融合為一個特征,采用區(qū)域建議網(wǎng)絡用于感興趣區(qū)域的生成,由檢測器產(chǎn)生最終檢測結(jié)果。該算法在NEU-DET數(shù)據(jù)集上進行驗證,不僅實現(xiàn)了較高的檢測精度,還具有實時檢測的潛力。
Zhou等[25]提出利用CNN學習多種有用的特征,用于從低級到高級的分類,利用稀疏自編碼器學習的濾波核對卷積核進行初始化,在訓練過程中同時學習判別特征向量和softmax回歸的單個多類分類器,經(jīng)測試,平均分類準確率高達99%。
Yi等[26]提出一種端到端帶鋼表面缺陷識別系統(tǒng),由對稱環(huán)繞顯著圖和CNN組成,CNN在原始缺陷圖像上訓練,并從網(wǎng)絡訓練中學習到缺陷特征,避免特征提取和缺陷分類之間的分離,從而形成端到端的缺陷識別系統(tǒng),實驗結(jié)果表明該系統(tǒng)檢測和識別效果良好。
2.1.2 半監(jiān)督學習模型 在鋼板表面缺陷分類方法中,同時使用標記和未標記的樣本進行模型訓練的半監(jiān)督式分類方法也有一定的發(fā)展。He等[27]提出一種基于GAN(Generative adversarial network)和殘差網(wǎng)絡的半監(jiān)督學習(Semi-supervised learning,SSL)缺陷分類方法。使用GAN生成大量未標記的樣本,將有標記和未標記樣本都集成到SSL中,經(jīng)過多次訓練進行分類,分類準確率達到99.56%。
Gao等[28]提出一種基CNN的半監(jiān)督學習方法識別鋼材表面缺陷,利用少樣本、未標記的數(shù)據(jù)進行訓練,同時利用偽標簽對CNN進行改進,該方法在標注數(shù)據(jù)有限的情況下,識別準確率達到90.7%。
Di等[29]提出一種基于卷積自動編碼器(Convolutional auto encoder,CAE)和半監(jiān)督生成對抗網(wǎng)絡(Semi-supervised generative adversarial networks,SGAN)的鋼板表面缺陷分類方法,通過大量未標記的數(shù)據(jù)訓練一個堆疊的CAE,利用CAE提取特征,訓練結(jié)束后,將CAE的編碼器網(wǎng)絡作為特征提取器,并將其送入softmax層,形成新的分類器。為了進一步提高泛化能力,引入SGAN進行半監(jiān)督學習,測試結(jié)果表明,CAE-SGAN算法與傳統(tǒng)方法相比具有更高的性能。
2.1.3 無監(jiān)督學習模型 有監(jiān)督和半監(jiān)督的學習方式需要大量有標簽的缺陷圖像樣本進行訓練,然而,由于有標簽的缺陷圖像樣本不足,會導致訓練性能減弱。利用無標簽缺陷圖像樣本進行訓練的無監(jiān)督式學習,可以較好解決這一問題。Liu等[30]提出一種Haar-Weibull-variance(HWV)模型,以無監(jiān)督方式檢測鋼材表面缺陷。利用各向異性擴散模型消除偽缺陷的影響,利用新建立的HWV模型表征圖像中每個局部補丁的紋理分布。HWV模型只需兩個參數(shù)即可將每個補丁的紋理分布投影到低維空間中,通過參數(shù)分布的形成,提取可靠背景,進一步優(yōu)化模型參數(shù),確定自適應閾值將缺陷與背景區(qū)分開,平均檢測率為96.2%。
目標檢測可以理解為是對缺陷識別和定位的綜合性任務,不僅要識別出缺陷的類別,還要準確定位缺陷具體位置。隨著人工智能的發(fā)展和模型的優(yōu)化,深度學習技術(shù)在缺陷識別、軍事領(lǐng)域、無人駕駛[31]等多個領(lǐng)域有著廣泛應用。目標檢測算法分兩類,一類是雙階段算法,主要模型有RCNN[32]、SPP-Net[33]、Fast RCNN[34]、Faster R-CNN[35]等;另一類是單階段算法,主要模型有Yolov1[36]、Yolov2[37]、Yolov3[38]、Yolov4[39]、Yolov5[40]、Yolox[41]、SSD(Single shot multibox detector)[42]、Retina-Net[43]等。相關(guān)模型的信息列在表1中。
表1 目標檢測網(wǎng)絡模型Tab.1 Target detection network models
2.2.1 雙階段算法 Faster R-CNN算法流程圖如圖4所示。首先,缺陷輸入圖像經(jīng)過骨干網(wǎng)絡輸出特征圖;然后,將生成的特征圖送入感興趣區(qū)域;最后得到缺陷的定位和類別結(jié)果。
Faster R-CNN是雙階段算法的代表,檢測效果好,在鋼板表面缺陷檢測領(lǐng)域應用較廣。Li等[44]改進Faster R-CNN和FPN網(wǎng)絡,并采用多尺度特征融合來鼓勵低級特征的重用,檢測平均精度達到98.26%。Ren等[45]針對帶鋼表面缺陷的實時檢測問題,構(gòu)建一個更輕量化的Faster R-CNN檢測算法,用深度可分離卷積代替Faster R-CNN卷積層,在原始損失函數(shù)中加入中心損失,以提高網(wǎng)絡區(qū)分不同類型缺陷的能力,在一個包含6類4 655張表面缺陷圖像的數(shù)據(jù)集上進行訓練測試,測試精度達到98.32%。Wang等[46]提出一種將改進的ResNet50與改進的Faster R-CNN相結(jié)合的方法,以減少平均運行時間,提高準確率,將圖像輸入到改進的ResNet50模型中,對有缺陷和無缺陷的樣本進行分類,當存在缺陷的概率小于0.3時,算法直接輸出無缺陷的樣本,否則將樣本進一步輸入到改進的Faster R-CNN中,判斷有無缺陷,通過對實際工廠環(huán)境中獲得的數(shù)據(jù)集進行測試,該方法的準確率可達98.2%。
Yang等[47]提出一種基于CNN的紅外熱成像鋼板裂紋檢測方法,將經(jīng)過紅外處理的數(shù)據(jù)傳入數(shù)據(jù)庫,在數(shù)據(jù)庫上對CNN進行訓練和驗證,對原有Faster R-CNN網(wǎng)絡進行改進,檢測準確率和平均檢測精度分別為95.54%和92.41%。Yin等[48]在Faster R-CNN原始網(wǎng)絡中加入特征金字塔網(wǎng)絡(Feature pyramid network,F(xiàn)PN),使網(wǎng)絡可以結(jié)合高層特征信息和低層特征信息,并使用感興趣區(qū)域?qū)R算法,以減少量化誤差,測試結(jié)果表明,平均檢測精度增加約0.8%。Zhao等[49]提出一種改進Faster R-CNN的算法,利用多尺度融合訓練網(wǎng)絡檢測小缺陷,對于目標的復雜特征,用可變形卷積網(wǎng)絡替換部分常規(guī)卷積網(wǎng)絡,實驗結(jié)果表明,該方法具有良好的檢測性能,平均精度為75.2%,比原算法提高12.8%,其中,裂紋、夾雜、斑塊、麻點、氧化皮和劃痕的平均檢測精度分別為50.1%、79.1%、79.2%、87.4%、64.9%和90.5%。
2.2.2 單階段算法 YOLO算法是由Redmon等在2016年提出的一種單階段算法,通過非極大值抑制(Non maximum suppression,NMS)算法,減少對多余候選框的訓練與計算,將檢測問題轉(zhuǎn)化為回歸問題,實現(xiàn)端到端的缺陷檢測。YOLOv3是YOLO系列發(fā)展的第三個階段,其特點是在YOLOv1、YOLOv2兩個版本的基礎(chǔ)上,融合深度殘差網(wǎng)絡和特征金字塔網(wǎng)絡,并使用邏輯回歸思想代替softmax函數(shù)進行分類,既保證了檢測的實時性,又具有較高的檢測精度。YOLOv3網(wǎng)絡結(jié)構(gòu)如圖5所示。
Zhang等[50]提出CP-YOLOv3-dense神經(jīng)網(wǎng)絡模型,以YOLOv3作為基本網(wǎng)絡,對圖像進行優(yōu)先級分類,將密集網(wǎng)絡模塊代替殘差網(wǎng)絡模塊,利用改進后的網(wǎng)絡對六種表面缺陷進行檢測,檢測正確率為85.7%,召回率為82.3%,平均正確率為82.73%。
Kou等[51]提出一種基于YOLOv3的端到端帶鋼表面缺陷檢測模型,利用自由框特征選擇機制替代基礎(chǔ)框結(jié)構(gòu),選擇合適的特征尺寸,在模型中引入密集卷積塊來提取特征信息。該模型在GC10-DET數(shù)據(jù)集上產(chǎn)生的平均檢測精度為71.3%,在NEU-DET數(shù)據(jù)集上的平均檢測精度為72.2%。
針對熱軋帶鋼表面缺陷檢測速度慢、精度低的問題,Ning等[52]提出一種改進YOLOv3的算法,利用數(shù)據(jù)增強算法對數(shù)據(jù)集進行擴展,使用隨機性較小的K-means++算法代替K-means算法對缺陷標簽進行聚類分析,選擇合適的自由框改進YOLOv3網(wǎng)絡的初始候選框,在YOLOv3網(wǎng)絡結(jié)構(gòu)中增加了一層預測框并進行特征融合,以提高網(wǎng)絡對小目標的檢測能力。實驗結(jié)果表明,改進后的YOLOv3算法在NEU-DET數(shù)據(jù)集上的平均精度達到89.5%,比原YOLOV3算法提高了14.7%。
Li等[53]提出一種改進YOLOv3算法的帶鋼表面缺陷檢測方法。使用K-means++算法優(yōu)化先驗框參數(shù),同時設計YOLOv3算法的網(wǎng)絡結(jié)構(gòu),融合淺層特征信息與深層特征信息,形成新的檢測框,提高檢測精度。實驗結(jié)果表明,改進后的YOLOv3算法在NEU-DET數(shù)據(jù)集上平均精度達到80%,較原有的YOLOv3算法提高了11%。
缺陷分割是指將圖像分成若干個感興趣區(qū)域的過程,不但要準確分割出缺陷區(qū)域,還要精準獲取缺陷形狀、位置以及類別。近年來,分割技術(shù)發(fā)展迅猛,廣泛應用于人臉檢測、智能視頻監(jiān)控、醫(yī)學圖像處理[54]、自動駕駛[55]等領(lǐng)域,基于深度學習的缺陷分割技術(shù)可以分為三個大類:缺陷語義分割、缺陷實例分割和缺陷全景分割。
2.3.1 缺陷語義分割 缺陷語義分割主要用于識別缺陷的類別。主要模型有FCN(Fully convolution network)[56]、U-Net[57]、SegNet[58]、DeconvNet[59]、DeepLab[60]等。其中,F(xiàn)CN是語義分割的經(jīng)典代表,不需要候選框的生成,接受多尺度的輸入圖像,可以實現(xiàn)端到端的圖像語分割。FCN網(wǎng)絡結(jié)構(gòu)如圖6所示,將一幅缺陷圖像輸入到卷積神經(jīng)網(wǎng)絡,經(jīng)過多次卷積及池化操作得到多個特征圖,利用反卷積層對最后一個卷積層得到的特征圖進行上采樣,使上采樣后特征圖與原圖像的尺寸一致,對上采樣特征圖進行逐像素分類[61]。
常用的語義分割算法為FCN和U-net,因模型結(jié)構(gòu)簡單,省時高效,普遍應用于鋼板表面缺陷檢測。為了進一步提升檢測和分割的效果,Roberts等[62]設計一種基于SegNet的網(wǎng)絡對鋼板表面缺陷進行語義分割,對位錯、沉淀物、空隙三種鋼板缺陷的分類識別率分別為(91.60±1.77)%、(93.39±1.00)%、(98.85±0.56)%。
Qian等[63]提出一種基于U-Net和FPN的神經(jīng)網(wǎng)絡對鋼板表面缺陷實現(xiàn)語義分割。Neven等[64]利用U-Net分割網(wǎng)絡模型檢測鋼板表面缺陷,也具有較好的檢測性能。
2.3.2 缺陷實例分割和缺陷全景分割 目前,基于缺陷實例分割和缺陷全景分割的鋼板缺陷檢測算法應用較少,有待進一步研究。缺陷實例分割就是目標檢測和缺陷語義分割的結(jié)合。相對目標檢測的邊界框,缺陷實例分割可精確到缺陷的邊緣。相對缺陷語義分割,缺陷實例分割需要標注出圖上同一缺陷的不同個體,主要模型有Mask R-CNN[65]和PANet[66]。缺陷全景分割是缺陷語義分割和缺陷實例分割的結(jié)合,缺陷實例分割只對圖像中的缺陷進行檢測,并對檢測到的缺陷進行分割,而全景分割需要檢測和分割圖中的所有物體包括缺陷背景,主要模型有OANet[67]和EfficientPS[68]等。
鋼板表面缺陷檢測是一個復雜的應用,包括缺陷分類、目標檢測與定位、缺陷分割等多種環(huán)節(jié)。由于缺陷種類較多,傳統(tǒng)機器視覺檢測算法很難做到對鋼板表面缺陷特征完整的建模和遷移,每個環(huán)節(jié)需要分開工作,浪費資源?;谏疃葘W習的方法可以直接實現(xiàn)端到端的鋼板表面缺陷檢測,在特征提取和定位上取得較好的效果。但是就目前而言,深度學習在鋼板表面缺陷檢測應用的過程中仍有一些挑戰(zhàn),在未來還有很大的發(fā)展空間。
(1)當深度學習應用于鋼板表面缺陷檢測領(lǐng)域時,經(jīng)常存在訓練樣本不足的問題。鋼板表面缺陷數(shù)量較少,但是種類較多,在這樣的小樣本數(shù)據(jù)集上訓練深度學習網(wǎng)絡模型,容易產(chǎn)生過擬合現(xiàn)象,泛化性能較差。因此,建立學習小樣本的網(wǎng)絡模型是深入研究的方向。(2)目前,大部分深度學習模型都是基于有標簽的數(shù)據(jù)進行訓練,這種有監(jiān)督式的學習方式受樣本數(shù)量的限制,并且很多數(shù)據(jù)標簽需要人工標注。而無監(jiān)督和半監(jiān)督的學習方式則不需要大量的數(shù)據(jù)標簽,是基于深度學習的鋼板表面缺陷檢測未來發(fā)展方向。