孫亞新,劉韻婷,于清淞,葛忠文
(沈陽理工大學(xué) 自動(dòng)化與電氣工程學(xué)院,沈陽 110159)
目前異常檢測(cè)正快速發(fā)展成為一個(gè)重要的領(lǐng)域。最新趨勢(shì)表明,雖然大型數(shù)據(jù)集的可用量增加,但數(shù)據(jù)集高度不平衡。在大多數(shù)情況下,數(shù)據(jù)集中正常樣本占比非常高而異常樣本占比很小,并且異常類提供的數(shù)據(jù)僅能代表部分異常情況。異常檢測(cè)是解決樣本不均衡問題的一種方法,其思想是在僅輸入正常樣本的情況下學(xué)習(xí)特征,然后在進(jìn)行測(cè)試時(shí)將不完全符合該正常特征的樣本識(shí)別出來判為異常。
異常檢測(cè)方法中的一個(gè)普遍假設(shè)是異常樣本不僅在高維圖像空間與正常樣本不同,而且在低維潛在空間的編碼特征與正常樣本也不同,因此較好的解決辦法是將高維圖像映射到低維潛在空間再進(jìn)行比較,但關(guān)鍵問題是如何通過網(wǎng)絡(luò)獲得準(zhǔn)確的正常樣本潛在空間的特征分布。
輪胎的內(nèi)部是子午線,其生產(chǎn)工藝非常復(fù)雜,在生產(chǎn)過程中很容易出現(xiàn)各種各樣的缺陷。因此在輪胎出廠前必須進(jìn)行嚴(yán)格的產(chǎn)品缺陷檢測(cè)。輪胎X光圖像是對(duì)輪胎進(jìn)行X射線照射,根據(jù)內(nèi)部不同材料和部位對(duì)X射線的吸收量不同,通過圖像處理得到不同灰度級(jí)表示的數(shù)字圖像[1]。為提高輪胎缺陷檢測(cè)準(zhǔn)確率,諸多學(xué)者進(jìn)行了大量的算法研究。郭奇[2]基于模板匹配算法提出劃分圖像區(qū)域的方法,用于檢測(cè)輪胎簾線彎曲和氣泡等缺陷。崔雪紅等[3]基于卷積神經(jīng)網(wǎng)絡(luò)提出端到端的圖像自動(dòng)分類算法,對(duì)五種常見輪胎缺陷進(jìn)行分類。周欣[4]提出了一種小波分解-模極大值多尺度邊緣檢測(cè)算法,該算法能更準(zhǔn)確地定位邊緣。張巖等[5]提出了一種基于全變分模型圖像分解的輪胎缺陷檢測(cè)方法,該方法能夠分解胎側(cè)橡膠和胎側(cè)簾線的成像分量,降低了檢測(cè)算法的復(fù)雜度。但以上方法對(duì)于輪胎的灰度缺陷,例如氣泡和雜質(zhì)缺陷,應(yīng)用效果不佳。
雜質(zhì)缺陷是由于生產(chǎn)時(shí)內(nèi)部壓入了金屬等其他雜質(zhì)造成的,在圖像上表現(xiàn)為該區(qū)域像素灰度值低[6]。Zhang Y等[7]提出了一種基于曲波變換圖像增強(qiáng)和Canny算子的雜質(zhì)缺陷檢測(cè)算法,該算法對(duì)雜質(zhì)缺陷檢測(cè)較為準(zhǔn)確。氣泡缺陷是由于在輪胎生產(chǎn)過程中空氣進(jìn)入輪胎內(nèi)部導(dǎo)致的,在圖像上表現(xiàn)為高亮區(qū)域,但與背景區(qū)域的灰度值相差不大。劉宏貴[8]針對(duì)氣泡缺陷使用高斯濾波器和Robert算子去除圖像中的小邊緣區(qū)域,但該方法將一些非氣泡區(qū)域也會(huì)檢測(cè)出來。
目前利用生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)進(jìn)行異常檢測(cè)的研究已經(jīng)有了一定的突破。Schlegl T等[9]首次利用無監(jiān)督的GAN進(jìn)行異常檢測(cè),構(gòu)建了名為AnoGAN的架構(gòu),但這種方法的局限性較強(qiáng)。GANomaly以編碼器-解碼器-編碼器作為主要設(shè)計(jì)模型,將輸入圖像通過編碼得到的潛在變量和重構(gòu)圖像再編碼得到的潛在變量之間的差異進(jìn)行對(duì)比來判斷是否為異常樣本[10]。但GANomaly的圖像重建能力在所有任務(wù)中仍然不穩(wěn)定。Skip-GANomaly在GANomaly的基礎(chǔ)上去掉了將生成圖像重新再編碼的部分,在生成器中加入了跳躍連接,相當(dāng)于將淺層特征疊加到深層特征中,融合特征信息[11]。Skip-GANomaly的性能比AnoGAN和GANomaly的性能更穩(wěn)定。但Skip-GANomaly并不是在所有數(shù)據(jù)集類別中都表現(xiàn)良好,由于網(wǎng)絡(luò)的重構(gòu)表達(dá)能力過強(qiáng),其常常會(huì)在測(cè)試時(shí)將異常樣本的缺陷信息重構(gòu)出來。
memAE在自動(dòng)編碼器上首次使用了內(nèi)存模塊[12]。給定輸入x后,memAE首先從編碼器獲取編碼,然后將得到的特征編碼作為特征檢索項(xiàng)存儲(chǔ)起來,測(cè)試時(shí)在存儲(chǔ)器中查詢最相關(guān)的存儲(chǔ)項(xiàng)以進(jìn)行重構(gòu)。因?yàn)橹貥?gòu)是在存儲(chǔ)器中獲得的正常圖像特征的潛在向量,所以重構(gòu)出的圖像會(huì)更傾向于接近正常樣本。這樣能有效避免網(wǎng)絡(luò)重構(gòu)出異常特征導(dǎo)致異常損失得分不高的問題。但是通過用存儲(chǔ)器中的編碼替換輸入的潛在編碼會(huì)導(dǎo)致模型的重構(gòu)能力不足,原因是memAE的內(nèi)存插槽有限,潛在空間是AE的線性子空間,有時(shí)不能準(zhǔn)確地重構(gòu)正常圖像。
本文為解決自動(dòng)編碼器網(wǎng)絡(luò)重構(gòu)圖像能力不足的問題,將內(nèi)存器模塊加入到GAN網(wǎng)絡(luò)中,通過判別器的參與,使網(wǎng)絡(luò)具有更好的圖像重構(gòu)能力。為解決memAE網(wǎng)絡(luò)內(nèi)存插槽不足的問題,本文在網(wǎng)絡(luò)中使用多個(gè)內(nèi)存器,每個(gè)內(nèi)存器針對(duì)不同的尺度特征進(jìn)行存儲(chǔ),在測(cè)試時(shí)用來替換缺陷特征。由于同一圖像的不同分辨率尺度之間也會(huì)存在一定的特征差異,為學(xué)習(xí)更加準(zhǔn)確且全面的正常樣本的潛在特征,本文在網(wǎng)絡(luò)中加入多尺度編碼模塊[13],與內(nèi)存器配合使用,構(gòu)成多尺度編碼內(nèi)存器模塊,該模塊可將圖像按不同的分辨率輸入。
異常檢測(cè)根據(jù)正常樣本來識(shí)別異常[14],在訓(xùn)練階段學(xué)習(xí)正常數(shù)據(jù)的特征,在測(cè)試階段模型根據(jù)學(xué)習(xí)到的特征檢測(cè)出異常類。以x表示輸入樣本,正常數(shù)據(jù)可以用概率密度函數(shù)q(x)來描述,深度生成對(duì)抗網(wǎng)絡(luò)模型能夠更好地學(xué)習(xí)正常數(shù)據(jù)分布。Goodfellow I J等[15]采用GAN訓(xùn)練判別器D和生成器G,使判別器D使用隨機(jī)分布p(z)將采樣的真實(shí)數(shù)據(jù)q(x)與生成器G生成的重構(gòu)數(shù)據(jù)p(x)區(qū)分開。GAN的訓(xùn)練優(yōu)化目標(biāo)為
(1)
式中:V為優(yōu)化目標(biāo)函數(shù);E表示期望。生成器生成數(shù)據(jù)分布p(x)與真實(shí)數(shù)據(jù)分布q(x)的最優(yōu)匹配為p(x)=q(x)。
本文采用多尺度編碼內(nèi)存器生成對(duì)抗網(wǎng)絡(luò)(Multi-Scale Memories Generative Adversarial Networks,MSMGAN)模型,其結(jié)構(gòu)如圖1所示。
圖1 MSMGAN網(wǎng)絡(luò)結(jié)構(gòu)圖
MSMGAN為帶有多尺度編碼內(nèi)存器的GAN網(wǎng)絡(luò)。MSMGAN網(wǎng)絡(luò)模型使用多個(gè)內(nèi)存器,每個(gè)內(nèi)存器以相應(yīng)的比例存儲(chǔ)正常數(shù)據(jù)特征。對(duì)于每個(gè)測(cè)試圖像首先根據(jù)不同分辨率輸入到多尺度編碼器中,用潛在空間的特征編碼到內(nèi)存器中尋址,根據(jù)空間距離將缺陷特征用內(nèi)存器中存儲(chǔ)的最相近的正常特征編碼進(jìn)行替換,得到各個(gè)尺度的去異常編碼。然后將去異常編碼經(jīng)過特征融合器進(jìn)行融合,再將融合特征傳給解碼器重建圖像。這種按比例分別存儲(chǔ)的策略能獲得更大的無異常潛在空間。由于內(nèi)存網(wǎng)絡(luò)是一種使用外部?jī)?nèi)存來增強(qiáng)神經(jīng)網(wǎng)絡(luò)的方案,此方案可以記住選定的關(guān)鍵信息,因此對(duì)于一次或多次學(xué)習(xí)都有效,同時(shí)在判別器的配合訓(xùn)練下使網(wǎng)絡(luò)能更好地重建圖像。
(2)
在測(cè)試階段,本文使用L2范數(shù)來衡量每個(gè)像素的重建質(zhì)量。
為控制網(wǎng)絡(luò)的訓(xùn)練方向,需要設(shè)定網(wǎng)絡(luò)優(yōu)化目標(biāo)函數(shù),本文采用上下文損失和對(duì)抗損失兩個(gè)損失函數(shù)分別優(yōu)化兩個(gè)子網(wǎng)絡(luò)。上下文損失函數(shù)計(jì)算生成網(wǎng)絡(luò)輸入圖像與輸出圖像之間的差異,對(duì)抗損失函數(shù)計(jì)算輸入與輸出數(shù)據(jù)特征表示的空間距離。
(1)上下文損失
(3)
(2)對(duì)抗損失
本文使用特征匹配損失來進(jìn)行對(duì)抗性學(xué)習(xí),對(duì)抗損失可以讓判別器更好地幫助生成器訓(xùn)練,同時(shí)減少網(wǎng)絡(luò)訓(xùn)練的不穩(wěn)定性。對(duì)抗損失函數(shù)計(jì)算輸入圖像和生成圖像的特征表示的空間距離,其計(jì)算公式為
(4)
式中f表示輸入判別器數(shù)據(jù)特征的函數(shù)。
本文采用的網(wǎng)絡(luò)會(huì)在測(cè)試時(shí)更新內(nèi)存,同時(shí)區(qū)分異常,表明本文模型可以記憶測(cè)試數(shù)據(jù)的正常模式。
本文將內(nèi)存模塊的潛在空間分成與K個(gè)分辨率尺度相對(duì)應(yīng)的K個(gè)子域。i級(jí)編碼表示用作一個(gè)查詢檢索存儲(chǔ)器Mi中的相關(guān)項(xiàng)目。本文模型中生成器由一組用于生成查詢的編碼器和一個(gè)對(duì)融合特征進(jìn)行重構(gòu)的解碼器組成。多尺度編碼內(nèi)存器結(jié)構(gòu)如圖2所示。
由圖2可見,本文將K個(gè)相似的編碼通道并行形成一個(gè)編碼模塊,每個(gè)通道均以xi(i=1,2,…,K)作為輸入,經(jīng)過E1~EK的編碼組進(jìn)行編碼。將輸入樣本x的大小調(diào)整成x1~xK的K個(gè)不同分辨率圖像,再選擇一個(gè)下采樣因子r∈(0,1),并將輸入樣本x的分辨率表示為r=(H,W),故ri=(H×ri-1,W×ri-1),于是可由相應(yīng)的通道輸入不同分辨率的圖像。因此輸入樣本x通過多尺度編碼器E1~EK編碼后得到潛在向量Z1~ZK。
圖2 多尺度編碼內(nèi)存器結(jié)構(gòu)圖
存儲(chǔ)器M結(jié)構(gòu)如圖3所示。
圖3 存儲(chǔ)器M結(jié)構(gòu)圖
(5)
式中w為具有非負(fù)項(xiàng)的1×N的行向量,wi代表其中的第i項(xiàng),wi的總和為1。wi根據(jù)內(nèi)存M1~Mk中記憶的特征和編碼特征的相似性來計(jì)算。公式為
(6)
(7)
理想情況下,通過訓(xùn)練將內(nèi)存中的內(nèi)容更新成與正常數(shù)據(jù)最相似的潛在空間,得到正常數(shù)據(jù)凸包的邊界。但即使在正常的數(shù)據(jù)空間中圖像之間也會(huì)存在相當(dāng)大的差異,因此本文通過多通道編碼存儲(chǔ)空間來解決該問題。內(nèi)存模塊使用不同的內(nèi)存更新策略來進(jìn)行異常檢測(cè),將正常數(shù)據(jù)的各種模式記錄到內(nèi)存中的各個(gè)項(xiàng)目,并將每個(gè)項(xiàng)目視為原型特征,通過對(duì)比編碼和內(nèi)存的相似度來刪除異常特征的信息,達(dá)到良好的檢測(cè)效果。
本文的檢測(cè)數(shù)據(jù)集為輪胎的X光圖像,包括氣泡、雜質(zhì)等多種缺陷。輪胎樣本集是輪胎子午線X光圖片,通過對(duì)輪胎不同部位的對(duì)比實(shí)驗(yàn),確定選用胎側(cè)部分的圖像制作樣本集,胎側(cè)部分只有單層鋼絲,結(jié)構(gòu)簡(jiǎn)單清晰,并且是最常出現(xiàn)缺陷的部位。由于輪胎制作工藝復(fù)雜、缺陷種類繁多,本文僅選擇雜質(zhì)和氣泡兩種具有代表性的缺陷制作異常測(cè)試樣本集。部分訓(xùn)練集正常輪胎樣本如圖4所示。
圖4 部分訓(xùn)練集正常輪胎樣本
測(cè)試集缺陷輪胎樣本如圖5所示。
圖5 測(cè)試集缺陷輪胎樣本
本文輸入圖像的大小為512×512像素,設(shè)置編碼器的數(shù)量K=5,輸入圖像調(diào)整后的分辨率分別為32×32、64×64、128×128、256×256、512×512。批次大小為64,訓(xùn)練輪次為100,學(xué)習(xí)率為10-4。激活函數(shù)使用LeakReLU函數(shù)。判別器對(duì)抗損失函數(shù)中f使用Softmax函數(shù)。
實(shí)驗(yàn)平臺(tái)配置:實(shí)驗(yàn)使用計(jì)算機(jī)的硬件配置為Inter i7 CPU、Nvidia GTX1080GPU、16G內(nèi)存。編程環(huán)境采用Ubun-tu16.04LTS操作系統(tǒng),Python3.7及Pytorch深度神經(jīng)網(wǎng)絡(luò)開發(fā)工具。
本文訓(xùn)練樣本集使用12000張無缺陷正常胎側(cè)圖像,測(cè)試樣本集包含1000張正常輪胎圖像、500張氣泡缺陷圖像與500張雜質(zhì)缺陷圖像。測(cè)試樣本集制作為兩種:一種包含單類缺陷和等量的正常樣本,另一種包含兩種缺陷和等量的正常樣本。
模型性能評(píng)價(jià)通常采用受試者工作特征(Receiver Operating Characteristic,ROC)曲線,因?yàn)樵摲椒ㄔ跇颖菊?fù)比例發(fā)生變化時(shí)對(duì)結(jié)果的影響不大。ROC曲線橫軸表示負(fù)陽率,即在全部實(shí)際為有缺陷的樣本中,被錯(cuò)誤地判斷為正常樣本的比率。縱軸表示正陽率,即在全部實(shí)際為正常的樣本中,被正確地判斷為正常樣本的比率。ROC曲線越靠近左上角,表明檢測(cè)效果越好。模型評(píng)估指標(biāo)AUC的取值為ROC曲線下的區(qū)域總面積,顯然AUC值越大,說明分類器的效果越優(yōu)秀。采用AUC來進(jìn)行評(píng)價(jià)的主要原因是ROC曲線本身并不能直觀地說明某一種分類器系統(tǒng)性能的優(yōu)劣和好壞,而采用AUC數(shù)值可對(duì)其進(jìn)行量化比較。MSMGAN網(wǎng)絡(luò)ROC曲線如圖6所示。
圖6 MSMGAN網(wǎng)絡(luò)ROC曲線
由圖6可得,氣泡的AUC值為0.899,雜質(zhì)的AUC值為0.959。可以看出,雜質(zhì)缺陷的異常檢測(cè)準(zhǔn)確率明顯高于氣泡的異常檢測(cè)準(zhǔn)確率。本文對(duì)氣泡和雜質(zhì)類缺陷分別進(jìn)行單類缺陷和混合缺陷樣本集的測(cè)試實(shí)驗(yàn)。表1為單獨(dú)缺陷和混合缺陷的實(shí)驗(yàn)結(jié)果對(duì)比。
表1 單類缺陷和混合缺陷的實(shí)驗(yàn)結(jié)果對(duì)比
由表1可見,雜質(zhì)類缺陷的檢測(cè)準(zhǔn)確率比氣泡的檢測(cè)準(zhǔn)確率高出6%,混合缺陷的檢測(cè)準(zhǔn)確率介于兩個(gè)單類缺陷之間。本文使用混合缺陷的測(cè)試樣本集(1000張正常樣本、500張氣泡缺陷和500張雜質(zhì)缺陷樣本)在GANomaly和memAE兩個(gè)異常檢測(cè)網(wǎng)絡(luò)上進(jìn)行實(shí)驗(yàn),并與本文網(wǎng)絡(luò)進(jìn)行對(duì)比,結(jié)果如圖7所示。
圖7 模型性能比較
由圖7可知,在相同的輪胎樣本集中,GANomaly模型的AUC為0.657,memAE模型AUC為0.865,本文的網(wǎng)絡(luò)模型MSMGAN的AUC為0.926。在相同數(shù)據(jù)集不同模型的對(duì)比實(shí)驗(yàn)中,本文網(wǎng)絡(luò)模型的準(zhǔn)確率明顯高于另兩個(gè)異常檢測(cè)網(wǎng)絡(luò)模型。
本文提出的異常檢測(cè)模型MSMGAN在生成器中加入多尺度編碼內(nèi)存器模塊,有效解決了內(nèi)存器插槽不足導(dǎo)致不能準(zhǔn)確重構(gòu)正常圖像的問題,緩解了由于圖像不同分辨率尺度之間的特征差異,導(dǎo)致網(wǎng)絡(luò)學(xué)習(xí)正常樣本的潛在特征常常不全面不準(zhǔn)確的問題。實(shí)驗(yàn)結(jié)果表明本文采用的方法可以有效地提高輪胎雜質(zhì)和氣泡缺陷的異常檢測(cè)準(zhǔn)確率。