李慶旭 王巧華,2 馬美湖
(1.華中農(nóng)業(yè)大學工學院, 武漢 430070; 2.農(nóng)業(yè)農(nóng)村部長江中下游農(nóng)業(yè)裝備重點實驗室, 武漢 430070;3.國家蛋品加工技術研發(fā)分中心, 武漢 430070)
目前,禽蛋檢測手段主要包括光譜、敲擊振動和機器視覺等方法。光譜和敲擊振動方法設備成本高、穩(wěn)定性差;機器視覺技術具有成本低廉、效率高的優(yōu)點,成為禽蛋品質無損檢測較為穩(wěn)定和可靠的方法之一[1-2]。利用機器視覺技術可以對禽蛋裂紋[3-4]、新鮮度[5-6]、尺寸[7]、散黃[8]以及種蛋受精信息[9-10]等進行無損檢測。
使用機器視覺技術對禽蛋進行檢測的前提是需采集大量的禽蛋圖像數(shù)據(jù),然后利用相關圖像處理或圖像識別[11]手段對禽蛋圖像數(shù)據(jù)進行分析建模,最后將建立的模型部署到實際生產(chǎn)中,從而實現(xiàn)禽蛋的自動無損檢測。近年來,深度學習在機器視覺領域占據(jù)重要地位,但深度學習往往需要大量的禽蛋圖像數(shù)據(jù)。目前,國內缺乏相關禽蛋圖像數(shù)據(jù)庫,采集海量禽蛋圖像需要耗費大量的人力和物力,且在有限的情況下采集得到的禽蛋圖像數(shù)據(jù)樣本容易出現(xiàn)分布不均衡。因此,尋找到合理的圖像數(shù)據(jù)生成算法對加快深度學習在禽蛋檢測領域的應用具有重要意義。
生成對抗網(wǎng)絡(Generative adversarial network,GAN)[12]是一種基于納什均衡和對抗訓練的新型數(shù)據(jù)生成算法,可以根據(jù)小樣本數(shù)據(jù)分布智能生成海量且高質量的圖像數(shù)據(jù),有效解決計算機視覺領域的樣本不足和分布不均衡問題[13]。目前,GAN網(wǎng)絡被廣泛應用于文本生成[14]、圖像生成與識別[15]和生物學[16]等領域,在農(nóng)業(yè)領域袁培森等[17]利用GAN網(wǎng)絡生成菌菇表型圖像數(shù)據(jù),但在禽蛋領域尚未見相關報道。使用GAN網(wǎng)絡模擬真實數(shù)據(jù)分布、生成高質量的禽蛋圖像數(shù)據(jù),能有效解決使用機器視覺和深度學習對禽蛋檢測樣本不足的問題。
采用機器視覺技術對禽蛋檢測時,常以透射方式檢測禽蛋內部品質[18]、以反射方式檢測禽蛋外部品質[19]。為此,本文以光源透射和反射情況下的禽蛋圖像為研究對象,在深度卷積生成對抗網(wǎng)絡(Deep convolutional generative adversarial networks,DCGAN)的基礎上引入殘差網(wǎng)絡和Wasserstein距離,設計一種適用于禽蛋圖像數(shù)據(jù)生成的GAN網(wǎng)絡(EGG-GAN),來模擬禽蛋圖像數(shù)據(jù)樣本的真實分布,生成海量禽蛋圖像數(shù)據(jù)。
為了分別采集透射和反射情況下的禽蛋圖像,本文設計了圖1所示的禽蛋透射圖像采集裝置和圖2所示的禽蛋反射圖像采集裝置,采集裝置由暗箱、光源、工業(yè)相機、計算機構成。透射光源選擇5 W正白光LED射燈,反射光源為5 W環(huán)形LED光源,相機為AD-080GE型工業(yè)相機。以鴨蛋為研究對象,共采集透射圖像和反射圖像各300幅。采集得到禽蛋透射和反射圖像的尺寸均為1 024像素×768像素,為了方便EGG-GAN網(wǎng)絡讀取數(shù)據(jù),本文將圖像尺寸統(tǒng)一調整為256像素×256像素。
生成對抗網(wǎng)絡是由GOODFELLOW等[20]提出的基于零和博弈論的生成深度學習算法。GAN網(wǎng)絡分為生成器和判別器,隨機數(shù)據(jù)輸入至生成器后,由生成器中的解碼器將隨機數(shù)據(jù)轉換成圖像格式的數(shù)據(jù),判別器對生成的數(shù)據(jù)進行判定(判斷是否為真實數(shù)據(jù))。GAN網(wǎng)絡的生成器和判別器在訓練過程中不斷優(yōu)化,兩者相互對抗最終達到納什均衡[21],即判別器無法判定生成的圖像數(shù)據(jù)和真實圖像數(shù)據(jù)。
GAN網(wǎng)絡結構如圖3所示,輸入數(shù)據(jù)z一般為服從高斯分布的隨機變量,生成器G生成虛擬圖像G(z),判別器D對生成的虛擬圖像和真實圖像做二分類判別,得到判別結果D(x)。生成對抗網(wǎng)絡訓練過程的實質是不斷地調整優(yōu)化生成器G和判別器D的參數(shù),優(yōu)化的手段是使生成器極小化、判別器極大化,損失函數(shù)為

(1)
Pd(x)——真實樣本數(shù)據(jù)分布
PG(z)——生成樣本數(shù)據(jù)分布
E(·)——期望
GAN網(wǎng)絡訓練的步驟是先固定生成器G的參數(shù),訓練判別器D的參數(shù),然后固定判別器D的參數(shù),再訓練生成器G的參數(shù),如此反復交替進行。訓練過程中期望判別器對生成圖像的判別結果D(G(z))=1,D(x)=1,當Pd(x)=PG(z)時達到全局最優(yōu),即生成器生成的虛擬圖像能夠騙過判別器,最終達到以假亂真的效果。
GOODFELLOW等[20]提出的GAN網(wǎng)絡優(yōu)點明顯,但也存在訓練過程難以收斂的問題。RADFORD等[22]利用卷積神經(jīng)網(wǎng)絡代替了GAN中的多層感知機,提出了DCGAN網(wǎng)絡,大大提升了GAN的性能。DCGAN網(wǎng)絡結構與GAN網(wǎng)絡結構相似,包括生成網(wǎng)絡與判別網(wǎng)絡。DCGAN的生成網(wǎng)絡由7層卷積神經(jīng)網(wǎng)絡組成,含有3個反卷積層(Deconvolution,Deconv)、3個標準卷積層(Convolution,Conv)和1個輸入層;其判別網(wǎng)絡由4個卷積層和1個全連接層構成。生成器將隨機數(shù)據(jù)轉換為虛擬圖像,判別器根據(jù)真實圖像數(shù)據(jù)對虛擬圖像進行判別,最后根據(jù)判別結果對生成器G和判別器D的網(wǎng)絡參數(shù)進行優(yōu)化。
2.1.1DCGAN生成網(wǎng)絡
利用DCGAN網(wǎng)絡生成禽蛋圖像,CCD相機采集的實驗圖像分辨率較高。若生成網(wǎng)絡生成的禽蛋圖像數(shù)據(jù)分辨率過低則可能會使禽蛋圖像變形,生成的禽蛋圖像質量較差。若生成的圖像分辨率過高則會影響GAN網(wǎng)絡的訓練速度。經(jīng)反復試驗,綜合訓練速度和圖像質量,本研究將生成的圖像尺寸設置為256像素×256像素。生成網(wǎng)絡中的反卷積層具有上采樣的作用[23],標準卷積層后面引入批量歸一化層(Batch normalization,BN)防止梯度消失[24],使用ReLU和tanh函數(shù)作為激活函數(shù)。
用于禽蛋圖像生成的DCGAN網(wǎng)絡的生成網(wǎng)絡結構如圖4所示。
將尺寸為32×32×128服從正態(tài)分布的隨機數(shù)據(jù)經(jīng)過上采樣和卷積操作輸出為256×256×3的圖像數(shù)據(jù)。具體實現(xiàn)步驟如下:
(1)將服從正態(tài)分布的131 072個隨機數(shù)據(jù)重構成尺寸為32×32×128的矩陣,作為生成網(wǎng)絡的輸入。
(2)輸入層(Input):將尺寸為32×32×128的隨機數(shù)據(jù)輸入至Deconv_1。
(3)反卷積層1(Deconv_1):將尺寸為32×32×128的數(shù)據(jù)經(jīng)過反卷積層后,輸出尺寸為64×64×128的數(shù)據(jù)至Conv_1。
(4)卷積層1(Conv_1):卷積核為3×3、共128個,經(jīng)過卷積層后輸出尺寸為64×64×128,再經(jīng)BN層和ReLU激活后輸入至Deconv_2。
(5)反卷積層2(Deconv_2):將尺寸為64×64×128的數(shù)據(jù)經(jīng)過反卷積層后,輸出尺寸為128×128×128的數(shù)據(jù)至Conv_2。
(6)卷積層2(Conv_2):卷積核為3×3、數(shù)量為64,將尺寸為128×128×128的數(shù)據(jù)經(jīng)過卷積層后輸出尺寸為128×128×64,再經(jīng)BN層和ReLU激活后輸入至Deconv_3。
(7)反卷積層3(Deconv_3):將尺寸為128×128×64的數(shù)據(jù)經(jīng)過反卷積層處理后,輸出尺寸為256×256×64的數(shù)據(jù)至Conv_3。
(8)卷積層3(Conv_3):卷積核為3×3,卷積核數(shù)量為3,將尺寸為256×256×64的數(shù)據(jù)卷積處理后輸出尺寸為256×256×3,最后由tanh函數(shù)激活后輸出。
2.1.2DCGAN判別網(wǎng)絡
DCGAN判別網(wǎng)絡的作用是對生成的虛擬圖像進行真假判別,利用判別結果對生成網(wǎng)絡和判別網(wǎng)絡進行參數(shù)更新。判別網(wǎng)絡由4個卷積層和1個全連接層(Fully connected layer,FC)構成,網(wǎng)絡結構如圖5所示。與生成網(wǎng)絡類似,在卷積層后使用BN層,但激活函數(shù)使用LeakyReLU和Sigmoid函數(shù)。此外還引入了dropout層,以防止判別網(wǎng)絡出現(xiàn)過擬合現(xiàn)象[25]。
判別網(wǎng)絡共5層,具體步驟如下:
(1)卷積層1(Conv_1):卷積核尺寸為5×5、卷積核數(shù)量為64、卷積步長為2,圖像尺寸為256×256×3,經(jīng)過卷積后輸出尺寸為128×128×64,卷積后使用LeakyReLU函數(shù)激活,并加入dropout層輸出至卷積層2。
(2)卷積層2(Conv_2):卷積核尺寸為5×5、卷積核數(shù)量為128、卷積步長為2,經(jīng)過卷積后輸出圖像尺寸為65×65×128,卷積后進行批量歸一化,再經(jīng)過LeakyReLU和dropout輸出至卷積層3。
(3)卷積層3(Conv_3):卷積核尺寸為5×5、卷積核數(shù)量為256、卷積步長為2,經(jīng)過卷積和零填充(Zero_padding,ZP)后輸出尺寸為33×33×256,然后進行批量歸一化,再使用LeakyReLU激活并加入dropout層輸出至卷積層4。
(4)卷積層4(Conv_4):卷積核尺寸為5×5、卷積核數(shù)量為512、卷積步長為1,經(jīng)過卷積后輸出圖像尺寸為33×33×512,卷積后進行批量歸一化,再使用LeakyReLU激活并加入dropout層輸出至全連接層。
(5)全連接層(FC):輸入尺寸為33×33×512,經(jīng)過Sigmoid函數(shù)激活后輸出為0或1,表示判定結果為假或真。
DCGAN網(wǎng)絡通過引入卷積神經(jīng)網(wǎng)絡代替GAN全連接網(wǎng)絡,一定程度上解決了GAN網(wǎng)絡訓練過程中難以收斂的問題,且加快了網(wǎng)絡的訓練速度。但DCGAN網(wǎng)絡并未對GAN網(wǎng)絡的損失函數(shù)加以改進,原始GAN網(wǎng)絡中使用JS散度來衡量生成數(shù)據(jù)分布與真實數(shù)據(jù)分布的距離,會導致GAN網(wǎng)絡在訓練過程中出現(xiàn)梯度消失現(xiàn)象。為此GULRAJANI等[26]利用加梯度懲罰的Wasserstein距離對原始GAN網(wǎng)絡的損失函數(shù)進行優(yōu)化,提出了WGAN-GP網(wǎng)絡,從根本上解決了該問題。WGAN-GP網(wǎng)絡使用Wasserstein距離代替JS散度并用Lipschitz函數(shù)對判別器的權重進行約束。Wasserstein距離定義如下
(2)
式中PR——真實樣本分布
PI——生成樣本分布
r——真實樣本y——生成樣本
γ——聯(lián)合分布
∏(PR,PI) ——PR和PI組合后所有可能聯(lián)合分布的集合
E(r,y)~γ(‖r-y‖)——聯(lián)合分布γ下真實樣本與生成樣本之間距離的期望
inf——最大下確界函數(shù)


(3)
LG=Ex~PR(D(x))-Ex~PI(D(x))
(4)
式中LD——判別網(wǎng)絡損失函數(shù)
LG——生成網(wǎng)絡損失函數(shù)
Pc——真實樣本分布與生成樣本分布的差值
WGAN-GP網(wǎng)絡雖然對原始GAN的損失函數(shù)進行優(yōu)化,但生成網(wǎng)絡與判別網(wǎng)絡依然使用全鏈接層,導致其訓練速度較慢且生成的樣本多樣性不足。而DCGAN網(wǎng)絡訓練過程中存在難以收斂的問題,故本研究結合WGAN-GP和DCGAN網(wǎng)絡的優(yōu)點提出了針對禽蛋圖像的生成網(wǎng)絡。由于禽蛋圖像的數(shù)據(jù)背景簡單、目標為橢圓,若生成網(wǎng)絡和判別網(wǎng)絡表達的特征不足則易造成禽蛋外形和顏色的失真,若大量使用全連接網(wǎng)絡則會降低網(wǎng)絡的收斂速度。
殘差網(wǎng)絡在增加網(wǎng)絡的寬度與深度方面具有明顯優(yōu)勢,可以提高網(wǎng)絡的性能。故本研究引入殘差網(wǎng)絡代替DCGAN中的卷積網(wǎng)絡從而提升網(wǎng)絡表達特征的能力,同時將DCGAN中的損失函數(shù)更改為WGAN-GP的損失函數(shù)。設計了如圖6所示的生成對抗網(wǎng)絡。生成器G為含反卷積層的殘差網(wǎng)絡,判別器D為二分類卷積網(wǎng)絡。將符合正態(tài)分布的隨機噪聲z輸入生成器G中,生成虛擬圖像G(z),判別器D根據(jù)真實圖像數(shù)據(jù)分布對虛擬圖像進行判別,最后根據(jù)判別結果對生成器G和判別器D的網(wǎng)絡參數(shù)進行優(yōu)化。
2.2.1EGG-GAN生成網(wǎng)絡
深度殘差生成對抗網(wǎng)絡在圖像超分辨率重建方面取得了一定的優(yōu)勢,能夠生成較高分辨率的圖像樣本[27]。本文要生成尺寸為256×256×3的禽蛋圖像,屬于較高分辨率圖像,故使用殘差網(wǎng)絡代替DCGAN網(wǎng)絡中的卷積層。經(jīng)反復試驗,設計了含殘差結構的19層禽蛋圖像數(shù)據(jù)生成網(wǎng)絡,含有5個反卷積層(Deconvolution,Deconv)、13個卷積層(Convolution,Conv)和1個輸入層。該生成網(wǎng)絡的輸入數(shù)據(jù)為8×8×256的正態(tài)分布數(shù)據(jù),輸出為256×256×3。在卷積層后面同樣引入批量歸一化操作,使用ReLU和tanh函數(shù)作為激活函數(shù)。
禽蛋圖像數(shù)據(jù)生成網(wǎng)絡將噪聲數(shù)據(jù)轉換為圖像數(shù)據(jù),將服從正態(tài)分布的16 384個隨機數(shù)據(jù)重構成尺寸為8×8×256的矩陣,作為生成網(wǎng)絡的輸入。網(wǎng)絡結構如圖7所示,具體實現(xiàn)步驟如下:
(1)輸入層(Input):輸入尺寸為8×8×256的隨機數(shù)據(jù),經(jīng)過ReLU激活函數(shù)處理后輸入至Deconv_1。
(2)反卷積層1(Deconv_1):將尺寸為8×8×256的數(shù)據(jù)經(jīng)過反卷積后,輸出尺寸為16×16×256的數(shù)據(jù)至Conv_1。
(3)卷積層1(Conv_1):卷積核尺寸為5×5、數(shù)量為64,經(jīng)過卷積后輸出尺寸為16×16×64,再使用BN層和ReLU激活后輸入至Conv_2。
(4)卷積層2(Conv_2):卷積核尺寸為3×3、數(shù)量為128,經(jīng)卷積輸出尺寸為16×16×128,使用BN層和ReLU激活后輸入至Conv_3。
(5)卷積層3(Conv_3):卷積核尺寸為1×1、數(shù)量為256,經(jīng)卷積輸出尺寸為16×16×256,使用BN層和ReLU激活后輸入至Conv_4。
(6)卷積層4(Conv_4):卷積核尺寸為1×1、數(shù)量為128,經(jīng)卷積輸出尺寸為16×16×128,使用BN層和ReLU激活后輸入至Conv_5。
(7)卷積層5(Conv_5):卷積核尺寸為1×1、數(shù)量為64,經(jīng)卷積輸出尺寸為16×16×64,使用BN層和ReLU激活后與Conv_1層的輸出相加,然后輸入至Deconv_2。
(8)反卷積層2(Deconv_2):將尺寸為16×16×64的數(shù)據(jù)反卷積后輸出尺寸為32×32×64的數(shù)據(jù)至Conv_6。
(9)卷積層6(Conv_6):卷積核尺寸為5×5、數(shù)量為128,將尺寸為32×32×64的數(shù)據(jù)經(jīng)過卷積后輸出尺寸為32×32×128,再使用BN層和ReLU激活后輸入至Conv_7。
(10)卷積層7(Conv_7):卷積核尺寸為3×3、數(shù)量為256,將尺寸為32×32×128的數(shù)據(jù)經(jīng)過卷積后輸出尺寸為32×32×256,再使用BN層和ReLU激活后輸入至Conv_8。
(11)卷積層8(Conv_8):卷積核尺寸為1×1、數(shù)量為512,將尺寸為32×32×256的數(shù)據(jù)經(jīng)過卷積后輸出尺寸為32×32×512,再使用BN層和ReLU激活后輸入至Conv_9。
(12)卷積層9(Conv_9):卷積核尺寸為3×3、數(shù)量為256,將尺寸為32×32×512的數(shù)據(jù)經(jīng)過卷積后輸出尺寸為32×32×256,再使用BN層和ReLU激活后輸入至Conv_10。
(13)卷積層10(Conv_10):卷積核尺寸為3×3、數(shù)量為128,將尺寸為32×32×256的數(shù)據(jù)經(jīng)過卷積后輸出尺寸為32×32×128,再使用BN層和ReLU激活后與Conv_6層的輸出相加,然后輸入至Deconv_3。
(14)反卷積層3(Deconv_3):將尺寸為32×32×128的數(shù)據(jù)經(jīng)過反卷積處理后,輸出尺寸為64×64×128的數(shù)據(jù)至Conv_11。
(15)卷積層11(Conv_11):卷積核尺寸為5×5,卷積核數(shù)量為256,將尺寸為64×64×128的數(shù)據(jù)卷積后輸出尺寸為64×64×256,再經(jīng)過BN層和ReLU激活后輸入至Deconv_4。
(16)反卷積層4(Deconv_4):將尺寸為64×64×256的數(shù)據(jù)反卷積后輸出尺寸為128×128×256的數(shù)據(jù)至Conv_12。
(17)卷積層12(Conv_12):卷積核尺寸為5×5,卷積核數(shù)量為64,將尺寸為128×128×256的數(shù)據(jù)卷積后輸出尺寸為128×128×64,再經(jīng)過BN層和ReLU激活后輸入至Deconv_5。
(18)反卷積層5(Deconv_5):將尺寸為128×128×64的數(shù)據(jù)經(jīng)過反卷積后,輸出尺寸為256×256×64的數(shù)據(jù)至Conv_13。
(19)卷積層13(Conv_13):卷積核尺寸為5×5,卷積核數(shù)量為3,將尺寸為256×256×64的數(shù)據(jù)卷積后輸出尺寸為256×256×3,最后經(jīng)tanh激活后輸出。
2.2.2EGG-GAN判別網(wǎng)絡
禽蛋圖像數(shù)據(jù)判別網(wǎng)絡的作用是對生成的虛擬圖像進行真假判別,利用判別的結果對生成網(wǎng)絡和判別網(wǎng)絡進行參數(shù)更新。判別網(wǎng)絡是由6個卷積層和1個全連接層(Fully connected layer,FC)構成的卷積神經(jīng)網(wǎng)絡,網(wǎng)絡結構如圖8所示。與生成網(wǎng)絡類似,在卷積層后使用BN層,但激活函數(shù)使用LeakyReLU和Sigmoid函數(shù)。此外還引入了dropout層,以防止判別網(wǎng)絡出現(xiàn)過擬合現(xiàn)象。
判別網(wǎng)絡共7層,具體實現(xiàn)步驟如下:
(1)卷積層1(Conv_1):卷積核尺寸為5×5、卷積核數(shù)量為64、卷積步長為2,尺寸為256×256×3的圖像經(jīng)過卷積后輸出尺寸為128×128×64,卷積后使用LeakyReLU激活,并加入dropout層輸出至卷積層2。
(2)卷積層2(Conv_2):卷積核尺寸為5×5、卷積核數(shù)量為128、卷積步長為2,經(jīng)過卷積后輸出尺寸為65×65×128,卷積后進行批量歸一化,再使用LeakyReLU和dropout輸出至卷積層3。
(3)卷積層3(Conv_3):卷積核尺寸為5×5、卷積核數(shù)量為256、卷積步長為2,經(jīng)過卷積和零填充(Zero_padding,ZP)后輸出尺寸為33×33×256,然后進行批量歸一化,再使用LeakyReLU和dropout輸出至卷積層4。
(4)卷積層4(Conv_4):卷積核尺寸為5×5、卷積核數(shù)量為512、卷積步長為1,經(jīng)過卷積后輸出尺寸為33×33×512,卷積后進行批量歸一化,再使用LeakyReLU和dropout輸出至卷積層5。
(5)卷積層5(Conv_5):卷積核尺寸為3×3、卷積核數(shù)量為256、卷積步長為1,經(jīng)過卷積后輸出尺寸為33×33×256,卷積后進行批量歸一化,再使用LeakyReLU和dropout輸出至全連接層。
(6)卷積層6(Conv_6):卷積核尺寸為3×3、卷積核數(shù)量為256、卷積步長為2,經(jīng)過卷積后輸出尺寸為16×16×256,卷積后進行批量歸一化,再經(jīng)過LeakyReLU和dropout輸出至全連接層。
(7)全連接層(FC):輸入尺寸為16×16×256,經(jīng)過Sigmoid函數(shù)后輸出為0或1表示判定結果為假或真。
硬件平臺為AMD銳龍 Threadripper 2920X型CPU、NIVIDIA GeForce RTX 2080Ti型GPU、128 GB內存。軟件平臺為OpenCV 4.2.0+Keras 2.3.1+Python 3.7。
采集得到了光源透射和反射情況下的兩類禽蛋圖像各300幅,利用EGG-GAN網(wǎng)絡訓練之前,需要對圖像數(shù)據(jù)進行旋轉、平移、拉伸、對比度變換預處理操作。旋轉、平移和拉伸操作可以增加訓練樣本的數(shù)量,對比度變換使禽蛋圖像的顏色信息更加真實。預處理后的禽蛋透射圖像和禽蛋反射圖像如圖9所示,數(shù)據(jù)增強后兩類禽蛋圖像各900幅。
DCGAN網(wǎng)絡的訓練方式為先固定生成器G,利用式(1)的目標函數(shù)和Adam 優(yōu)化器對判別器D的權重和偏置進行優(yōu)化;優(yōu)化5次后,再固定判別器D,對生成器G的參數(shù)進行優(yōu)化,優(yōu)化次數(shù)也為5,如此反復交替進行,其中生成器G和判別器D的損失函數(shù)均為交叉熵函數(shù)。EGG-GAN網(wǎng)絡的訓練方式和優(yōu)化器與DCGAN網(wǎng)絡相同,不同的是EGG-GAN網(wǎng)絡使用加梯度懲罰的Wasserstein距離優(yōu)化的損失函數(shù),判別器D和生成器G的損失函數(shù)分別如式(3)、(4)。DCGAN和EGG-GAN網(wǎng)絡的生成器和判別器的初始學習率均設置為0.000 2,迭代次數(shù)設置為4 000次,每個迭代訓練57次,每次訓練的圖像數(shù)量(Batchsize)為16,每500個迭代保存一次模型參數(shù)。EGG-GAN網(wǎng)絡的訓練流程圖如圖10所示,DCGAN網(wǎng)絡與之類似。
蛋形指數(shù)是衡量禽蛋外形特征的重要指標之一,通過比較生成圖像的蛋形指數(shù)均值和真實圖像蛋形指數(shù)均值來衡量生成的禽蛋圖像質量。EGG-GAN網(wǎng)絡訓練過程中生成的禽蛋圖像的蛋形指數(shù)變化曲線如圖11所示。DCGAN網(wǎng)絡訓練過程中生成的禽蛋圖像的蛋形指數(shù)變化曲線如圖12所示。從圖中可以發(fā)現(xiàn),在生成禽蛋反射圖像方面,EGG-GAN網(wǎng)絡迭代至2 000次時,生成的禽蛋反射圖像接近真實禽蛋圖像的蛋形指數(shù)均值,說明網(wǎng)絡已經(jīng)收斂,而DCGAN迭代至3 000次時,網(wǎng)絡才收斂。在生成禽蛋透射圖像方面,EGG-GAN網(wǎng)絡迭代至2 500次時網(wǎng)絡開始收斂,而DCGAN迭代至3 500次后網(wǎng)絡才收斂。
本文將禽蛋透射圖像和禽蛋反射圖像分別用DCGAN和EGG-GAN網(wǎng)絡進行訓練,訓練參數(shù)設置相同。利用訓練好的模型進行禽蛋圖像數(shù)據(jù)生成,分別生成禽蛋透射圖像數(shù)據(jù)和反射圖像數(shù)據(jù),驗證網(wǎng)絡性能。DCGAN和EGG-GAN做模型驗證時,每迭代500次生成一批禽蛋圖像數(shù)據(jù)。DCGAN不同訓練次數(shù)生成的禽蛋透射圖像、反射圖像如圖13、14所示,EGG-GAN不同訓練次數(shù)生成的禽蛋透射圖像、反射圖像如圖15、16所示。
通過圖13、14可以看出, DCGAN網(wǎng)絡在禽蛋透射圖像生成過程中,模型迭代3 500次后能夠生成較為真實的禽蛋圖像;在禽蛋反射圖像生成過程中,迭代3 000次后生成的禽蛋反射圖像已經(jīng)十分接近真實圖像。由圖15、16可以發(fā)現(xiàn),在使用EGG-GAN網(wǎng)絡實現(xiàn)禽蛋反射圖像生成過程中,網(wǎng)絡迭代2 000次后,生成了較高質量的禽蛋圖像;在生成禽蛋透射圖像過程中,網(wǎng)絡迭代2 500次后,生成的圖像已較為接近真實圖像。不難發(fā)現(xiàn),EGG-GAN網(wǎng)絡在禽蛋反射圖像和透射圖像生成訓練過程中的收斂速度均大于DCGAN網(wǎng)絡,說明引入殘差結構和加梯度懲罰的Wasserstein距離優(yōu)化的損失函數(shù)能夠有效解決DCGAN網(wǎng)絡訓練難以收斂的問題。
(1)根據(jù)禽蛋圖像的特點,以鴨蛋為研究對象,在DCGAN網(wǎng)絡中引入殘差結構,并將損失函數(shù)用加梯度懲罰的Wasserstein距離進行改進,在禽蛋圖像生成過程中能夠加快網(wǎng)絡的收斂速度,迭代2 500次后能夠生成高質量的禽蛋透射圖像,迭代2 000次后能夠生成較為真實的禽蛋反射圖像,均比DCGAN網(wǎng)絡提前1 000次迭代收斂。
(2)EGG-GAN網(wǎng)絡在生成禽蛋透射圖像和反射圖像過程中均表現(xiàn)出收斂速度更快性能,說明該網(wǎng)絡在禽蛋圖像生成研究中具有較好的普適性。