翁子欣 張凱 羅培鋮 吳明暉
摘? 要: CycleGAN算法能很好地解決在圖像未配對的情況下不能完成圖像風格轉(zhuǎn)換的問題,并且CycleGAN通過加入循環(huán)一致性損失,解決了數(shù)據(jù)分布捕捉能力不夠的問題。實現(xiàn)了基于CycleGAN的圖像風格轉(zhuǎn)換算法的Web服務,并基于該Web服務開發(fā)了圖像風格轉(zhuǎn)換App。結(jié)果表明,使用CycleGAN算法可以較好地實現(xiàn)圖像風格轉(zhuǎn)換。
關(guān)鍵詞: CycleGAN; 圖像風格轉(zhuǎn)換; Web服務; 移動應用
中圖分類號:TP399? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2019)08-24-05
Abstract: The CycleGAN algorithm can well solve the problem that the image style transfer cannot be completed when the images are not paired. In addition, CycleGAN solves the problem of the insufficient data distribution capture ability by adding cycle consistency loss. In this paper, a Web service with CycleGAN's image style transfer algorithm is realized, and an image style transfer App based on the Web service is developed thereby. Results show that CycleGAN algorithm can be used to achieve better image style conversion.
Key words: CycleGAN; image style transfer; web service; mobile app
0 引言
圖像風格轉(zhuǎn)換主要是指將圖像按照參考的風格圖像進行轉(zhuǎn)換,最終得到融合了某種特定的圖像風格的目標圖像的過程。
在使用神經(jīng)網(wǎng)絡進行圖像風格轉(zhuǎn)換前,圖像風格轉(zhuǎn)換主要依賴于非參數(shù)紋理合成。盡管這種模型有學習紋理轉(zhuǎn)換的能力,但模型不能根據(jù)物體的形狀進行靈活的融合[1]。與只專注于提取圖像局部特征的圖像類比方法相比,利用神經(jīng)網(wǎng)絡進行圖像風格轉(zhuǎn)換要更復雜,它們通過匹配神經(jīng)網(wǎng)絡訓練的早期層的特征映射所得到的格拉姆矩陣統(tǒng)計信息來進行圖像風格轉(zhuǎn)換。為了得到更好的轉(zhuǎn)換效果,Duomiln等人[2]實現(xiàn)了允許在預先訓練的樣式之間進行插值,Huang等人[3]實現(xiàn)了允許實時傳輸?shù)募夹g(shù)。但即使集成了以上的技術(shù),也只能捕獲較低層的紋理信息[4]。Chunlei Chai等人[5]采用深度神經(jīng)網(wǎng)絡(Deep Neural Networks, DNN)消除了特征提取過程的需要,支持端到端圖像學習,實現(xiàn)從原始輸入學習然后輸出所需圖像。由于深度卷積神經(jīng)網(wǎng)絡(Deep Convolutional Neural Networks,DCNNs)在許多計算機視覺任務中表現(xiàn)良好,CNNs也被應用于圖像風格轉(zhuǎn)換[6]。但是每一張要生成的圖像都需要初始化,并且保持CNN的參數(shù)不變,再經(jīng)過反向傳播后得到最終結(jié)果,轉(zhuǎn)換效率并不理想。之后使用VGG19并對圖像網(wǎng)絡進行預訓練的結(jié)構(gòu)來進行圖像風格轉(zhuǎn)換[7]。利用基于VGG的網(wǎng)絡框架進行風格轉(zhuǎn)換使用了感知損失,感知損失的好處在于將生成問題看作是變換問題,即生成圖是從內(nèi)容圖中變化得到的,但是當遇到高分辨率的圖像時,圖像風格轉(zhuǎn)換的效果不佳。聯(lián)級優(yōu)化網(wǎng)絡(Cascaded Refinement Network, CRN)的圖像合成系統(tǒng)可以實現(xiàn)高分辨率的圖像的合成[8],但是它前饋的方法合成的圖像過于平滑,真實感欠佳且細節(jié)不夠清晰。為了解決圖像真實感不夠的問題,pix2pix算法[9-10]采用神經(jīng)網(wǎng)絡用作通用圖像分析器,可保持原圖的真實性,但缺點是訓練數(shù)據(jù)集需要人工標注目標圖像或結(jié)合裁剪方法對風格轉(zhuǎn)換的內(nèi)容進行裁剪,并且當訓練集圖像不配對時pix2pix失效。Ian J. Goodfellow提出了一個通過對抗過程估計生成模型的生成對抗網(wǎng)絡(GAN,Generative Adversarial Networks)的框架,但是普通GAN應用于圖像風格轉(zhuǎn)換時,對數(shù)據(jù)分布的捕捉能力不足,且算力消耗巨大。
本文采用一個改進的生成對抗網(wǎng)絡CycleGAN[11]解決了pix2pix在沒有成對訓練數(shù)據(jù)的情況下不能將圖像內(nèi)容從源數(shù)據(jù)分布 域(即源域)遷移到目標數(shù)據(jù)分布域(即目標域)的問題。訓練數(shù)據(jù)不配對的指的是CycleGAN在訓練時只需要將源域的圖像和目標域的圖像作為輸入即可,對源域和目標域的圖像內(nèi)容是否匹配并無要求。CycleGAN加入了循環(huán)一致性損失限定Loss后使得一對GAN相互循環(huán),獲得了比普通GAN更好的數(shù)據(jù)分布捕捉能力,從而得到了更好的圖像風格轉(zhuǎn)換效果。
1 GAN
生成式對抗網(wǎng)絡的框架結(jié)構(gòu)主要由生成模型和判別模型組成。生成器和判別器兩者通過交替訓練互相博弈學習最終產(chǎn)生相當好的輸出。生成器和判別器各自提高自己的生成能力和判別能力最終使得生成器能夠重現(xiàn)訓練數(shù)據(jù)的分布,如圖1所示。
2 CycleGAN
CycleGAN是Jun-Yan Zhu等人于2017年3月份提出的對抗神經(jīng)網(wǎng)絡模型,它本質(zhì)上是兩個鏡像對稱的GAN構(gòu)成了一個環(huán)形網(wǎng)絡。CycleGAN在訓練時只需要將源域的圖像和目標域的圖像作為輸入即可,對源域和目標域的圖像內(nèi)容是否是匹配的并無要求。也就是說,CycleGAN能在訓練圖像不配對的情況下實現(xiàn)不同風格圖像之間的相互轉(zhuǎn)換,且可擴展性好及應用更廣。CycleGAN的兩個鏡像對稱的GAN共享兩個生成器,并各自帶一個判別器,即共有兩個判別器和兩個生成器。一個單向GAN有兩個Loss,因而,CycleGAN有四個Loss。CycleGAN總的目標函數(shù)為:
如圖2所示,該模型通過從域DA獲取輸入圖像,該輸入圖像被傳遞到第一個生成器Generator A2B,在這一過程中,來自域DA的待轉(zhuǎn)換的源圖像被轉(zhuǎn)換成目標域DB中的圖像。這個新生成的圖像又被傳遞到另一個生成器Generator B2A。生成器Generator B2A的任務是將目標域DB中的圖像Generated_B轉(zhuǎn)換回原始域DA,這里可以與自動編碼器作對比。這個轉(zhuǎn)換回原始域的圖像Cyclic_A必須與原始輸入圖像相似,其意義在于,定義非匹配對數(shù)據(jù)集中原來不存在的有意義的映射。
3 基于CycleGAN的圖像風格轉(zhuǎn)換方法
生成器首先利用卷積神經(jīng)網(wǎng)絡從輸入圖像中提取特征。將圖像壓縮成256*256的特征向量后,通過組合圖像的不相近特征,將待轉(zhuǎn)換的圖像在Discriminator A域中特征向量轉(zhuǎn)換為Discriminator B域中特征向量。轉(zhuǎn)換階段的神經(jīng)網(wǎng)絡層能夠?qū)崿F(xiàn)在特征向量轉(zhuǎn)換的同時保留原始圖像的特征。在編碼和轉(zhuǎn)換之后,生成器進入解碼階段,利用反卷積層完成從特征向量中還原出低級特征的任務,最后得到生成圖像。
判別器在CycleGAN工作過程中從圖像中提取特征,再通過添加產(chǎn)生一維輸出的卷積層來確定提取的特征是否屬于特定的類別。
通過訓練判別器對該風格圖像的判別能力以及生成器生成該類風格圖像的能力,當兩者達到納什均衡時即生成器和判別器相互優(yōu)化促進達到兩者最優(yōu)對抗的狀態(tài)時,認為訓練已經(jīng)達到較為成熟的程度。
以水墨畫風格的訓練為例,數(shù)據(jù)集包括500張水墨畫和500張風景圖。訓練過程中,每次從數(shù)據(jù)集中選取一張水墨畫與一張風景圖進行一次對應轉(zhuǎn)換訓練。每個epoch(訓練周期)進行600次迭代。當生成器的參數(shù)G與判別器的參數(shù)D最后穩(wěn)定在G=D=0.5左右時,訓練過程結(jié)束。
4 基于CycleGAN的圖像風格轉(zhuǎn)換App的設(shè)計與開發(fā)
采用Python+PyTorch框架實現(xiàn)基于CycleGAN的圖像風格轉(zhuǎn)換Web服務,基于該Web服務采用Android Studio開發(fā)了一款Android App,實現(xiàn)了圖像風格轉(zhuǎn)換功能。
5 結(jié)束語
本文研究了基于CycleGAN的圖像風格轉(zhuǎn)換方法,實現(xiàn)了基于CycleGAN的圖片風格轉(zhuǎn)換Web服務,并在此基礎(chǔ)上設(shè)計與開發(fā)了圖片風格轉(zhuǎn)換App。應用效果表明,該基于CycleGAN的圖像風格轉(zhuǎn)換方法能較好的實現(xiàn)不同風格的圖像風格轉(zhuǎn)換。
參考文獻(References):
[1] David Bau et al.Network dissection:Quantifying interpretability of deepvisual representations[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2017:6541–6549
[2] Chunlei Chai et al. A one-to-many conditional generative adversarial net-work framework for multiple image-to-image translations[J]. Multimedia Tools and Applications,2018.77(17):22339–22366
[3] Vincent Dumoulin, Jonathon Shlens, and Manjunath Kudlur. A learnedrepresentation for artistic style. Proc. of ICLR2, 2017.
[4] Leon A Gatys, Alexander S Ecker, and Matthias Bethge. Image styletransfer using convolutional neural networks[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016.2414–2423
[5] Aaron Gokaslan et al. Improving shape deformation in unsupervisedimage-to-image translation[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2018.649–665
[6] Xun Huang and Serge Belongie. Arbitrary style transfer in real-time withadaptive instance normalization[C]. Proceedings of the IEEE? Conference on Computer Vision and Pattern Recognition,2017.1501–1510
[7] Phillip Isola et al. Image-to-image translation with conditional adversar-ial networks[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2017:1125–1134
[8] Justin Johnson,Alexandre Alahi,and Li Fei-Fei. Perceptual losses forreal-time style transfer and super-resolution[C]. European conference oncomputer vision. Springer,2016:694–711
[9] Justin Johnson,Agrim Gupta, and Li Fei-Fei.Image Generation from Scene Graphs[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2018:1219–1228
[10] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv,1409.1556, 2014.
[11] Jun-Yan Zhu et al. Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2017: 2223–2232
[12] 王萬良,李卓蓉. 生成式對抗網(wǎng)絡研究進展[J]. 通信學報, 2018.2:135–148