丁 鵬,盧文壯,劉 杰,袁志響
(南京航空航天大學(xué)機(jī)電學(xué)院,南京 210016)
近年來,國產(chǎn)各型航空發(fā)動(dòng)機(jī)在使用中暴露的質(zhì)量問題十分突出,其中葉片的質(zhì)量問題占了相當(dāng)大的比例[1],對(duì)葉片表面缺陷的檢測就顯得至關(guān)重要。隨著電荷耦合器件的發(fā)展,以及計(jì)算機(jī)技術(shù)中圖像處理、人工智能等算法的深入研究,機(jī)器視覺技術(shù)在工業(yè)質(zhì)檢中得到越來越廣泛的應(yīng)用[2-4]。
AlexNet在擁有1400萬幅圖像,涵蓋20000多種類別的ImageNet數(shù)據(jù)集的分類競賽中取得了冠軍[5],自此卷積神經(jīng)網(wǎng)絡(luò)得到了眾多研究人員的關(guān)注。近年來,新的網(wǎng)絡(luò)模型如VGG16Net[6]、GoogLeNet[7]、ResNet[8]等也受到廣泛關(guān)注,在圖像分類領(lǐng)域獲得了不俗的成績。然而,這些模型依托的數(shù)據(jù)集是MNIST[9],ImageNet等大型數(shù)據(jù)集,當(dāng)樣本數(shù)據(jù)集較小時(shí),模型容易出現(xiàn)過擬合等問題導(dǎo)致分類準(zhǔn)確率明顯降低。在實(shí)際情況下,受到記錄條件的限制,收集大量帶標(biāo)簽的葉片表面缺陷圖像困難,僅能獲得少量的數(shù)據(jù)樣本。
針對(duì)小型數(shù)據(jù)集中訓(xùn)練樣本小導(dǎo)致的過擬合或者泛化能力不強(qiáng)的問題,數(shù)據(jù)增強(qiáng)成為解決該問題的有效方法之一。GOODFELLOW等[10]提出了生成對(duì)抗網(wǎng)絡(luò)(GAN),這種致力于數(shù)據(jù)生成的模型為數(shù)據(jù)增強(qiáng)帶來了啟發(fā)。MIRZA等[11]提出條件生成對(duì)抗網(wǎng)絡(luò)(CGAN),在生成器的輸入中加入條件變量c對(duì)生成結(jié)果進(jìn)行約束,提高了模型生成圖像的效率。ODENA[12]提出了一種半監(jiān)督的生成對(duì)抗網(wǎng)絡(luò)模型(SGAN),該模型同時(shí)訓(xùn)練生成器和半監(jiān)督分類器,優(yōu)化了生成模型,提高了生成圖像的質(zhì)量。大量的實(shí)踐證明[13-15]基于生成對(duì)抗網(wǎng)絡(luò)的數(shù)據(jù)增強(qiáng)方法能夠有效地解決小樣本學(xué)習(xí)問題,提高生成數(shù)據(jù)的多樣性和訓(xùn)練器的分類精度。
本文對(duì)條件生成對(duì)抗網(wǎng)絡(luò)(CGAN)進(jìn)行改進(jìn)并將其應(yīng)用于小樣本條件下的葉片表面缺陷數(shù)據(jù)增強(qiáng),經(jīng)過增強(qiáng)的葉片表面缺陷數(shù)據(jù)通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,分類準(zhǔn)確度有明顯地提高。
生成對(duì)抗網(wǎng)絡(luò)(GAN)是GOODFELLOW等[10]提出的一種新的深度學(xué)習(xí)算法。最初GAN包括一個(gè)生成器G(generator)和一個(gè)判別器D(discriminator),該網(wǎng)絡(luò)的生成器G和判別器D均為全連接網(wǎng)絡(luò)。GAN的核心思想便是生成器與判別器在訓(xùn)練過程中的相互博弈,通過相互博弈可以使生成器G和判別器D均達(dá)到最優(yōu)狀態(tài),生成器可以根據(jù)輸入生成以假亂真的圖像。近年來,基于生成對(duì)抗網(wǎng)絡(luò)的數(shù)據(jù)增強(qiáng)方法取得了許多成果,但是訓(xùn)練數(shù)據(jù)量不足的問題同樣制約著GAN生成樣本的多樣性,使網(wǎng)絡(luò)難以生成有效的增強(qiáng)數(shù)據(jù)以提高分類效果。本文從小樣本葉片表面缺陷數(shù)據(jù)出發(fā)對(duì)GAN網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),搭建葉片表面缺陷數(shù)據(jù)生成對(duì)抗網(wǎng)絡(luò)結(jié)構(gòu)。
為保證葉片表面缺陷圖片的紋理和結(jié)構(gòu)特征以及訓(xùn)練的效率,設(shè)置生成器的輸出和判別器的輸入圖片大小為(128,128),并設(shè)置隨機(jī)噪聲z的維度200。生成器網(wǎng)絡(luò)結(jié)構(gòu)有1個(gè)噪聲輸入模塊,4個(gè)反卷積模塊和1個(gè)圖像輸出模塊。輸入模塊使用隨機(jī)噪聲z和類型標(biāo)簽y映射并重塑成(4,4,512)的向量,再通過神經(jīng)網(wǎng)絡(luò)的批量標(biāo)準(zhǔn)化處理和使用ReLU激活函數(shù)進(jìn)入反卷積模塊;反卷積模塊通過4層反卷積降低通道數(shù),并且每層反卷積模塊包括一次批量標(biāo)準(zhǔn)化處理和ReLU激活函數(shù)激活,最后使用通道數(shù)為3的反卷積層將生成的葉片表面缺陷圖像輸出。生成器網(wǎng)絡(luò)詳細(xì)參數(shù)如表1所示,生成器結(jié)構(gòu)如圖1所示。
表1 生成器網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
圖1 生成器結(jié)構(gòu)
判別器結(jié)構(gòu)為1個(gè)圖像輸入模塊,5個(gè)卷積模塊,1個(gè)分類模塊。圖像通過輸入模塊輸入,然后通過5層卷積模塊提高通道數(shù),每層卷積模塊包括一次批量標(biāo)準(zhǔn)化處理和LeakyReLU激活函數(shù)激活,最后通過兩個(gè)全連接層輸出圖像真假信息和分類信息。
由于葉片表面缺陷樣本數(shù)據(jù)量小,為降低網(wǎng)絡(luò)的過擬合性和避免網(wǎng)絡(luò)過早的達(dá)到平衡點(diǎn),使用神經(jīng)元隨機(jī)失活(dropout正則化)[16],以提高生成葉片表面缺陷圖像的多樣性。在判別器的卷積層的前兩層加入dropout層,隨機(jī)失活率為0.5,保證梯度下降速率的同時(shí)也緩和了網(wǎng)絡(luò)的過擬合性。判別器網(wǎng)絡(luò)詳細(xì)參數(shù)如表2所示,判別器結(jié)構(gòu)如圖2所示。
表2 判別器網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)
圖2 判別器結(jié)構(gòu)
從原始GAN到CGAN,網(wǎng)絡(luò)輸入加入類別標(biāo)簽控制生成器的生成圖像的模式,但是判別器仍然停留在只判斷圖像真假的階段。ACGAN網(wǎng)絡(luò)的出現(xiàn)繼承了CGAN網(wǎng)絡(luò)中監(jiān)督生成數(shù)據(jù)的特點(diǎn),還在判別器中加入了輔助分類器判斷輸入圖像的類別。對(duì)于生成器G,不斷通過模擬真實(shí)圖像x的分布使判別器的輸出趨向于1,另外在輔助分類器中達(dá)到正確的分類輸出。對(duì)于判別器D,厘清輸入的圖像是生成的圖像還是真實(shí)的圖像,對(duì)于真實(shí)的圖像達(dá)到正確的分類輸出。式(1)中LS為圖像的真假損失,式(2)中LC為圖像的分類損失,判別器的訓(xùn)練將LS+LC最大化,生成器的訓(xùn)練將LC-LS最大化。
LS=E[logP(S=real|Xreal)]+E[logP(S=fake|Xfake)]
(1)
LC=E[logP(C=c|Xreal)]+E[logP(C=c|Xfake)]
(2)
本文使用的數(shù)據(jù)集是在航空葉片加工現(xiàn)場采集獲得。葉片表面缺陷采集系統(tǒng)主要包括:工業(yè)相機(jī),支架,穹頂光源等。缺陷圖像的質(zhì)量受到光照強(qiáng)度的影響,由于葉片表面是不規(guī)則曲面,使用穹頂光源保證各處受光均勻。使用高斯濾波[17]或雙邊濾波[18]對(duì)圖像進(jìn)行處理,可以在一定程度上消除噪聲對(duì)圖像特征提取的影響,但是同時(shí)也弱化了圖像的邊緣信息;使用Laplacian高通濾波[19]對(duì)圖像進(jìn)行銳化處理,突出缺陷的邊緣和輪廓特征如刻痕的刻痕邊,去噪和增強(qiáng)后的葉片表面缺陷圖像如圖3所示。
圖3 預(yù)處理后圖像
現(xiàn)場收集的葉片表面缺陷圖像有300張,其中缺陷類型有4種,分別為刻痕、燒傷、缺口和刮蹭,圖像樣本集70%劃分為訓(xùn)練集,30%劃分為驗(yàn)證集。
圖像在進(jìn)行生成對(duì)抗網(wǎng)絡(luò)訓(xùn)練時(shí),由于圖像樣本過少,很容易發(fā)生過擬合導(dǎo)致生成的缺陷圖像過于單一,所以在此進(jìn)行圖像的預(yù)增強(qiáng)。預(yù)增強(qiáng)主要分為兩個(gè)步驟:①將圖像進(jìn)行仿射變換,使用圖像的隨機(jī)翻轉(zhuǎn)、鏡像等操作增加訓(xùn)練數(shù)據(jù);②確定缺陷的特征中心區(qū)域進(jìn)行隨機(jī)滑移采樣。
先對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行隨機(jī)仿射變換,變換后的圖像為800×800,圖像中缺陷特征的大小約為400×400,采集圖像的窗口大小為600×600,圍繞缺陷特征中心進(jìn)行多次隨機(jī)滑移裁剪,最終獲得的葉片表面缺陷圖像約為6000張,其中訓(xùn)練圖像為4220張,驗(yàn)證圖像為1780張。具體數(shù)據(jù)集如表3所示。
表3 預(yù)增強(qiáng)數(shù)據(jù)集
綜上所述,葉片表面缺陷數(shù)據(jù)已經(jīng)通過預(yù)處理獲得新的樣本數(shù)據(jù)集,將訓(xùn)練樣本集導(dǎo)入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。判別器的訓(xùn)練:葉片圖像以及其標(biāo)簽信息通過判別器時(shí),可以判斷出是由對(duì)抗網(wǎng)絡(luò)生成的假圖像還是真實(shí)輸入的圖像,同時(shí)對(duì)于輸入的真實(shí)圖像都能判斷出正確的類別。生成器的訓(xùn)練:一定維度隨機(jī)噪聲和標(biāo)簽信息融合后通過生成器生成假圖像和對(duì)應(yīng)的標(biāo)簽信息,生成的假圖像能夠騙過判別器以及假圖像對(duì)應(yīng)的標(biāo)簽和判別器的判定的標(biāo)簽一致。
在實(shí)際訓(xùn)練過程中,學(xué)習(xí)率直接控制著對(duì)抗網(wǎng)絡(luò)的梯度下降的效率,是網(wǎng)絡(luò)訓(xùn)練中最重要的參數(shù)之一。學(xué)習(xí)率過高時(shí),雖然梯度下降速度快但是很難達(dá)到最優(yōu)解,導(dǎo)致網(wǎng)絡(luò)無法收斂;學(xué)習(xí)率過低時(shí),容易陷入局部最優(yōu)解導(dǎo)致圖像生成的效果不佳。經(jīng)過多次訓(xùn)練對(duì)比后,設(shè)置學(xué)習(xí)率為0.000 1,并設(shè)置訓(xùn)練批次大小為64,迭代次數(shù)為10 000次,所使用的梯度優(yōu)化算法為Adam優(yōu)化算法[20]。表4為訓(xùn)練好的生成器生成的圖像與原樣本的對(duì)比。
表4 ACGAN生成圖像
使用ACGAN模型的主要目的是增強(qiáng)葉片表面缺陷數(shù)據(jù)集,由訓(xùn)練好的生成器生成葉片表面缺陷數(shù)據(jù),再將生成數(shù)據(jù)和原來的訓(xùn)練數(shù)據(jù)集整合作為卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集,大大提升了訓(xùn)練的數(shù)據(jù)量,顯著地提高分類網(wǎng)絡(luò)的準(zhǔn)確率。近年來,多種高效的卷積神經(jīng)網(wǎng)絡(luò)模型被提出如VGG16Net、GoogLeNet、ResNet等,這里使用GoogLeNet對(duì)增強(qiáng)后的數(shù)據(jù)集進(jìn)行分類。由于葉片初始數(shù)據(jù)集較小,GoogLeNet中特殊的模塊(Inception模塊)可以在一定程度上緩和過擬合性,圖4為Inception模塊的結(jié)構(gòu)圖。Inception模塊的出現(xiàn)打破了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的串聯(lián)結(jié)構(gòu),將特征矩陣同時(shí)輸入到多個(gè)分支進(jìn)行處理,再將輸出的矩陣按照深度進(jìn)行拼接,既增加了網(wǎng)絡(luò)深度的同時(shí)減少了參數(shù)的個(gè)數(shù),一定程度上提升網(wǎng)絡(luò)訓(xùn)練的效率。
圖4 Inception模塊的結(jié)構(gòu)圖
將增強(qiáng)后的數(shù)據(jù)集輸入GoogLeNet進(jìn)行訓(xùn)練,輸入圖片的大小為224×224,設(shè)置訓(xùn)練的批次大小為64,最大迭代次數(shù)為300,激活函數(shù)為ReLu,損失函數(shù)為交叉熵,梯度優(yōu)化算法為Adam優(yōu)化算法,學(xué)習(xí)率為0.003。
本文基于生成對(duì)抗網(wǎng)絡(luò)對(duì)小樣本葉片表面缺陷數(shù)據(jù)進(jìn)行擴(kuò)充,并用卷積神經(jīng)網(wǎng)絡(luò)對(duì)擴(kuò)充后的數(shù)據(jù)進(jìn)行分類。實(shí)驗(yàn)的硬件環(huán)境為:CPU是AMD 3700X,內(nèi)存為32 GB,GPU顯卡為NVIDIA 3070。軟件環(huán)境為:操作系統(tǒng)為Windows10 64bit版本,實(shí)現(xiàn)平臺(tái)為tensorflow2.4以及python3.8。為了體現(xiàn)生成對(duì)抗網(wǎng)絡(luò)的性能,從生成葉片表面缺陷圖像的多樣性和數(shù)據(jù)增強(qiáng)后葉片表面缺陷的平均分類準(zhǔn)確率這兩個(gè)方面進(jìn)行評(píng)價(jià)。
實(shí)驗(yàn)中使用生成對(duì)抗網(wǎng)絡(luò)的目的是生成具有多樣性的圖像以期達(dá)到數(shù)據(jù)增強(qiáng)的效果,而非生成與原圖像一模一樣的圖像。通過計(jì)算結(jié)構(gòu)相似度這個(gè)客觀指標(biāo),來評(píng)價(jià)兩幅葉片表面缺陷圖像之間視覺上的差異。在一定范圍內(nèi),生成葉片表面缺陷圖像和原葉片表面缺陷圖像的結(jié)構(gòu)相似度越低表示生成葉片表面缺陷圖像的多樣性越好,生成網(wǎng)絡(luò)的泛化性越好。結(jié)構(gòu)相似度定義如下:
(3)
式中,μx和μy分別表示兩張葉片表面缺陷圖像x和y的平均值;σx和σy則表示兩張葉片表面缺陷圖像的方差;σxy表示葉片表面缺陷圖像的協(xié)方差;C1和C2為常數(shù)。SSIM的取值在0~1之間,值越小,相似度越低;值越接近1表示兩幅葉片表面缺陷圖像越相似。
對(duì)于某類缺陷有n組葉片表面缺陷圖像,定義平均結(jié)構(gòu)相似度:
(4)
式中,SSIMi為第i組葉片表面缺陷圖像的結(jié)構(gòu)相似度。
為了體現(xiàn)生成對(duì)抗網(wǎng)絡(luò)算法的數(shù)據(jù)增強(qiáng)效果,設(shè)計(jì)對(duì)比實(shí)驗(yàn),對(duì)小樣本葉片表面缺陷數(shù)據(jù)分別使用仿射變換和本文提出的數(shù)據(jù)增強(qiáng)算法增強(qiáng)數(shù)據(jù),輸入到CNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,對(duì)比各個(gè)數(shù)據(jù)集的平均分類準(zhǔn)確率。平均分類準(zhǔn)確率定義如下:
(5)
式中,Ai為數(shù)據(jù)集中第i類的分類準(zhǔn)確率;n為類別數(shù)。
表5展示了各類缺陷對(duì)應(yīng)的平均結(jié)構(gòu)相似度,表現(xiàn)了各類生成圖像與對(duì)應(yīng)原圖像在人眼視覺上有一定的差異,體現(xiàn)生成數(shù)據(jù)的多樣性。圖5描述了3個(gè)數(shù)據(jù)集在GoogLeNet網(wǎng)絡(luò)訓(xùn)練中的平均準(zhǔn)確率和迭代次數(shù)的趨勢圖。隨著迭代次數(shù)的增加,平均準(zhǔn)確率不斷提高,最終曲線趨于平衡。使用生成對(duì)抗網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)增強(qiáng)的數(shù)據(jù)集,平均分類準(zhǔn)確率最高,并且曲線收斂的速度也明顯較快。圖6為交叉熵?fù)p失隨迭代次數(shù)的下降趨勢圖,增強(qiáng)數(shù)據(jù)集的損失曲線在迭代100次后較其他兩條曲線更平緩穩(wěn)定,損失值最低。綜上所述,使用ACGAN網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)增強(qiáng)可以在一定程度上加快CNN分類收斂速度,穩(wěn)定損失曲線,提高分類準(zhǔn)確率。表6為3次實(shí)驗(yàn)的平均準(zhǔn)確率。
表5 平均結(jié)構(gòu)相似度
表6 實(shí)驗(yàn)結(jié)果
圖5 平均分類準(zhǔn)確率迭代曲線圖 圖6 分類損失迭代曲線圖
本文通過AGGAN網(wǎng)絡(luò)模型,在原有葉片表面缺陷樣本數(shù)據(jù)不足的情況下,對(duì)樣本數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),解決了葉片表面缺陷樣本數(shù)據(jù)不足導(dǎo)致分類效果不佳的問題。ACGAN方法基于生成對(duì)抗網(wǎng)絡(luò),通過隨機(jī)噪聲信號(hào)生成增強(qiáng)數(shù)據(jù),保證了生成圖像的質(zhì)量和多樣性,實(shí)現(xiàn)了對(duì)小樣本葉片表面缺陷數(shù)據(jù)集的有效擴(kuò)充。實(shí)驗(yàn)結(jié)果表明,相比傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法,使用ACGAN方法所訓(xùn)練的CNN網(wǎng)絡(luò)其泛化能力和收斂速度得到提高,平均分類準(zhǔn)確率由86.2%提高至94.5%,體現(xiàn)了該數(shù)據(jù)增強(qiáng)方法的可靠性。