曾 亮,胡 謙,吳 霓,張 豪,王珊珊
(湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北武漢 430068)
帶鋼是一種廣泛應(yīng)用于汽車制造、航天航空、化工等領(lǐng)域的重要材料[1]。帶鋼的生產(chǎn)過程中,往往會受到生產(chǎn)環(huán)境的影響,如溫度、濕度、工藝等,這些因素會導(dǎo)致帶鋼表面出現(xiàn)缺陷[2],進而影響產(chǎn)品的外觀和質(zhì)量,給企業(yè)帶來巨大損失。因此,及時而準(zhǔn)確地識別帶鋼表面缺陷對帶鋼的品質(zhì)和生產(chǎn)工藝的改進有著重要的作用。
帶鋼表面缺陷的檢測方法主要可以分為4種:人工檢測,基于超聲波、渦流[3]等的無損檢測方案,基于傳統(tǒng)機器視覺的檢測方法和基于深度學(xué)習(xí)的檢測方法[4-5]。相較于前3種檢測方法,基于深度學(xué)習(xí)的檢測方法由于高效、操作簡單、魯棒性強等特點被廣泛應(yīng)用于帶鋼表面的缺陷檢測任務(wù)中?;谏疃葘W(xué)習(xí)的檢測方法是一種數(shù)據(jù)驅(qū)動的方法,需要充足的訓(xùn)練樣本和均衡的類別分布來保證穩(wěn)定、準(zhǔn)確的分類性能。然而,帶鋼表面缺陷在生產(chǎn)的過程中是一種小概率事件,不同的缺陷類別出現(xiàn)的概率各不相同,其中某些缺陷樣本較為罕見,難以做到均勻采樣。這兩個因素導(dǎo)致收集的訓(xùn)練數(shù)據(jù)往往呈現(xiàn)長尾分布的特點。如果直接使用長尾分布的數(shù)據(jù)進行訓(xùn)練,可能會導(dǎo)致過度擬合頭部類別,而尾部類別則會被忽略。
基于長尾分布的數(shù)據(jù)集的分類任務(wù)稱為長尾分類,深度模型需要同時處理尾部類的小樣本學(xué)習(xí)任務(wù)和類別不均衡學(xué)習(xí)任務(wù)?,F(xiàn)有的解決長尾分類任務(wù)的方法主要分為2種:
(1)數(shù)據(jù)處理。這類方法專注于增加樣本的數(shù)量以解決樣本不充足和類別不平衡的問題。文獻[6]結(jié)合過采樣和欠采樣策略來實現(xiàn)樣本均衡化。文獻[7]使用數(shù)據(jù)增強產(chǎn)生額外的樣本來補充尾部類的樣本數(shù)量。文獻[8]提出了一種改進的GAN來解決訓(xùn)練樣本不充足的問題。然而,數(shù)據(jù)處理在處理樣本不充足和類別不平衡的問題時不可避免地改變了原始數(shù)據(jù)的分布特點,同時使深度模型更加關(guān)注尾部類的波動,從而降低了模型的魯棒性和泛化性。
(2)訓(xùn)練策略。這類方法主要是通過不同的訓(xùn)練策略來重新平衡不同類別的重要性,以處理小樣本和類別不均衡的影響。文獻[9]提出了一種標(biāo)簽分布感知邊際損失函數(shù),使深度模型更重視尾部類的識別。文獻[10]提出了一個多專家集合的長尾分類模型,通過減少模型方差的方式來獲得魯棒的預(yù)測結(jié)果。但這些方法只利用了類別分布的信息來提升模型在長尾分類任務(wù)上的性能,而忽略了樣本信息對長尾分類的重要性。
受人類辨識事物時觀察模式的啟發(fā),即結(jié)合事物整體的輪廓和局部的細節(jié)來提升辨別某類事物的能力,本文提出了一種新穎的多方位感知長尾分類(MDPLC)方法。該方法將樣本的整體圖像和多個局部圖像一同送入模型進行學(xué)習(xí),以提升深度模型的多方位感知能力。引入多專家框架和共享架構(gòu)在保證特征多樣性的同時減少框架的計算成本,并采用分布感知的多樣性損失來聯(lián)合優(yōu)化多個專家,處理類別的不平衡。同時,將部分淺層網(wǎng)絡(luò)的特征與深層特征融合,有效增加模型對多尺度缺陷的感知能力。
頻域通道注意力[11](FcaNet)是一種基于多頻率通道注意力。FcaNet使用多個頻率分量代替常規(guī)通道注意力中全局平均池化所保留的最低頻的分量。相對于通道注意力,FcaNet集成不同頻率的分量,從而獲取更豐富的特征信息。因此選擇該模塊優(yōu)化ResNet50中的Bottleneck,形成頻域通道注意力殘差塊(FcaBottleneck)。改進前后殘差塊的結(jié)構(gòu)如圖1所示[12]。圖1(a)為ResNet50的Bottleneck的結(jié)構(gòu)圖,圖1(b)是FcaBottleneck的結(jié)構(gòu)圖。對比殘差塊改進前后的結(jié)構(gòu)圖,FcaBottleneck在分支前加入FcaNet,用以提升殘差塊對特征的感知能力。將改進Bottleneck的結(jié)構(gòu)的ResNet50稱為FcaNet50。
圖1 Bottleneck和FcaBottleneck結(jié)構(gòu)圖
文獻[10]提出分布感知的多樣性損失來聯(lián)合優(yōu)化多個專家并處理類別不平衡的消極影響。為了保證多專家框架下單個專家的多樣性,單個專家的訓(xùn)練損失的公式為
(1)
式中:x為輸入樣本;y為樣本的標(biāo)簽值;n為專家的個數(shù);L()為交叉熵損失函數(shù);fθ()為共享層;Ψθi()為第i個個性化層。
為鼓勵多專家的預(yù)測結(jié)果互補,提出了多樣性損失,公式為:
(2)
(3)
(4)
式中:p為分類概率;q為真實值;DKL()為KL散度。
多樣性損失通過溫度變化來調(diào)節(jié)專家對不同類別的敏感程度,即類別樣本數(shù)越少,溫度越低,專家對特征的變化越敏感。公式為:
(5)
(6)
式中Tk為第k類缺陷的溫度。
對于平衡的數(shù)據(jù)集,βk=1,Tk=α。
將多個專家的訓(xùn)練損失和多樣性損失整合得到分布感知的多樣性損失,公式為
(7)
式中λ為超參數(shù)對多樣性損失進行加權(quán)。
結(jié)合樣本的整體輪廓和局部細節(jié)將有助于提升深度模型在長尾分布的帶鋼表面缺陷分類任務(wù)中的分類性能。本文提出了一個具有多方位感知的長尾分類方法,稱為MDPLC(multi-directional perception of long-tail classification)。MDPLC以FcaNet50作為基礎(chǔ)網(wǎng)絡(luò)來構(gòu)建其共享層、個性化層和分類層。FcaNet50中的Layer3和Layer4作為個性化層,Layer3之前的所有網(wǎng)絡(luò)層作為共享層,Layer4之后的所有網(wǎng)絡(luò)層作為分類層,整體框圖如圖2所示。
圖2 MDPLC的整體框圖
首先,輸入樣本被均分為2部分,稱為局部樣本。完整的樣本與2個局部樣本一同送入特征提取網(wǎng)絡(luò),以獲得更多的整體和局部的信息。其次,利用3個專家來分別提取3個輸入的深度特征,并采用共享架構(gòu)在保證特征多樣性的同時減少框架的計算成本。此外,為了增加模型對多尺度缺陷的感知能力,將部分淺層網(wǎng)絡(luò)的特征與深層特征融合。最后,采用分布感知的多樣性損失來聯(lián)合優(yōu)化多個專家,并處理類別的不平衡。
(1)共享層。輸入樣本的整體圖像和2個局部圖像分別為x1、x2、x3。3個輸入一同送入共享層以提取共享特征f,公式如下:
fi=fθ(x,σfθ),i∈{1,2,3}
(8)
式中:fθ()為共享層;σfθ為共享層的網(wǎng)絡(luò)參數(shù)。
(2)個性化層。經(jīng)過共享層所提取的共享特征f1、f2、f3被分別送入對應(yīng)的個性化層以提取個性化特征,如式(9):
(9)
(10)
(11)
atti=sigmoid(FCi(AP(fi″),σFCi)),i∈{1,2,3}
(12)
f?i=atti?fi″,i∈{1,2,3}
(13)
式中:φi()為1×1的調(diào)整通道的卷積;σφi為該卷積的參數(shù);MP為最大池化操作;AP為平均池化操作;Cat為拼接操作;φi()為1×1的聚合和篩選卷積塊;σφi為該卷積塊的參數(shù);atti為通道注意力權(quán)重;sigmoid為sigmoid函數(shù);FCi為全連接層;σFCi為全連接層的參數(shù);fi″為強化后的特征;?為全乘操作。
本文所使用的實驗數(shù)據(jù)集是由文獻[13]提出的熱軋帶鋼表面缺陷數(shù)據(jù)集(X-SDD),數(shù)據(jù)集的詳細信息如圖3所示。該數(shù)據(jù)集包含7種缺陷類別,如圖3(a)所示,分別為精軋輥印(FRP)、鐵皮灰(ISA)、板道系氧化鐵皮(OSPS)、溫度系氧化鐵皮(OSTS)、紅鐵皮(RIS)、夾渣(SI)和表面劃傷(SS)。缺陷樣本數(shù)共1 360張,各類缺陷樣本數(shù)量分布情況如圖3(b)所示。其中缺陷類別樣本數(shù)量最大為397張,最小為63張。這表明該數(shù)據(jù)集中存在類別不平衡和樣本不充足的特點,是典型的長尾分布數(shù)據(jù)集。
(a)典型缺陷的示例
(b)各類缺陷樣數(shù)量的分布圖3 X-SDD的詳細信息
缺陷分類算法基于Pytorch深度學(xué)習(xí)框架開發(fā),實驗硬件設(shè)備為處理器英特爾i7-9700、32 GB內(nèi)存、英偉達 P2000 GPU。在實驗中,輸入圖片大小設(shè)置為224×224,批次大小設(shè)置為16,學(xué)習(xí)率設(shè)置0.000 1,迭代次數(shù)為100,使用Adam優(yōu)化器。在原始數(shù)據(jù)集中,隨機從每個類別中選擇50個樣本作為測試集,剩余的樣本作為訓(xùn)練集。實驗數(shù)據(jù)集的分布情況如表1所示。
表1 實驗數(shù)據(jù)集的樣本分布 張
為了驗證改進方法有效性,將Accuary和平均每個類別的召回率、準(zhǔn)確率、F1分數(shù)得到的Macro-Recall、Macro-Precision和Macro-F1作為評價指標(biāo)。公式為:
n_correct=TP1+TP2+…+TPN
(14)
(15)
(16)
(17)
(18)
式中:n_total為測試集中的所有樣本數(shù);N為數(shù)據(jù)集的類別數(shù)量;TPN為第N類缺陷的真正例;FNN為第N類缺陷的假反例;FPN為第N類缺陷的假正例;PN為第N類缺陷的精準(zhǔn)率;RN為第N類缺陷的召回率。
圖4展示了MDPLC在X-SDD測試集上的混淆矩陣,其中x軸和y軸分別表示預(yù)測標(biāo)簽和真實標(biāo)簽。預(yù)測標(biāo)簽顯示了模型預(yù)測各類缺陷的數(shù)量,真實標(biāo)簽顯示了各類缺陷的真實數(shù)量。圖中對角線的數(shù)據(jù)表明:每一類缺陷至少有48張樣本被準(zhǔn)確預(yù)測。其中,FRP和SS的測試樣本被全部準(zhǔn)確預(yù)測。以上分析表明。MDPLC在長尾分布的數(shù)據(jù)集上具有較高的分類準(zhǔn)確率。
圖4 MDPLC在X-SDD上的混淆矩陣
將Focal Loss[14]、LDAM_DRW[9]、RIDE[10]、改進RepVGG[13]、改進FcaNet[15]和TLC[16]在長尾分布的帶鋼表面缺陷數(shù)據(jù)集上進行比較以展示MDPLC與其他分類方法在各缺陷類別上的準(zhǔn)確率對比,得到結(jié)果如表2所示。從表2可以看出:MDPLC在FRP、OSPS和SS上的準(zhǔn)確率要優(yōu)于其他對比模型,其準(zhǔn)確率分別為100.0%、96.00%和100.00%。而在ISA、OSTS、RI和SI上要略低于少數(shù)方法,但在這些類別上MDPLC的分類準(zhǔn)確率也都超過了96.00%,如ISA的準(zhǔn)確率為96.00%、OSTS的準(zhǔn)確率為98.00%、RI的準(zhǔn)確率為96.00%,SI的準(zhǔn)確率為98.00%。此外,OSPS為分類數(shù)據(jù)集的尾部類別,其訓(xùn)練樣本數(shù)僅有13張。但MDPLC在該類上取得了最優(yōu)的分類準(zhǔn)確率,表明了所提出方法對小樣本學(xué)習(xí)的有效性。MDPLC在整體上取得了具有競爭力的結(jié)果,驗證了所提方法對長尾分布的帶鋼表面缺陷分類任務(wù)的有效性。
表2 不同分類模型在各個缺陷類別的召回率比較 %
表3列出了不同方法的整體性能對比。數(shù)據(jù)顯示,MDPLC在長尾分布的帶鋼表面缺陷分類任務(wù)上的表現(xiàn)均優(yōu)于其他對比模型,并獲得了最高的Accuracy、Macro-Precision、Macro-Recall和Macro-F1,分別為97.71%、97.71%、97.77%和97.74%。Accuracy是衡量模型性能的重要指標(biāo),因為它直接決定了模型在實際使用時面對未知數(shù)據(jù)的性能。相較于LDAM_DRW和改進RepVGG[13],MDPLC的準(zhǔn)確率分別提高了2.28%和5.71%。以上的分析表明,MDPLC在Accuracy上取得了最優(yōu)的表現(xiàn),證明了所提方法的有效性,同時在另外3個評估指標(biāo)上超過了其他對比方法,證明了所提方法的魯棒性。
表3 不同模型的整體性能對比 %
針對帶鋼表面缺陷幾何與紋理分布復(fù)雜多變、缺陷數(shù)據(jù)長尾分布等特點,提出了一種多方位感知帶鋼缺陷長尾分類(MDPLC)方法。該方法模仿人類觀察復(fù)雜圖片時的行為,引入多專家框架和共享架構(gòu),對局部樣本和全局樣本同時進行數(shù)據(jù)提取,在保證特征多樣性的同時減少了框架的計算成本。采用分布感知的多樣性損失來聯(lián)合優(yōu)化多個專家,有效提升了長尾分布數(shù)據(jù)的識別效果。此外,將部分淺層網(wǎng)絡(luò)的特征與深層特征融合,進一步增強了模型對多尺度特征的感知能力。實驗結(jié)果表明:相較于其他對比模型,MDPLC在4個評估指標(biāo)上均取得了最優(yōu)的結(jié)果,證明了所提方法的有效性和魯棒性。未來將致力于保證網(wǎng)絡(luò)識別準(zhǔn)確率的同時進一步降低網(wǎng)絡(luò)的復(fù)雜度。