陳榮演,邱 天*,楊創(chuàng)富,張 昕,陳宇琪,符 曉,寧洪龍
(1. 五邑大學智能制造學部,江門 529020;2. 阜陽師范大學物理與電子工程學院,阜陽 236037;3. 華南理工大學高分子光電材料與器件研究所,廣州 523648)
磁瓦因其良好的物理性質(zhì)被廣泛應(yīng)用于各種電子產(chǎn)品的線圈、電動機以及變壓器當中,然而在磁瓦生產(chǎn)加工過程中產(chǎn)生的缺陷不僅影響外觀而且還會影響相關(guān)產(chǎn)品質(zhì)量,因此磁瓦缺陷檢測是不可或缺的工序。近些年來磁瓦檢測技術(shù)依賴傳統(tǒng)視覺檢測方式,也取得一定的研究成果[1-5],但是傳統(tǒng)視覺檢測方式依賴人工設(shè)定提取特征,而且提取特征難度大、檢測的魯棒性差。隨著深度學習在視覺領(lǐng)域的廣泛應(yīng)用,這種由數(shù)據(jù)驅(qū)動獲取特征的方式使卷積神經(jīng)網(wǎng)絡(luò)在磁瓦缺陷檢測中也有很多的研究成果[6-10]。盡管卷積神經(jīng)網(wǎng)絡(luò)在缺陷檢測取得很好的檢測效果,但是其缺乏全局信息,對長遠距離的特征提取有局限性,而近年來提出的視覺Transformer[11]模型因其拋棄卷積網(wǎng)絡(luò)結(jié)構(gòu),使用完全多頭自注意力機制學習特征,因而擁有更大的感受野并對全局特征的表述更強,并且能夠捕獲更多豐富的特征,對小物體的檢測也有更好的表現(xiàn),從而表現(xiàn)出很強的競爭力,其中最具代表的為Liu等[12]提出的Swin-Transformer模型,其通過窗口滑動和分層策略使計算量顯著減少并提高建模能力。由于注意力機制的表現(xiàn)能力較好,因此近些年來使用注意力模型也出現(xiàn)越來越多的研究成果[13-14]。
本文提出基于Swin-Transformer 的磁瓦檢測算法,為了使網(wǎng)絡(luò)學習更多有用的特征,首先對采集到的圖像進行增強,讓磁瓦缺陷圖像的對比度更高和缺陷邊緣更清晰,然后使用Swin-Transformer 作為特征提取網(wǎng)絡(luò)提取特征,并結(jié)合YOLOv3 模型的neck 模塊構(gòu)建磁瓦缺陷檢測算法,同時為了使網(wǎng)絡(luò)獲取更豐富的梯度組合,在neck部分進行優(yōu)化設(shè)計CSPA(cross stage partical attention)模塊,最終實現(xiàn)了較好的缺陷檢測結(jié)果。
由于磁瓦材料特性,采集到的磁瓦圖像整體上都會呈現(xiàn)顏色灰暗以及缺陷對比度低等特點,為了加強特征的表述和使提取特征更加容易,因此對收集到的磁瓦圖片進行增強操作,增強的步驟如下:
步驟1:對輸入圖像進行高斯濾波去除噪聲,然后使用拉普拉斯算子對圖像進行銳化處理,以加強邊緣梯度,拉普拉斯銳化計算如公式(1):
其中:L(x,y)為銳化后圖像,P(x,y)為原圖像,?2f為拉普拉斯濾波結(jié)果,其定義如公式(2):
步驟2:將采集的磁瓦圖像先通過對數(shù)轉(zhuǎn)換,再通過傅里葉變換轉(zhuǎn)換到頻域上,其中頻域的高頻對應(yīng)原圖的細節(jié)部分,圖像的低頻對應(yīng)原圖的近似部分。
步驟3:設(shè)計合適的濾波器傳遞函數(shù),使頻域的高頻細節(jié)部分得到增強,并且壓縮低頻動態(tài)范圍,本文選用的濾波器傳遞函數(shù)如公式(3),其二維表示圖如圖1所示。
步驟4:用設(shè)計好的濾波器對頻域圖片進行濾波。
步驟5:將濾波后圖像變換回空間域得到增強后圖片。
圖1 濾波器傳遞函數(shù)二維顯示
圖像增強步驟流程如圖2 所示,經(jīng)過上述步驟后,原圖和增強圖像的直方圖如圖3 所示,從圖3可以看出原圖經(jīng)過增強后缺陷對比度更加明顯,其直方圖也更加均衡。
圖2 圖像增強步驟流程
圖3 原圖和增強后圖像對比
Swin-Transformer 是Transformer 應(yīng)用在視覺領(lǐng)域的一項重要成果,并且在目標檢測、分割和分類等視覺任務(wù)中取得很好的成績。Transformer舍去了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),利用多頭自注意力機制提取特征,可以更好地捕獲上下文信息,并削弱了網(wǎng)絡(luò)對外部信息的依賴,因此Transformer 善于捕獲特征或數(shù)據(jù)的內(nèi)在相關(guān)性和提取表述性更強的特征。但是Transformer應(yīng)用在視覺任務(wù)中受到兩個重要的挑戰(zhàn):①視覺任務(wù)的多尺度問題;②視覺圖像分辨率高,計算參數(shù)龐大。而Swin-Transformer 通過窗口滑動限制在局部窗口計算自注意力可以很大程度降低計算成本和復(fù)雜度;使用分層策略使網(wǎng)絡(luò)可以提取多個尺度的特征,對小物體的識別也有很好的效果,因此Swin-Transformer 可以作為磁瓦目標檢測的特征提取網(wǎng)絡(luò)部分。
Swin-Transformer 結(jié)構(gòu)包括編碼模塊(Patch Partition+Linear Embedding)、自注意力計算模塊(Swin-Transfomer Block)和移動拼接模塊(Patch Merging)。編碼模塊將輸入數(shù)據(jù)進行分塊編碼和線性變換,然后輸入到自注意力計算模塊(如圖4 所示)。自注意力計算模塊由兩個串聯(lián)注意力計算模塊組成,每個注意力計算模塊都由一個多頭自注意力模塊和多層感知機(MLP)在進行層歸一化(LN)后進行殘差連接得到。在W-MSA模塊中將輸入特征圖尺寸的8 × 8 劃分為2 × 2個窗口,劃分方式如圖5所示,并對每個窗口計算多頭自注意力;而SW-MSA 通過循環(huán)移位的方式將窗口進行移動,可以獲取相鄰窗口的交互注意力信息,然后對每個窗口計算多頭自注意力,其劃分方式如圖6所示;多頭注意力的計算見公式(4)和公式(5)。
其中:Q,K,V分別為查詢、鍵、值向量;B是相對位置偏置;W是線性變換的權(quán)重。
在進行自注意力計算后,通過移動拼接模塊合并相鄰的分塊實現(xiàn)不同尺度特征圖的獲取,從而構(gòu)建特征的層級結(jié)構(gòu)。在Swin-Transformer中通過移動拼接模塊后特征圖的下采樣倍數(shù)分別為8、16、32,和YOLOv3 中的骨干網(wǎng)絡(luò)(Backbone)采樣倍數(shù)剛好一致,因此可以直接用Swin-Transformer作為特征提取的骨干網(wǎng)絡(luò)結(jié)合YOLOv3的neck構(gòu)成目標檢測網(wǎng)絡(luò)。
圖4 自注意力計算模塊(Swin-Transfomer Block)
圖5 W-MSA
圖6 SW-MSA
為了使網(wǎng)絡(luò)能夠獲取更加豐富的梯度組合從而增強網(wǎng)絡(luò)學習能力,本文在CSPNet[15](cross stage partial network)基礎(chǔ)上設(shè)計了CSPA(cross stage partical attention)模塊用于提取特征。其中改進方法有:①在CSP 層嵌入CA 模塊;②通過增加分支獲取更多梯度流。其中嵌入CA模塊[16]是為了使網(wǎng)絡(luò)能夠捕獲跨通道的信息和方向感知,幫助網(wǎng)絡(luò)更加精確定位到感興趣的目標特征。CA 模塊是通過水平和垂直方向生成相應(yīng)注意力圖來強調(diào)感興趣的特征區(qū)域,其相應(yīng)的方法流程如圖7所示,其輸入特征首先經(jīng)垂直和水平方向進行一維全局池化并分別對這兩個方向特征進行編碼,然后每個特征圖分別沿著一個方向去捕獲特征的長距離相關(guān)性,最后將包含距離相關(guān)性的特征注意力圖和輸入特征相乘從而獲得更受關(guān)注的特征信息。
圖7 CA注意力模塊
改進磁瓦缺陷檢測網(wǎng)絡(luò)如圖8 所示,其由Swin-Transformer 作為特征提取部分,在經(jīng)過移動拼接模塊(patch merging)對輸入圖像進行下采樣,把下采樣8、16 和32 倍下采樣的輸出特征輸入到Y(jié)OLOv3 的neck 模塊,并且使用設(shè)計的CSPA 模塊對neck 部分進行優(yōu)化。最后通過輸出層輸出共3 個尺度、27 個通道的輸出特征。對每個尺度的輸出特征計算預(yù)測損失,模型損失可以分成邊框回歸損失、置信度損失和類別損失三項之和,見公式(6),其中邊框回歸損失選用GIoU損失進行計算,見公式(7),回歸損失和置信度損失都采用BCEWithLogitsLoss 損失,見公式(8)和公式(9),最后通過損失反向傳播優(yōu)化參數(shù),從而獲得磁瓦的檢測模型。
其中:C是真實框A和預(yù)測框B的最小外接框。
其中:σ(g)為通過sigmoid函數(shù)的輸出。
圖8 改進磁瓦缺陷檢測網(wǎng)絡(luò)
實驗所選用的圖片數(shù)據(jù)均來自現(xiàn)場采集并對采集后的圖像進行圖像增強處理,數(shù)據(jù)集共332 張,分為四種缺陷類型,分別是表面缺陷(surface)、內(nèi)部損傷(intra)、崩塊(break)和孔洞(hole),并用labelimg 為每張圖片進行缺陷標注。在進行網(wǎng)絡(luò)訓(xùn)練時將數(shù)據(jù)集隨機按照9∶1的比例劃分訓(xùn)練驗證集和測試集,另外訓(xùn)練集和驗證集按照8∶2 的比例劃分。同時對訓(xùn)練的數(shù)據(jù)集進行隨機翻轉(zhuǎn)、平移和mosaic 增強等操作來對數(shù)據(jù)增強。
為了客觀地對磁瓦缺陷檢測效果進行評價,本文選取精確率(Precision)、召回率(Recall)以及全類平均精度(mAP)作為評價指標,評價指標的定義見公式(10)~公式(12)。
其中:ri是按升序排列的Precision的插值段第一個插值對應(yīng)的Recall,k是類別數(shù)量,Pinter是排序后當前點以及后面點所有Precision中最大的值。
所有實驗均在PyTorch 1.7、 Python3.8、Cuda10.2開發(fā)環(huán)境下進行,并且訓(xùn)練的批處理數(shù)量大小均為16、迭代訓(xùn)練周期都為2000 次,學習率初始值均為0.001。表1 對比了幾種主流的目標檢測算法和本文改進算法應(yīng)用在磁瓦缺陷檢測中的檢測結(jié)果,可以看出本文改進算法的mAP比YOLOv3高出5.3個百分點,比YOLOv5高出1.5 個百分點。其中一些檢測效果如圖9 所示,從圖9可以看出本文改進算法能夠檢測出不明顯的缺陷,并且缺陷目標檢測的置信度和預(yù)測結(jié)果都有很好的效果。
表1 磁瓦缺陷檢測算法對比
圖9 各種算法檢測效果
在測試集中,改進算法的各個類別預(yù)測RP曲線如圖10 所示,圖例中的數(shù)值為AP值(平均精度),從圖10 可以看出孔洞(hole)的檢測性能相對較弱,這是因為訓(xùn)練數(shù)據(jù)集中孔洞樣本的數(shù)量較少使訓(xùn)練不充分造成的,另外幾類的AP值都較高,說明該改進算法能較好地完成磁瓦缺陷檢測任務(wù)。
圖10 改進算法各個類別PR曲線
為了證明CSPA 模塊的有效性,在同樣的訓(xùn)練環(huán)境和相同的參數(shù)下分別使用Swin-Transformer+CSPA 模塊改進的neck(編號1)、Swin-Transformer+YOLOv3 的neck(編號2)進行實驗,評價指標為Precision、Recall以及mAP。對照結(jié)果如表2 所示,可以看出使用CSPA 模塊的neck 對磁瓦缺陷檢測的mAP有1.4 個百分點的提升。
表2 消融實驗
針對磁瓦缺陷檢測特征提取困難和基于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)對全局特征表述較差、上下文不交互等缺點,本文通過設(shè)計增強濾波器對磁瓦圖像中的缺陷進行增強,以及提出基于Swin-Transformer 和結(jié)合YOLOv3 的neck 模塊的磁瓦缺陷檢測算法,且為了獲取更豐富梯度信息,在neck部分優(yōu)化設(shè)計了CSPA模塊。根據(jù)實驗結(jié)果可知對采集到的磁瓦圖像的缺陷增強后再運用Swin-Transformer 相比于主流目標檢測算法具有更高的檢測精度,另外Swin-Transformer 相比于卷積神經(jīng)網(wǎng)絡(luò)能更好地提取全局特征和上下文的交互,從而提高特征提取的能力,對于一些不太明顯的特征也能很好地提取出來。