張京愛,王江濤,2*
(1.淮北師范大學(xué)物理與電子信息學(xué)院,安徽淮北 235000;2.淮北師范大學(xué)信息學(xué)院,安徽淮北 235000)
磁瓦是永磁體直流電機的核心部件之一,常用來代替?zhèn)鹘y(tǒng)的電勵磁。據(jù)中國磁性材料及行業(yè)協(xié)會估計,2017 年我國對磁瓦的需求規(guī)模將達50 億元以上,到2020 年該規(guī)模將達60 億元。磁瓦產(chǎn)業(yè)已成為國民經(jīng)濟中一股重要的力量。在磁瓦生產(chǎn)過程中,由于生產(chǎn)工藝或者碰撞原因,不可避免地會產(chǎn)生殘次品。因此對磁瓦質(zhì)量進行挑選,剔除殘次品,成為當前磁瓦生產(chǎn)中的必需工序。當前的殘次品剔除主要依賴于人工進行,成本高,效率低,且人工易于疲勞,錯檢漏檢現(xiàn)象時常發(fā)生。為了克服上述困難,提高磁瓦檢測的效率和自動化水平,機器視覺技術(shù)[1-4]被引入到各類檢測和識別應(yīng)用中。
基于機器視覺技術(shù)的磁瓦檢測可以分為兩類:一類直接在圖像的灰度空間中進行處理判斷是否存在缺陷;另一類則首先對磁瓦圖像進行某類變換,然后在此類變換下進行缺陷判斷。胡浩等[5]在圖像的灰度空間下,綜合考慮了形狀、紋理、邊緣等特征,將磁瓦缺陷分為3 類,采用不同的特征組合來對三類缺陷進行檢測。劉國平等[6]為了解決磁瓦表面灰度分布均勻、噪聲較多等問題,從獲取掃描行更穩(wěn)定的灰度出發(fā),提出下包絡(luò)線灰度對比度來分割出缺陷區(qū)域。李雪琴等[7]則將磁瓦圖像進行Contourlet 變換,以變換后得到的子帶系數(shù)作為研究對象,通過對比確定是否存在缺陷。同樣從圖像變換的角度出發(fā),文獻[8]則采用平穩(wěn)小波變換構(gòu)造輪廓波包,首先利用相關(guān)去噪消減圖像的噪聲,然后通過輪廓波包逆變換來得到缺陷圖像。
經(jīng)過多年的研究,盡管先后已出現(xiàn)多種不同的缺陷識別方法,然而由于磁瓦形狀的不規(guī)則性,大多數(shù)方法還是局限于實驗環(huán)境中。首先,已發(fā)表的文獻中進行實驗時樣本量大多為幾百個,數(shù)據(jù)集規(guī)模偏小,不足以反映工廠環(huán)境下的實際性能。其次,多數(shù)算法需要人工的確定一系列的閾值,這不利于在實際多變的環(huán)境中推廣應(yīng)用。再次,磁瓦的曲面形狀給照明設(shè)計帶來困難,往往難以得到理想均勻的光照效果。
近年來,深度卷積網(wǎng)絡(luò)在計算機視覺分類和檢測任務(wù)中都表現(xiàn)出了優(yōu)異的性能[9-10],但在磁瓦質(zhì)量識別領(lǐng)域相關(guān)的工作較少。針對上述問題,本文在構(gòu)造符合實際生產(chǎn)場景樣本集的基礎(chǔ)上,通過將深度卷積網(wǎng)絡(luò)引入缺陷識別系統(tǒng),設(shè)計一類端到端的,不需要人工干預(yù),且對光照不敏感的磁瓦缺陷識別算法,以提高磁瓦缺陷識別系統(tǒng)的識別精度和推廣能力。
通過對大量的帶缺陷的磁瓦進行分析,發(fā)現(xiàn)絕大多數(shù)的磁瓦缺陷發(fā)生在磁瓦兩端。由于磁瓦表面形狀為凸起曲面,在采用單一相機自頂朝下進行拍攝時,兩端邊角無法包含在視野內(nèi),因此,本文采用了如圖1 所示的攝像機布局,通過兩個互相對角的攝像機,不但可以更加清晰地對兩端圖像進行采集,而且利用攝像機的視場互補,也可以獲取整個凸起曲面的圖片。對于光照來說,在這里希望所研發(fā)的缺陷識別系統(tǒng)能夠不依賴于嚴格的光照條件,因此在磁瓦工件兩側(cè)各設(shè)置一個發(fā)光二極管面光源來進行照明,并沒有進行更加優(yōu)化的布局設(shè)計。
圖1 攝像機布局結(jié)構(gòu)Fig.1 Layout structure of cameras
在檢測磁瓦時,難以保證所有磁瓦都處于相同的姿態(tài),因此需要從采集圖像中得到姿態(tài)歸一化的目標圖片。假定采集到的磁瓦工件圖像如圖2(a)和圖2(c)所示,此時為了獲取標準的磁瓦樣本。采用如下的步驟來進行處理:
第一步 對采集到的圖像進行閾值分割,獲得磁瓦所在的矩形區(qū)域(圖2中白色實線矩形框所示)。
第二步 進一步尋找磁瓦目標的最小外接矩形,如圖2中白色虛線矩形框所示。
第三步 將獲取的最小外接矩形區(qū)域進行旋轉(zhuǎn),得到標準的磁瓦樣本圖像,如圖2(b)和圖2(d)所示。
在訓(xùn)練和測試階段,均采用上述的方法,首先采集到原始圖像,然后獲取要訓(xùn)練或測試的磁瓦樣本進行對應(yīng)的操作。
通過對磁瓦殘次品進行分析發(fā)現(xiàn),盡管缺陷發(fā)生部位集中于磁瓦兩端,但缺陷類別多種多樣。圖3 給出了常見的缺陷類型,主要包括掉塊、磕邊、裂縫、坑洞等。從圖中可以看出,不同類型的缺陷外觀差異較大,難以采用傳統(tǒng)的圖像處理方法進行統(tǒng)一的特征描述。鑒于此,本文不考慮缺陷的類型,通過設(shè)計端到端的深度學(xué)習(xí)系統(tǒng)直接對磁瓦進行表面質(zhì)量識別。
圖2 采集到的圖像及獲取的磁瓦樣本Fig.2 Collected images and corresponding megnetic tile samples
圖3 常見的缺陷類型Fig.3 Common types of defects
采用深度學(xué)習(xí)進行磁瓦識別時,首先需要設(shè)計深度卷積網(wǎng)絡(luò)模型來構(gòu)建磁瓦質(zhì)量識別系統(tǒng)。當前存在多種不同的網(wǎng)絡(luò)框架可供選擇,比如VGG(Visual Geometry Group)系列[11]、殘差網(wǎng)絡(luò)(Residual Network,ResNet)系列[12]等??紤]到系統(tǒng)的實時性、訓(xùn)練樣本集的規(guī)模、卷積網(wǎng)絡(luò)自身的性能等因素,綜合進行衡量,選定ResNet18作為識別系統(tǒng)的主框架。
如圖4 所示,不考慮池化、批歸一化等操作,ResNet18 一共由18層網(wǎng)絡(luò)組成,其中包含4個殘差模塊,每個殘差模塊包含兩個殘差單元,其內(nèi)部結(jié)構(gòu)可參考圖5,殘差單元采用如下的形式來得到:
其中:x為模塊的輸入,y為模塊的輸出,F(xiàn)為模塊對x的映射。
圖4 ResNet18網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Network architecture of ResNet18
上述模型中輸入圖像的尺度為224×224×3,整個網(wǎng)絡(luò)經(jīng)過一系列的池化和下采樣將圖像縮小至原來的1/32,殘差模塊4輸出大小為7×7×512,該輸出與全連接層相連進行最終分類。由于磁瓦表面缺陷可能以任意的外觀和尺寸出現(xiàn),如圖6 所示,不同的缺陷之間存在著較大的尺度差異。因此將原圖下采樣為7×7的卷積結(jié)果不利于識別微小尺度缺陷。為了解決這一問題,本文對原始的ResNet18 進行微調(diào),同時采用殘差模塊3 和殘差模塊4 的結(jié)果進行全連接分類識別。如圖7 所示,將殘差模塊3 的輸出結(jié)果引入分支連接一全連接層,并將該全連接層與原全連接層進行拼接,共同進行分類得到識別結(jié)果。
圖5 殘差模塊結(jié)構(gòu)示意圖Fig.5 Schematic diagram of residual module architecture
圖6 磁瓦表面缺陷區(qū)域存在較大尺度差Fig.6 Significant scale differences among tile surface defects
圖7 多尺度ResNet18網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Network structure of multiscale ResNet18
磁瓦表面質(zhì)量識別問題可以看作為二分類問題,因此采用兩類交叉熵函數(shù)作為深度卷積網(wǎng)絡(luò)的損失函數(shù),該函數(shù)如式(2)所示:
其中:z為樣本真實標簽,p為網(wǎng)絡(luò)預(yù)測標簽。通過損失函數(shù)就可以采用梯度下降法來更新網(wǎng)絡(luò)參數(shù),直至收斂或達到訓(xùn)練迭代次數(shù)為止。
在訓(xùn)練深度卷積網(wǎng)絡(luò)時,網(wǎng)絡(luò)的規(guī)模受限于樣本的數(shù)量,而訓(xùn)練樣本的多樣性則直接關(guān)系到深度卷積網(wǎng)絡(luò)的識別能力。因此,數(shù)據(jù)增廣已成為提高樣本多樣性的常用手段。數(shù)據(jù)增廣方法一般可以分為兩類:一類是對原樣本施加亮度偏移、色彩偏移、角度偏移等簡單運算得到增廣后的樣本;另一類則以原樣本為基礎(chǔ)生成新的虛擬樣本。這里,同時采用了兩種不同的增廣策略來擴充樣本,首先通過隨機偏移樣本的亮度來完成第一類數(shù)據(jù)擴充,因為在構(gòu)建樣本集時沒有對磁瓦的姿態(tài)方向進行限制,因此不需要再進行旋轉(zhuǎn)操作對樣本進行增廣。對于第二類擴充策略,本文在構(gòu)建虛擬樣本時以Zhang 等[13]提出的mixup 方法為基礎(chǔ),并對其進行了拓展。傳統(tǒng)的mixup 方法使神經(jīng)網(wǎng)絡(luò)的訓(xùn)練得以在樣本對及其對應(yīng)標簽的凸組合上進行,對樣本泛化能力有著明顯的提升作用。mixup采用如下的操作來生成虛擬樣本:
其中(xi,yi)和(xj,yj)為從訓(xùn)練集中隨機選擇的兩個樣本,且λ~Beta(α,α),α∈(0,∞)。從式(3)可以看出,新生成的虛擬樣本實際上是原樣本的線性疊加,通過該方式可以讓不同樣本間的分布更為平滑。
對于本文所研究的問題來講,由于磁瓦的缺陷可能以細小、微弱的形式出現(xiàn),因此如果采用類間形式進行mixup,容易使樣本混淆。一般來說,一個有缺陷的樣本與無缺陷的樣本疊加,得到的結(jié)果依然為有缺陷的樣本,而式(3)并不能支撐該理論??紤]到該問題,這里對疊加樣本的類別進行了限制:
在式(4)中,僅當隨機選擇的樣本屬于同一類別時才進行疊加,在這里將其稱為類內(nèi)mixup。由于僅在類內(nèi)進行線性平滑,可以對缺陷類型進行進一步的泛化,從而有助于提升網(wǎng)絡(luò)的推廣能力。
為了盡可能地貼近實用場合,更加客觀地評估算法在實用中的分類性能,采用實際生產(chǎn)的磁瓦構(gòu)建缺陷樣本集。該樣本集包含了7 759 個有缺陷樣本(負樣本)、4 452 個無缺陷樣本(正樣本),其中訓(xùn)練集由6 692 個負樣本和3 984 個正樣本組成,其余樣本構(gòu)成測試集。在構(gòu)建樣本的時候,為了體現(xiàn)環(huán)境的復(fù)雜性,并沒有對磁瓦的位置和角度進行嚴格限制,因此樣本集中的磁瓦以不同的姿態(tài)和不同的反光區(qū)域呈現(xiàn)。如圖8所示給出了部分的樣本示例。
圖8 磁瓦樣本圖像示例Fig.8 Schematic diagram of tile samples
所有實驗均在顯卡型號為GTX1080TI、內(nèi)存為16 GB 的機器上進行,所采用的深度學(xué)習(xí)工具為Pytorch。由于本文的重點在于評估所提出系統(tǒng)的性能,在進行網(wǎng)絡(luò)訓(xùn)練時采用了通用的超參數(shù)設(shè)置,訓(xùn)練所用的學(xué)習(xí)率設(shè)為0.001,訓(xùn)練迭代次數(shù)為100 個epoch,每個batch 大小為50,采用隨機梯度下降學(xué)習(xí)到網(wǎng)絡(luò)的最終參數(shù)。為了更加直觀地觀測所研究系統(tǒng)的性能,分別對采用VGG16、ResNet18、多尺度ResNet18(本文算法)的識別系統(tǒng)進行了對比。如圖9 所示,給出了3 種方法的訓(xùn)練loss曲線。從曲線可以看出,3種網(wǎng)絡(luò)結(jié)構(gòu)均可在最終達到收斂,但ResNet18 結(jié)構(gòu)明顯比VGG16 具有更好的收斂性能。而多尺度ResNet18和傳統(tǒng)的ResNet18具有相似的loss曲線,而多尺度的結(jié)構(gòu)可以取得更小的代價。
在訓(xùn)練過程中,每訓(xùn)練完成一個epoch 保存一次網(wǎng)絡(luò)權(quán)重文件,在訓(xùn)練結(jié)束后,在所有權(quán)重文件中選取對測試集性能最優(yōu)的權(quán)重作為最終的網(wǎng)絡(luò)參數(shù)。表1 分別采用準確率(accuracy)、精確率(precision)、召回率(recall)和F1 分數(shù)4 個指標[14-15]對不同模型的性能進行對比,從中可以看出3種網(wǎng)絡(luò)結(jié)構(gòu)均取得了高于90%的正確識別率,充分說明了深度卷積網(wǎng)絡(luò)在缺陷識別問題上的有效性,而采用ResNet 結(jié)果明顯要優(yōu)于VGG 結(jié)構(gòu),特別的,本文提出的多尺度ResNet18 取得了最好的識別結(jié)果。另外,多尺度ResNet18 在運行時間上一幅圖像僅耗時1.31 ms,完全可以滿足實時的需要。
圖9 不同網(wǎng)絡(luò)結(jié)構(gòu)下的loss曲線Fig.9 Loss curves with different network architectures
表1 不同網(wǎng)絡(luò)結(jié)構(gòu)下的識別性能對比Tab.1 Comparison of recognition performance under different network architectures
除不同的網(wǎng)絡(luò)結(jié)構(gòu)外,也對采用傳統(tǒng)mixup 和類內(nèi)mixup的數(shù)據(jù)增廣方法進行了對比。圖10 給出了以多尺度的ResNet18 為基礎(chǔ),分別采用兩種不同數(shù)據(jù)增廣方法訓(xùn)練時的loss 曲線,訓(xùn)練時采用與前述相同的超參數(shù),在進行mixup 時將α的值設(shè)為通用的1.0,λ參數(shù)則可以由對應(yīng)的Beta 分布得出。如圖中所示,傳統(tǒng)的mixup 擴充樣本后,在訓(xùn)練的初始階段訓(xùn)練損失快速下降,但過后loss 的值陷入震蕩,無法收斂。而類內(nèi)mixup 由于將疊加的樣本限制在類內(nèi),生成了更加合理的虛擬樣本,因此網(wǎng)絡(luò)可以迅速趨于收斂。
圖10 不同mixup操作下的loss曲線Fig.10 Loss curves with different mixup operations
以多尺度的ResNet18 為基礎(chǔ),加入mixup 操作進行樣本擴充后的網(wǎng)絡(luò)識別性能如表2 所示。與前面相同,依然使用所保存的100 個權(quán)重文件中在測試集上性能最優(yōu)的權(quán)重參數(shù)作為最終網(wǎng)絡(luò)進行測試。從識別結(jié)果可以看出,采用原始的mixup操作后,不但沒有改進識別性能,反而識別率有所下降。這是因為與傳統(tǒng)的分類問題不同,由于缺陷區(qū)域往往僅占有整個樣本的微小部分,因此在不同類樣本間進行疊加時會引起系統(tǒng)混淆。相對而言,本文提出的類內(nèi)mixup 則將識別準確率進一步地提升至97.9%,取得了滿意的識別效果,表明所研究的系統(tǒng)對不同的缺陷類型、不同的反光場景都具備了良好的魯棒性。
表2 不同mixup操作下的識別性能對比Tab.2 Comparison of recognition performance under different mixup operations
利用計算機視覺技術(shù)對生產(chǎn)工件的質(zhì)量進行檢測是工業(yè)生產(chǎn)中的重要需求之一。本文對鐵氧體磁瓦表面缺陷識別問題展開研究,將深度學(xué)習(xí)技術(shù)引入到磁瓦缺陷識別中,提出一種基于深度卷積網(wǎng)絡(luò)的磁瓦表面質(zhì)量識別系統(tǒng)。該系統(tǒng)首先從抓取的磁瓦圖像中獲得磁瓦目標,并進行旋轉(zhuǎn)歸一化處理,然后設(shè)計多尺度卷積網(wǎng)絡(luò)對磁瓦目標圖像進行分類識別。為了提高系統(tǒng)的泛化能力,訓(xùn)練時提出一種新穎的類內(nèi)mixup方法來生成虛擬樣本,從而完成對樣本的擴充。同時構(gòu)建了較大規(guī)模的磁瓦缺陷數(shù)據(jù)集,在該數(shù)據(jù)集上進行實驗的結(jié)果表明,所研究的磁瓦缺陷識別系統(tǒng)可以達到接近97.9%的識別準確率,為實際應(yīng)用提供了一種可行的途徑。本文僅從工廠實用的角度出發(fā)對磁瓦是否具有缺陷進行了二類分類,并沒有考慮缺陷的類別和位置,未來將對磁瓦缺陷類型和位置進行標注,進一步深入研究磁瓦缺陷檢測問題。