肖進(jìn)勝,周景龍,雷俊鋒,李 亮,丁 玲,杜治一
1(武漢大學(xué) 電子信息學(xué)院,湖北 武漢 430 072)
2(湖北第二師范學(xué)院 計(jì)算機(jī)學(xué)院,湖北 武漢 4 30205)
許多計(jì)算機(jī)視覺問題可以被看作是一個(gè)圖像到圖像的翻譯問題,是映射一個(gè)域中的映像到另一個(gè)域中的對(duì)應(yīng)映像,實(shí)際上都是像素到像素之間的映射.例如:超分辨率可以認(rèn)為是將低分辨率圖像映射到相應(yīng)的高分辨率圖像的問題,而圖像著色可以看作是將灰度圖像映射到相應(yīng)的彩色圖像.這個(gè)問題可以在有監(jiān)督和無監(jiān)督的學(xué)習(xí)環(huán)境中進(jìn)行研究.在無監(jiān)督學(xué)習(xí)中,只有兩組獨(dú)立的圖像,其中一組圖像組成一個(gè)域,另一個(gè)域包含另一組圖像,但訓(xùn)練圖像不匹配,即不是成對(duì)的訓(xùn)練集.由于缺乏相應(yīng)的圖像,無監(jiān)督的圖像到圖像轉(zhuǎn)換問題更難考慮也更難實(shí)現(xiàn).在有監(jiān)督學(xué)習(xí)中,可在不同的域中訓(xùn)練配對(duì)相應(yīng)的圖像[1,2],有監(jiān)督學(xué)習(xí)能夠使生成圖像與輸入圖像像素之間的映射關(guān)系更加準(zhǔn)確,能夠避免類似無監(jiān)督學(xué)習(xí)中出現(xiàn)的生成圖像不可控的現(xiàn)象.
利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural net works,簡(jiǎn)稱CNN)進(jìn)行有監(jiān)督學(xué)習(xí),在生成圖像時(shí)也需要最小化損失函數(shù),并作為網(wǎng)絡(luò)調(diào)優(yōu)的標(biāo)準(zhǔn).然而,在采取了這種方法時(shí),要求CNN 盡量減少預(yù)測(cè)圖像與真實(shí)圖像之間的歐氏距離,它可能會(huì)產(chǎn)生模糊的結(jié)果[3,4],其原因是歐式距離通過平均所有像素的輸出而導(dǎo)致模糊.因此,要讓CNN 網(wǎng)絡(luò)針對(duì)特定的轉(zhuǎn)換任務(wù)就需要制定特定的損失函數(shù),但這是一個(gè)棘手的難題.如果可以指定網(wǎng)絡(luò)只有一個(gè)高層次的目標(biāo),比如“使生成圖像難辨真?zhèn)巍?然后自動(dòng)學(xué)習(xí)一個(gè)損失函數(shù)以實(shí)現(xiàn)此目標(biāo),這種方式也就是生成對(duì)抗網(wǎng)絡(luò)的思路(generative ad versarial n ets,簡(jiǎn)稱GAN)[5?8].GAN 嘗試分類輸出圖像是真實(shí)或者偽造的,同時(shí)訓(xùn)練生成模型,其損失函數(shù)可以應(yīng)用于傳統(tǒng)上需要種類差別很大的任務(wù).在這樣的背景下,如何利用優(yōu)化GAN 網(wǎng)絡(luò)進(jìn)行有監(jiān)督學(xué)習(xí)、進(jìn)行圖像的各種轉(zhuǎn)換,都已經(jīng)漸漸成為研究熱點(diǎn).
圖像轉(zhuǎn)換包含多種類型,比如圖像的風(fēng)格轉(zhuǎn)換,將水墨畫轉(zhuǎn)換成山水畫、將真實(shí)圖像卡通化;圖像的色彩轉(zhuǎn)換,比如彩色與黑白圖像之間;圖像的內(nèi)容轉(zhuǎn)換,比如衛(wèi)星圖像與地圖的轉(zhuǎn)換、斑馬與馬的轉(zhuǎn)換;圖像的場(chǎng)景轉(zhuǎn)換,比如白天到黑夜等等.這些對(duì)圖像的變換、紋理調(diào)整、風(fēng)格化編輯,在藝術(shù)、科研、工程領(lǐng)域均有所應(yīng)用.然而,由于時(shí)間、地點(diǎn)和相機(jī)參數(shù)等限制,通過人工方法采集同一景物不同場(chǎng)景的圖像有很大的困難;而通過圖像處理的方法,比如進(jìn)行超分辨率、銳化、去噪[9]等方式對(duì)圖像進(jìn)行優(yōu)化,提升圖像質(zhì)量,是一條可行性較高的途徑.
作為圖像轉(zhuǎn)換領(lǐng)域的代表,圖像風(fēng)格轉(zhuǎn)換相關(guān)領(lǐng)域研究趨于成熟.現(xiàn)有的圖像風(fēng)格轉(zhuǎn)換有兩類:一類是基于全局[10],通過匹配像素顏色的均值和方差或其柱狀圖來實(shí)現(xiàn)樣式化;另一類是基于局部[11,12],通過利用低層次或高層次特征內(nèi)容和風(fēng)格照片之間的密集對(duì)應(yīng)關(guān)系對(duì)圖像進(jìn)行風(fēng)格化.這些方法在實(shí)踐中很耗時(shí),并且通常是為特定場(chǎng)景來設(shè)定的.Gatys 等人[13]提出了藝術(shù)風(fēng)格的神經(jīng)風(fēng)格轉(zhuǎn)換算法,其主要步驟是解決從內(nèi)容圖像和風(fēng)格圖像中提取深層特征與Gram 矩陣匹配.目前已有了許多方法,在此算法上[14?16]進(jìn)一步提高其性能和速度.然而,這些方法有時(shí)生成的圖像不夠真實(shí),所以還需要在此基礎(chǔ)上進(jìn)行后處理[17],來匹配輸入圖像與輸出圖像的梯度.
高保真的圖像風(fēng)格化與圖像到圖像的翻譯問題[18?22]有關(guān),目標(biāo)是學(xué)習(xí)將圖像從一個(gè)域翻譯到另一個(gè)域.然而,真實(shí)照片圖像的風(fēng)格化并不需要學(xué)習(xí)翻譯功能的內(nèi)容和風(fēng)格圖像的訓(xùn)練數(shù)據(jù)集.照片寫實(shí)圖像的風(fēng)格化,可以看作是一種特殊的圖像到圖像的轉(zhuǎn)換,用來把照片翻譯成不同的領(lǐng)域(例如從白天到晚上).Luan 等人[23]通過在優(yōu)化目標(biāo)中加入一個(gè)新的損失函數(shù),提高了風(fēng)格轉(zhuǎn)換算法計(jì)算出的風(fēng)格化輸出的真實(shí)感,從而更好地保留圖像內(nèi)容中的局部結(jié)構(gòu).然而,它通常會(huì)產(chǎn)生不一致的風(fēng)格化;此外,該方法的計(jì)算成本也很高.Pix2pix[1]將條件GAN[24]用于不同的圖像轉(zhuǎn)換,例如將谷歌地圖轉(zhuǎn)換為衛(wèi)星視圖等.在沒有訓(xùn)練對(duì)的情況下,實(shí)現(xiàn)圖像到圖像翻譯的各種方法[19,21,25]也陸續(xù)被提出.而Chen 等人[26]指出:由于訓(xùn)練的不穩(wěn)定性和優(yōu)化問題,條件GAN 訓(xùn)練難以生成高分辨率圖像.為了避免這種困難,提出了感知損失[27].生成的圖像是高分辨率的,但往往缺乏細(xì)節(jié)和現(xiàn)實(shí)的紋理.
基于以上的研究,本文提出了一種新型的基于生成對(duì)抗網(wǎng)絡(luò)的圖像場(chǎng)景轉(zhuǎn)換算法,主要有如下3 點(diǎn)創(chuàng)新.
首先,設(shè)計(jì)了新的生成器網(wǎng)絡(luò)結(jié)構(gòu).主要采用帶跨層連接結(jié)構(gòu)的深度卷積,通過跨層連接能夠?qū)崿F(xiàn)底層卷積與頂層卷積的信息共享,更好地保留了圖像的內(nèi)容結(jié)構(gòu),最終使輸出圖像與輸入圖像的結(jié)構(gòu)和邊緣保持一致;
其次,設(shè)計(jì)了多尺度判決器網(wǎng)絡(luò)結(jié)構(gòu),分別對(duì)圖像的不同尺度進(jìn)行判決.當(dāng)判決器的輸入圖像為大尺度時(shí)更關(guān)注圖像的細(xì)節(jié),小尺度時(shí)更關(guān)注圖像的結(jié)構(gòu).這樣將大小尺度相結(jié)合的方式,能夠在判決時(shí)兼顧圖像的細(xì)節(jié)和結(jié)構(gòu);
最后,提出了新的損失函數(shù).基于常用的損失函數(shù)GAN 損失和L1損失,加入了VGG 損失和FM(特征匹配)損失,以利用VGG 網(wǎng)絡(luò)和判決器網(wǎng)絡(luò)來增加對(duì)生成對(duì)抗網(wǎng)絡(luò)的控制,最終使生成圖像與目標(biāo)圖像更加接近.
圖像轉(zhuǎn)換是一個(gè)經(jīng)典的計(jì)算機(jī)視覺任務(wù),而近些年,以卷積神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)算法的流行,讓這一任務(wù)有了顯著的突破.2014年,Goodfellow 提出了生成對(duì)抗網(wǎng)絡(luò)[5],基于GAN 的算法在圖像轉(zhuǎn)換上表現(xiàn)良好,Pix2pix,CycleGAN,MUNIT 等模型陸續(xù)被提出.參考這些算法,本文提出了一種新型的基于生成對(duì)抗網(wǎng)絡(luò)的圖像場(chǎng)景轉(zhuǎn)換算法.
生成對(duì)抗網(wǎng)絡(luò)(GAN)[5]是一種無監(jiān)督的機(jī)器學(xué)習(xí)方法,有兩個(gè)網(wǎng)絡(luò)模型:生成器(generative model)和判決器(discriminative m odel),兩個(gè)網(wǎng)絡(luò)相互對(duì)抗相互牽制.判決器是判定一個(gè)樣例是來自數(shù)據(jù)集還是生成器合成的圖像,生成器目的是盡可能使生成圖像以假亂真以迷惑判決器難辨真?zhèn)?兩個(gè)網(wǎng)絡(luò)模型相互對(duì)抗來提升各自的算法能力,直到判決器無法分辨出合成圖像與真實(shí)圖像.在數(shù)據(jù)集中真實(shí)圖像中,生成器想要從y中學(xué)習(xí)其分布,定義輸入噪聲變量pz(z),則損失函數(shù)定義為
z表示輸入生成器G的噪聲,而G(?)表示G網(wǎng)絡(luò)生成的圖片.D(?)表示判決器D網(wǎng)絡(luò)判斷真實(shí)圖片是否真實(shí)的概率,E為數(shù)學(xué)期望.由于其為無監(jiān)督學(xué)習(xí),該方法應(yīng)用范圍十分小,無法實(shí)現(xiàn)像素與像素之間的轉(zhuǎn)換.
CycleGAN[21]利用非成對(duì)圖像進(jìn)行訓(xùn)練,主要貢獻(xiàn)在于提出了循環(huán)一致性損失.該損失要同時(shí)學(xué)習(xí)正向和反向兩個(gè)映射,設(shè)正向映射也即G:X→Y,反向映射F:Y→X.并要求圖像能夠從一個(gè)方向轉(zhuǎn)換后,還可以反向轉(zhuǎn)換,實(shí)現(xiàn)一個(gè)循環(huán).即F(G(x))≈x和G(F(y))≈y.循環(huán)一致性損失可以定義為
同樣還引用GAN 損失.正向映射G:X→Y,定義其判決器為DY,則其GAN 損失為
由于循環(huán)一致性,則定義反向映射的判決器為DX,由此可以同樣定義LGAN(G,DX,X,Y).最終的損失就由3 部分組成:
該方法在Pix2pix 基礎(chǔ)之上修改損失函數(shù).由于圖像的訓(xùn)練集不需要成對(duì)的數(shù)據(jù)進(jìn)行訓(xùn)練,該方法的應(yīng)用范圍更加廣泛.但是由于訓(xùn)練集不匹配,只能通過訓(xùn)練去猜測(cè)真實(shí)的映射關(guān)系,因此其學(xué)習(xí)到的映射關(guān)系可能會(huì)出現(xiàn)偏差.
MUNIT(multimodal unsupervised image-to-image translation)即多模態(tài)非監(jiān)督圖像翻譯算法[22],算法中通過圖像編碼分別獲得圖像集Xi的風(fēng)格空間Si和共同的內(nèi)容空間C.實(shí)現(xiàn)從圖像x1轉(zhuǎn)換到x2,將輸入圖像的內(nèi)容c與轉(zhuǎn)換目標(biāo)的風(fēng)格s2相結(jié)合.不同的風(fēng)格得到不同的轉(zhuǎn)換結(jié)果.該網(wǎng)絡(luò)的損失函數(shù)包括兩部分:一是雙向重建損失,二是GAN 損失.
雙向重建損失有兩部分——圖像重建和潛在重建.生成網(wǎng)絡(luò)用G表示,E表示G的反向操作.圖像重建損失表示為
潛在重建損失表示為
GAN 損失表示為
因此,網(wǎng)絡(luò)的優(yōu)化目標(biāo)可以表示為
Pix2pix 算法[1]是一個(gè)條件GAN 框架,用于圖像到圖像的轉(zhuǎn)換,由生成器G和判決器D組成.生成器G網(wǎng)絡(luò)目的是學(xué)習(xí)輸入圖像x到目標(biāo)圖像y的映射G:x→y,使生成圖像與目標(biāo)圖像十分接近,難辨真假;判決器D網(wǎng)絡(luò)的目的是盡可能判斷出圖像是生成圖像還是真實(shí)圖像.對(duì)以下公式進(jìn)行網(wǎng)絡(luò)優(yōu)化:
其中,lossGAN為生成對(duì)抗網(wǎng)絡(luò)損失函數(shù),loss1L為L(zhǎng)1損失,λ為可調(diào)參數(shù).lossGAN定義如下:
其目的是使GAN 網(wǎng)絡(luò)生成器與判決器相互制約,共同優(yōu)化.loss1L定義如下:
因?yàn)閳D像生成本質(zhì)上是回歸問題,所以使用L1損失對(duì)生成圖像進(jìn)行限制.Pix2pix 方法采用U-net 作為生成器以及patchGAN 的卷積網(wǎng)絡(luò)[28]作為判決器.
本文提出的基于生成對(duì)抗網(wǎng)絡(luò)的圖像場(chǎng)景轉(zhuǎn)換算法主要分訓(xùn)練和測(cè)試兩個(gè)階段.在訓(xùn)練階段將GAN 網(wǎng)絡(luò)模型進(jìn)行優(yōu)化,使得在測(cè)試階段輸入圖像通過GAN 網(wǎng)絡(luò)模型得到輸出圖像.通過生成網(wǎng)絡(luò)和判決網(wǎng)絡(luò)不斷迭代,優(yōu)化網(wǎng)絡(luò)參數(shù).算法流程圖以圖像加霧實(shí)驗(yàn)作為示例,如圖1所示.本節(jié)將對(duì)生成器、判決器及損失函數(shù)進(jìn)行闡述.
Fig.1 Algorithm flowchart圖1 算法流程圖
2.1.1 跨層連接生成網(wǎng)絡(luò)
以圖像加霧為例.本文在生成器網(wǎng)絡(luò)G設(shè)計(jì)上采用跨層連接,是由于在圖像轉(zhuǎn)換中有大量的信息在輸入和輸出之間共享,并需要直接在網(wǎng)絡(luò)上傳輸這些信息.例如進(jìn)行場(chǎng)景轉(zhuǎn)換時(shí),輸入和輸出共享突出邊緣的位置.網(wǎng)絡(luò)結(jié)構(gòu)如下.
如圖2所示:網(wǎng)絡(luò)整體呈現(xiàn)左右對(duì)稱的結(jié)構(gòu),左側(cè)為卷積操作,右側(cè)為反卷積操作.
Fig.2 Generator network structure圖2 生成器網(wǎng)絡(luò)結(jié)構(gòu)
將卷積層-batch Normalizati on(BN 層)-prelu 看作一個(gè)模塊,記為一層.輸入圖像經(jīng)過多層卷積操作,得到中間層,這時(shí)如圖右側(cè)表示,相應(yīng)的卷積層再進(jìn)行反卷積,此時(shí),將反卷積層-batch Norm alization(BN 層)-prelu 看作一個(gè)模塊,記為一層.同時(shí),再與左側(cè)對(duì)應(yīng)的卷積層信息直接相加,最后得到圖像的輸出.每個(gè)卷積層和反卷積層的參數(shù)設(shè)置為卷積核大小為4×4,padding 為0,stride 為1.
2.1.2 生成器網(wǎng)絡(luò)模型對(duì)比
本文設(shè)計(jì)的生成器網(wǎng)絡(luò)與pix2pix 網(wǎng)絡(luò)同樣利用的跨層連接,但網(wǎng)絡(luò)整體結(jié)構(gòu)不同:pix2pix 網(wǎng)絡(luò)采用編碼器-解碼器結(jié)構(gòu),先進(jìn)行多層下采樣再進(jìn)行多層上采樣,每經(jīng)過一層下采樣,圖像的長(zhǎng)寬各減小一半;本文的生成器網(wǎng)絡(luò)沒有進(jìn)行上采樣和下采樣,而是單純地進(jìn)行多層卷積和反卷積操作.為了證明本文提出的算法生成器結(jié)構(gòu)的優(yōu)越性,比較了兩種算法的實(shí)驗(yàn)結(jié)果.實(shí)驗(yàn)時(shí),網(wǎng)絡(luò)的判決器個(gè)數(shù)為1,損失函數(shù)為GAN 損失和L1損失.本文以圖像加霧的訓(xùn)練集進(jìn)行訓(xùn)練,加霧結(jié)果如圖3所示.
Fig.3 Comparison of different generator structures圖3 不同生成器結(jié)構(gòu)結(jié)果對(duì)比
由圖3 可見,兩種算法的加霧效果在細(xì)節(jié)上有所不同.Pix2pix 在平坦的區(qū)域有塊效應(yīng)出現(xiàn),而本文效果較為平滑,如圖中的右下部分實(shí)線框區(qū)域.
2.2.1 多尺度判決網(wǎng)絡(luò)
GAN 生成圖像的難點(diǎn)在于讓生成圖像的過程可控,即生成更加真實(shí)和清晰的圖像,而這對(duì)GAN 判決器設(shè)計(jì)提出了重大挑戰(zhàn).為了區(qū)分真實(shí)圖像和生成圖像,判決器需要具有大的感受野.這就需要設(shè)計(jì)更深的網(wǎng)絡(luò)結(jié)構(gòu)或者采用更大的卷積核,但兩者都會(huì)增強(qiáng)網(wǎng)絡(luò)能力并可能導(dǎo)致過擬合.此外,這兩種選擇由于增加了網(wǎng)絡(luò)復(fù)雜程度,都需要更大的內(nèi)存占用.為了解決這個(gè)問題,本文采用多尺度判決器,也即多個(gè)判決器在不同尺寸的輸入圖像下進(jìn)行.本文最多使用了3 個(gè)判決器,分別記作D1~D3.當(dāng)使用3 個(gè)判決器時(shí),是分別對(duì)圖像下采樣一倍和兩倍再進(jìn)行判決.
D1~D3的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,由多個(gè)下采樣層和一個(gè)輸出判決層組成,只是輸入圖像的尺寸不同.輸入圖像為大尺度時(shí)更關(guān)注圖像的細(xì)節(jié),小尺度時(shí)更關(guān)注圖像的結(jié)構(gòu).
Fig.4 Discriminator network structure圖4 判別器網(wǎng)絡(luò)結(jié)構(gòu)
2.2.2 多尺度判決器數(shù)目
本文采用多尺度判決器,即多個(gè)判決器在不同尺寸的輸入圖像下進(jìn)行.因此,判決器個(gè)數(shù)的選擇至關(guān)重要.因?yàn)樵诓煌叨认逻M(jìn)行判決,小尺度圖像作為輸入時(shí)能夠更多關(guān)注圖像的整體結(jié)構(gòu)和邊緣,大尺度圖像作為輸入則更多關(guān)注圖像的細(xì)節(jié)保留.判決器個(gè)數(shù)少,則影響生成器效果.理論上是判決器越多越好,但也并非如此.判決器越多,一是增加了網(wǎng)絡(luò)的復(fù)雜度和計(jì)算量,影響訓(xùn)練時(shí)間;二是判決器個(gè)數(shù)與輸入圖像本身尺寸有關(guān),如果輸入本身尺寸適當(dāng),非大尺寸或超大尺寸,判決器沒必要過多.于是,針對(duì)判決器的個(gè)數(shù)選擇多少較為合適,在本文研究的特定情況下,進(jìn)行了以下實(shí)驗(yàn).本文在加霧訓(xùn)練集上進(jìn)行訓(xùn)練,圖像輸入大小為256×256,分別測(cè)試判決器個(gè)數(shù)為1~3 的情況下,迭代60 個(gè)epoch 的效果.
從整體上來看,判決器的個(gè)數(shù)對(duì)生成圖像的內(nèi)容影響不大,但在細(xì)節(jié)上會(huì)有所差別.由圖5 可見,當(dāng)num_D=1時(shí),景物的細(xì)節(jié)會(huì)出現(xiàn)缺失.比如圖5 中建筑的橫線,而當(dāng)num_D為2 或3 時(shí),兩張圖片相差不多,細(xì)節(jié)保持都較好.num_D=3 時(shí),圖像顏色更亮一點(diǎn),只是略有提升,但是效果并不明顯.同時(shí),圖5 中的天空部分,當(dāng)num_D=1 時(shí)會(huì)出現(xiàn)失真.而由于原始生成圖像天空區(qū)域較亮,放大后依然很難觀察到差別.于是,本文對(duì)天空區(qū)域進(jìn)行了處理,變換公式如下:
其中,im_newr,g,b為輸出的圖像,imr,g,b為變換前圖像.變換后圖像如圖放大區(qū)域所示,當(dāng)num_D=2 或3 時(shí),天空顏色則較為均勻.考慮到網(wǎng)絡(luò)復(fù)雜度和計(jì)算量,在本文所有實(shí)驗(yàn)中,判決器的個(gè)數(shù)num_D=2.
Fig.5 Comparison of different number of discriminators圖5 不同個(gè)數(shù)判決器結(jié)果對(duì)比
2.3.1 損失函數(shù)組成
本文損失函數(shù)共使用了4 種,GAN 損失、L1損失、VGG 損失和FM(feature matching,特征匹配)損失.首先,對(duì)于生成對(duì)抗網(wǎng)絡(luò),由于本文使用多尺度判決器,因此生成對(duì)抗網(wǎng)絡(luò)的優(yōu)化問題表示為
x為輸入圖像,y為目標(biāo)圖像.其中,GAN 損失表達(dá)為
該算法對(duì)于生成器的生成結(jié)果還要加入限制,對(duì)生成圖像進(jìn)行評(píng)價(jià),引入L1損失:
為了使輸出圖像更加逼近真實(shí)圖像,引入特征匹配(FM)損失.具體來說,從判決器多個(gè)層來提取特征并學(xué)習(xí)來匹配真實(shí)圖像和合成圖像的中間特征.表示第i層特征提取器(從輸入到Dk判決器的第i層).然后計(jì)算FM損失LFM(G,Dk)如下:
其中,T是判決器總層數(shù),Ni表示層數(shù)每層中的元素?cái)?shù)量.為了兩個(gè)圖像特征之間的差距,引入VGG 損失,通過預(yù)先訓(xùn)練的VGG 網(wǎng)絡(luò),提取圖像的特征,定義FM 損失為
其中,F(i)表示VGG 網(wǎng)絡(luò)的第i層,Mi表示該層的元素個(gè)數(shù).因此,本文算法最終總的損失函數(shù)優(yōu)化目標(biāo)表示為
而對(duì)于損失函數(shù)各個(gè)部分的作用,本文將在第2.3.2 節(jié)中進(jìn)行實(shí)驗(yàn)分析,驗(yàn)證本文算法改進(jìn)的損失函數(shù)的有效性和必要性.
2.3.2 損失函數(shù)的設(shè)置
本文的損失函數(shù)一共由4 部分組成,分別為:GAN 損失,L1損失,FM 損失,VGG 損失.本文算法是基于GAN框架,故對(duì)比了總損失(total loss)、不使用VGG 損失(no_VGGloss)、不使用L1損失和FM 損失(no_matchingloss)這3 種情況下的實(shí)驗(yàn)結(jié)果.
由圖6 可以看出:在不使用VGG 損失時(shí),則會(huì)出現(xiàn)圖像失真,比如圖6 中,線框區(qū)域,在天空、跑道等位置會(huì)出現(xiàn)不規(guī)則橢圓形的近似白色的“異物”.沒有了VGG 損失的限制,會(huì)出現(xiàn)圖像的失真.當(dāng)沒有L1和FM 損失時(shí),圖像不會(huì)出現(xiàn)失真,但是圖像的色彩會(huì)出現(xiàn)偏差.在沒有L1和FM 損失時(shí),霧氣整體偏深色;而使用了L1和FM 損失后,顏色正常.
Fig.6 Comparison of different loss function
圖6 不同損失函數(shù)結(jié)果對(duì)比
?生成器網(wǎng)絡(luò):卷積核大小為4×4,步長(zhǎng)為1,padding 為0,網(wǎng)絡(luò)為左右對(duì)稱的卷積,設(shè)置網(wǎng)絡(luò)左側(cè)卷積層6層,右側(cè)帶跨層連接反卷積層5 層,整個(gè)網(wǎng)絡(luò)共11 層;
?判決器網(wǎng)絡(luò):下采樣層卷積核大小為4×4,步幅為2,下采樣層個(gè)數(shù)3 層,判決器的個(gè)數(shù)為2;
?損失函數(shù):λ1=10,λ2=10,λ3=10,學(xué)習(xí)率(learning rate)為0.0002.
算法的實(shí)驗(yàn)環(huán)境如下.
?硬件設(shè)備:CPU:Intel Core i7-5820K @ 3.30GHz x 12;GPU:NVIDIA GeForce TITAN X;內(nèi)存:16GB;
?軟件配置:操作系統(tǒng)為64 位ubuntu 14.04 LTS;CUDA Toolkit 7.0.
本文使用深度學(xué)習(xí)的框架為Pytorch.
?加霧訓(xùn)練集[29]:利用軟件Adobe lightroom CC 加霧功能,對(duì)Middlebury Stereo Datasets 和網(wǎng)上收集的無霧圖像進(jìn)行加霧.分別對(duì)76 張無霧圖像集加濃度為30,40,50,60,70,80,90,100 的霧,其中,室外場(chǎng)景26張,室內(nèi)場(chǎng)景50 張,最終形成608 對(duì)含不同濃度霧的有霧圖像與無霧圖像的匹配圖像對(duì)做訓(xùn)練集;
?SAR 圖像訓(xùn)練集:網(wǎng)絡(luò)上匹配圖像裁剪,共1 048 對(duì)256×256 匹配圖像;
?白天黑夜轉(zhuǎn)換訓(xùn)練集[11]共17 112 張;
?谷歌地圖訓(xùn)練集[1]共1 096 張.
3.2.1 SAR 圖像生成
之所以進(jìn)行SAR 圖像合成,是由于目前通過可見光圖像和SAR 圖像獲得一致的匹配圖像對(duì)有一定的難點(diǎn).由于時(shí)間、地點(diǎn)、噪聲干擾等問題限制,再加上圖像的校準(zhǔn)也需要消耗大量的人力物力,因此可以嘗試通過圖像生成的方法,從可見光圖像中生成SAR 圖像,來獲得特殊的地形地貌在SAR 圖像下的成像效果.
在SAR 圖像生成上,其他相似的GAN 圖像生成的算法并未有類似的轉(zhuǎn)換測(cè)試,也無法評(píng)測(cè)用何種方法生成SAR 圖像更加真實(shí).為了更客觀地評(píng)價(jià)從可見光圖像向SAR 圖像轉(zhuǎn)換,本文對(duì)比了其他GAN 圖像生成算法.以下幾種算法分別各有特點(diǎn),都能夠?qū)崿F(xiàn)圖像場(chǎng)景和內(nèi)容的轉(zhuǎn)換:Pix2pix[1]是利用匹配圖像對(duì)進(jìn)行圖像生成;CycleGAN[21]能夠利用非匹配圖像訓(xùn)練集進(jìn)行訓(xùn)練提取特征;MUNIT[22]同樣可以提供圖像的內(nèi)容轉(zhuǎn)換,可以從場(chǎng)景、內(nèi)容上進(jìn)行變化,在CycleGAN[21]基礎(chǔ)上可能實(shí)現(xiàn)多種映射,同時(shí)生成多幅不同的轉(zhuǎn)換圖像.本文通過對(duì)可見光圖像和真實(shí)SAR 圖像組成的訓(xùn)練集對(duì)CycleGAN[21],MUNIT[22],Pix2pix[1]和本文算法進(jìn)行訓(xùn)練,在相同訓(xùn)練集,不同算法得到如下對(duì)比結(jié)果,如圖7所示.
由圖7 可見:
?CycleGAN 能在該訓(xùn)練集下生成呈黑白色圖像,且在圖像的內(nèi)容上與可見光圖像保持高度一致,但并不能夠?qū)W習(xí)到SAR 圖像的特定特征.比如圖中樹的形態(tài)在真實(shí)SAR 圖像和可見光圖像中有很大差別;再如街道在可見光圖像中呈現(xiàn)近白色,而在真實(shí)SAR 圖像中是近黑色.而CycleGAN 則并不能夠?qū)W習(xí)到這些SAR 圖像的特點(diǎn),且CycleGAN 更類似于把彩色圖像轉(zhuǎn)換成黑白;
?而MUNIT 則表現(xiàn)得更糟,甚至對(duì)于圖像的內(nèi)容都不能生成,這主要是由于MUNIT 更多地會(huì)自己生成一些內(nèi)容;
?Pix2pix 和本文算法則更接近與真實(shí)的SAR 圖像.從圖像的內(nèi)容和景物上都能夠明顯體現(xiàn),對(duì)于道路、樹、房屋的生成紋理和顏色都能夠以假亂真.但是,Pix2pix 算法相比本文算法圖像整體偏模糊且圖像會(huì)有一些不必要的紋理出現(xiàn),如圖中右下角的草坪.
Fig.7 Comparison of SAR image synthesis results圖7 SAR 圖像合成結(jié)果對(duì)比
3.2.2 圖像加霧
圖8 是分別利用GAN 算法在本文的訓(xùn)練集下的效果,對(duì)比算法包括Pix2pix[1],CycleGAN[21],DRPAN[6]和軟件加霧效果.
由圖8 可見:Pix2pix 處理后圖像呈現(xiàn)加霧效果,且圖像的內(nèi)容較為清晰,細(xì)節(jié)沒有丟失,但圖像加霧后導(dǎo)致圖像的整體色彩有偏差(從樹干部分可以看出);CycleGAN 效果則最差,內(nèi)容模糊,色彩嚴(yán)重失真,其整幅圖像色彩有偏差;軟件加霧效果與本文效果十分相近,加霧均勻,霧的顏色沒有偏差,且圖像的細(xì)節(jié)保留較好;DRPAN 效果則略差,整幅圖像雖然色彩鮮艷度有所下降,但是其圖像較模糊,尤其圖像上方樹干、樹葉部分,沒有邊界,十分模糊.
Fig.8 Comparison of imagehazing results圖8 加霧結(jié)果對(duì)比
3.2.3 衛(wèi)星圖像到地圖轉(zhuǎn)換
同時(shí),本文測(cè)試了衛(wèi)星圖像到地圖的轉(zhuǎn)換,訓(xùn)練集和測(cè)試集采用Pix2pix[1]的公共訓(xùn)練集,并測(cè)試了本文算法與其他基于生成對(duì)抗網(wǎng)絡(luò)算法的轉(zhuǎn)換效果.對(duì)比算法包括Pix2pix[1]、CycleGAN[21]和DRPAN[6],如圖9所示.
從整體來看,均能生成類似地圖效果的圖像較為逼真.DRPAN 算法對(duì)圖像進(jìn)行的增強(qiáng)處理,對(duì)比度較強(qiáng),但不影響整體的比較.Pix2pix 中,對(duì)于左下草坪區(qū)域大部分能夠恢復(fù)出來,且草坪與道路相連的虛線框中區(qū)域、道路恢復(fù)得比較直,同時(shí),最下面的湖水區(qū)域邊界明顯,而對(duì)于草坪中的小路則出現(xiàn)內(nèi)容缺失;而CycleGAN 算法對(duì)于草坪區(qū)域均不能夠著色,草坪與道路相接的虛線框中雖然能夠恢復(fù)道路,但道路不直且沒有連貫,而對(duì)于草坪中的小路同樣沒有轉(zhuǎn)換成功;DRPAN 算法對(duì)于湖水、草坪、草坪間的小路均明顯地生成,但草坪與道路相接的區(qū)域,道路的內(nèi)容模糊缺失;本文算法能夠生成草坪與道路之間的路,且道路較連貫,對(duì)于草坪區(qū)域、湖的區(qū)域則著色不均,也有所缺失.
Fig.9 Comparison of map synthesis results圖9 地圖合成結(jié)果對(duì)比
3.2.4 白天到黑夜轉(zhuǎn)換
在本節(jié)中,本文對(duì)白天到黑夜的轉(zhuǎn)換進(jìn)行了訓(xùn)練和測(cè)試,如圖10所示.訓(xùn)練集同樣來自Pix2pix[1].同時(shí),在訓(xùn)練測(cè)試過程中發(fā)現(xiàn):本文算法在該訓(xùn)練集下,判決器個(gè)數(shù)設(shè)置為1 時(shí)效果更好.考慮到是由于input 和label 并不完全匹配,數(shù)據(jù)集的圖像雖然為同一地點(diǎn)同一位置,但仍有不同:一是拍攝時(shí)間不同,二是其他內(nèi)容不同,比如馬路上的車輛個(gè)數(shù)和位置、季節(jié)變化等的差異,而采用多個(gè)多尺度判決器原本目的是對(duì)于圖像細(xì)節(jié)進(jìn)行矯正,但在白天黑夜轉(zhuǎn)換中則應(yīng)該忽略掉小的細(xì)節(jié)上的差異,并對(duì)這些差異有所保留.
從圖10 中可見,本文算法生成圖像的內(nèi)容基本不變,但對(duì)于天空區(qū)域則均變?yōu)楹谏?埃菲爾鐵塔則亮起了燈.視覺效果上,pix2pix 和DRPAN 算法生成的黑夜圖更接近真實(shí)的夜晚圖像,即色彩和亮度上的相似性,但是圖很明顯地出現(xiàn)了塊效應(yīng),尤其是在天空與地面的交界處.圖CycleGAN 生成的圖像下沿即建筑物區(qū)域一片模糊,很明顯沒有轉(zhuǎn)換成功.而本文提出的算法雖然在色彩和亮度上沒有更接近與真實(shí)夜晚圖,但是生成的圖片減少了塊效應(yīng),很好地保持了紋理結(jié)構(gòu),且更具真實(shí)感.
Fig.10 Comparison of night image synthesis results圖10 夜晚場(chǎng)景合成結(jié)果對(duì)比
3.3.1 圖像加霧客觀指標(biāo)分析
首先,Choi 等人[30]計(jì)算霧濃度用了算法FADE(fog aware density evaluator),利用該算法對(duì)本文40 張測(cè)試集分別求出霧濃度指標(biāo).霧濃度結(jié)果見表1.指標(biāo)越高,說明霧濃度越大.計(jì)算了40 張圖的平均值及均方差,并對(duì)比無霧圖像、CycleGAN、Pix2pix、DRPAN 和軟件加霧效果.
Table 1 Comparison of FADE indicators表1 FADE 指標(biāo)對(duì)比
由表1 可見:在利用Pix2pix、CycleGAN、DRPAN、軟件加霧和本文算法處理后,圖像的fog dens ity 指標(biāo)明顯上升,相對(duì)DRPAN 加霧程度最低,CycleGAN 程度最高.Pix2pix 和本文算法以及軟件加霧的加霧程度相近.這也與主觀效果相似.CycleGAN 之所以該項(xiàng)指標(biāo)更高,也是由于圖像色彩較少,整體圖像色彩偏黃綠色.
本文也采用PSNR 和SSIM[31]指標(biāo)對(duì)進(jìn)行真實(shí)圖像定性對(duì)比分析.PNSR 值越高,說明生成圖像與原圖更加相似,失真越少.當(dāng)SSIM 值越接近1 時(shí),則生成圖像與原圖的結(jié)構(gòu)越相近,表明生成圖像效果越好.對(duì)比結(jié)果見表2,將原始圖像做基準(zhǔn)圖像,分別對(duì)本文算法加霧結(jié)果,將本文算法得到的加霧圖像利用DCP 算法得到去霧圖像求PSNR 和SSIM 指標(biāo).在表2 中,對(duì)40 張測(cè)試圖的PSNR 和SSIM 進(jìn)行統(tǒng)計(jì),其平均值和均方差結(jié)果如下.
Table 2 Comparison of PSNR and SSIM indicators表2 PSNR 和SSIM 指標(biāo)對(duì)比
由表2 分析PSNR 和SSIM.首先,本文算法在進(jìn)行去霧后,圖像的PSNR值明顯上升,其中,紅色為本文加霧后結(jié)果,深藍(lán)色為本文算法的結(jié)果進(jìn)行去霧后的效果.同時(shí),本文算法和軟件加霧以及Pix2pix 算法在對(duì)圖像進(jìn)行加霧后,圖像的PSNR 值基本維持在一定范圍內(nèi)波動(dòng)較小,而DRPAN 和CycleGAN 波動(dòng)較大,則證明DRPAN和CycleGAN 算法加霧效果較差.這一點(diǎn),從主觀效果中也能夠明顯體現(xiàn).而CycleGAN 在幾個(gè)加霧算法中PSNR值基本最低,也是由于該算法生成的圖像內(nèi)容出現(xiàn)誤差和缺失.而DRPAN 的PSNR 值整體偏高,并非該算法的加霧效果好,而是證明該算法更與無霧圖像接近,也即加霧效果并不明顯.
SSIM 指標(biāo)只能做參考,因?yàn)槿レF算法并不能夠?qū)崿F(xiàn)完全去霧,且任何去霧算法或多或少都會(huì)出現(xiàn)霧的殘留、塊效應(yīng)、光暈、天空色彩失真等現(xiàn)象.而本文算法的結(jié)果在進(jìn)行去霧之后,SSIM 指標(biāo)有所上升.CycleGAN算法的SSIM 指標(biāo)則十分低,說明生成圖像的內(nèi)容與輸入圖像差別較大;其余4 個(gè)方法的加霧效果則基本維持在同一個(gè)水平.相比之下,DRPAN 的SSIM 值較高,因?yàn)槠渑c輸入圖像相近.
3.3.2 SAR 圖像轉(zhuǎn)換客觀指標(biāo)分析
在Pix2pix[1]算法中,對(duì)于圖像轉(zhuǎn)換后生成的圖像采取人為進(jìn)行觀察評(píng)價(jià)的方法.于是,本文對(duì)SAR圖像轉(zhuǎn)換以及地圖轉(zhuǎn)換進(jìn)行調(diào)查問卷調(diào)查,對(duì)多種算法進(jìn)行對(duì)比,并對(duì)圖像的真實(shí)程度評(píng)分(未給出真實(shí)圖像),當(dāng)生成圖像越真實(shí),真假難辨評(píng)分越高.最高5 分,最終在隨機(jī)人群中回收到的21 份問卷評(píng)分統(tǒng)計(jì)結(jié)果見表3.
Table 3 Comparison of SAR image conversion scores表3 SAR 圖像轉(zhuǎn)換得分對(duì)比
由結(jié)果可見:MUNIT 得分最低,主要是由于其圖像的邊緣基本都難以分辨;CycleGAN 得分僅比Pix2pix 略低,原因在于CycleGAN 能夠保留較為清晰和準(zhǔn)確的圖像邊緣,圖像整體也呈現(xiàn)灰白色彩,但其對(duì)于SAR 圖像的特征轉(zhuǎn)換的不夠準(zhǔn)確;而本文算法得分略高,原因在于不論色彩還是邊緣,本文算法效果均突出,且沒有塊效應(yīng)的出現(xiàn).
3.3.3 地圖轉(zhuǎn)換客觀指標(biāo)分析
同樣采取SAR 圖像轉(zhuǎn)換一樣的問卷調(diào)查,對(duì)于21 份回收結(jié)果進(jìn)行分析——平均值及均方差,結(jié)果見表4.
Table 4 Comparison of map conversion scores表4 地圖轉(zhuǎn)換得分對(duì)比
由圖像的得分可見:Pix2pix 和CycleGAN 得分相近,均為中等分?jǐn)?shù),圖像轉(zhuǎn)換效果可圈可點(diǎn),道路、草地等轉(zhuǎn)換也都較為準(zhǔn)確;本文算法和DRPAN 得分相近且略高,DRPAN 的色彩鮮艷,且分割完整,線條流暢;而本文算法色彩較暗,分割完整,但在線條上更加筆直.
3.3.4 白天夜晚轉(zhuǎn)換客觀指標(biāo)分析
同樣采取SAR 圖像轉(zhuǎn)換一樣的問卷調(diào)查,對(duì)于21 份回收結(jié)果進(jìn)行分析——平均值及均方差,結(jié)果見表5.
Table 5 Comparison of day-night conversion scores表5 白天夜晚轉(zhuǎn)換得分對(duì)比
由圖像的得分可見:Pix2pix,DRPAN 和本文算法得分相近,且波動(dòng)范圍較大,夜晚圖像轉(zhuǎn)換效果可圈可點(diǎn);Pix2pix 和 DRPAN 在色彩與飽和度方面做得更好,本文算法則在紋理結(jié)構(gòu)以及圖像失真方面做得更好;CycleGAN 算法在這一轉(zhuǎn)換任務(wù)上表現(xiàn)較差,色彩上較為暗淡,圖像的紋理結(jié)構(gòu)也大多丟失.
本文介紹了基于生成對(duì)抗網(wǎng)絡(luò)的圖像場(chǎng)景轉(zhuǎn)換算法的具體內(nèi)容.首先介紹了算法的跨層連接生成器網(wǎng)絡(luò)設(shè)計(jì)、多尺度判決器網(wǎng)絡(luò)設(shè)計(jì)以及損失函數(shù)的4 種組合;接著對(duì)網(wǎng)絡(luò)模塊性能進(jìn)行分析,從實(shí)驗(yàn)證明本文算法設(shè)計(jì)的合理性;接著介紹實(shí)驗(yàn)的平臺(tái)、硬件軟件等,之后分別從主觀效果和客觀指標(biāo)進(jìn)行分析.在主觀效果上,分析了本文算法與其他基于生成對(duì)抗網(wǎng)絡(luò)的圖像轉(zhuǎn)換算法對(duì)于場(chǎng)景轉(zhuǎn)換的效果,包括霧霾場(chǎng)景轉(zhuǎn)換、SAR 圖像轉(zhuǎn)換、谷歌地圖轉(zhuǎn)換以及白天黑夜轉(zhuǎn)換.在客觀指標(biāo)上,本文算法效果表現(xiàn)也略為突出.