天天看點

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

[paper]Perceptual Losses for Real-Time Style Transfer and Super-Resolution(2016)

Perceptual Losses for Real-Time Style Transfer and Super-Resolution:Supplementary Material

圖像風格化

風格遷移簡單的了解為,将一張圖像在儲存原圖大緻的紋理結構的同時,具有别的圖像的風格。即對圖像加了一個風格濾鏡。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

圖像風格化(Neural Style Transfer)是将一張照片渲染成有藝術風格的畫作。圖像風格化算法的輸入有二,分别是内容圖和風格圖,輸出有一個,為風格遷移後的結果圖。

圖像風格化算法是一個圖像渲染的過程。在圖形學的非真實感圖形學領域,圖像藝術風格技術可以大體分為:

  • 基于筆觸渲染的方法(Stroke-based Rendering)

    基于筆觸渲染的方法,在算法設計之前首先會确定某一種風格,即每一個基于筆觸渲染的方法一般隻對應于一種風格,而不能簡單的擴充到其他風格的遷移。

  • 基于圖像類比的方法(Image Analogy)

    圖像類比方法需要很多成對的原圖和風格結果圖作為訓練集,然後對所有風格圖像找到這些成對的資料貌似不太現實。

  • 基于圖像濾波的方法(Image Filtering)

    通過圖像濾波的方法速度快、效果穩定,可滿足工業界落地的需求,但是基于圖像濾波方法能模拟出來的風格種類很有限。

在基于統計學的計算機視覺領域,圖像藝術風格渲染一般被認為是紋理合成的一個擴充問題。紋理合成是給定一個源紋理圖,然後取合成更多類似的紋理結構,最終組成一個大的紋理圖。風格遷移中的風格圖可以看成是一種紋理,由此,假如我們在合成紋理圖的時候去刻意保留一些語義資訊,就是風格遷移。

紋理模組化方法(Visual Texture Modelling),主要研究如何表示一種紋理,是紋理合成技術的核心。紋理合成方法可以分為兩大類:

  • 基于統計分布的參數化紋理模組化方法(Parametric Texture Modelling with Summary Statistics)

    基于統計分布的參數化方法主要将紋理模組化為N階統計量

  • 基于MRF的非參數化紋理模組化方法(Non-parametric Texture Modelling with MRFs)

    基于MRF的方法是用patch相似度比對進行逐點合成。

紋理模組化方法解決了對風格圖中的風格特征進行模組化和提取。把風格圖像中的風格提取之後,和内容混合還原成一個相應的風格化需要圖像重建(Image Reconstruction)。

圖像重建解決如何将給定的特征表達重建還原為一張圖像。圖像重建的輸入是特征表達,輸出是特征表達對應的圖像。與通常的輸入圖像提取特征的過程相反,是把某個特征逆向重建為原來的圖像,重建結果不唯一。圖像重建算法分為:

  • 基于線上圖像優化的慢速圖像重建方法(Slow Image Reconstruction based on Online Image Optimisation)

    在圖像像素空間做梯度下降來最小化目标函數。由随機噪聲作為起始圖,然後不斷疊代改變圖檔的所有像素值來尋找一個目标結果圖 x ′ x' x′,這個目标結果圖的特征表達和作為重建目标的目标特征表達 Φ ( x ) \Phi(x) Φ(x)相似,即像素疊代的目标為 Φ ( x ′ ) ≈ Φ ( x ) \Phi(x') \approx \Phi(x) Φ(x′)≈Φ(x)。由于每個重建結果都需要在像素空間進行疊代優化很多次,這種方式是很耗時的(幾百乘幾百的圖需要幾分鐘),尤其是當需要的重建結果是高清圖的時候,占用的計算資源以及需要的時間開銷很大。

  • 基于離線模型優化的快速圖像重建方法(Fast Image Reconstruction based on Offline Model Optimisation)

    設計一個前向網絡,用資料驅動的方式,喂給它很多訓練資料去提前訓練它,訓練的目的是給定一個特征表達作為輸入,這個訓練好的網絡隻需要一次前向就能輸出一張重建結果圖像。如果再融入生成對抗網絡的思想,會進一步提升效果。

以前的圖像重建主要是用來了解某些特征表達的,圖像重建提供了一個可以加深特征了解的途徑。假如說給定一張猴子的某個圖像分類特征,重建出來的不同結果中猴子的五官位置均正確定留,而其他的比如顔色等不同結果不太一樣,那麼可以了解成次分類網絡在分類猴子這個類别的圖像的時候,會參考五官的位置來與其它類别進行區分。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

通過重建預訓練的分類網絡中的高層特征,發現重建結果保留了高層語義資訊,而摒棄了低層的顔色等資訊。加入在圖像重建時加上保留給定風格資訊的限制,就可以讓重建出的結果既有想要的内容圖的高層語義資訊,又有給定風格圖像中包含的風格資訊。圖像風格化遷移由此誕生。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

按照圖像風格化遷移算法=圖像重建算法+紋理模組化算法,圖像風格化可以分為基于線上優化的慢速圖像風格遷移算法(Slow Neural Method Based On Online Image Optimisation)和基于離線模型優化的快速圖像風格化遷移算法(Fast Neural Method Based On Offline Model Optimisation)的方法。

基于線上優化的慢速圖像風格遷移算法(Slow Neural Method Based On Online Image Optimisation)

  • 基于統計分布的參數化慢速風格化遷移算法(Parametric Slow Neural Method with Summary Statistics)
    • 基于CNN的紋理模組化方法(Texture Synthesis Using Convolutional Neural Networks)是在圖像經過預訓練的VGG網絡時的特征表達(feature map)上計算Gram矩陣,利用得到的Gram矩陣來表示一種紋理。Gram矩陣的計算方式是先将預訓練VGG某一層的特征表達 F l ( I ) F^l(I) Fl(I)由 R C × H × W R^{C \times H \times W} RC×H×Wreshape成 R C × ( H W ) R^{C \times (HW)} RC×(HW),然後用reshape後的特征表達和其轉置矩陣相乘 [ F l ( I ) ] × [ F l ( I ) ] T [F^l(I)] \times [F^l(I)]^T [Fl(I)]×[Fl(I)]T,最後得到的Gram矩陣次元為 R C × C R^{C \times C} RC×C。這個Gram矩陣可以很好的表示大多數紋理。這個Gram矩陣的紋理表示方法其實是利用了二階統計量來對紋理進行模組化。用Gram矩陣來對圖像中的風格進行模組化和提取,再利用慢速圖像重建方法,讓重建後的圖像以梯度下降的方式更新像素值,使其Gram矩陣接近風格圖的Gram矩陣(即風格相似),然後其VGG網絡的高層特征表達接近内容圖的特征表達(即内容相似),實際應用時會再加個總分TV項來對結果進行平滑,最終重建出來的結果圖就既擁有風格圖的風格,又有内容圖的内容了。
    • Demystifying Neural Style Transfer從Domain Adaption的角度度風格化遷移進行解釋和分析,Domain Adaption指的是當訓練資料和測試資料屬于不同的域時,通過某種手段利用源域有标簽的訓練資料訓練得到的模型,去預測無标簽的測試資料所在的目标域中的資料。Domain Adaption以最小化統計分布差異度量MMD,讓目标域中的資料和源域中的資料建立起一種映射轉換關系。最小化重建結果圖和風格圖的Gram統計量差異其實等價于最小化兩個域統計分布之間的基于二階核函數的MMD。即風格遷移的過程其實可以看做是讓目标風格化結果圖的特征表達二階統計分布去盡可能的逼近風格圖的特征表達二階統計分布。既然是衡量統計分布差異,除了有二階核函數的MMD外,其他的MMD核函數例如一階線性核函數、高階核函數、高斯核函數,也可能達到和Gram統計量類似的效果。這些計算風格特征的方式其實都是在特征表達(feature map)的所有channel上進行計算的。
    • 用channel-wise的BN統計量取對風格進行模組化的方法,利用VGG某些層的特征表達 F c l ∈ R H × W F^l_c \in R^{H \times W} Fcl​∈RH×W的每一個channel的均值和方差(channel-wise)來表示風格。( F c l ∈ R H × W F^l_c \in R^{H \times W} Fcl​∈RH×W表示VGG中第 l l l層的feature map的第 c c c個channel)。
    • Laplacian-Steered Neural Style Transfer,提出在風格化遷移的過程中同時考慮像素空間和特征空間。因為之前的風格化算法在提取特征的時候都是在高層的CNN特征空間(feature map)中完成的,雖然這樣做的效果在感覺效果上(perceptually)優于利用傳統的在像素空間(pixel space)計算的特征,但由于特征空間是對圖像的一種抽象表達,會不可避免丢失一些低層次的如邊緣等的圖形資訊,這會導緻風格化結果圖中有一些變形等。具體做法為在像素空間中将内容圖的拉普拉斯算子的濾波結果和風格化重建結果之間的差異作為一個新的Loss,加到基于CNN的紋理模組化方法(Texture Synthesis Using Convolutional Neural Networks)提出的損失函數上面,這樣就彌補了抽象特征空間丢失低層次圖像資訊的缺點。
  • 基于MRF的非參數化慢速風格化遷移算法(Non-parametric Slow Neural Method with MRFs)
    • Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis提出了一個取代Gram損失的新的MRF損失。思路與傳統的MRF非參數化紋理模組化方法相似,即先将風格圖和重建風格化結果圖分成若幹patch,然後對于每個重建結果圖中的patch,去尋找并逼近與其最接近的風格patch。與傳統MRF模組化方法不同之處在于以上操作是在CNN特征空間中完成的。還需要加一個基于CNN的紋理模組化方法(Texture Synthesis Using Convolutional Neural Networks)提出的内容損失來保證不丢失内容圖中的高層語義資訊。這種基于patch的風格模組化方法相比較以往基于統計分布的方法的一個明顯優勢在于,當風格圖不是一幅藝術畫作,而是和内容圖内容相近的一張攝影照片(Photorealistic Style),這種基于patch比對(patch matching)的方式可以很好地保留圖像中的局部結構等資訊。

基于離線模型優化的快速圖像風格化遷移算法(Fast Neural Method Based On Offline Model Optimisation)

基預先訓練前向網絡來解決計算量大、速度慢的問題。根據一個訓練好的前向網絡能夠學習到多少個風格作為分類依據,我們将快速圖像風格化遷移算法分為單模型單風格 (PSPM)、單模型多風格 (MSPM) 和 單模型任意風格 (ASPM) 的快速風格化遷移算法。

  • 單模型單風格的快速風格化遷移算法(Per-Style-Per-Model Fast Neural Method)

    主要想法是針對每一個風格圖,我們去訓練一個特定(style specific)的前向模型,這樣當測試的時候,我們隻需要向前向模型扔進去一張内容圖,就可以前向出一個風格化結果了。

  • 單模型多風格的快速風格化遷移算法(Multiple-Style-Per-Model Fast Neural Method)

    發掘出不同風格網絡之間共享的部分,然後對于新的風格隻去改變其有差别的部分,共享的部分保持不變。

  • 單模型任意風格的快速風格化遷移算法(Arbitrary-Style-Per-Model Fast Neural Method)

    給定一個新風格不需要訓練,我們就可以很快速地把風格化結果輸出來。

按照運作速度,又有以下分類:

  • 原始的 Optimization-based method
    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
    簡單來說便是輸入一張随機噪音構成的底圖,通過計算Style Loss和Content Loss,疊代update底圖,使其風格紋理上與Style Image相似,内容上與原照片相似。正常的訓練過程是通過loss反向傳播更新網絡參數,這裡則是用一個已經訓練好的VGG16作為backbone,鎖住參數,更新輸入的底圖。
  • 一次成型的Feedforward-based method
    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
    增加了一個Autoencoder形狀的Feedforward Net 來拟合風格遷移的過程。仍然是之前的Content Loss+Style loss,用另一個網絡來計算并統一在一起稱之為 Perceptual Loss。
  • One network, multiple styles

    微軟亞研這篇的模型由三部分組成,Encoder E, StyleBank Layer K, Decoder D. 作者希望将content和style的生成分離,即 E+D負責重建Content, 不同的K 則控制不同style的風格,每個模型可以有多達50個不同的K。

    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
  • Arbitrary style in one model

    做到Multi-style single model後又開始想怎麼設計一個universal model,丢進去什麼新的style都可以實時進行transfer,而無需重新訓練。

    作者argue到不同的style其實由feature的variance和mean決定,是以通過将Content image的feature 轉換,使其與style image的feature有相同的variance和mean即可實作style transfer

    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

《Image Style Transfer Using Convolutional Neural Networks》

[paper] Image Style Transfer Using Convolutional Neural Networks

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

風格遷移任務,可以概括為把一張圖像的紋理資訊加到一張圖像上,而保持該圖像的語義内容不變。變換的難點在于如何明确的表征圖像的語義資訊,進而允許把圖像的content與style二者分割開來。

風格遷移有時候可以認為是紋理遷移,而紋理遷移的目的是在目标圖像上合成源圖像中存在的紋理,同時保持目标圖像的語義資訊。該領域存在很多非參數的方法,通過采樣源圖像的紋理像素來實作。但是非參數的采樣方法隻利用了圖像的低層特征,這造成了該類方法的局限。理想狀态,風格遷移算法應該能夠抽取圖像的語義内容,再進行紋理合成。那麼首要的任務就是如何獨立的為圖像的語義内容和紋理風格模組化。

使用了經典的VGG19網絡來提取圖像的高層語義特征,它具有16個卷積層和5個池化層,未使用任何的全連接配接層。還對VGG的參數進行了不改變其輸出的正則化,并且發現平均池化相比最大池化取得了稍微更好的結果。

在該風格遷移的過程中有三個架構和三張輸入圖檔。a是風格圖,p是内容圖,x是随機生成的噪聲圖。該過程的總體思想是通過對噪聲圖像進行限制,使其不斷的同時趨近于内容圖也趨近于風格圖。内容損失 L c o n t e n t L_{content} Lcontent​是由内容圖和随機噪聲圖經過卷積濾波後,在第四層分别的feature map的距離的平方和。風格損失 L s t y l e L_{style} Lstyle​先對風格圖和噪聲圖的每一層濾波feature map分别求gram矩陣,再求其距離的平方和,再将5層的結果權重求和,獲得風格損失。最後将兩種損失權重求和求得總的損失 L t o t a l L_{total} Ltotal​,即産生對x噪聲圖的限制。利用反向傳播算法,疊代更新權重和偏置參數,進而更新輸入圖像。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
  • 内容表示和内容損失

    内容表示本質上就是圖像輸入到神經網絡後,某一卷積層的輸出特征圖。當然采取不同的卷積層輸出的特征圖不一緻,得到的内容表示也不一緻。

    由生成圖像提取出的内容表示和真實圖像提取的内容表示的差異可以計算出内容損失,計算方法是對比生成圖像在某一卷積層的輸出特征圖與真實圖像在相同卷積層的輸出特征圖二者的逐像素差異,即内容損失實質上就是在生成圖像和真實圖像卷積得到的特征圖上再計算逐像素損失。其計算公式表示如下:

    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
    經過卷積神經網絡多層卷積後,可以得到更接近于圖像真實内容的特征圖,但和它原本的确切的外觀可能會有所變化。是以,在網絡中的更高層基于目标和他們的位置來捕捉高層内容,而不是關注于重建圖像的像素值之間的差異。
  • 風格表示和風格損失
    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
  • 風格遷移
    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

實驗結果

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

對實驗結果的讨論

  • 風格和内容的一些權衡

    當然,很好地分離并不意味着我們可以完全将圖像風格和内容進行分離。當合成一張圖像其中帶有一張圖像的内容和另一張圖像的風格時,通常不存在能同時比對所有限制的圖像。然而,因為我們在圖像合成中優化的損失函數是一個風格損失和内容損失的線性組合,我們可以平滑地進行調節,将重點放在重建内容或是重建風格,下圖展示了原始圖像随着比對内容與比對風格的相對權重的變化而變化的結果,圖上的比例10-3代表了内容損失項與風格權重項的權重相除(注意是損失項的權重相除,而不是損失值相除)的結果。是以從左往右,從上到下代表了内容損失項占的權重越來越大的結果。

    由下圖結果可以看出,重點強調風格(左上角)會導緻圖像過于比對期望的風格資訊,而重點強調内容則會生成一個僅有少量風格資訊的圖像。作者提出在實踐中要在這兩種極端之間進行平衡,最後取得視覺上吸引人的圖像。

    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
  • 不同卷積層的生成效果

    在圖像合成過程中的另一個重要問題則是提取風格和内容表示的神經網絡的卷積層的選擇。作者發現以更高層提取的風格特征作為待比對的風格特征,可以在風格遷移後的圖像上取得更平滑和更連續的視覺體驗。至于内容表示提取層的選擇,在固定風格和權重超參的情況下,作者進行了對比如下圖。

    由下圖可以看出,比對網絡中不同層提取的内容特征的影響。如圖所示,如果比對conv2_2的内容特征則可以保留原始圖像更多細節結構與詳細的像素資訊。當比對conv4_2層的内容特征時,内容特征和風格特征比對地更深,輸出圖像的内容以風格圖像的風格的形式被展示。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
  • 待轉換圖像初始化方法

    無論是用内容圖像、風格圖像或是噪聲圖像進行初始化,最後取得的結果都差不多。

    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)

[paper]Perceptual Losses for Real-Time Style Transfer

and Super-Resolution(2016)

[Supplementary Material]Perceptual Losses for Real-Time Style Transfer

and Super-Resolution: Supplementary Material

原始的風格遷移的速度是非常慢的。在GPU上,生成一張圖檔都需要10分鐘左右,而如果隻使用CPU而不使用GPU運作程式,甚至需要幾個小時。這個時間還會随着圖檔尺寸的增大而迅速增大。這其中的原因在于,在原始的風格遷移過程中,把生成圖檔的過程當做一個“訓練”的過程。每生成一張圖檔,都相當于要訓練一次模型,這中間可能會疊代幾百幾千次。從頭訓練一個模型要比執行一個已經訓練好的模型要費時太多。而這也正是原始的風格遷移速度緩慢的原因。

圖像轉換問題(image transformation tasks),輸入一副圖像轉換成另一幅圖像輸出。現有方法來解決的圖像轉換問題,往往以監督訓練的方式,訓練一個前向傳播的網絡,利用的就是圖像像素級之間的誤差。這種方法在測試的時候非常有效,因為僅僅需要一次前向傳播即可。但是,像素級的誤差沒有捕獲輸出和ground-truth圖像之間的感覺差別(perceptual differences)。

高品質的圖像可以通過定義和優化perceptual loss函數來生成,該損失函數基于使用預訓練好的網絡提供的高層的特征。

将兩者的優勢進行結合,訓練一個前向傳播的網絡進行圖像轉換的任務,但是不用 pixel-level loss function,而采用 perceptual loss function。在訓練的過程中,感覺誤差衡量了圖像之間的相似性,在測試的時可實時運作。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

網絡主要由兩個部分構成:一個是 image transformation network 一個是 loss network 用來定義 loss function。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

注:圖中藍線加黑線表示内容損失,作用在較低特征層上。紅線和黑線表示風格損失,作用在從低到高所有特征層上。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

在使用過程中,Transform網絡用來對圖像進行轉換,它的參數是變化的,而Loss網絡,則保持參數不變,Transform的結果圖、風格圖和内容圖都是通過Loss 網絡得到每一層的feature激活值,并以之進行Loss計算。

風格是什麼?對世界有着豐富而敏感的人,可以感受得到,但是用語言精确描述到可以量化的程度很難做到。無法精确的定量描述風格是什麼,如何去教機器去了解什麼是風格?取巧的方式是既然無法定義風格是什麼,可以定義風格不是什麼。

風格絕對不是内容,即同樣一幅美術作品的内容,是可以用不同的風格來表達的,而具有同樣風格的作品,可以具有完全不同的内容。更具體的說,風格是一種特征,這種特征具有位置不敏感性。

是以可以借用訓練好的深度卷積網絡,前向傳播提取圖檔的特征圖 F ∈ R C × H × W F \in R^{C \times H \times W} F∈RC×H×W後,對每個點的特征 F h , w ∈ R C F_{h,w} \in R^C Fh,w​∈RC求其Gram矩陣得到 G h , w = F h , w F h , w T ∈ R C × C G_{h,w}=F_{h,w}F^T_{h,w} \in R^{C \times C} Gh,w​=Fh,w​Fh,wT​∈RC×C,然後将每個點的Gram矩陣相加 G = ∑ h , w G h , w = ∑ h , w F h , w F h , w T ∈ R C × C G=\sum _{h,w}G_{h,w}=\sum_{h,w}F_{h,w}F^T_{h,w} \in R^{C \times C} G=∑h,w​Gh,w​=∑h,w​Fh,w​Fh,wT​∈RC×C這個Gram矩陣最大的特點就是具有位置不敏感性,是以,可以将這個G當作衡量一張圖檔風格的量化描述,考慮到一個卷積佘甯網絡中間有多層特征圖,對于每層特征圖都可以得到Gram矩陣,可以使用 { G 1 , G 2 , . . . G l } \{G_1, G_2, ...G_l\} {G1​,G2​,...Gl​}來更為全面的描述一張圖的風格,相應的損失函數為:

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

對圖像的風格量化描述後,對圖檔的内容進行量化描述,直接用每一層的特征圖來描述即可: { F 1 , F 2 , . . . F l } \{F_1, F_2,...F_l\} {F1​,F2​,...Fl​},相應的損失函數為:

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

為了保持風格轉換後的低層的特征,引入兩個簡單的Loss,MSE Loss和total variation loss。MSE Loss為:

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

total variation loss是為了提高圖像的平滑度:

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

整體的loss為:

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

其中,Gram矩陣就是每一層濾波後的feature map,将其轉置并相乘得到的矩陣,如下圖說是。其實就是不同濾波器結果feature map兩兩之間的相關性。譬如說,某一層中有一個濾波器專門檢測尖尖的塔頂這樣的東西,另一個濾波器專門檢測黑色。又有一個濾波器負責檢測圓圓的東西,又有一個濾波器用來檢測金黃色。對梵高的原圖做Gram矩陣,誰的相關性會比較大呢?如下圖所示,尖尖的和黑色總是一起出現的,它們的相關性比較高。而圓圓的和金黃色都是一起出現的,它們的相關性比較高。是以在風格轉移的時候,其實也是在風景裡取尋找這種比對,将尖尖的渲染為黑色,将圓圓的渲染為金黃色。如果假設圖像的藝術風格就是其基本形狀與色彩的組合方式,那麼Gram矩陣能夠表征藝術風格就是理所當然的事情了。

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

實驗結果

圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20210716134040843.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N0dWR5ZWJveQ==,size_16,color_FFFFFF,t_70)

作用:

  • 在超分辨率中,因為經常使用MSE損失函數,灰階熬制輸出圖檔比較平滑(丢失了細節部分/高頻部分),是以适當選擇某個輸出的特征輸入感覺損失函數是可以增強細節。
  • 在風格轉移中,用一個感覺損失函數來訓練圖像轉換網絡能讓輸出非常接近目标圖像,但并不是讓他們做到完全比對。

超分辨率

《Loss Functions for Image Restoration with Neural Networks》中對圖像複原任務中的損失函數進行了比較,指出了L2損失的一些缺點:

  • L2損失對大的error有強的懲罰,對小的error的懲罰低,忽略了圖像内容本身的影響。實際上人眼視覺系統(HVS)對圖像中的無紋理區域的亮度和顔色變化更敏感。而目前使用的感覺損失,即Perceptual loss,在得到感覺域内容的過程中,對圖像的内容進行了一次提煉,是以在感覺域空間中計算損失相當于結合圖像内容的損失,會使得複原後的圖像視覺效果上更好。
  • L2損失的收斂性能比L1要差。理論上說,L2損失是刷高PSNR名額的理想損失函數,但是具體在應用的時候,複原的性能還是要取決于損失函數的收斂性能。文章對L2損失和L1損失進行了比較,在訓練中互動損失函數,檢視收斂情況,得出了收斂性能的對比圖:
    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率

    可以看到L1損失函數的收斂性能優于L2損失函數的。

    此外,文章也對不同的損失函數指導的模型的測試進行了對比,在超分辨率下:

    圖像風格化——感覺損失(perceptual loss)(2016)圖像風格化《Image Style Transfer Using Convolutional Neural Networks》《Perceptual Loss for Real-Time Style Transfer and Super-Resolution》(2016)超分辨率
    可以看出來使用L1損失函數優于使用L2損失函數。

MSE(Mean Squared Error),是圖像空間的内容“相似”,而在圖像上普遍存在區域,其屬于某個類别(老虎皮、草、漁網等),如果出現紋理或者網格,那麼優化MSE很容易将這個區域磨平,即平滑。

Perceptual Loss:是特征空間的類别/紋理“相似”,因為深度卷積網絡擁有圖像分類,利用的是物體的紋理差異。

多尺度(MS)-SSIM:圖像空間的結構“相似”,MS-SSIM+L1的混合損失适合于圖像複原。

參考資料

Loss Functions for Image Restoration with Neural Networks(2018)

在目前超分辨率的論文中不使用MSE,而使用L1或者Perceptual loss的原因是什麼?

Perceptual Loss: 提速圖像風格遷移1000倍

perceptual loss(感覺loss)介紹

Perceptual Loss(感覺損失)論文筆記

圖像風格轉換(Style Transfer | 風格遷移綜述)

圖像風格化算法綜述三部曲之 (一) (Neural Style Transfer: A Review)

圖像風格化算法綜述三部曲之 (二) (Neural Style Transfer: A Review)

圖像風格化算法綜述三部曲之 (三) (Neural Style Transfer: A Review)

Image Style Transfer Using Convolutional Neural Networks

經典論文重讀—風格遷移篇(一):Image Style Transfer Using Convolutional Neural Networks

Image Style Transfer Using Convolutional Neural Networks——風格遷移經典論文閱讀

Image Style Transfer:多風格 TensorFlow 實作

繼續閱讀