孫志偉,曾令賢,馬永軍
(天津科技大學(xué)人工智能學(xué)院,天津 300457)
深度生成視覺是計算機視覺領(lǐng)域的一個重要研究方向,它將人工生成的過程轉(zhuǎn)化為智能生成的過程,以大幅減少重復(fù)性的人工勞動,甚至可以進行創(chuàng)造性的智能創(chuàng)作[1]。生成對抗網(wǎng)絡(luò)(generative adversarial network,GAN)由Goodfellow 等[1]在2014 年提出,是實現(xiàn)計算機深度生成視覺的主要技術(shù)之一,隨后發(fā)展并衍生了許多變體,如生成器和判別器上都增加約束條件的條件生成對抗網(wǎng)絡(luò)CGAN[3],生成器和判別器均采用深度卷積的DCGAN 模型[4]。為了解決生成對抗網(wǎng)絡(luò)長期以來的訓(xùn)練不穩(wěn)定和模式坍塌的問題,Arjovsky 等[5]提出了 WGAN 模型,使用 W(Wasserstein)距離代替 JS(Jensen-Shannon)散度計算生成樣本分布與真實樣本分布間的距離,但是WGAN 模型依然存在訓(xùn)練困難,收斂速度慢的問題。Gulrajani 等[6]提出的WGAN-GP 直接將判別器的梯度作為正則項加入判別器的損失函數(shù)中。Zhang等[7]將自注意力模塊與GAN 的思想相結(jié)合提出的SAGAN 模型,為圖像生成任務(wù)提供了注意力驅(qū)動的長距離依賴的模型。
以上GAN 的衍生模型都是通過網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)等的改變,提高GAN 的性能和穩(wěn)定性。這些GAN 的衍生模型被用在圖像任務(wù)中,如用于解決圖像修復(fù)的超分辨率重建SRGAN[8]、IIZUKA[9]等方法。
隨著圖像到圖像翻譯任務(wù)的發(fā)展,對GAN 所生成圖像的要求也越來越多,如兩個圖像領(lǐng)域的轉(zhuǎn)換問題(cross-domain)、屬性編輯問題等,出現(xiàn)了能進行多領(lǐng)域圖像轉(zhuǎn)換的 CycleGAN[10]、DualGAN[11]、DualStyleGAN 等[12]方法。CycleGAN 主要是解決pix2pix[13]中進行風(fēng)格轉(zhuǎn)換時需要成對數(shù)據(jù)的問題,使用兩個生成器和兩個判別器分別處理源域到目標(biāo)域的轉(zhuǎn)換,并且提出了循環(huán)一致性損失進行控制,但仍然存在生成器數(shù)量和域數(shù)量一對一的問題。DualGAN 主要受自然語言翻譯任務(wù)中對偶學(xué)習(xí)的啟發(fā),使圖像翻譯器能夠在兩個無標(biāo)簽的圖像域中學(xué)習(xí),但是也存在生成器過多的問題。在單屬性編輯任務(wù)中已有的模型不能很好地完成多屬性的轉(zhuǎn)換,往往在k 個屬性之間相互轉(zhuǎn)換時,需要k×(k-1)個生成器,并且由于是一對一的屬性變換并不能有效學(xué)習(xí)到全局特征以及充分利用全部訓(xùn)練數(shù)據(jù)[14],多屬性風(fēng)格變換有助于拓展屬性變換任務(wù)需求。Choi 等[14]提出的StarGAN 解決了1 個生成器只能處理單一屬性的問題,生成器的形狀像星星一樣,可以根據(jù)不同的輸入屬性要求產(chǎn)生不同的輸出,在人臉數(shù)據(jù)集上取得了很好的效果。
StarGAN v2[16]是基于StarGAN[14]跨域的多樣性圖像生成網(wǎng)絡(luò),其多樣性在于通過最大化兩個風(fēng)格編碼所生成圖像的距離控制生成圖像的多樣性,但是不同于多屬性生成,模型能夠生成某一個域多樣性的圖像,而不是具體的多屬性轉(zhuǎn)換。
多屬性圖像生成網(wǎng)絡(luò)在很多場景下具有重要的應(yīng)用價值,然而該模型結(jié)構(gòu)復(fù)雜、計算量大。輕量化的目的是在保持模型精度基礎(chǔ)上減少模型參數(shù)量和復(fù)雜度,輕量化網(wǎng)絡(luò)既包含了對網(wǎng)絡(luò)結(jié)構(gòu)的探索,又有知識蒸餾、剪枝等模型壓縮技術(shù)的應(yīng)用,推動了深度學(xué)習(xí)在移動端和嵌入式端的應(yīng)用落地,在智能家居、安防、自動駕駛等領(lǐng)域都有重要貢獻。傳統(tǒng)的模型壓縮方法很難對生成模型進行壓縮,主要原因包括:生成器需要大量的參數(shù)建立潛在向量到生成圖像的映射關(guān)系,這種極度復(fù)雜的映射結(jié)構(gòu)相較于圖像識別任務(wù)更難確定冗余的權(quán)重;目標(biāo)檢測和圖像分割等其他視覺任務(wù)都是有標(biāo)簽的訓(xùn)練數(shù)據(jù),而GAN 中的很多任務(wù)并沒有任何標(biāo)簽用來評判生成的圖像,如超分辨率重建和風(fēng)格遷移。
為了解決上述問題,Aguinaldo 等[17]提出一種壓縮和加速GAN 訓(xùn)練的網(wǎng)絡(luò)框架,利用知識蒸餾技術(shù)以均方誤差(MSE)損失最小化學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)的距離,但是該方法僅能應(yīng)用于噪聲到圖像的網(wǎng)絡(luò)架構(gòu),而如今GAN 的應(yīng)用主要是圖像到圖像[17]。為了解決這些問題,Chen 等[18]以CycleGAN[10]為基準提出了一個新的基于知識蒸餾的小型GAN 的框架,在像素層面上最小化學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)生成圖像的距離,教師網(wǎng)絡(luò)生成的圖像對學(xué)生判別器而言是真實樣本,因此設(shè)計了學(xué)生判別器。但是,該方法只能進行單一圖像域的轉(zhuǎn)換,而不能進行多屬性的圖像生成任務(wù)。
由于實際場景中實際采集樣本的各屬性分布不均,多屬性生成是目前的研究重點之一,然而現(xiàn)有的模型較為復(fù)雜,計算量大,而且圖像生成的效果需進一步提高,因此本文提出了一種基于StarGAN 的可進行多屬性風(fēng)格圖像生成的輕量化網(wǎng)絡(luò)。
本文模型是以StarGAN 為基準模型設(shè)計的多屬性風(fēng)格圖像生成的輕量化網(wǎng)絡(luò)。StarGAN 作為跨多領(lǐng)域的圖像到圖像翻譯任務(wù)的生成對抗網(wǎng)絡(luò),其結(jié)構(gòu)為1 個可以生成多屬性的條件生成器和1 個判別器。生成器包括下采樣模塊、特征提取模塊和上采樣模塊,生成器接收原圖像以及目標(biāo)屬性條件作為輸入,生成同樣尺寸的目標(biāo)屬性圖像。判別器接受生成器生成的圖像或者真實圖像作為輸入,但是判別器有兩個輸出,一個是二分類的輸出,判斷圖像是來自真實樣本還是生成器生成樣本;另一個是類別輸出,判別圖像的屬性類別。
Hinton 等[19]提出知識蒸餾用于模型的輕量化過程,主要是設(shè)計學(xué)生網(wǎng)絡(luò),讓小型的學(xué)生網(wǎng)絡(luò)學(xué)習(xí)大型教師網(wǎng)絡(luò)的低層特征和高層語義信息。知識蒸餾及其變種主要研究教師網(wǎng)絡(luò)向?qū)W生網(wǎng)絡(luò)傳遞知識的連接方式,最初的蒸餾對象是logit 層,讓學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)的logit KL 散度盡可能小。FitNets[20]出現(xiàn)開始蒸餾中間層,一般使用MSE 損失函數(shù),使學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)特征圖盡可能接近,如圖1 所示。Zagoruyko 等[21]提出的Attention Transfer 進一步發(fā)展了FitNets,提出使用注意力圖引導(dǎo)知識的傳遞。Tian等[22]在FitNet 基礎(chǔ)上引入對比學(xué)習(xí)進行知識遷移。
圖1 蒸餾網(wǎng)絡(luò)示意圖Fig. 1 Diagram of distillation network
這些模型多數(shù)用于CNN 等神經(jīng)網(wǎng)絡(luò),很少有對生成網(wǎng)絡(luò)GAN 的蒸餾,主要在于GAN 學(xué)習(xí)的是很復(fù)雜的從噪聲向量到生成圖像的映射關(guān)系,而且GAN 多數(shù)是沒有標(biāo)簽的數(shù)據(jù),導(dǎo)致網(wǎng)絡(luò)學(xué)習(xí)到的知識很難衡量,難以確定冗余權(quán)重。pix2pix[13]在論文中提供了成對的數(shù)據(jù)集,Chen 等[18]基于這個成對有標(biāo)簽數(shù)據(jù)集對pix2pix 蒸餾,用判別器衡量標(biāo)簽的圖像、學(xué)生生成器以及教師生成器生成的圖像三者之間的距離訓(xùn)練學(xué)生生成器,并且在CycleGAN[10]上有較好的效果,主要是其對判別器也同時進行了蒸餾,讓學(xué)生判別器對教師生成器的輸出判定為真,使教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的判別器接近教師生成器的結(jié)果。
深度可分離卷積是一種廣泛應(yīng)用于卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)中的模塊,可以取代傳統(tǒng)的卷積操作,用于提取圖像特征。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),一個卷積核對輸入特征圖的所有通道進行卷積,卷積核的通道數(shù)為輸入通道數(shù),卷積核的個數(shù)為輸出通道數(shù),而深度可分離卷積將卷積過程進行分解,卷積核的個數(shù)分別由輸入通道數(shù)和輸出通道數(shù)決定。
深度可分離卷積示意圖如圖2 所示,核心思想是將卷積分成了逐通道卷積(depthwise convolution)和逐點卷積(pointwise convolution),前者對輸入特征圖的每一個通道進行卷積,卷積核個數(shù)等于輸入通道數(shù);后者主要指1×1 的卷積[23],在不改變特征圖尺寸的情況下加深特征圖的通道數(shù),能夠進行跨通道的特征融合,卷積核個數(shù)等于輸出通道數(shù)。
圖2 深度可分離卷積示意圖Fig. 2 Diagram of depth separable convolution
在圖像到圖像轉(zhuǎn)換的早期任務(wù)中,如將一張圖形的風(fēng)格轉(zhuǎn)換到另一張內(nèi)容圖像上的風(fēng)格遷移。內(nèi)容損失和風(fēng)格損失比較示意圖如圖3 所示。為了確保遷移圖像的風(fēng)格和風(fēng)格損失函數(shù)控制,而使生成的圖像和原內(nèi)容圖像的結(jié)構(gòu)等信息不變,則用內(nèi)容損失函數(shù)控制。在Yang 等[24]提出的L2M-GAN 模型中,內(nèi)容損失函數(shù)在潛在空間中對人臉的語義信息獲取有提升作用。
圖3 內(nèi)容損失和風(fēng)格損失比較示意圖Fig. 3 Diagram of content loss and style loss
本文是對StarGAN 進行輕量化,提出了能夠生成多風(fēng)格屬性圖像的學(xué)生網(wǎng)絡(luò)(student network based on StarGAN,stuStarGAN),在保證生成圖像質(zhì)量的前提下,減少網(wǎng)絡(luò)的參數(shù)量,降低了模型的復(fù)雜度。
由于跨域的生成模型,StarGAN v2 等[16]只能生成屬于該圖像域的整體變換,主要建立兩個數(shù)據(jù)集之間的映射關(guān)系,而不能生成確定屬性和多屬性風(fēng)格圖像,并且其中的多樣性損失與蒸餾損失發(fā)生沖突,故本文以StarGAN 為教師網(wǎng)絡(luò)和基準模型。
模型包括以下過程:首先使用知識蒸餾技術(shù)降低參數(shù)量,提出進一步采用學(xué)生判別器蒸餾損失提升性能;然后為了保證生成圖像質(zhì)量,采用skip-connection提供跨模塊的連接;使用內(nèi)容損失,確保不改變原始圖像的內(nèi)容信息;最后用深度可分離卷積取代普通卷積,進一步降低參數(shù)量并提高圖像生成質(zhì)量。
為了讓學(xué)生生成器學(xué)習(xí)教師生成器的知識,直接最小化兩個生成器生成的圖像的歐氏距離,為
式中:GT表示教師生成器,GS表示學(xué)生生成器,其中表示L1 正則化。通過最小化式(5),學(xué)生生成器的結(jié)果可以從像素層面上與教師生成器相似,L1 損失的目標(biāo)只是最小化平均合理的結(jié)果。由于生成器的訓(xùn)練是伴隨著判別器的,因此只蒸餾生成器對學(xué)生生成器的學(xué)習(xí)是不夠的。教師判別器與生成器任務(wù)高度相關(guān),要求教師判別器能夠評估學(xué)生生成器是否像教師生成器那樣生成了高質(zhì)量的圖像,即生成器的感知損失,為
式中:TD表示教師判別器,同時生成器的輸入中省略了屬性標(biāo)簽信息。
因此,生成器的蒸餾損失為
其中γ是平衡兩個損失函數(shù)的超參數(shù)。
Aguinaldo 等[17]對生成式網(wǎng)絡(luò)壓縮時,沒有利用教師判別器對學(xué)生判別器蒸餾,而判別器對GAN 的訓(xùn)練也很重要,本文首先設(shè)計學(xué)生判別器,然后對學(xué)生判別器進行蒸餾。
學(xué)生判別器用來協(xié)同學(xué)生生成器訓(xùn)練,同時用教師判別器進行蒸餾,在蒸餾過程中,使用了與蒸餾生成器相同的方法(L1 損失),判別器的蒸餾損失為
圖4 整體蒸餾網(wǎng)絡(luò)模塊示意圖Fig. 4 Diagram of whole distillation network module
此外,本文采用了教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的對抗學(xué)習(xí),教師網(wǎng)絡(luò)經(jīng)過訓(xùn)練,學(xué)生判別器在教師網(wǎng)絡(luò)的監(jiān)督之下訓(xùn)練,通過教師生成器生成的圖像應(yīng)該被學(xué)生判別器判別為真,損失函數(shù)定義為
StarGAN 網(wǎng)絡(luò)包括下采樣模塊、骨干網(wǎng)絡(luò)以及上采樣模塊。在生成模型中,下采樣主要用于編碼功能,完成對潛在向量的編碼,骨干網(wǎng)絡(luò)主要提取圖像特征,而上采樣模塊主要用于解碼,還原為圖像。在學(xué)生網(wǎng)絡(luò)設(shè)計中,骨干網(wǎng)絡(luò)選擇與教師網(wǎng)絡(luò)相同,都是ResNet 模塊,在下采樣和上采樣之間使用skipconnection 提供跨模塊的連接??缒K連接示意圖如圖5 所示。在學(xué)生網(wǎng)絡(luò)中將具有同樣尺寸的上采樣和下采樣中的模塊進行skip-connection,連接的過程不是簡單的求和,而是通道的疊加,盡可能地保留低層的信息。
圖5 跨模塊連接示意圖Fig. 5 Diagram of skip-connection
在圖像的風(fēng)格變換后,為了使與風(fēng)格無關(guān)的信息能夠保留下來,而對生成圖像和原圖像作內(nèi)容損失。本文中圖像的屬性改變,但是不希望與屬性無關(guān)的其他信息,如結(jié)構(gòu)、背景等發(fā)生變化,本文采用內(nèi)容損失函數(shù),在消融實驗中驗證其有效性。
內(nèi)容損失函數(shù)通過1 個預(yù)訓(xùn)練好的網(wǎng)絡(luò)作為特征提取器,由于模型高層的輸出是高維的語義特征,包含更多具體的內(nèi)容信息,因此本文采用ResNet-18模型的最后1 個卷積層的輸出作為特征提取器。分別提取原圖像和學(xué)生網(wǎng)絡(luò)生成器生成圖像的特征,在像素層面上作L1 損失,為
其中:c表示x要轉(zhuǎn)換的目標(biāo)屬性類別,生成器以原圖像和目標(biāo)屬性類別作為輸入;F則是1 個預(yù)訓(xùn)練好的ResNet-18[25]模型。
在學(xué)生網(wǎng)絡(luò)設(shè)計中,替換掉骨干網(wǎng)絡(luò)ResNet 模塊中的普通卷積,改為深度可分離的卷積,進一步減少模型計算量,降低網(wǎng)絡(luò)復(fù)雜度。Google 公司的MobileNet[26]證明了深度可分離卷積的性能,相較于普通卷積,它能極大降低計算量。
假定輸入通道數(shù)為M,輸出通道數(shù)為N,標(biāo)準卷積的卷積核大小為DK·DK,特征圖大小為DF·DF,則采用標(biāo)準卷積計算量為
若采用深度可分離卷積,計算量為
聯(lián)立二者,可得出其比值為
為了對所提學(xué)生網(wǎng)絡(luò)的輕量化和性能進行驗證,本文首先在CelebA 上做消融實驗驗證模型不同部分的有效性,然后進一步在CelebA 和Fer2013 數(shù)據(jù)集上進行算法對比實驗。
CelebA 數(shù)據(jù)集是人臉識別和人臉表情研究領(lǐng)域具有權(quán)威性和完整性的名人人臉屬性數(shù)據(jù)集,包含202 599 張人臉圖像,圖像大小為128×128,在原始數(shù)據(jù)集中每張圖像都有40 個屬性標(biāo)注。以20%作為測試集,即40 000 張圖像,其余為訓(xùn)練集。
Fer2013 數(shù)據(jù)集是一個灰度圖像數(shù)據(jù)集,主要用于人臉表情變化的研究,該數(shù)據(jù)集共有7 種表情,分別對應(yīng)數(shù)字標(biāo)簽0~6,這7 種表情圖像共有35 886張,其中訓(xùn)練集包含28 708 張,其余為測試集7 178張。每張圖像的大小為48×48,以csv 格式的文件存儲像素值表示。
實驗以PyTorch 框架在Nvidia GeForce RTX 3060 上實現(xiàn),顯存為12 GB。在訓(xùn)練過程中,將學(xué)生網(wǎng)絡(luò)輸入和教師網(wǎng)絡(luò)輸入尺寸固定一樣,參數(shù)設(shè)置:批大小(batch size)為8,迭代次數(shù)200 000 次,生成器和判別器的學(xué)習(xí)率均為0.000 1,每1 000 次時更新1次,在每更新5 次判別器時更新1 次生成器。部分損失函數(shù)權(quán)重與教師網(wǎng)絡(luò)保持一致,類別損失函數(shù)的權(quán)重為1,重構(gòu)損失權(quán)重為10,梯度懲罰權(quán)重為10,生成器和判別器蒸餾損失均為1。
為了衡量網(wǎng)絡(luò)的輕量化,本文以網(wǎng)絡(luò)參數(shù)量和浮點數(shù)運算次數(shù)(GFLOPs)作為評價指標(biāo)。此外,圖像風(fēng)格轉(zhuǎn)換任務(wù)常用指標(biāo)包括圖像信噪比(PSNR,用符號RPSNR表示)、原圖像和生成圖像的結(jié)構(gòu)相似性(SSIM,用符號SSSIM表示)、生成圖像質(zhì)量弗雷歇初始距離(FID,用符號DFID表示)。在SRGAN[8]中,由于PSNR 定義在像素級別的圖像區(qū)別上,不能很好地表示圖像的高維細節(jié),本文只在消融實驗中進行了PSNR 指標(biāo)的對比,在算法對比實驗中不再對比這個指標(biāo),只給出FID 和SSIM 的數(shù)據(jù)。
PSNR、SSIM 和FID 指標(biāo)計算公式分別為
式中:Pmax為圖像像素理論最大值;EMSE為兩張圖像的均方誤差;u表示均值;σ表示方差;C表示常數(shù);tr表示矩陣對角線上元素的綜合,即在矩陣論中稱為矩陣的跡;r 和g 表示真實的圖像和生成的圖像;∑是協(xié)方差矩陣。
stuStarGAN 在CelebA 數(shù)據(jù)集上的生成效果如圖6 所示,其中第1 列為原始圖像,后面5 列依次對原圖像屬性進行更改,分別為黑發(fā)、金發(fā)、棕發(fā)、性別以及年齡。圖中第2 行第3 列膚色有些變化,可能是在變換黑色頭發(fā)時,對黑色膚色產(chǎn)生了影響。
圖6 stuStarGAN在CelebA數(shù)據(jù)集上的生成效果Fig. 6 Diagram of result of stuStarGAN on CelebA
stuStarGAN 在Fer2013 數(shù)據(jù)集上的生成效果如圖7 所示,圖中第1 列為原始圖像,第1 列至第7 列分別表示該數(shù)據(jù)集中存在的 7 種表情,分別是neutral、anger、fear、disgust、happy、sad、surprised。stuStarGAN 模型依然能很好地改變圖像的表情屬性,而不改變其他部分。
圖7 stuStarGAN在Fer2013數(shù)據(jù)集上的生成效果Fig. 7 Diagram of result of stuStarGAN on Fer2013
模型在CelebA 數(shù)據(jù)集上進行多屬性風(fēng)格圖像生成的結(jié)果如圖8 所示。
圖8 多屬性的改變示意圖Fig. 8 Diagram of change of multi attributes
圖8 中第1 列表示原圖像,第2 列改變頭發(fā)顏色以及性別,第3 列改變了頭發(fā)顏色以及年齡兩個屬性。結(jié)果表明生成器能對圖像進行單屬性和多屬性轉(zhuǎn)換。
為了確保學(xué)生網(wǎng)絡(luò)在輕量化之后仍然能有很好的圖像質(zhì)量,本文以教師網(wǎng)絡(luò)為基準模型進行消融實驗,在評價指標(biāo)上評估各個模塊或損失函數(shù)對性能的影響,結(jié)果見表1,其中U 表示使用U-net 的skipconnection,CL 表示使用內(nèi)容損失,DP 表示將普通卷積更換為深度可分離卷積,DL 表示蒸餾生成器同時新增判別器蒸餾損失。
表1 在CelebA數(shù)據(jù)集上不同模塊的對比Tab. 1 Comparison of different modules on CelebA
在表1 中,第1 行為教師網(wǎng)絡(luò),KD 表示知識蒸餾,第2 行+KD 表示只對教師網(wǎng)絡(luò)進行知識蒸餾的結(jié)果,以后的每一行都是在前面的基礎(chǔ)上進一步改進學(xué)生網(wǎng)絡(luò),如第3 行是在第2 行的基礎(chǔ)上采用skipconnection。比較第1 行和第2 行,只對StarGAN 蒸餾,模型雖然顯著降低參數(shù)量,但性能卻有所下降。學(xué)生網(wǎng)絡(luò)在使用skip-connection 之后效果有改善,表明模型的底層信息正確地傳遞給了上層神經(jīng)元。
比較第3 行和第4 行,其中DL 表示對學(xué)生判別器采取的蒸餾損失,也就是直接比較教師和學(xué)生判別器的輸出,包括真假概率輸出和屬性類別輸出,可以看出使用DL 后確實提高了學(xué)生網(wǎng)絡(luò)的效果。
第5 行在前面基礎(chǔ)上采用內(nèi)容損失,SSIM 進一步提高,說明生成圖像很好地保留了原圖像的結(jié)構(gòu)信息,而PSNR 相較第4 行有明顯下降。推測其原因主要在于引入內(nèi)容損失后,為了保證圖像主體結(jié)構(gòu)信息不變,生成圖像在其余部分引入噪聲,使得圖像信噪比下降,即PSNR 降低。第6 行4+DP 是指在第4 行的基礎(chǔ)上引入DP,結(jié)果表明CL 確實影響了PSNR指標(biāo),然而引入DP 之后PSNR 有明顯提升,但是SSIM 相較第4 行有所下降。比較第4 行和最后一行,雖然SSIM 有些許降低,但是深度可分離卷積大幅降低了網(wǎng)絡(luò)的參數(shù)量和計算量,并提升了網(wǎng)絡(luò)模型的FID。因此,根據(jù)PSNR 和SSIM 有些許變化以及FID 進一步提高的情況,本文選擇了參數(shù)量和計算量更少的模型作為最后的stuStarGAN 模型。第5 列浮點數(shù)運算次數(shù)表明本文模型有更少的運算量,說明模型確實降低了網(wǎng)絡(luò)的計算量。
表1 中參數(shù)量只包括生成器參數(shù),因為判別器只在訓(xùn)練階段起作用,最終也只需部署生成器。
將不同算法在CelebA 以及Fer2013 兩個數(shù)據(jù)集上進行對比實驗,結(jié)果見表2 和表3。
表2 不同算法在CelebA數(shù)據(jù)集上的性能比較Tab. 2 Comparison of different methods on CelebA
表3 不同算法在Fer2013數(shù)據(jù)集上的性能比較Tab. 3 Comparison of different methods on Fer2013
在CelebA 數(shù)據(jù)集上,本文模型與近年來的一些在圖像翻譯領(lǐng)域的先進模型進行比較,包括pix2pix、CycleGAN、StarGAN、UE-StarGAN 等。從表2 中可以看出,在CelebA 數(shù)據(jù)集上,從SSIM 和FID 兩個指標(biāo)上看,本文模型都有較好的性能。本文主要設(shè)計能生成多屬性風(fēng)格圖像的輕量化學(xué)生網(wǎng)絡(luò),在保證生成質(zhì)量的前提下降低模型復(fù)雜度,在考慮了判別器參數(shù)的情況下,參數(shù)量依然小于最少參數(shù)量的50%,其中CycleGAN 的參數(shù)量中的×10 是因為CycleGAN的1 個生成器只能轉(zhuǎn)換原圖像的1 種屬性值,而StarGAN 可以1 個生成器轉(zhuǎn)換多種屬性值。
在表3 中,從第2 列可以看到本文模型可以保證很高的結(jié)構(gòu)相似性,并且參數(shù)量和GFLOPs 有較大降低,相較其他模型在性能接近的情況下,計算量更少,結(jié)構(gòu)復(fù)雜度更低,表明了本文模型的有效性。
本文基于StarGAN 設(shè)計了1 個能生成多屬性風(fēng)格變化的輕量化網(wǎng)絡(luò)stuStarGAN。模型首先應(yīng)用知識蒸餾技術(shù)降低教師網(wǎng)絡(luò)參數(shù)量;然后為了確保生成圖像質(zhì)量,采用skip-connection 提供跨模塊的連接,使用內(nèi)容損失確保生成圖像和原始圖像的內(nèi)容信息一致,在蒸餾生成器的同時新增判別器蒸餾損失以提高生成器性能;將普通卷積替換為深度可分離卷積,進一步降低參數(shù)量并提高圖像生成質(zhì)量;最后將模型在兩個數(shù)據(jù)集上進行實驗,給出了單屬性和多屬性的生成效果;并與其他模型進行比較,在保證生成圖像質(zhì)量的基礎(chǔ)上極大地降低了參數(shù)量和計算量,可以應(yīng)用于實際場景采集數(shù)據(jù)不足和數(shù)據(jù)分布不均需要擴充數(shù)據(jù)集以及某些實時應(yīng)用場景中,如監(jiān)控行人數(shù)據(jù)集樣本分布不均、社交網(wǎng)絡(luò)更改頭像保護隱私、游戲角色變化頭像等具體場景中。由于學(xué)生網(wǎng)絡(luò)生成圖像的多樣性不足,在后續(xù)研究中會考慮并繼續(xù)完善模型,做好效率和精度之間的平衡。