摘 要: CycleGAN算法能很好地解決在圖像未配對的情況下不能完成圖像風格轉換的問題,并且CycleGAN通過加入循環一致性損失,解決了數據分布捕捉能力不夠的問題。實現了基于CycleGAN的圖像風格轉換算法的Web服務,并基于該Web服務開發了圖像風格轉換App。結果表明,使用CycleGAN算法可以較好地實現圖像風格轉換。
關鍵詞: CycleGAN; 圖像風格轉換; Web服務; 移動應用
《計算機科學與探索》是由中國電子科技集團公司主管、華北計算技術研究所主辦的國內外公開發行的計算機學報級高級學術期刊,中國計算機學會會刊。
0 引言
圖像風格轉換主要是指將圖像按照參考的風格圖像進行轉換,最終得到融合了某種特定的圖像風格的目標圖像的過程。
在使用神經網絡進行圖像風格轉換前,圖像風格轉換主要依賴于非參數紋理合成。盡管這種模型有學習紋理轉換的能力,但模型不能根據物體的形狀進行靈活的融合[1]。與只專注于提取圖像局部特征的圖像類比方法相比,利用神經網絡進行圖像風格轉換要更復雜,它們通過匹配神經網絡訓練的早期層的特征映射所得到的格拉姆矩陣統計信息來進行圖像風格轉換。為了得到更好的轉換效果,Duomiln等人[2]實現了允許在預先訓練的樣式之間進行插值,Huang等人[3]實現了允許實時傳輸的技術。但即使集成了以上的技術,也只能捕獲較低層的紋理信息[4]。
Chunlei Chai等人[5]采用深度神經網絡(Deep Neural Networks, DNN)消除了特征提取過程的需要,支持端到端圖像學習,實現從原始輸入學習然后輸出所需圖像。由于深度卷積神經網絡(Deep Convolutional Neural Networks,DCNNs)在許多計算機視覺任務中表現良好,CNNs也被應用于圖像風格轉換[6]。但是每一張要生成的圖像都需要初始化,并且保持CNN的參數不變,再經過反向傳播后得到最終結果,轉換效率并不理想。之后使用VGG19并對圖像網絡進行預訓練的結構來進行圖像風格轉換[7]。
利用基于VGG的網絡框架進行風格轉換使用了感知損失,感知損失的好處在于將生成問題看作是變換問題,即生成圖是從內容圖中變化得到的,但是當遇到高分辨率的圖像時,圖像風格轉換的效果不佳。聯級優化網絡(Cascaded Refinement Network, CRN)的圖像合成系統可以實現高分辨率的圖像的合成[8],但是它前饋的方法合成的圖像過于平滑,真實感欠佳且細節不夠清晰。
為了解決圖像真實感不夠的問題,pix2pix算法[9-10]采用神經網絡用作通用圖像分析器,可保持原圖的真實性,但缺點是訓練數據集需要人工標注目標圖像或結合裁剪方法對風格轉換的內容進行裁剪,并且當訓練集圖像不配對時pix2pix失效。Ian J. Goodfellow提出了一個通過對抗過程估計生成模型的生成對抗網絡(GAN,Generative Adversarial Networks)的框架,但是普通GAN應用于圖像風格轉換時,對數據分布的捕捉能力不足,且算力消耗巨大。
本文采用一個改進的生成對抗網絡CycleGAN[11]解決了pix2pix在沒有成對訓練數據的情況下不能將圖像內容從源數據分布 域(即源域)遷移到目標數據分布域(即目標域)的問題。訓練數據不配對的指的是CycleGAN在訓練時只需要將源域的圖像和目標域的圖像作為輸入即可,對源域和目標域的圖像內容是否匹配并無要求。CycleGAN加入了循環一致性損失限定Loss后使得一對GAN相互循環,獲得了比普通GAN更好的數據分布捕捉能力,從而得到了更好的圖像風格轉換效果。
1 GAN
生成式對抗網絡的框架結構主要由生成模型和判別模型組成。生成器和判別器兩者通過交替訓練互相博弈學習最終產生相當好的輸出。生成器和判別器各自提高自己的生成能力和判別能力最終使得生成器能夠重現訓練數據的分布,如圖1所示。
2 CycleGAN
CycleGAN是Jun-Yan Zhu等人于2017年3月份提出的對抗神經網絡模型,它本質上是兩個鏡像對稱的GAN構成了一個環形網絡。CycleGAN在訓練時只需要將源域的圖像和目標域的圖像作為輸入即可,對源域和目標域的圖像內容是否是匹配的并無要求。也就是說,CycleGAN能在訓練圖像不配對的情況下實現不同風格圖像之間的相互轉換,且可擴展性好及應用更廣。CycleGAN的兩個鏡像對稱的GAN共享兩個生成器,并各自帶一個判別器,即共有兩個判別器和兩個生成器。一個單向GAN有兩個Loss,因而,CycleGAN有四個Loss。CycleGAN總的目標函數為:
如圖2所示,該模型通過從域DA獲取輸入圖像,該輸入圖像被傳遞到第一個生成器Generator A2B,在這一過程中,來自域DA的待轉換的源圖像被轉換成目標域DB中的圖像。這個新生成的圖像又被傳遞到另一個生成器Generator B2A。生成器Generator B2A的任務是將目標域DB中的圖像Generated_B轉換回原始域DA,這里可以與自動編碼器作對比。這個轉換回原始域的圖像Cyclic_A必須與原始輸入圖像相似,其意義在于,定義非匹配對數據集中原來不存在的有意義的映射。
3 基于CycleGAN的圖像風格轉換方法
生成器首先利用卷積神經網絡從輸入圖像中提取特征。將圖像壓縮成256*256的特征向量后,通過組合圖像的不相近特征,將待轉換的圖像在Discriminator A域中特征向量轉換為Discriminator B域中特征向量。轉換階段的神經網絡層能夠實現在特征向量轉換的同時保留原始圖像的特征。在編碼和轉換之后,生成器進入解碼階段,利用反卷積層完成從特征向量中還原出低級特征的任務,最后得到生成圖像。
判別器在CycleGAN工作過程中從圖像中提取特征,再通過添加產生一維輸出的卷積層來確定提取的特征是否屬于特定的類別。
通過訓練判別器對該風格圖像的判別能力以及生成器生成該類風格圖像的能力,當兩者達到納什均衡時即生成器和判別器相互優化促進達到兩者最優對抗的狀態時,認為訓練已經達到較為成熟的程度。
以水墨畫風格的訓練為例,數據集包括500張水墨畫和500張風景圖。訓練過程中,每次從數據集中選取一張水墨畫與一張風景圖進行一次對應轉換訓練。每個epoch(訓練周期)進行600次迭代。當生成器的參數G與判別器的參數D最后穩定在G=D=0.5左右時,訓練過程結束。
4 基于CycleGAN的圖像風格轉換App的設計與開發
采用Python+PyTorch框架實現基于CycleGAN的圖像風格轉換Web服務,基于該Web服務采用Android Studio開發了一款Android App,實現了圖像風格轉換功能。
5 結束語
本文研究了基于CycleGAN的圖像風格轉換方法,實現了基于CycleGAN的圖片風格轉換Web服務,并在此基礎上設計與開發了圖片風格轉換App。應用效果表明,該基于CycleGAN的圖像風格轉換方法能較好的實現不同風格的圖像風格轉換。
參考文獻(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.
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >