金 陽,何利力
1(浙江理工大學 智能無人系統軟件技術與應用重點實驗室,杭州 310018)
2(浙江理工大學 浙江省服裝個性化定制2011 協同創新中心,杭州 310018)
近幾年來,生成對抗網絡(Generative Adversarial Network,GAN)在計算機視覺、圖像處理等多個領域得到越來越多的應用.其中包括應用最廣泛的圖像到圖像的轉換,它可以將來自不同域的圖像進行相互之間轉換.場景圖像轉換可以看成是圖形處理和計算機視覺領域相結合的問題.傳統的場景圖像轉換算法大多是基于模型的方法.孫毅剛等[1]提出一種基于改進的snake 模型,該算法利用模糊連接度準確找到雨雪輪廓點,并通過模糊相似度函數確定雨雪邊界,實現雨雪場景圖像轉換.劉杰平等[2]基于大氣散射模型,提出了一種適應人眼視覺特征的HSI 色彩空間估計大氣光和透射率,實現霧霾場景圖像轉換.費子豪等[3]建立了基于高頻分量直方圖均衡化,低頻分量同態濾波處理的小波變換模型,完成晴天多云場景圖像轉換.
場景圖像轉換是圖像轉換的一類問題.解決圖像轉換問題大多使用基于學習的方法,利用卷積神經網絡的強大特征表示能力,學習源域到目標域圖像的映射函數.為了學習到這個映射函數,許多國內外學者展開了廣泛的科學研究.得益于文獻[4],其將生成對抗網絡(GAN)引入到深度學習領域,給生成圖像工作帶來了更加新穎的方法.基于GAN 網絡模型,提出各種改進的圖像轉換模型.Mirza 等[5]提出了帶條件約束的cGAN(conditional GAN)模型,該網絡模型通過添加條件變量限制生成結果.基于cGAN的思想,Isola 等[6]提出Pix2Pix 算法模型,該算法要求配對的圖像數據集,能夠無監督地學習到不同域圖像之間的映射關系.Kim 等[7]提出DiscoGAN 模型在跨域圖像轉換中發揮不錯的效果.Yi 等[8]借鑒對偶學習的思想提出DualGAN.Radford 等[9]提出DCGAN,極大的提高了圖像生成的實用性.Zhu 等[10]提出了CycleGAN 網絡,該方法突破了要求成對圖像數據集的限制,無需配對數據集就能夠實現不同域圖像之間的轉換工作.
本文正是基于CycleGAN 網絡,提出了一種場景圖像轉換的新方法.通過改進的生成網絡結構、SSIM結構重建損失和身份保持損失,應用到場景圖像轉換上能夠取得很好的效果.
生成對抗網絡(GAN)是一個十分強大的生成模型,它能夠在各種不同的計算機視覺任務中取得優秀的結果.GAN 基于連續數據,且假設有無限建模能力[11].其靈感來源于零和博弈思想,通過雙方的博弈過程,達到兩者之間納什平衡.其由兩種網絡結構模型組成:生成網絡G(Generator)和判別網絡D(Discriminator).判別網絡D用來判斷樣本圖像是原始圖像還是由生成網絡G生成的圖像,目的是將他們區分開來.而生成網絡G則盡可能的生成更加逼真的圖像,以此來迷惑判別網絡D,達到以假亂真的目的.通過G和D之間相互對抗,直到生成的圖像判別網絡無法分辨.
GAN的優化目標函數為:

其中,x表示真實圖片,采樣于真實數據分布,z表示輸入生成網絡G的隨機噪聲,采樣于正態分布.D(x)表示輸入的圖片x接近真實圖片的概率.訓練是批量進行的,E為數學期望.D希望D(x)變 大,D(G(z))變小,所以D盡可能的最大化目標函數.G希望D(G(z))變大,這時G盡可能的最小化目標函數.
CycleGAN 模型工作在無配對的數據集上,實現跨域圖像轉換.其網絡結構由兩個生成網絡GXY、GYX和兩個判別網絡DX、DY組成.G與D相互對抗過程類似于一種雙向環結構.其整體結構如圖1所示.
圖1中,左邊部分是GXY與DY,GYX與DX之間的對抗.中間部分是將X域中的圖像經過兩次轉換回原域后反饋調節網絡參數,右邊部分與之類似,作用于Y域中的圖像.
該模型的目標函數由兩部分損失函數組成,對抗損失和循環一致損失.對抗損失表示生成網絡和判別網絡之間的對抗,生成網絡盡可能生成接近真實樣本分布的圖像,而判別網絡盡可能將他們分辨出來.通過網絡之間的對抗,模型可以學習到很好的映射函數GXY和GYX,然而單靠對抗損失還不能夠保證學習函數能夠將單個輸入xi映 射到期望的輸出yi,因此需要循環一致損失縮小映射函數空間.循環一致損失類似于對偶學習,它通過前后兩次轉換將輸入x映射回原始域,例如x→GXY(x)→GYX(GXY(x))≈x,然后根據反饋回來的信息就能指導模型優化改進.
跳躍連接(skip connections)[12]常用在生成網絡結構中,以保證圖像空間位置信息在網絡傳遞中的連續性.通常生成網絡包含下采樣部分和上采樣部分,在下采樣中,輸入是原始圖像,每經過一次下采樣,圖像都會在空間上被壓縮,同時擴張圖像的通道數.相反,上采樣中,圖像在空間上拓展,相應的通道數減少.這樣的網絡是線性的,圖像數據從輸入層流入,通過網絡一層接一層的向下流動,最后到達輸出層.

圖1 CycleGAN 對抗過程整體結構圖
在下采樣部分的網絡中,經過每一個連續的層,模型都會提取到圖像特征內容,但卻丟失了圖像空間位置信息.在下采樣的最后一層,特征圖已經有足夠強的能力學習到圖像的內容,但幾乎不理解空間位置.對于預測分類問題,這已經足夠了,所以我們可以把它連接到一個稠密層上,來輸出一個特定類出現在圖像中的概率.然而,對于圖像生成或者圖像轉換問題,需要在上采樣回到原始圖像大小過程中將下采樣丟失的空間位置信息傳遞回每一層.這就是需要跳躍連接,它允許網絡將在下采樣過程中捕獲的高級抽象信息與從網絡的先前層反饋來的特定空間信息進行混合.
為了讓網絡提取到的特征更加豐富,避免在非采樣層中,過深的網絡進行卷積和池化操作時導致的圖像信息丟失,我們也引入了殘差塊(residual block)[13].其結構如圖2所示.

圖2 殘差塊結構
殘差塊通過跳躍連接將淺層特征直接傳遞到深層特征,其工作方式是將輸入與殘差塊的網絡輸出疊加后作為最后的輸出.通過跳躍連接將圖像特征向神經網絡的更深層傳遞,即使網絡結構更深,也不會出現特征丟失的現象.同時還有效的解決了梯度消失和梯度爆炸問題,提高了網絡的穩定性.
本文從網絡結構和損失函數兩個方面改進網絡模型.
本文設計了一個全卷積多層下采樣網絡結構,通過提取場景圖像特征,將真假圖像辨別出來.所提的判別網絡包含兩類DX和DY,DX用來判別輸入的圖像是否來自X域中的真實圖像,DY將Y域中的真實圖像y與生成的圖像區分開來.它們共用同一網絡結構,但模型參數不共享.判別網絡結構如圖3所示.

圖3 判別網絡結構
網絡的輸入為3 通道大小為的圖片,隨后通過邊下采樣邊拓展通道的方式,提取圖像內容特征.采用步幅為2,卷積核大小為3×3的卷積操作,每次卷積后圖像寬高都減小一半,除了輸入層和輸出層外,其他層還需要連接Instance Normalization 實例歸一化層以及緊跟著Leaky ReLU 激活層.最后通過一個卷積核為1的卷積操作輸出形狀為1×16×16的特征圖,對其求取平均值作為判別網絡的輸出,也就是輸入圖片判別為真實圖像的概率.
僅用卷積層提取特征存在缺陷,沒有考慮輸入圖像與生成圖像在紋理特征和圖像結構上的聯系,造成生成的圖像細節模糊.為了彌補該缺陷,本文改進生成網絡結構,通過引入跳躍連接,將下采樣過程中丟失的圖像空間結構信息傳遞回上采樣中,以及在加深的網絡層中加入殘差塊進一步抑制圖像紋理特征信息在傳遞過程中的丟失現象.
所提的生成網絡同樣包含兩類GXY:X→Y和,GXY生成網絡將X域中圖像x作為輸入,盡可能去生成接近Y域數據樣本分布的圖像.GYX則是與之相反,將Y域中的圖像盡可GYX:Y→X能轉化為X域中圖像.它們的網絡結構如圖4所示.

圖4 生成網絡結構
該網絡輸入輸出圖像均為3 通道大小為256×256的圖片.模型左側為下采樣結構,采用步幅為2 卷積核為5×5的卷積層,同時緊跟其后的是實例歸一化層以及Leaky ReLU 層.在這里我們參考Ulyanov 等[14]的建議,使用實例歸一化層(instance normalization),在生成網絡中使用實例歸一化層比批量歸一化層[15]更能生成令人滿意的結果.總共進行3 次下采樣,每次圖像寬高減半,通道數加倍,最終到達256×32×32 尺寸為止.隨后保持該尺寸經過9 個殘差塊傳遞圖像特征,對應著模型底部的結構.之后,進行向上采樣回原圖像尺寸,這部分屬于模型右側的結構,其采用相同的步幅2、卷積核5×5的反卷積層,以及Instance Normalization 層和Leaky ReLU 層,每次上采樣圖像大小加倍,通道數減半,不同的是使用跳躍連接將下采樣過程中對應大小尺寸的特征圖連接過來.最后,將上采樣的結果通過通道數為3的反卷積層連接,輸出相同尺寸的圖像.
損失函數即本文所提模型的目標函數,它是由對抗損失、SSIM 重建損失和身份保持損失3 個部分組成.
3.3.1 對抗損失
在原始的GAN 模型中,網絡的訓練過程存在著不穩定和生成圖像質量不高等問題,針對該問題,我們將交叉熵損失替換為最小二乘損失[16].對應的生成網絡GXY和判別網絡DY的對抗損失定義如下:

式中,y~pdata(y)表示變量y采樣于Y域空間服從的概率分布,x~pdata(x)表示變量x采樣于X域空間服從的概率分布,E[]表示計算數學期望值.對于生成網絡GXY,其目標是盡可能最大化Lgan(GXY,DY),即生成更接近目標域Y數據分布的圖像來混淆判別網絡DY的決策.而判別網絡DY則盡可能最小化目標,將真實樣本y和生成樣本區分開.

如式(3)所示,通過兩者對抗最終達到最優解GXY?和DY?.
同樣的,對于生成網絡GYX和判別網絡DX的對抗損失定義如式(4),通過兩者之間的對抗過程尋找到最優解GYX?,DX?,如式(5)所示.

3.3.2 SSIM 重建損失
通過優化上述對抗損失函數可以學習到很好的映射函數GXY?和GYX?,產生接近目標域空間分布的樣本.但如果有足夠大的樣本容量,生成網絡可以將同一組輸入圖像映射到目標域中任意隨機排列的圖像,對于GXY?生成網絡,它完全可以將所有的X域圖像都映射到目標Y域的同一圖像上,從而導致對抗損失失效.因此,本文引入了重建損失來幫助網絡進一步縮小無效的映射函數空間,確保映射函數能夠將單個輸入映射到期望的輸出.
同時,為進一步保證生成圖像過程中結構特性不丟失,引入Wang 等[17]提出的結構相似性指數(Structural Similarity Index Measurement,SSIM)來衡量兩幅圖像的結構差異.
對于給定的圖像x和y,其結構相似性指數定義如下:

式中,ux是圖像x的均值,是圖像x的方差,σxy是圖像x和y的協方差.c1與c2為兩個常數,避免除零,L為像素范圍,k1=0.01,k2=0.03為默認值.SSIM 結構相似性范圍為?1 到1,值越大表示圖像x和y越相似.
因此,我們引入SSIM 重建損失,如式(8)所示,模型盡可能的最小化該目標.

3.3.3 身份保持損失
為了讓生成網絡將其目標域的圖像作為輸入后保持不變性,我們引入了身份保持損失.存在這樣一種情況,將Y域中的圖像y輸入到GXY中,滿意的結果應該是圖像y原封不動的從生成網絡中輸出.身份保持損失能夠幫助我們做到這一點,該項損失幫助調節生成網絡,以確保它只調整完成轉換所需的圖像部分,而不是更多的內容.在保持圖像內容前后一致性的同時,也間接地維持了圖像的色彩飽和度.身份保持損失公式如式(9)所示.

模型通過最小化目標函數Lid(GXY,GYX),保證轉換圖像前后內容的一致性,同時也避免轉換后的圖像出現色彩失真現象,以保留更多的色彩細節.
綜合以上三項損失函數,得到最終的目標函數為L(GXY,GYX,DX,DY).如式(10)所示.

其中,λ1和λ2分別控制3 項損失之間的相對重要性.
本文算法進行實驗的平臺環境及配置如表1所示.選用Tensorflow 作為深度學習框架,在GPU 上使用CUDNN 加速訓練模型,使用的編程語言為Python.

表1 實驗環境配置
數據集包括4 個類別的場景圖像,兩類季節場景summer、winter和兩類天氣場景cloudy、sunny.數據分別選自MWD (Multi-class Weather Dataset)數據集、Two-class Weather Classification 數據集,組成我們需要的兩類場景轉換數據集,數據集一為多云與晴天場景轉換數據集(cloudy2sunny),數據集二為夏季與冬季場景轉換數據集(summer2winter).每個數據集中每類場景各自包含訓練數據5000 張圖片,測試數據1000 張圖片,圖片大小都為256×256.
基于TensorFlow 深度學習框架,使用GPU 加速,采用迭代交替的方式對本文算法模型進行訓練.優化算法使用Adam,批量大小為1,λ1、λ2分別取10和5,所有的網絡從學習率為0.0002 開始訓練,前100 個epochs 保持0.0002的學習率不變,后100 個epochs 中學習率線性衰減為0,交替迭代訓練生成網絡和判別網絡.模型參數如表2所示.

表2 網絡模型參數
為驗證所提模型的有效性,分別進行兩類場景圖像轉換對比實驗.第一類場景為天氣場景圖像轉換(多云與晴天互轉),首先分別選取不同域的圖片,輸入到對應的生成網絡中,得到轉換后的圖像結果.然后將實驗結果與GAN、Pix2Pix、CycleGAN 模型得到的結果進行定性和定量對比.第二類場景為季節場景圖像轉換(夏季與冬季互轉),驗證過程與上述類似.
(1)定性對比實驗
使用數據集一(cloudy2sunny)訓練本文所提模型.分別選取多云圖片和晴天圖片各一張進行對比實驗,得到如圖5所示結果.從實驗結果中可以發現,GAN模型轉換后的晴天和多云場景圖像模糊不清.Pix2Pix模型生成的目標場景圖像部分存在結構上的缺陷問題.CycleGAN 模型轉換后的場景圖像容易造成圖像色彩失真,與真實的圖像存在差異.本文算法生成的目標場景圖像(多云和晴天)更加的接近真實場景圖像.

圖5 天氣場景圖像轉換實驗結果對比圖
使用數據集二(summer2winter)時,同樣選取夏季和冬季圖片各一張,將實驗結果圖與GAN、Pix2Pix、CycleGAN 模型得到的結果進行對比,如圖6所示.通過對比可以看出,所提模型轉換后的結果更加接近目標真實場景,同時保持了完整的圖像結構和紋理細節信息.通過這兩類場景圖像轉換的對比實驗,驗證了本文所提模型應用到場景圖像轉換上的有效性和可行性.

圖6 季節場景圖像轉換實驗結果對比圖
(2)定量對比實驗
定量對比部分,我們采用廣泛使用的PSNR[18]和SSIM這兩種全參考的圖像質量評價指標,來對生成的圖像進行客觀的定量評判.在同一測試數據集上,使用這兩種評價指標,將本文算法和其他算法生成的圖像與真實圖像進行定量對比.各算法的評價指標結果如表3所示.

表3 測試數據集上各算法評價指標結果
本文設計了基于改進生成對抗網絡的圖像轉換算法,應用在天氣和季節場景的圖像轉換上能夠獲得很好的效果.具體改進方法涉及以下幾個方面:首先是改進生成網絡的網絡結構,通過在網絡的下采樣部分和上采樣部分中間加入跳躍連接,保證下采樣部分的圖像空間位置信息傳遞的連續性,以及在非采樣部分使用殘差塊,保證層數加深的網絡不丟失圖像內容信息.其次,選用SSIM 相似性指數作為衡量圖像結構差異的指標,組成SSIM 結構重建損失,目的是使得模型生成的圖像結構更完整.此外,還通過添加身份保持損失,保證轉換前后圖像色彩不失真和內容的一致性.在今后的研究工作中,我們將考慮進一步優化網絡結構和損失函數,在紋理、細節等方面,增強原圖和轉換圖之間的結構相似性和語義一致性.