(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
在傳統(tǒng)的工業(yè)生產(chǎn)流水線上,對磁片的缺陷檢測主要是以人工檢測為主。隨著智能信息化技術(shù)的發(fā)展,目前缺陷的自動檢測方法主要分為兩類。一種是使用傳統(tǒng)的模式識別對表面缺陷進(jìn)行檢測。Yang等[1]提出了一種利用平穩(wěn)小波變換的新方法,用于在圖像中自動檢測各種光條件下的低對比度缺陷。Xie等[2]提出了一種基于剪切變換的磁瓦圖像缺陷提取方法。蔣紅海等[3]將輪廓長度、相似度等作為特征向量,將支持向量機與凸凹缺陷相結(jié)合進(jìn)分類檢測。由于磁片表面缺陷不明顯,紋理復(fù)雜和對比度低等難點,使用傳統(tǒng)的模式識別方法對磁片表面缺陷進(jìn)行檢測存在通用性低和適應(yīng)性不強等缺點。另一種則是基于卷積神經(jīng)網(wǎng)路的方法來對缺陷圖像進(jìn)行識別和分類的。自Krizhevsky 等[4]提出的AlexNet網(wǎng)絡(luò)在ImageNet圖像分類任務(wù)中取得了最好的成績,開啟了卷積神經(jīng)網(wǎng)絡(luò)的新紀(jì)元。為了進(jìn)一步改善網(wǎng)絡(luò)的性能,提高網(wǎng)絡(luò)模型的分類檢測的精度,使網(wǎng)絡(luò)模型在實際中有更廣泛的應(yīng)用。研究者從網(wǎng)絡(luò)的結(jié)構(gòu)和應(yīng)用等方面提出了VGG[5]、GoogLeNet[6]、ResNet[7]、Xception[8]等一系列性能優(yōu)良的網(wǎng)絡(luò)。
在這些性能優(yōu)良的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,網(wǎng)絡(luò)的深度越深和每層特征面數(shù)量越多,網(wǎng)絡(luò)能夠表示的特征空間也就越大,網(wǎng)絡(luò)學(xué)習(xí)能力也越強[9]。雖然通過增加網(wǎng)絡(luò)的深度和每層網(wǎng)絡(luò)的特征面數(shù)量,使網(wǎng)絡(luò)的性能得到了大幅度的提升。但是卷積神經(jīng)網(wǎng)絡(luò)的模型會隨著網(wǎng)絡(luò)深度和特征面數(shù)量變得越來越復(fù)雜,網(wǎng)絡(luò)中的參數(shù)會大大增加,網(wǎng)絡(luò)模型的計算量也會增加。因此會導(dǎo)致網(wǎng)絡(luò)的實時性檢測效率變低。
影響網(wǎng)絡(luò)的實時分類檢測效率主要是由于模型的存儲大小和模型進(jìn)行預(yù)測時的延時而引起的。對于模型的存儲而言,當(dāng)網(wǎng)絡(luò)的層數(shù)達(dá)到一定深度時,網(wǎng)絡(luò)中需要保存的權(quán)值參數(shù)時巨大的,而保存大量的權(quán)值參數(shù)對設(shè)備的內(nèi)存要求很高[10]。深度卷積神經(jīng)網(wǎng)絡(luò)模型當(dāng)中會存在大量的參數(shù)冗余。這種冗余會對計算資源和存儲資源造成巨大的浪費。因此減少網(wǎng)絡(luò)模型的參數(shù)數(shù)量以及降低計算的復(fù)雜度是減少延時的核心所在。網(wǎng)絡(luò)裁剪是通過尋找一種有效的評判手段來判斷參數(shù)的重要性,將不重要的連接或者濾波器進(jìn)行裁剪來減少網(wǎng)絡(luò)的冗余。Song等人[11]提出了一種幾乎無損的網(wǎng)絡(luò)裁剪壓縮方法。Li等人[12]提出了基于量級的裁剪方式,通過權(quán)值大小來作為濾波器的評價指標(biāo)。核的稀疏化是在訓(xùn)練的過程中對權(quán)重的更新加以正則項進(jìn)行引導(dǎo),使其更加稀疏。Wen等人[13]提出了一種能夠?qū)W習(xí)一個稀疏結(jié)構(gòu)的學(xué)習(xí)方式來降低計算消耗。雖然通過網(wǎng)絡(luò)裁剪和核的稀疏化方法減少了網(wǎng)絡(luò)參數(shù),但是有些權(quán)重很小的參數(shù)會對模型的精度產(chǎn)生影響。而在磁片的實時缺陷檢測系統(tǒng)中,不僅需要考慮延時性問題,還需要考慮檢測精度的問題。因此設(shè)計出一種輕量級高效低延時的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)MagnetNets,使整個磁片缺陷檢測系統(tǒng)具有高精度低延時的特點。
基于深度可分離卷積和通道混洗,本文設(shè)計了一種輕量級的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)。在本部分首先介紹深度可分離卷積,然后介紹通道混洗,接著介紹由深度可分離卷積和通道混洗搭建而成的MagnetNets模塊,最后介紹本論文提出的輕量級卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu)。
深度可分離卷積是將標(biāo)準(zhǔn)的卷積方式因式分解為深度卷積和逐點卷積。深度卷積是將輸入的特征圖譜逐通道進(jìn)行卷積,一個卷積核負(fù)責(zé)一個通道。通過深度卷積得到的每一個特征圖譜,不能夠包含輸入特征圖譜的所有信息。因此采用逐點卷積的方式將深度卷積輸出的特征圖譜再次進(jìn)行多通道卷積,使信息能夠盡可能的保留下來。通過深度可分離卷積可以在保證信息流通順暢的情況下,減少模型的參數(shù)數(shù)量。深度可分離卷積與Xception中提出的Inception模塊的極端形式是一致的。圖1顯示了如何將標(biāo)準(zhǔn)的卷積結(jié)構(gòu)變成深度可分離卷積。
圖1 標(biāo)準(zhǔn)卷積和深度可分離卷積
通道混洗操作是在組卷積的操作上實施的。分組卷積的概念最早是在AlexNet中引入的。它通過將輸入的多個特征圖譜分成多個組數(shù),然后對每個組分別進(jìn)行卷積,隨著將輸入圖譜的組數(shù)增加,所需要的網(wǎng)絡(luò)參數(shù)量會大大減少,模型的計算速率也會隨之增加。但是當(dāng)多個分組卷積堆疊起來的時候,每個輸出通道只能從有限輸入通道獲得信息,即一個組的輸出只和這個組的輸入有關(guān),限制了模型的表達(dá)能力。在組卷積的基礎(chǔ)上通過通道混洗操作,將輸出的每一個組的特征圖譜重新分配到每個組中,使每個組的輸出都有來自其他組的上一層輸入。圖2顯示了組卷積和組卷積與通道混洗的聯(lián)合操作。
圖2 組卷積和組卷積與通道混洗
本論文所提出的網(wǎng)絡(luò)結(jié)構(gòu)主要受到MobileNetV2[14]網(wǎng)絡(luò)模型的啟發(fā)。通過組卷積和通道混洗替換1x1的逐點卷積,然后結(jié)合深度可分離反轉(zhuǎn)殘差卷積模塊(如圖3所示),構(gòu)建了一種新的卷積神經(jīng)網(wǎng)絡(luò)的基本模塊,我們將這種新提出的基本模塊命名為Magnet,如圖4所示。深度可分離的反轉(zhuǎn)殘差卷積模塊是將深度可分離卷積和殘差網(wǎng)絡(luò)的跳遠(yuǎn)連接結(jié)合起來所形成的一個網(wǎng)絡(luò)模塊。Magnet模塊主要使用了3個重要策略:1)延續(xù)MobileNets[15]中用大量1x1的卷積模塊,同時采用組卷積和通道混洗相結(jié)合的方式取代1x1的卷積模塊。由于1x1的卷積模塊的參數(shù)數(shù)量只有3x3卷積模塊參數(shù)數(shù)量的九分之一,同時將1x1的卷積進(jìn)行分組,可以使參數(shù)數(shù)量隨著組數(shù)的增加而減少,這種改進(jìn)可以在保證精確度不降低的情況下減少網(wǎng)絡(luò)模型的參數(shù)數(shù)量;2)反轉(zhuǎn)殘差。先通過一個1x1的卷積層把特征圖譜的通道數(shù)擴張,然后在深度可分離卷積后再將通道數(shù)壓縮回去。直接采用殘差塊中的跳遠(yuǎn)連接先進(jìn)行壓縮,會導(dǎo)致深度可分離卷積層提取到的特征數(shù)量減少,影響模型的精度。因此采用反轉(zhuǎn)殘差先將通道數(shù)擴張后再壓縮;3)線性激活。經(jīng)過反轉(zhuǎn)殘差以后,最后輸出的特征圖譜需要壓縮。由于Relu函數(shù)的特性,對于負(fù)的輸入,輸出全為零。當(dāng)對壓縮后的特征圖譜采用非線性的Relu函數(shù)激活,會損失已有的特征,降低模型的表達(dá)。因而,采用線性函數(shù)進(jìn)行激活。
圖3 深度可分離反轉(zhuǎn)殘差卷積
圖4 Magnet模塊
MobileNetV2網(wǎng)絡(luò)模型中采用大量的1x1的逐點卷積方法取代3x3的標(biāo)準(zhǔn)卷積,而在該模型中,1x1的卷積方式占據(jù)大部分的計算量。本論文提出的方法通過組卷積和通道混洗替換1x1的逐點卷積,然后結(jié)合深度可分離反轉(zhuǎn)殘差卷積模塊構(gòu)成Magnet模塊。它比使用深度可分離反轉(zhuǎn)卷積模塊構(gòu)成的MobileNetV2更小,但是性能更加優(yōu)越。
MagnetNet模塊將DK×DK×M作為深度可分離卷積核的尺寸大小,一個DI×DI×S大小的特征圖作為輸入,一個DF×DF×N大小的特征圖作為輸出。DK是可分離卷積核的特征圖譜大小,DI是輸入特征圖的圖像尺寸,DF是輸出特征圖的圖像尺寸,M是深度可分離卷積核的個數(shù),S是輸入特征圖的通道數(shù)量,N是輸出特征圖的通道數(shù)量。設(shè)定L為通道擴張的數(shù)量,G為組卷積分的組數(shù),中間輸出的特征圖和輸入特征圖的尺寸大小一樣。
則MobileNetV2模塊的計算量為:
CMobileV2=1×1×S×DI×DI×L+
DK×DK×M×DI×DI+1×1×M×DF×DF×N
(1)
MobileNetV2模塊的參數(shù)量為:
NMobileV2=1×1×S×L+DK×DK×M+
1×1×M×N
(2)
而Magnet模塊的計算量為:
(3)
Magnet模塊的參數(shù)量為:
(4)
通過組卷積和通道混洗替換逐點卷積再和深度可分離反轉(zhuǎn)殘差卷積構(gòu)建而成的Magnet模塊的計算量與MobileNetV2的計算量比值為:
(5)
Magnet模塊的參數(shù)量與MobileNetV2的參數(shù)量比值為:
(6)
當(dāng)卷積層的輸入以及中間層的輸入特征圖和輸出特征圖的尺寸大小一樣時,并在經(jīng)過通道混洗保證通道間信息流通的情況下,當(dāng)組數(shù)G設(shè)置較大的時候,Magnet模塊的參數(shù)量和計算量是遠(yuǎn)小于MobileNetV2模塊的。
MagnetNets的總體結(jié)構(gòu)是一系列的Magnet模塊和一些普通的卷積層組合堆疊起來的。如圖5顯示了MagnetNets網(wǎng)絡(luò)的整體架構(gòu)以及該架構(gòu)中的各種模塊類型。MagnetNets由一個輸入尺寸為標(biāo)準(zhǔn)卷積層開始的,再與一些Magnet模塊堆疊,然后通過一個不帶任何參數(shù)平均池化。在最后一層卷積層的輸出中通常會以一個全連接層作為輸入,但是全連接層中的參數(shù)數(shù)量非常龐大,可能會導(dǎo)致過擬合,降低模型的表達(dá)效果。因此采用全局平均池化[16]來代替全連接層,同時搭載一個增加網(wǎng)絡(luò)泛化能力的Dropout層,避免過擬合的發(fā)生。最后將Dropout層中的輸出作為Softmax分類器的輸入對圖片進(jìn)行分類和檢測。
圖5 Magnets網(wǎng)絡(luò)架構(gòu)
為了評估出本文提出的MagnetNets網(wǎng)絡(luò)模型的性能,我們在ImageNet公用數(shù)據(jù)庫的圖像分類數(shù)據(jù)集上對MobileNets、ShuffleNet[17]、Xception、MobileNetV2、MagnetNets網(wǎng)絡(luò)模型進(jìn)行對比實驗。然后將MagnetNets網(wǎng)絡(luò)模型應(yīng)用于磁片缺陷檢測系統(tǒng)中對缺陷實時識別。實驗結(jié)果表明MagnetNets網(wǎng)絡(luò)模型具有很好的檢測精度和泛化能力,并且在模型大小上面更加的輕量化。同時使整個磁片缺陷檢測系統(tǒng)具有高精度低延時的特點,提高了檢測的效率和精度。
ImageNet是一個計算機視覺系統(tǒng)識別項目,是目前世界上圖像識別最大的數(shù)據(jù)庫。本文在ImageNet的分類圖片數(shù)據(jù)集上對MobileNets、ShuffleNet、Xception、MobileNetV2、MagnetNets網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和測試。使用TensorFlow框架對模型進(jìn)行訓(xùn)練,并采用Xavier來初始化網(wǎng)絡(luò)模型的參數(shù),將AdamOptimizer作為優(yōu)化器的優(yōu)化算法。同時在每一層之后使用批量標(biāo)準(zhǔn)化(batch normalization),批處理大小(batch size)為96,權(quán)重衰減(weight decay)為0.00004。初始學(xué)習(xí)率(learning rate)設(shè)置為0.045,學(xué)習(xí)率的衰減率(decay rate)為每代的0.98。實驗結(jié)果及與其他網(wǎng)絡(luò)模型的對比的數(shù)據(jù)如表1所示。實驗結(jié)果表明,在精確度方面,MagnetNets網(wǎng)絡(luò)模型能夠達(dá)到MobileNetV2等網(wǎng)絡(luò)模型的準(zhǔn)確率,在模型的大小上面,MagnetNets網(wǎng)絡(luò)模型比其他的幾種網(wǎng)絡(luò)更加輕量化。
表1 各網(wǎng)絡(luò)模型的對比結(jié)果
磁片缺陷檢測系統(tǒng)主要由傳送模塊、視覺模塊、分類檢測模塊、分揀模塊4個部分組成,如圖6所示。傳送模塊主要是在傳送帶上對生產(chǎn)打磨出來的磁片進(jìn)行傳輸。當(dāng)傳送帶上的磁片達(dá)到指定的視覺模塊區(qū)域時,視覺模塊對傳送帶上的磁片圖像進(jìn)行實時的采集。然后將采集到的圖片送入由MagnetNets網(wǎng)絡(luò)模型組成的分類檢測模塊中,來判斷磁片是否具有缺陷,同時判斷出缺陷是屬于哪一種類型的。最后將缺陷檢測的結(jié)果以信號的形式發(fā)送給分揀模塊,分揀模塊中的機械手根據(jù)信號將不同類型的缺陷分揀放置到不同的地方,從而完成整個磁片缺陷檢測系統(tǒng)對磁片的分類。
磁片缺陷檢測系統(tǒng)中的分類檢測模塊主要是使用磁片數(shù)據(jù)集對MagnetNets網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,網(wǎng)絡(luò)模型訓(xùn)練時的loss曲線和訓(xùn)練精度如圖7所示。其中磁片主要分為“正品”、“掉皮”、“開裂”、“缺角”四類磁片,如圖8所示。
圖8 磁片示意圖
在磁片的4種類型數(shù)據(jù)集中,“正品”和“掉皮”的數(shù)據(jù)集占據(jù)大部分,而“開裂”和“缺角”的數(shù)據(jù)集較少。為了防止在訓(xùn)練過程中,由于數(shù)據(jù)集不均衡而導(dǎo)致模型的性能下降,因此采用旋轉(zhuǎn)和添加椒鹽噪聲的方式來擴展“開裂”和“缺角”的磁片數(shù)據(jù)集。
通過系統(tǒng)的實時性檢測與評估,當(dāng)磁片缺陷檢測系統(tǒng)中加入MagnetNets網(wǎng)絡(luò)模型后,檢測過程中可以達(dá)到30 ms/個,同時磁片的檢測精度達(dá)到了97.3%,提高了磁片缺陷檢測系統(tǒng)的檢測效率,節(jié)約了人力成本。
本文提出了一種基于輕量級卷積神經(jīng)網(wǎng)絡(luò)的實時缺陷檢測方法。首先通過通道混洗和深度可分離卷積搭建出組成MagnetNets網(wǎng)絡(luò)模型的MagnetNet模塊,然后在公開數(shù)據(jù)集ImageNet上對MagnetNets網(wǎng)絡(luò)模型進(jìn)行性能和模型大小的評估。接著通過旋轉(zhuǎn)和添加椒鹽噪聲的方式來擴展不平衡的磁片數(shù)據(jù)集,并放入所提出的輕量級卷積神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練,最后將訓(xùn)練好的輕量級卷積神經(jīng)網(wǎng)絡(luò)加入到磁片缺陷檢測系統(tǒng)的分類檢測模塊中完成分類。通過系統(tǒng)的實時性分析,在提高檢測速度的情況下仍然能夠達(dá)到高精度的分類。但是由于不同形狀的磁片需要重新對模型進(jìn)行訓(xùn)練,該檢測系統(tǒng)還不能針對于可變的磁片形狀進(jìn)行檢測。因此下一步的研究方向放在具有自我發(fā)育機制的缺陷檢測上面。