風格遷移 入門

2022-04-13 16:42:59 字數 1913 閱讀 3374

最原始的風格遷移的思路很簡單,把當做可以訓練的變數,通過優化來降低與內容的內容差異以及降低與風格的風格差異,迭代訓練多次以後,生成的就會與內容的內容一致,同時也會與風格的風格一致。

從以下幾個方面介紹:(1)vgg16;(2)內容;(3)風格;(4)雜訊損失

(1)vgg16

我們首先使用預訓練的 vgg16 模型對影象提取有用特徵,這些特徵可以幫助我們衡量兩個影象的內容差異和風格差異。

(2)內容

我們進行風格遷移的時候,必須保證生成的影象與內容影象的內容一致性,不然風格遷移就變成藝術創作了。那麼如何衡量兩張的內容差異呢?很簡單,通過 vgg16 輸出的特徵圖來衡量的內容差異。

內容損失函式 \(loss_\):

其中 \(\hat\) 是輸入影象(也就是生成的影象),\(y\) 是內容影象,\(\phi\) 代表vgg16,\(j\) 代表第 \(j\) 層。

通過優化生成影象和內容影象特徵圖的 mse,可以迫使生成影象的內容與內容影象在 vgg16 的特徵提取層上輸出相似的結果,因此生成影象和內容影象在內容上是一致的。

(3)風格

把輸出變換成 \(c\) 行 \(hw\) 列的矩陣 \(x\),可以將其看作由 \(c\) 個長度為 \(hw\) 的向量 \(x_1, ...,x_c\) 組成,其中向量 \(x_i\) 代表通道 \(i\) 上的樣式特徵。這些向量的格拉姆矩陣(gram matrix)為 \(xx^t\) ,因此格拉姆矩陣的高寬皆為通道數 \(c\) 。第 \(i\) 行 \(j\) 列的元素 \(x_\) 代表向量 \(x_i\) 與向量 \(x_j\) 的內積,表達通道 \(i\) 和通道 \(j\) 上樣式特徵的相關性。我們用不同通道間的相關性表達影象的樣式。當 \(hw\) 的值較大時,格拉姆矩陣中的元素容易出現較大的值,為了讓樣式損失的值不受這些值的影響,可以將格拉姆矩陣除以矩陣中元素的個數,即 \(chw\) 。

風格損失函式 \(loss_\):

其中 \(g_j^(x)\) 指的是 \(x\) 影象的第 \(j\) 層特徵圖對應的 gram 矩陣。

(4)雜訊損失

學習的合成影象可能具有許多高頻雜訊,我們可以使用總變差損失進行降噪,即平滑影象:

\[\sum_|x_- x_|+|x_- x_|

\]將影象水平和垂直平移乙個畫素,與原圖相減,然後計算絕對值的和。

先搭建乙個轉換網路,然後通過優化轉換網路的權值來實現快速風格遷移。由於這個轉換網路可以接受任意影象,所以這是任意內容的風格遷移。

模型結構:降維,三層卷積層,逐漸提公升通道數為128,並且通過 stride 把特徵圖的寬高縮小為原來的八分之一;

5個 residualblock 堆疊;

公升維,三層卷積層,逐漸降低通道數為3,並且通過 nn.upsample 把特徵圖的寬高還原為原來的大小。

先降維再公升維是為了減少計算量,中間的 5 個 residual 結構可以學習如何在原圖上新增少量內容,改變原圖的風格。最終模型(transformnet)由兩個基礎結構組成,卷積層(convlayer)和殘差塊(residualblock)。

通過輸入大量風格影象和內容影象 \(\sum_\),可以訓練出能夠產出期望權值的 \(metan\),該模型可以輸入任意風格影象,輸出第二部分中介紹的遷移模型(即轉換網路),進而實現任意風格任意內容的風格遷移。

reference:

​ [1] 風格遷移三部曲——知乎

風格遷移網路

快速風格遷移的網路結構包含兩個部分。乙個是生成網路 transformation network 乙個是損失網路 loss network 生成網路是將輸入影象進行風格遷移後輸出,損失網路用以計算生成影象的內容損失和風格損失。對於生成網路,本質上是乙個卷積神經網路,但不採用池化層,取而代之的是用步幅...

快速風格遷移網路

快速風格遷移的網路結構包含兩個部分。乙個是 生成網路 image transform net 乙個是 損失網路 loss network 生成網路輸入層接收乙個輸入,最終輸出層輸出也是一張 即風格轉換後的結果 模型總體分為兩個階段,訓練階段和執行階段。模型如圖所示。其中左側是生成網路,右側為損失網路...

風格遷移學習 GramMatrix

向量的點乘,對兩個向量執行內積運算,就是對這兩個向量對應位一一相乘之後求和的操作,內積的結果是乙個標量。內積判斷向量a和向量b之間的夾角和方向關係 a b 0 方向基本相同,夾角在0 到90 之間 a b 0 正交,相互垂直 a b 0 方向基本相反,夾角在90 到180 之間 gram矩陣是兩兩向...