(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
在傳統(tǒng)的工業(yè)生產(chǎn)流水線上,對(duì)磁片的缺陷檢測(cè)主要是以人工檢測(cè)為主。隨著智能信息化技術(shù)的發(fā)展,目前缺陷的自動(dòng)檢測(cè)方法主要分為兩類。一種是使用傳統(tǒng)的模式識(shí)別對(duì)表面缺陷進(jìn)行檢測(cè)。Yang等[1]提出了一種利用平穩(wěn)小波變換的新方法,用于在圖像中自動(dòng)檢測(cè)各種光條件下的低對(duì)比度缺陷。Xie等[2]提出了一種基于剪切變換的磁瓦圖像缺陷提取方法。蔣紅海等[3]將輪廓長(zhǎng)度、相似度等作為特征向量,將支持向量機(jī)與凸凹缺陷相結(jié)合進(jìn)分類檢測(cè)。由于磁片表面缺陷不明顯,紋理復(fù)雜和對(duì)比度低等難點(diǎn),使用傳統(tǒng)的模式識(shí)別方法對(duì)磁片表面缺陷進(jìn)行檢測(cè)存在通用性低和適應(yīng)性不強(qiáng)等缺點(diǎn)。另一種則是基于卷積神經(jīng)網(wǎng)路的方法來(lái)對(duì)缺陷圖像進(jìn)行識(shí)別和分類的。自Krizhevsky 等[4]提出的AlexNet網(wǎng)絡(luò)在ImageNet圖像分類任務(wù)中取得了最好的成績(jī),開(kāi)啟了卷積神經(jīng)網(wǎng)絡(luò)的新紀(jì)元。為了進(jìn)一步改善網(wǎng)絡(luò)的性能,提高網(wǎng)絡(luò)模型的分類檢測(cè)的精度,使網(wǎng)絡(luò)模型在實(shí)際中有更廣泛的應(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í)能力也越強(qiáng)[9]。雖然通過(guò)增加網(wǎng)絡(luò)的深度和每層網(wǎng)絡(luò)的特征面數(shù)量,使網(wǎng)絡(luò)的性能得到了大幅度的提升。但是卷積神經(jīng)網(wǎng)絡(luò)的模型會(huì)隨著網(wǎng)絡(luò)深度和特征面數(shù)量變得越來(lái)越復(fù)雜,網(wǎng)絡(luò)中的參數(shù)會(huì)大大增加,網(wǎng)絡(luò)模型的計(jì)算量也會(huì)增加。因此會(huì)導(dǎo)致網(wǎng)絡(luò)的實(shí)時(shí)性檢測(cè)效率變低。
影響網(wǎng)絡(luò)的實(shí)時(shí)分類檢測(cè)效率主要是由于模型的存儲(chǔ)大小和模型進(jìn)行預(yù)測(cè)時(shí)的延時(shí)而引起的。對(duì)于模型的存儲(chǔ)而言,當(dāng)網(wǎng)絡(luò)的層數(shù)達(dá)到一定深度時(shí),網(wǎng)絡(luò)中需要保存的權(quán)值參數(shù)時(shí)巨大的,而保存大量的權(quán)值參數(shù)對(duì)設(shè)備的內(nèi)存要求很高[10]。深度卷積神經(jīng)網(wǎng)絡(luò)模型當(dāng)中會(huì)存在大量的參數(shù)冗余。這種冗余會(huì)對(duì)計(jì)算資源和存儲(chǔ)資源造成巨大的浪費(fèi)。因此減少網(wǎng)絡(luò)模型的參數(shù)數(shù)量以及降低計(jì)算的復(fù)雜度是減少延時(shí)的核心所在。網(wǎng)絡(luò)裁剪是通過(guò)尋找一種有效的評(píng)判手段來(lái)判斷參數(shù)的重要性,將不重要的連接或者濾波器進(jìn)行裁剪來(lái)減少網(wǎng)絡(luò)的冗余。Song等人[11]提出了一種幾乎無(wú)損的網(wǎng)絡(luò)裁剪壓縮方法。Li等人[12]提出了基于量級(jí)的裁剪方式,通過(guò)權(quán)值大小來(lái)作為濾波器的評(píng)價(jià)指標(biāo)。核的稀疏化是在訓(xùn)練的過(guò)程中對(duì)權(quán)重的更新加以正則項(xiàng)進(jìn)行引導(dǎo),使其更加稀疏。Wen等人[13]提出了一種能夠?qū)W習(xí)一個(gè)稀疏結(jié)構(gòu)的學(xué)習(xí)方式來(lái)降低計(jì)算消耗。雖然通過(guò)網(wǎng)絡(luò)裁剪和核的稀疏化方法減少了網(wǎng)絡(luò)參數(shù),但是有些權(quán)重很小的參數(shù)會(huì)對(duì)模型的精度產(chǎn)生影響。而在磁片的實(shí)時(shí)缺陷檢測(cè)系統(tǒng)中,不僅需要考慮延時(shí)性問(wèn)題,還需要考慮檢測(cè)精度的問(wèn)題。因此設(shè)計(jì)出一種輕量級(jí)高效低延時(shí)的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)MagnetNets,使整個(gè)磁片缺陷檢測(cè)系統(tǒng)具有高精度低延時(shí)的特點(diǎn)。
基于深度可分離卷積和通道混洗,本文設(shè)計(jì)了一種輕量級(jí)的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)。在本部分首先介紹深度可分離卷積,然后介紹通道混洗,接著介紹由深度可分離卷積和通道混洗搭建而成的MagnetNets模塊,最后介紹本論文提出的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu)。
深度可分離卷積是將標(biāo)準(zhǔn)的卷積方式因式分解為深度卷積和逐點(diǎn)卷積。深度卷積是將輸入的特征圖譜逐通道進(jìn)行卷積,一個(gè)卷積核負(fù)責(zé)一個(gè)通道。通過(guò)深度卷積得到的每一個(gè)特征圖譜,不能夠包含輸入特征圖譜的所有信息。因此采用逐點(diǎn)卷積的方式將深度卷積輸出的特征圖譜再次進(jìn)行多通道卷積,使信息能夠盡可能的保留下來(lái)。通過(guò)深度可分離卷積可以在保證信息流通順暢的情況下,減少模型的參數(shù)數(shù)量。深度可分離卷積與Xception中提出的Inception模塊的極端形式是一致的。圖1顯示了如何將標(biāo)準(zhǔn)的卷積結(jié)構(gòu)變成深度可分離卷積。


圖1 標(biāo)準(zhǔn)卷積和深度可分離卷積
通道混洗操作是在組卷積的操作上實(shí)施的。分組卷積的概念最早是在AlexNet中引入的。它通過(guò)將輸入的多個(gè)特征圖譜分成多個(gè)組數(shù),然后對(duì)每個(gè)組分別進(jìn)行卷積,隨著將輸入圖譜的組數(shù)增加,所需要的網(wǎng)絡(luò)參數(shù)量會(huì)大大減少,模型的計(jì)算速率也會(huì)隨之增加。但是當(dāng)多個(gè)分組卷積堆疊起來(lái)的時(shí)候,每個(gè)輸出通道只能從有限輸入通道獲得信息,即一個(gè)組的輸出只和這個(gè)組的輸入有關(guān),限制了模型的表達(dá)能力。在組卷積的基礎(chǔ)上通過(guò)通道混洗操作,將輸出的每一個(gè)組的特征圖譜重新分配到每個(gè)組中,使每個(gè)組的輸出都有來(lái)自其他組的上一層輸入。圖2顯示了組卷積和組卷積與通道混洗的聯(lián)合操作。

圖2 組卷積和組卷積與通道混洗
本論文所提出的網(wǎng)絡(luò)結(jié)構(gòu)主要受到MobileNetV2[14]網(wǎng)絡(luò)模型的啟發(fā)。通過(guò)組卷積和通道混洗替換1x1的逐點(diǎn)卷積,然后結(jié)合深度可分離反轉(zhuǎn)殘差卷積模塊(如圖3所示),構(gòu)建了一種新的卷積神經(jīng)網(wǎng)絡(luò)的基本模塊,我們將這種新提出的基本模塊命名為Magnet,如圖4所示。深度可分離的反轉(zhuǎn)殘差卷積模塊是將深度可分離卷積和殘差網(wǎng)絡(luò)的跳遠(yuǎn)連接結(jié)合起來(lái)所形成的一個(gè)網(wǎng)絡(luò)模塊。Magnet模塊主要使用了3個(gè)重要策略:1)延續(xù)MobileNets[15]中用大量1x1的卷積模塊,同時(shí)采用組卷積和通道混洗相結(jié)合的方式取代1x1的卷積模塊。由于1x1的卷積模塊的參數(shù)數(shù)量只有3x3卷積模塊參數(shù)數(shù)量的九分之一,同時(shí)將1x1的卷積進(jìn)行分組,可以使參數(shù)數(shù)量隨著組數(shù)的增加而減少,這種改進(jìn)可以在保證精確度不降低的情況下減少網(wǎng)絡(luò)模型的參數(shù)數(shù)量;2)反轉(zhuǎn)殘差。先通過(guò)一個(gè)1x1的卷積層把特征圖譜的通道數(shù)擴(kuò)張,然后在深度可分離卷積后再將通道數(shù)壓縮回去。直接采用殘差塊中的跳遠(yuǎn)連接先進(jìn)行壓縮,會(huì)導(dǎo)致深度可分離卷積層提取到的特征數(shù)量減少,影響模型的精度。因此采用反轉(zhuǎn)殘差先將通道數(shù)擴(kuò)張后再壓縮;3)線性激活。經(jīng)過(guò)反轉(zhuǎn)殘差以后,最后輸出的特征圖譜需要壓縮。由于Relu函數(shù)的特性,對(duì)于負(fù)的輸入,輸出全為零。當(dāng)對(duì)壓縮后的特征圖譜采用非線性的Relu函數(shù)激活,會(huì)損失已有的特征,降低模型的表達(dá)。因而,采用線性函數(shù)進(jìn)行激活。

圖3 深度可分離反轉(zhuǎn)殘差卷積

圖4 Magnet模塊
MobileNetV2網(wǎng)絡(luò)模型中采用大量的1x1的逐點(diǎn)卷積方法取代3x3的標(biāo)準(zhǔn)卷積,而在該模型中,1x1的卷積方式占據(jù)大部分的計(jì)算量。本論文提出的方法通過(guò)組卷積和通道混洗替換1x1的逐點(diǎn)卷積,然后結(jié)合深度可分離反轉(zhuǎn)殘差卷積模塊構(gòu)成Magnet模塊。它比使用深度可分離反轉(zhuǎn)卷積模塊構(gòu)成的MobileNetV2更小,但是性能更加優(yōu)越。
MagnetNet模塊將DK×DK×M作為深度可分離卷積核的尺寸大小,一個(gè)DI×DI×S大小的特征圖作為輸入,一個(gè)DF×DF×N大小的特征圖作為輸出。DK是可分離卷積核的特征圖譜大小,DI是輸入特征圖的圖像尺寸,DF是輸出特征圖的圖像尺寸,M是深度可分離卷積核的個(gè)數(shù),S是輸入特征圖的通道數(shù)量,N是輸出特征圖的通道數(shù)量。設(shè)定L為通道擴(kuò)張的數(shù)量,G為組卷積分的組數(shù),中間輸出的特征圖和輸入特征圖的尺寸大小一樣。
則MobileNetV2模塊的計(jì)算量為:
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模塊的計(jì)算量為:
(3)
Magnet模塊的參數(shù)量為:
(4)
通過(guò)組卷積和通道混洗替換逐點(diǎn)卷積再和深度可分離反轉(zhuǎn)殘差卷積構(gòu)建而成的Magnet模塊的計(jì)算量與MobileNetV2的計(jì)算量比值為:
(5)
Magnet模塊的參數(shù)量與MobileNetV2的參數(shù)量比值為:
(6)
當(dāng)卷積層的輸入以及中間層的輸入特征圖和輸出特征圖的尺寸大小一樣時(shí),并在經(jīng)過(guò)通道混洗保證通道間信息流通的情況下,當(dāng)組數(shù)G設(shè)置較大的時(shí)候,Magnet模塊的參數(shù)量和計(jì)算量是遠(yuǎn)小于MobileNetV2模塊的。
MagnetNets的總體結(jié)構(gòu)是一系列的Magnet模塊和一些普通的卷積層組合堆疊起來(lái)的。如圖5顯示了MagnetNets網(wǎng)絡(luò)的整體架構(gòu)以及該架構(gòu)中的各種模塊類型。MagnetNets由一個(gè)輸入尺寸為標(biāo)準(zhǔn)卷積層開(kāi)始的,再與一些Magnet模塊堆疊,然后通過(guò)一個(gè)不帶任何參數(shù)平均池化。在最后一層卷積層的輸出中通常會(huì)以一個(gè)全連接層作為輸入,但是全連接層中的參數(shù)數(shù)量非常龐大,可能會(huì)導(dǎo)致過(guò)擬合,降低模型的表達(dá)效果。因此采用全局平均池化[16]來(lái)代替全連接層,同時(shí)搭載一個(gè)增加網(wǎng)絡(luò)泛化能力的Dropout層,避免過(guò)擬合的發(fā)生。最后將Dropout層中的輸出作為Softmax分類器的輸入對(duì)圖片進(jìn)行分類和檢測(cè)。

圖5 Magnets網(wǎng)絡(luò)架構(gòu)
為了評(píng)估出本文提出的MagnetNets網(wǎng)絡(luò)模型的性能,我們?cè)贗mageNet公用數(shù)據(jù)庫(kù)的圖像分類數(shù)據(jù)集上對(duì)MobileNets、ShuffleNet[17]、Xception、MobileNetV2、MagnetNets網(wǎng)絡(luò)模型進(jìn)行對(duì)比實(shí)驗(yàn)。然后將MagnetNets網(wǎng)絡(luò)模型應(yīng)用于磁片缺陷檢測(cè)系統(tǒng)中對(duì)缺陷實(shí)時(shí)識(shí)別。實(shí)驗(yàn)結(jié)果表明MagnetNets網(wǎng)絡(luò)模型具有很好的檢測(cè)精度和泛化能力,并且在模型大小上面更加的輕量化。同時(shí)使整個(gè)磁片缺陷檢測(cè)系統(tǒng)具有高精度低延時(shí)的特點(diǎn),提高了檢測(cè)的效率和精度。
ImageNet是一個(gè)計(jì)算機(jī)視覺(jué)系統(tǒng)識(shí)別項(xiàng)目,是目前世界上圖像識(shí)別最大的數(shù)據(jù)庫(kù)。本文在ImageNet的分類圖片數(shù)據(jù)集上對(duì)MobileNets、ShuffleNet、Xception、MobileNetV2、MagnetNets網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練和測(cè)試。使用TensorFlow框架對(duì)模型進(jìn)行訓(xùn)練,并采用Xavier來(lái)初始化網(wǎng)絡(luò)模型的參數(shù),將AdamOptimizer作為優(yōu)化器的優(yōu)化算法。同時(shí)在每一層之后使用批量標(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。實(shí)驗(yàn)結(jié)果及與其他網(wǎng)絡(luò)模型的對(duì)比的數(shù)據(jù)如表1所示。實(shí)驗(yàn)結(jié)果表明,在精確度方面,MagnetNets網(wǎng)絡(luò)模型能夠達(dá)到MobileNetV2等網(wǎng)絡(luò)模型的準(zhǔn)確率,在模型的大小上面,MagnetNets網(wǎng)絡(luò)模型比其他的幾種網(wǎng)絡(luò)更加輕量化。

表1 各網(wǎng)絡(luò)模型的對(duì)比結(jié)果
磁片缺陷檢測(cè)系統(tǒng)主要由傳送模塊、視覺(jué)模塊、分類檢測(cè)模塊、分揀模塊4個(gè)部分組成,如圖6所示。傳送模塊主要是在傳送帶上對(duì)生產(chǎn)打磨出來(lái)的磁片進(jìn)行傳輸。當(dāng)傳送帶上的磁片達(dá)到指定的視覺(jué)模塊區(qū)域時(shí),視覺(jué)模塊對(duì)傳送帶上的磁片圖像進(jìn)行實(shí)時(shí)的采集。然后將采集到的圖片送入由MagnetNets網(wǎng)絡(luò)模型組成的分類檢測(cè)模塊中,來(lái)判斷磁片是否具有缺陷,同時(shí)判斷出缺陷是屬于哪一種類型的。最后將缺陷檢測(cè)的結(jié)果以信號(hào)的形式發(fā)送給分揀模塊,分揀模塊中的機(jī)械手根據(jù)信號(hào)將不同類型的缺陷分揀放置到不同的地方,從而完成整個(gè)磁片缺陷檢測(cè)系統(tǒng)對(duì)磁片的分類。
磁片缺陷檢測(cè)系統(tǒng)中的分類檢測(cè)模塊主要是使用磁片數(shù)據(jù)集對(duì)MagnetNets網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,網(wǎng)絡(luò)模型訓(xùn)練時(shí)的loss曲線和訓(xùn)練精度如圖7所示。其中磁片主要分為“正品”、“掉皮”、“開(kāi)裂”、“缺角”四類磁片,如圖8所示。


圖8 磁片示意圖
在磁片的4種類型數(shù)據(jù)集中,“正品”和“掉皮”的數(shù)據(jù)集占據(jù)大部分,而“開(kāi)裂”和“缺角”的數(shù)據(jù)集較少。為了防止在訓(xùn)練過(guò)程中,由于數(shù)據(jù)集不均衡而導(dǎo)致模型的性能下降,因此采用旋轉(zhuǎn)和添加椒鹽噪聲的方式來(lái)擴(kuò)展“開(kāi)裂”和“缺角”的磁片數(shù)據(jù)集。
通過(guò)系統(tǒng)的實(shí)時(shí)性檢測(cè)與評(píng)估,當(dāng)磁片缺陷檢測(cè)系統(tǒng)中加入MagnetNets網(wǎng)絡(luò)模型后,檢測(cè)過(guò)程中可以達(dá)到30 ms/個(gè),同時(shí)磁片的檢測(cè)精度達(dá)到了97.3%,提高了磁片缺陷檢測(cè)系統(tǒng)的檢測(cè)效率,節(jié)約了人力成本。
本文提出了一種基于輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)的實(shí)時(shí)缺陷檢測(cè)方法。首先通過(guò)通道混洗和深度可分離卷積搭建出組成MagnetNets網(wǎng)絡(luò)模型的MagnetNet模塊,然后在公開(kāi)數(shù)據(jù)集ImageNet上對(duì)MagnetNets網(wǎng)絡(luò)模型進(jìn)行性能和模型大小的評(píng)估。接著通過(guò)旋轉(zhuǎn)和添加椒鹽噪聲的方式來(lái)擴(kuò)展不平衡的磁片數(shù)據(jù)集,并放入所提出的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練,最后將訓(xùn)練好的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)加入到磁片缺陷檢測(cè)系統(tǒng)的分類檢測(cè)模塊中完成分類。通過(guò)系統(tǒng)的實(shí)時(shí)性分析,在提高檢測(cè)速度的情況下仍然能夠達(dá)到高精度的分類。但是由于不同形狀的磁片需要重新對(duì)模型進(jìn)行訓(xùn)練,該檢測(cè)系統(tǒng)還不能針對(duì)于可變的磁片形狀進(jìn)行檢測(cè)。因此下一步的研究方向放在具有自我發(fā)育機(jī)制的缺陷檢測(cè)上面。