1. 程式人生 > >深度學習(6)——基於卷積神經網路的影象樣式轉換

深度學習(6)——基於卷積神經網路的影象樣式轉換

基於卷積神經網路的影象樣式轉換

摘要

以不同風格呈現影象的語義內容是困難的影象處理任務。 可以說,先前方法的主要限制因素是缺乏明確表示語義資訊的影象表示,不能將影象內容與樣式分離。 在這裡,我們使用從針對物件識別優化的卷積神經網路匯出的影象表示,這使得高階影象資訊顯式化。 我們介紹了一種藝術風格的神經演算法,可以分離和重新組合影象內容和自然影象的風格。 該演算法允許我們產生高感知質量的新影象,其將任意照片的內容與眾多眾所周知的藝術品的外觀相結合。 我們的結果為卷積神經網路學習的深度影象表示提供了新的見解,並展示了它們在高階影象合成和操作方面的潛力。

1.引言

將樣式從一個影象轉移到另一個影象可以被認為是紋理轉移的問題。在紋理轉移中,目標是在限制紋理合成的同時從源影象合成紋理以便保留目標影象的語義內容。對於紋理合成,存在大量強大的非引數演算法,它們可以通過對給定源紋理的畫素重新取樣來合成逼真的自然紋理[7,30,8,20]。先前大多數的紋理轉移演算法依賴於這些非引數方法進行紋理合成,同時使用不同的方法來保留目標影象的結構。例如,Efros和Freeman引入了一個對應圖,其中包括目標影象的特徵,如影象強度,以約束紋理合成過程[8]。赫茲曼等人使用影象類比將紋理從已經風格化的影象轉移到目標影象上[13]。 Ashikhmin專注於傳輸高頻紋理資訊,同時保留目標影象的粗略尺度[1]。李等人通過另外通過邊緣方向資訊通知紋理轉移來改進該演算法[22]。

儘管這些演算法取得了顯著的成果,但它們都受到相同的基本限制:它們僅使用目標影象的低階影象特徵來通知紋理轉移。 然而,理想情況下,樣式轉移演算法應該能夠從目標影象(例如,物件和一般場景)中提取語義影象內容,然後在紋理轉移過程中以源影象的樣式呈現目標影象的語義內容。 因此,基本的先決條件是找到獨立地模擬語義影象內容的變化和其呈現方式的影象表示。 以前僅針對自然影象的受控子集實現此類分解表示,例如不同照明條件下的面部和不同字型樣式的字元[29]或手寫數字和門牌號[17]。

通常將內容與自然影象中的樣式分開仍然是一個非常困難的問題。 然而,深度卷積神經網路[18]的最新進展已經產生了強大的計算機視覺系統,學習從自然訓練中提取高階語義資訊,並在特定任務(如物件識別)上獲得足夠的標記資料,在通用特徵表示中學習提取高階影象內容,可以概括資料集[6]甚至是其他視覺資訊處理任務[19,4,2,9,23],包括紋理識別[5]和藝術風格分類[15]。

在這項工作中,我們展示瞭如何通過高效能卷積神經網路學習的通用特徵表示來獨立處理和操縱自然影象的內容和風格。我們介紹了一種藝術風格的神經演算法,一種執行影象樣式轉換的新演算法。從概念上講,它是一種紋理轉移演算法,通過來自最先進的卷積神經網路的特徵表示來約束紋理合成方法。由於紋理模型也基於深度影象表示,因此樣式轉移方法優雅地簡化為單個神經網路內的優化問題。通過執行預影象搜尋來生成新影象以匹配示例影象的特徵表示。這種一般方法之前已經在紋理合成[12,25,10]背景下使用過,並且用於改善對深度影象表示的理解[27,24]。實際上,我們的樣式轉換演算法結合了基於卷積神經網路的引數化紋理模型[10]和反轉其影象表示的方法[24]。

2.深度影象表示

下面給出的結果是在VGG網路[28]的基礎上生成的,該網路經過訓練以進行物件識別和定位[26],並在原始工作中進行了廣泛的描述[28]。我們使用了VGG-19網路的標準化版本提供的特徵空間,它有16個卷積層和5個池化層。我們通過縮放權重來規範化網路,使得每個卷積濾波器在影象和位置上的平均啟用等於1。可以在不改變其輸出的情況下對VGG網路進行這種重新縮放,因為它僅包含整流線性啟用函式並且不對特徵對映進行歸一化或彙集。我們不使用任何完全連線的層。該模型是公開的,可以在caffe框架中進行探索[14]。對於影象合成,我們發現通過平均合併替換最大合併操作會產生稍微更吸引人的結果,這就是為什麼顯示的影象是使用平均合併生成的。

2.1 內容表示

通常,網路中的每個層定義為非線性濾波器組,其複雜性隨著網路中層的位置而增加。因此,通過對該影象的濾波器響應,在卷積神經網路的每個層中編碼給定的輸入影象x。具有Nl個不同濾波器的層具有尺寸為MlNl個特徵圖,其中Ml是高度乘以特徵圖的寬度。因此,l層中的響應可以儲存在矩陣FlRNl×Ml中,其中Fijll層中位置j處的第i個濾波器的啟用。

Fig1

圖1.卷積神經網路(CNN)中的影象表示。

給定輸入影象在CNN中的每個處理階段表示為一組濾波影象。雖然不同過濾器的數量沿著處理層級增加,但是過濾影象的大小通過一些下采樣機制(例如,最大池化)而減小,導致每層網路的單元總數減少。內容重建。我們可以通過僅知道網路在特定層中的響應來重建輸入影象,從而在CNN中的不同處理階段視覺化資訊。我們從原始層’conv1_2’(a),’conv2_2’(b),’conv3_2’(c),’conv4_2’(d)和’conv5_2’(e)重建輸入影象VGG的網路。我們發現從較低層重建幾乎是完美的(a-c)。在網路的較高層中,丟失詳細的畫素資訊,同時保留影象的高階內容(d,e)。風格重建。在原始CNN啟用之上,我們使用一個捕獲輸入影象紋理資訊的特徵空間。樣式表示計算CNN的不同層中的不同特徵之間的相關性。我們從構建在CNN層的不同子集上的樣式表示重建輸入影象的樣式(’conv1_1’(a),’conv1_1’和’conv2_1’(b),’conv1_1’,’conv2_1’和’conv3_1’(c),’conv1_1’,’conv2_1’,’conv3_1’和’conv4_1’(d),’conv1_1’,’conv2_1’,’conv3_1’,’conv4_1 ‘和’conv5_1’(e)。這將建立與增加規模的給定影象的樣式匹配的影象,同時丟棄場景的全域性排列的資訊。

為了視覺化在層次結構的不同層處編碼的影象資訊,可以在白噪聲影象上執行梯度下降以找到與原始影象的特徵響應匹配的另一影象(圖1,內容重建)[24]。令px是原始影象和生成的影象,並且PlFl是它們在l層中的相應特徵表示。然後我們定義兩個特徵表示之間的平方誤差損失

(1)Lcontent(p,x,l)=12i,j(FijlPijl)2
相對於層l中的啟用,該損失的導數等於
(2)LcontentFijl={(FlPl)ij,if Fijl>00,if Fijl<0
從中可以使用標準反向傳播計算關於影象x的梯度(圖2,右)。因此,我們可以該改變最初的隨機影象x,直至它在卷積神經網路的某一層產生於原始影象p相同的響應。

Fig2

圖2.樣式傳輸