圖像美化論文筆記: Deep Photo Enhancer:Unpaired Learning for Image Enhancement from Photographs with GANs

論文地址:Deep Photo Enhancer:Unpaired Learning for Image Enhancement from Photographs with GANs

來源: 2018 CVPR

在線demo:http://www.cmlab.csie.ntu.edu.tw/project/Deep-Photo-Enhancer/

GitHub:https://github.com/nothinglo/Deep-Photo-Enhancer  

任務:image enhancement 圖像增強 

方法:將這一問題作爲 image to image translation任務,使用改進的two-way GAN 實現unpaid訓練集進行訓練

創新:global U-Net  + A-WGAN

引言:

文章將圖像增強作爲了一種圖像翻譯來進行處理,使用GAN做圖像翻譯,就我而言印象深刻的可能就是17年的兩篇文章:pix2pix 和 cycGAN 。一個是paired,一個是unpaired,並且文章中有很多有趣的應用。

基於這兩篇文章,在圖像增強上也出現了大量的採用GAN來進行成對和非成對數據的工作。

而這篇DPE是將GAN應用到圖像增強上。大的方向也是不成對的數據集,進行訓練,來解決成對數據集收集的困難這一問題。

數據:

Paired:

自構建數據集: 如果自己構建數據集對差的圖片進行一張張ps處理是不現實的,可以採取【將大量好的圖片使用傳統圖像處理方法不同程度變壞】的方式 

公開數據集: ① MIT-Adobe FiveK Dataset

                       ② DSLR Photo Enhancement Dataset

Unpaired:

不要求一一對應,是域與域的構建。對於差的圖片,當然是你要改善的一些圖片。而好的圖片可以在Flickr上面根據主題查找一些好看的圖片。

文章具體細節:

這部分介紹將主要針對2-way gan,文中對1-way gan的介紹也是想引出後面的介紹

1. 整體網絡結構和網絡信息流向

文中所使用的改變的兩階段生成對抗網絡和Cycgan相似,但是在細節上還有不同

兩階段的GAN保持着兩個方向的映射關係,從x->y和y->x 。具體網絡信息流向表達如下:

2.具體網絡結構

在GAN中生成器一直扮演着重要的角色,因爲它將充當最終的美化轉化器 ,G的具體結構如下圖所示,G網絡是基於U-Net進行設計的,U-Net最早在生物醫學圖像分割領域被提出,但是在之後的許多任務都表現出了較強的性能。然而,U-Net可能不包括全局特徵的提取。而全局特徵可以揭示高級信息,例如場景類別、主體類別或整體照明條件等,這些信息可用於各個像素以確定其局部調整。對於圖像增強而言,這些信息是十分重要的。所以將全局特徵添加到了U-Net中,全局特徵提取通道與U-Net結構共享前五層的卷積-激活-批歸一化層,得到第五層的特徵圖後,全局特徵提取通道進一步將特徵圖縮小然後通過全連接層。爲了將全連接層提取特徵圖與U-Net低層特徵相融合,使用特徵拷貝的方式將1*1*128的特徵圖複製多份並將其與U-Net進行連接。網絡除了U-Net具有的特徵保留性的U前後跳躍連接,還參考了殘差學習的思想,G僅學習輸入圖片與標籤圖片的差異。G結構中全局特徵提取通道的設計是十分巧妙的,並不需要一個額外的監督網絡訓練而是使用了U-Net本身來編碼隱式特徵向量。對於D實質上是一個二分類的網絡,由幾層卷積構成,具體結構見下圖,其主要作用是進行真假圖片的判斷。

大多數雙向GAN對網絡中的Gx和Gx' 使用相同的生成器,因爲它們都將來自域X的輸入映射到域 Y,對於Gy 和Gy '也是如此。然而,兩者的輸入可能具有不同的分佈特徵,生成器最好適應它們自己的輸入。因此,文中的生成器共享除批歸一化層之外的所有層和參數。每個生成器都有自己的批歸一化層,以便更好地適應其自身輸入的特性。

3.損失函數和優化方式

衆所周知,自從2014年被提出,GAN雖然驚豔四座,但是其訓練困難、生成樣本缺乏多樣性等問題就一直被人詬病。從DCGAN依靠枚舉實驗仔細的設計G和D的網絡結構到Wasserstein GAN使用Lipschitz連續近似地最小化Wasserstein距離,大量的學者都在爲GAN的訓練優化進行研究探索。而本文所採用的是一種A-WGAN的方式,WGAN滿足Lipschitz連續的方式是使用權重裁剪的方式,具體做法爲當D的參數每更新一次就進行參數值大小的判斷,如若其超出所定域值,就將超出的參數截取到閾值範圍內保證訓練過程中所有的參數有界。然而這種方式會使權重分佈在閾值範圍的兩側,極易導致網絡梯度消失或者梯度爆炸。針對這一情況,WGAN-GP通過添加梯度懲罰項損失來進行直接約束D的梯度範圍。然而對於懲罰項參數 的選擇是一個難題,如果 太小,則無法保證Lipschitz約束。反之,如果 太大,則網絡的收斂速度可能是極其緩慢的。因爲本文將使用A-WGAN的方式,A-WGAN是在WGAN-GP的基礎上進行自適應性地調節 的。

基於上述的介紹,可以容易地定義GAN的損失函數,網絡的目標包括以下幾個損失。第一個是內容映射損失 ,其要求變換圖像的內容y'應該與輸入圖像x相似。由於是雙向GAN,還有從y 到x'的映射對應損失。具體公式如下:

第二個損失是兩階段GAN的一致性損失C下:

還有生成對抗網絡的對抗損失:

訓練判別器D時,梯度懲罰項P將被添加到損失中,其具體定義如下:

上述這一項確保了Lipschitz連續,爲了近似最小化Wasserstein距離。因此對於G和D分別用如下公式進行優化。

G優化公式:

D優化公式:

4.評估方式和實驗結果

文中使用了兩種全參考的客觀評價指標PSNR和SSIM來對有label的圖片進行評價。

PSNR峯值信噪比:是一種評價圖像的客觀標準,PSNR的本質和MSE相同,是MSE的對數表示。peak就是指8bits表示的最大值255,MSE是均方誤差。PSNR以dB爲單位,PSNR值越大表示圖像失真越小。具體公式如下(源於維基百科)

SSIM結構相似性是一種用以衡量兩張數位影像相似程度的指標。當兩張影像其中一張爲無失真影像,另一張爲失真後的影像,二者的結構相似性可以看成是失真影像的影像品質衡量指標。相較於傳統所使用的影像品質衡量指標,像是峯值信噪比,結構相似性在影像品質的衡量上更能符合人眼對影像品質的判斷。具體公式定義如下(源於維基百科):

文中使用兩種方法評估了 MIT-Adobe 5K dataset 數據集測試結果,與以往結果對比,所提模型有良好的效果。

然而對於圖像美化而言,只是使用客觀的方式來評價是單一且有偏差的。爲此往往需要人工的參與,一般文章都會採用衆包的方式,本文中也通過用戶使用報告來驗證了模型的效果。

通過上述矩陣也可以看出,400張測試圖片中,與其他4種模型相比,文中所提模型都是用戶認可率最高的。

5.結果展示

6. 風險與隱患

1)如果輸入非常暗並且包含大量噪聲,模型可能放大噪聲。

2)由於用於unpaired 訓練的HDR圖像是Tone Mapping而來,因此模型圖片可能會出現從一些圖像的色調映射得到一些halo artifacts的現象 。

3)對於unpaired的網絡訓練,訓練集的domain的選擇很重要,針對文章中選擇的更外景,更多的藍天、大海。如果我們不加選擇的使用,輸入的圖片會出現不明所以的藍。(可在在線demo測試圖片)

7.代碼與在線demo

作者公開了在線demo上的代碼以及權重文件,提供了以下四種模型:

HDR(最大輸出圖片大小2048)

HDR (最大輸出圖片大小512)

MIT-ADOBE 5K(unpaired maxL 512)

MIT-ADOBE 5K(paired maxL 512)

 

在我理解前三種模型都是基於2 way gan訓練得到的,其中前兩個HDR的 是域MIT數據到在Flickr尋找的HDR圖片的美化映射過程,更改了圖片輸出大小。MIT-ADOBE 5K(unpaired maxL 512)也是2 way gan訓練得到的,是原圖到專家Cps圖之間的美化映射。而MIT-ADOBE 5K(paired maxL 512)是一對一對的對應數據輸入,使用的是文章中提出的生成器訓練而得。

 

自己訓練網絡的時候,在網上下載的MIT-ADOBE 5K數據集使用Lightroom進行導出。大小:最長邊512  格式:SRGB

 

更多具體的細節可以仔細閱讀作者公佈的代碼以及Issues,作者雖然說自己的代碼沒時間整理很ugly 但是在閱讀的時候還是可以學到很多不一樣的想法,比如在unet的上採樣過程中作者採用的是圖像插值擴增的方式,處理全連接地方作者採用的是卷積代替全連接,在測試過程中可以通過將卷積變爲空洞卷積來處理任意大小的輸入輸出等等。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章