鐘展祺,陳新度,吳 磊
(廣東工業(yè)大學機電工程學院,廣州 510006)
表面缺陷檢測一直以來是工業(yè)生產(chǎn)中的重要一環(huán)。傳統(tǒng)的缺陷檢測方法大多依靠人工設(shè)計并提取特征,再通過定義一系列規(guī)則來完成檢測任務。不僅浪費人力成本,影響生產(chǎn)效率,而且在工況復雜的生產(chǎn)線上,難以完成模型的遷移和復用[1]。
隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)的成熟和發(fā)展,越來越多研究人員提出基于卷積神經(jīng)網(wǎng)絡(luò)的缺陷檢測方法。Krizhevsky A等[2]提出的AlexNet在ImageNet大型視覺挑戰(zhàn)賽(ILSVRC)中以遠超第二名的成績獲得冠軍,使得卷積神經(jīng)網(wǎng)絡(luò)再次受到業(yè)界廣泛關(guān)注。甘露等[3]構(gòu)建了6層的卷積神經(jīng)網(wǎng)絡(luò),實現(xiàn)了對工件的端對端分類識別,證明基于卷積神經(jīng)網(wǎng)絡(luò)的模型在識別時間和識別準確率均優(yōu)于傳統(tǒng)模型。藍宏宇等[4]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)多特征融合的工件檢測網(wǎng)絡(luò),通過融合結(jié)構(gòu)將圖像底層特征與高層特征結(jié)合,提高網(wǎng)絡(luò)的檢測精度,基本符合工業(yè)檢測的實時性要求。
但在復雜的表面缺陷檢測任務中,單任務學習往往難以獲得令人滿意的效果。多任務學習通過進一步發(fā)掘多個任務之間的相關(guān)性,提取不同數(shù)據(jù)源間的關(guān)聯(lián),從而提高網(wǎng)絡(luò)的綜合性能?,F(xiàn)階段有大量的研究表明,基于多任務學習的網(wǎng)絡(luò)性能要優(yōu)于單任務學習[5-7]。Kendall Alex等[8]提出一種多任務學習損失函數(shù)權(quán)重的設(shè)置方法,即分析每個任務之間的同方差不確定性(homoscedastic uncertainty),并用于回歸,語義分析和實例分割等任務,實驗表明采用同方差不確定損失函數(shù)的網(wǎng)絡(luò)要優(yōu)于單任務學習網(wǎng)絡(luò)。 Misra Ishan等[9]提出一種Cross-stitch共享結(jié)構(gòu),實現(xiàn)了網(wǎng)絡(luò)間特定層級的特征共享,對兩個結(jié)構(gòu)相同且任務目標關(guān)聯(lián)的網(wǎng)絡(luò)進行聯(lián)合學習,最后實驗表明兩個關(guān)聯(lián)任務均獲得了不同程度的提升。許棟武[10]提出一種基于排序優(yōu)化算法和多任務學習框架的網(wǎng)絡(luò),建立一個融合排名的相似度關(guān)系來優(yōu)化輸出結(jié)果,有效地提高了車輛再識別的準確率。賈立麗等[11]提出了基于多任務學習和稀疏表示的分類算法,通過交叉分組策略充分提取了高光譜圖像間的豐富信息,獲得了較高的準確率。
鑒于現(xiàn)階段的工業(yè)表面缺陷檢測任務,往往將檢測任務作為單任務進行學習,存在數(shù)據(jù)來源單一,樣本量缺乏的問題。多任務學習的研究也大多基于已有的多個任務,缺少由單任務生成多任務策略的探討。因此本文提出了一種關(guān)聯(lián)任務的生成策略,并設(shè)計了一種基于多任務特征層共享的表面缺陷檢測方法。實驗表明,方法充分挖掘了關(guān)聯(lián)任務間的潛在信息,驗證了多任務學習在工業(yè)缺陷檢測中的可行性和有效性。

圖3 FSMTNet網(wǎng)絡(luò)結(jié)構(gòu)
多任務學習的一個關(guān)鍵點是如何獲得相關(guān)聯(lián)的多個任務。本文方法從灰度圖像易受光照影響及紋理特征占比重的特性[12]入手,將原始圖像分別進行高斯濾波[13]和canny算子邊緣提取[14],處理后的圖像如圖1所示。采用高斯濾波的目的是一定程度上能夠補償光照強度等不可控因素對圖片的影響,而Canny算子則是為了提取灰度圖像中的紋理特征。這樣的任務生成策略,既能滿足多任務學習中的相似性約束,也起到了提高樣本多樣性的效果,增強了網(wǎng)絡(luò)的特征提取能力和泛化能力。

圖1 多任務生成策略
引言部分提到的Misra Ishan等的大量研究證明了在同構(gòu)網(wǎng)絡(luò)的多任務學習中,引入網(wǎng)絡(luò)間的特征共享結(jié)構(gòu)能夠有效提高網(wǎng)絡(luò)的性能。因此本文在前人的基礎(chǔ)上,設(shè)計了一種共享單元(Shared unit),具體結(jié)構(gòu)如圖2所示。并通過引入一系列可供模型學習的權(quán)重參數(shù)[αi1,αi2,αi3,αi4],將任務間特定層的feature map通過式(1)~式(3)的線性組合方式進行特征共享,即Task A同時與Task B及Task C特征共享,Task B和Task C則只單獨與Task A特征共享,共享后的feature map再正常輸入各自的主干網(wǎng)絡(luò),完成后續(xù)的學習訓練。其中各參數(shù)在網(wǎng)絡(luò)初始化時應滿足式(4)的約束關(guān)系,但在訓練過程中則不對參數(shù)的學習進行約束,目的在于通過自主學習獲得最有效的線性組合權(quán)重。

圖2 Shared unit共享單元
(1)
(2)
(3)
(4)
本文提出了一種基于多任務特征層共享的網(wǎng)絡(luò),來完成3個相關(guān)聯(lián)任務的聯(lián)合學習,網(wǎng)絡(luò)層級如圖3所示。3個任務均以Krizhevsky Alex等提出的AlexNet作為訓練主干,該網(wǎng)絡(luò)具有3個卷積層(conv1,conv2,conv3)、3個最大池化層(pool1,pool2,pool3)及3個全連接層(fc1,fc2,fc3)。本文在此基礎(chǔ)上,在每個最大池化層后及全連接層間追加了共享單元。共享單元內(nèi)完成3個任務的線性特征共享,并確保輸入下個卷積層的數(shù)據(jù)維度不發(fā)生變化。
本文實驗選用一個公開的表面缺陷數(shù)據(jù)集NEU[15],該數(shù)據(jù)集收集了6種典型的鋼材表面缺陷,具體如圖所示,分為開裂(Cr),夾渣(In),斑塊(Pa),點蝕(Ps),氧化壓入(Rs),劃痕(Sc)。圖像數(shù)據(jù)均為灰度圖,原始像素為200×200,每類缺陷具有300個樣本。

圖4 NEU數(shù)據(jù)集的缺陷類型
為了驗證多學習框架的有效性,本文設(shè)置了如表1所示的多組對比實驗,分別為:
(1)將6類缺陷共1800個樣本隨機分層取樣,選取其中的70%作為訓練集,剩余的30%作為測試集,輸入AlexNet進行單任務學習,稱為Task A;
(2)將原圖像數(shù)據(jù)集進行高斯濾波,輸入AlexNet進行單任務學習,稱為Task B。其中高斯濾波采用的標準差為2;
(3)將原圖像數(shù)據(jù)集圖像進行Canny算子邊緣提取,輸入AlexNet進行單任務學習,稱為Task C。其中Canny算子的閾值上下界閾值分別為50和100;
(4)前3個任務的訓練集均為單通道灰度圖像,為了與多任務學習進行對比,將3個任務的圖像拼接成一個三通道圖像數(shù)據(jù)集,輸入AlexNet進行單任務學習,稱為Merge Task;
(5)將前3個相關(guān)聯(lián)的任務,輸入本文提出的FSMTnet進行多任務學習。

表1 實驗內(nèi)容與實驗數(shù)據(jù)的對應關(guān)系
為了突出體現(xiàn)本文方法的有效性,數(shù)據(jù)集除上文提到的處理外,不進行任何形式的數(shù)據(jù)增強。學習率(Learning rate)設(shè)置為0.001,批數(shù)據(jù)大小(Batch size)設(shè)置為32,數(shù)據(jù)量遍歷次數(shù)(epoch)設(shè)置為80,迭代次數(shù)(Iteration)最大約為3000次。
共享單元的可學習參數(shù)均初始化為0.5,初始化滿足式(4)的約束關(guān)系,訓練過程中則不再對α參數(shù)進行約束設(shè)置。
評價指標是反映網(wǎng)絡(luò)有效性和魯棒性的重要依據(jù)。針對缺陷檢測結(jié)果進行分析,可以分為四種情況,即正樣本被劃分為正例(True positives, TP)、負樣本被劃分為負例(True negatives, TN) 、負樣本被劃分為正例(False positives, FP) 及正樣本被劃分為負例(False negatives, TN),并由此建立起如表2的混淆矩陣。在此基礎(chǔ)上,本文選擇準確率(Accuraccy)作為實驗的評價指標,準確率的計算方式如式(5)所示。

表2 分類混淆矩陣
(5)
圖5、圖6為各實驗訓練過程中的平均準確率曲線和損失下降曲線。從圖中可以看出,隨著迭代次數(shù)的增加,準確率不斷上升,損失不斷下降,模型趨于收斂。Merge Task和Multitask兩組實驗,由于融入了多個任務的特征信息,收斂速度明顯快于其他三組單任務的實驗,最終經(jīng)過1700次左右的迭代完成模型的收斂。

圖5 平均準確率曲線 圖6 損失下降曲線
表3展示了5組實驗在測試集上的平均檢測準確率和各子類準確率。由前3組實驗對比可以看出,劃痕(Sc)在6類缺陷中的檢測難度相對較高,準確率明顯低于其他5類。而Task C在對原圖進行Canny算子邊緣提取后,劃痕的檢測準確率得到了較大幅度的提升,但開裂(Cr)、夾渣(In)、斑塊(Pa)等類別相應地小幅度下降,最終平均準確率也略低于Task A。
在Merge Task和Multitask兩組實驗中,由于均以某種方式對前3個任務的特征信息進行融合,綜合了前3個任務的優(yōu)劣,因此準確率得到了一定程度地提升。但Merge Task只是簡單地對3個任務的輸入從圖像通道的角度上進行拼接,沒有更好地考慮融合的方式,本質(zhì)上也還是單任務學習。
Multitask實驗中使用了本文提出的FSMTNet,在一系列可學習權(quán)重和共享單元的共同作用下,自主學習了最佳的線性組合方式,最終取得了5組實驗中的最優(yōu)準確率。在不進行任何數(shù)據(jù)增強的前提下,達到了96.111%的平均準確率,對比Task A的原圖輸入,平均準確率提升了約6%,Sc子類準確率提升約27%,充分證明了基于多任務特征層共享網(wǎng)絡(luò)的有效性和魯棒性。

表3 各實驗子類及平均準確率對比 (%)
針對單任務學習數(shù)據(jù)來源單一、樣本量缺乏的問題,本文提出了一種基于多任務特征層共享的表面缺陷檢測方法。方法中利用高斯濾波和Canny算子邊緣提取分別生成兩個與原任務具有關(guān)聯(lián)性的任務,并通過共享單元(Shared unit)進行任務間的特征共享,最終在一系列可學習參數(shù)的作用下自主學習出最佳的線性組合。在NEU缺陷數(shù)據(jù)集上的實驗表明,本文提出的FSMTNet充分挖掘了關(guān)聯(lián)任務間的潛在信息,一定程度地緩解了表面缺陷檢測任務中數(shù)據(jù)來源單一、樣本量缺乏的問題,同時也驗證了多任務學習網(wǎng)絡(luò)的可行性和優(yōu)越性。但在特征層共享的過程中,也引入了大量的可學習參數(shù),增大了網(wǎng)絡(luò)的計算規(guī)模,因此在后續(xù)的研究中應進一步對共享單元的結(jié)構(gòu)進行優(yōu)化。