Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 論文筆記
ECCV 2016
摘要: 許多經典問題可以看做是 圖像轉換問題(image transformation tasks)。本文所提出的方法來解決的圖像轉換問題,是以監督訓練的方式,訓練一個前向傳播的網絡,利用的就是圖像像素級之間的誤差。這種方法在測試的時候非常有效,因為僅僅需要一次前向傳播即可。但是,像素級的誤差 沒有捕獲 輸出和 gt 圖像之間的 感知區別(perceptual differences)。
與此同時,最近的工作表明,高質量的圖像可以通過 perceptual loss function 來生成,不依賴於像素之間的差別,而是 高層圖像特征之間的差別。圖像正是基於這種特征之間的 loss 進行訓練的。這種方法可以產生高質量的圖像,但是速度卻很慢,因為需要解決一個優化問題。
本文中,我們將兩者的優勢進行結合,訓練一個前向傳播的網絡進行圖像轉換的任務,但是不用 pixel-level loss function,而采用 perceptual loss function。在訓練的過程中,感知誤差 衡量了圖像之間的相似性,在測試的時候可以實時的進行轉換。

網絡的訓練:
網絡主要由兩個部分構成:一個是 image transformation network 一個是 loss network 用來定義 loss function。圖像轉換網絡 是一個殘差網絡,它將輸入圖像轉換為輸出圖像 y^。每個損失函數計算一個 scalar value 衡量輸出圖像和目標圖像之間的不同。圖像轉換網絡 是通過 SGD 進行訓練的,利用加權的損失函數,如下所示:
為了解決 per-pixel losses 的缺陷,並且允許我們的 loss function 可以更好的衡量 感知和語義的區別,我們從最近的通過優化來產生圖像得到了啟發。關鍵點在於:這些方法用到的網絡已經是學習到編碼感知和語義信息,這些網絡都是在分類的數據集上進行訓練后的。我們所以就用這些網絡來固定的作為 loss network 來定義我們的損失函數。
剛開始看那個流程圖的時候,比較糊塗的是兩個 target,$y_c$ 和 $y_s$ 。其實是這樣子的:
對於每一個圖像 x ,我們有一個 content target $y_c$ 和 一個 style target $y_s$。
對於 style transfer 來說,the content target $y_c$ 是輸入圖像 x,the output image y^ 應該 結合 the content x = $y_c$ 和 $y_s$ 的 style 。
對於 超分辨來說,輸入圖像 x 是一個低分辨率的圖像,the content target $y_c$ 是一個 gt 高分辨率的圖像,style reconstruction loss 沒有用到。對於一種超分辨的因子,我們就訓練一種網絡。
實驗結果:

