Perceptual Losses for Real-Time Style Transfer and Super-Resolution 筆記

這是發在 ECCV 2016的文章。

Abstract

考慮圖像轉換問題,其中輸入圖像被轉換為輸出圖像。

最近的方法問題通常使用輸出圖像與真實圖像之間的每像素損失來訓練前饋卷積神經網絡。

并行工作表明,可以基于從預訓練網絡中提取的高級特征來定義和優化感知損失函數,從而生成高質量圖像。

作者結合了兩種方法的優勢,并提出了使用感知損失函數進行訓練圖像轉換的前饋網絡。

展示了圖像樣式轉換的結果,其中訓練了前饋網絡以實時解決Gatys等人提出的優化問題。

與基于優化的方法相比,文章的網絡給出了相似的定性結果,但速度快了三個數量級。 我們還嘗試了單圖像超分辨率,其中用感知損失替換每個像素的損失在視覺上令人愉悅。

1. Introduction

解決圖像變換任務的一種方法是以有監督的方式訓練前饋卷積神經網絡,使用每一個像素損失函數來測量輸出圖像與真實圖像之間的差異。

但是,這個方法使用的每一個像素損失無法捕獲輸出圖像與真實圖像之間的感知差異;例如考慮兩個相同的圖像,彼此偏移一個像素; 盡管它們在感知上相似,但按每像素損失衡量,它們還是有很大差異的。

同時,最近的工作表明,可以使用感知損失函數生成高質量圖像,而不是基于像素之間的差異,而是基于從預訓練卷積神經網絡提取的高級圖像特征表示之間的差異。通過最小化損失函數來生成圖片,盡管這些方法能生成高質量的圖片,但是速度很慢

這篇文章中,我們聯合了兩個方法的優點。訓練前饋變換網絡來執行圖像變換任務,而不是僅根據低級像素信息使用每像素損失函數,而是使用依賴于預訓練損失網絡中高級特征的感知損失函數訓練網絡。在訓練過程中,感知損失比每像素損失更能可靠地測量圖像相似性,并且在測試時,轉換網絡實時運行。

文章嘗試了兩項任務:樣式轉換和單圖像超分辨率。 兩者都是天生的不適。 對于樣式轉換,沒有單個正確的輸出,對于超分辨率,可能有許多高分辨率圖像生成相同的低分辨率輸入。

這兩項任務的成功都需要有關輸入圖像的語義推理。 對于樣式轉換,盡管顏色和紋理發生了巨大變化,但輸出在語義上必須與輸入相似。 對于超分辨率,必須從視覺上模糊的低分辨率輸入中推斷出精細的細節。

原則上,為每項任務訓練的高容量神經網絡都可以隱式學習推理相關語義的能力; 但是在實踐中我們不需要從頭學習:感知損失函數的使用允許將語義知識從損失網絡轉移到轉換網絡。

Figure 1

2. Related Work

2.1 Feed-forward image transformation

最近幾年前饋圖像轉換任務應用十分廣泛,很多轉換任務都用了逐像素求差的方式來訓練深度卷積神經網絡。

本文的轉換網絡的架構是由一些先前的工作所啟發的,它們使用網絡內下采樣來減少特征圖的空間范圍,然后使用網絡內上采樣來生成最終的輸出圖像。

2.2 Perceptual optimization

有一些論文用到了優化的方法來產生圖像,它們的對象是具有感知性的,感知性取決于從CNN中提取到的高層次特征。

Dosovitskiy和Brox的工作是跟文章的工作最相關的,他們訓練了一個前饋神經網絡去倒置卷積特征,快速的逼近了之前論文中提出的優化問題的結局方案,然而他們的前饋網絡是用的逐像素重建損失函數來訓練,而文章的網絡是直接用了特征重建損失函數。

2.3 Style Transfer

Gatys等人實現了藝術風格轉換,包含一張內容圖和一個風格圖,通過聯合最小化特征重構損失和基于從預訓練好的卷積網絡提取的特征的風格重構損失。

一個相似的方法之前也被用于做紋理合成。然而他們的方法產出了很高質量的結果,但是計算代價非常的昂貴,因為每一次迭代優化都需要經過前饋、反饋預訓練好的整個網絡。

為了克服這樣一個計算量的負擔,我們訓練了一個前饋神經網絡去快速獲得可行解。

Image super-resolution

圖像超分辨率重建是一個經典的問題,很多人提出了非常廣泛的技術手段來做圖像超分辨率重建。

3. Method

Figure 2

如 Figure 2 所示,文章的系統由兩部分構成:圖像轉換網絡f_{W},損失網絡\phi(用來定義一系列損失函數l_{1},l_{2},...,l_{k}

圖像變換網絡是由權重W參數化的深度殘差卷積神經網絡;它通過映射\hat{y}=f_{W}(x)把輸入圖像x轉換為輸出圖像\hat{y}。每一個損失函數計算一個標量值l_{i}(\hat{y},y_{i})來測量輸出圖像\hat{y}和目標圖像y_{i}的差。使用隨機梯度下降訓練圖像變換網絡,以最小化損失函數的加權組合,

公式1

為了解決每一個像素損失的缺點,并使損失函數更好地衡量圖像之間的感知和語義差異,我們從最近的工作中汲取了靈感,這些工作通過優化來生成圖像。

這些方法的關鍵思想在于,經過預訓練的圖像分類卷積神經網絡已經學會了對我們希望在損失函數中測量的感知和語義信息進行編碼。因此,為了定義損失函數,將對圖像分類進行預訓練的網絡\phi用作固定損失網絡。

損失網絡\phi被用來定義特征重構損失l_{feat}^{\phi}和風格重構損失l_{style}^{\phi}來測量內容圖片和風格圖片直接的差。

對于每一個輸入圖像x,有內容目標y_{c}和風格目標y_{s}

對于風格轉換,內容目標y_{c}是輸入圖像x,輸出圖像\hat{y}應該將x = y_{c}的內容與y_{s}的樣式結合起來。為每一個目標風格訓練一個網絡。

對于單圖像超分辨率,輸入圖像x是低分辨率的,內容目標y_{c}是高分辨率的真實地表圖片,風格重建損失沒有使用。為每一個超分辨率因子訓練一個網絡。

3.1 Image Transformation Networks

文中的圖像轉換網絡結構大致上遵循Radford提出的指導方針。沒有使用池化層,而是使用步幅卷積或微步幅卷積做網絡內的上采樣或者下采樣。文章的神經網絡有五個殘差塊組成。除輸出層外,所有非殘差卷積層都遵循空間批量歸一化和ReLU非線性激活,輸出層則是使用縮放的tanh來確保輸出圖像的像素范圍為[0; 255]。除開第一個和最后一個層用9x9的kernel,其他所有卷積層都用3x3的kernels,

3.1.1 Inputs and Outputs

對于風格遷移,輸入和輸出都是彩色圖像,大小是256 x 256 x 3。

對于上采樣因子為f的超分辨率,輸出形狀為288 x 288 x 3的高分辨率圖像塊,而輸入形狀為 288/f x 288/f x 3的低分辨率塊。由于圖像轉換網絡是完全卷積的,因此在測試時可以將它們應用于任何分辨率的圖像。

3.1.2 Downsampling and Upsampling

對于超分辨率重建,有一個上采樣因子f。用了幾個殘差塊跟著步長為\frac{1}{2}Log2f卷積網絡,不依賴于任何一個固定的上采樣插值函數,微步長卷積允許上采樣函數和網絡的其他部分一起訓練。

對于風格變換,在幾個殘差快之后,使用步長為2的卷積來下采樣,然后兩個步長為\feac{1}{2}的卷積網絡來上采樣。(先下采樣,再上采樣)。

首當其沖的好處是計算復雜性。核的大小是 3 x 3,C個過濾器,對于一個輸入大小為H\times W\times C,需要9HWC^{2}次運算。這個代價和3 x3 卷積有DC個過濾器,輸入尺寸DC\times H/D\times W/D是一樣的。在下采樣之后,我們可以因此在相同計算代價下用一個更大的網絡。

第二個好處是有效的感受野大小。高質量的風格轉換需要一致的改變圖片的一大塊地方;因此這個優勢就在于在輸出中的每個像素都有輸入中的大面積有效的感受野。除開下采樣,每一個附加的3x3卷積層都能把感受野的大小增加2倍。
在用因子D進行下采樣后,每個3x3的卷積不是增加了感受野的大小到2D,給出了更大的感受野大小但有著相同數量的層。

3.1.3 Residual Connection

殘差連接使得網絡很容易的學的恒等映射,這對于圖像轉換網絡很有吸引力。因此文章的網絡的大體由幾個殘差塊組成,每個包含兩個3x3的卷積層。

3.2 Perceptual Loss Functions

定義了兩個感受損失函數來測量圖像間的高水平的感受和語義的區別。

利用為圖像分類而預先訓練的損失網絡\phi,這意味著這些感知損失函數本身就是深度卷積神經網絡。

在文章中,\phi是在ImageNet數據集上訓練的VGG-16。

3.2.1 Feature Reconstruction Loss

與其鼓勵輸出圖像\hat{y}= f_{W}(x)的像素與目標圖像y的像素完全匹配,不如鼓勵它們具有與損失網絡\phi相似的特征表示。當處理圖像x的時候,讓\phi_{j}(x)是網絡\phi里面第j層的激活,如果j是卷積層,那么\phi_{j}(x)將是形狀為H_{j}\times W_{j} \times C_{j}的特征圖。那么特征重構損失是特征表示之間的(平方,標準化)的歐式距離:

公式 2

從圖三可以看出,找到一個圖像\hat{y}使較低的層的特征損失最小,往往能產生在視覺上和y不太能區分的圖像,如果用高層來重建,內容和全局結構會被保留,但是顏色紋理和精確的形狀不復存在。用一個特征損失來訓練我們的圖像轉換網絡能讓輸出\hat{y}非常接近目標圖像y,但并不是讓他們做到完全的匹配。

Figure 3

3.2.2 Style Reconstruction Loss

feature reconstruction loss 懲罰了是輸出圖像\hat{y}當其在內容上便宜了目標y。同時,我們也希望在風格上(顏色,紋理,共同的模式)出現了偏差的時候進行懲罰。為了達到這一效果,Gatys等人提出了如下的風格重構損失。

\phi_{j}(x)的定義和 3.2.1里面一樣,定義Gram矩陣G_{j}^{\phi}(x)\in \mathbb{R}^{C_{j}\times C_{j}}

公式 3

\phi(x)看出一個C_{j}維的特征,每一個特征是H_{j}\times W_{j}的矩陣,那么G_{j}^{\phi}(x)是與C_{j}維度特征的無中心協方差成比例的。

Gram矩陣能夠被有效的計算通過把\phi_{j}(x)變成矩陣\varphi\in \mathbb{R}^{C_{j}\times H_{j}W_{j}}那么G_{j}^{\phi}(x)=\varphi \varphi^{T}/C_{j}H_{J}W_{J}

那么風格重構損失為:


公式 4

如Figure 4,能生成一張圖片\hat{y}使得風格損失最小,從而保存了風格上的特征,但是不保存空間上的結構特征。

Figure 4

要從一系列網絡J而不是單層j進行風格重構,定義l_{style}^{\phi,J}(\hat{y},y)是每一層損失函數的和
j\in J)。

3.3 Simple Loss Functions

除了感知損失,還定義了兩種簡單損失函數,僅僅用了低維的像素信息

3.3.1 Pixel Loss

像素損失是輸入圖像\hat{y}與目標圖像y的(標準化)的歐式距離。

如果形狀都是H\times W \times C,那么像素損失是:

像素損失

這只能被用在有真實地標的目標時候,讓這個網絡去做完全匹配。

3.3.2 Total Variation Regularization

為了讓輸出圖像\hat{y}空間比較順滑, 遵循了前人在特征反演上的研究,超分辨率重建上的研究并且使用了全變差正則化l_{TV}(\hat{y})

Figure 6-1
Figure 6-2
Figure 6-3
Figure 7

參考資料:
Perceptual Losses for Real-Time Style Transfer and Super-Resolution

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。