基於 Keras 實現圖像風格轉移

 Style Transfer 這個方向火起來是從2015年Gatys發表的Paper A Neural Algorithm of Artistic Style(神經風格遷移) , 這裏就簡單提一下論文的主要思想。

論文概述

  Gatys這篇論文的核心思想就是 —— 圖片的內容和風格是可以分離的,可以通過神經網絡的方式,將圖片的風格進行自由交換。

 如果內容和風格是可以分離的,那麼風格的遷移即可轉化成這樣一個問題:讓生成圖片的內容與內容來源圖片儘可能相似,讓圖片的風格與風格來源圖片儘可能相似。

 那麼如何才能將圖片的風格提取出來呢?Gatys發現紋理能夠描述一個圖像的風格,也就是說只要提取出圖片的紋理就可以了。那麼如何又提取出圖像的紋理呢,Gatys發現VGG19網絡其實就相當於一堆局部特徵識別器,他在VGG19的基礎上套了一個格拉姆矩陣(Gram matrix)用來計算不同局部特徵的相關性,把它變成裏一個統計模型,這樣圖像紋理提取已經完成了。剩下的就比較輕鬆了,前文提到VGG19 相當於一堆局部特徵識別器,於是Gatys直接把局部特徵看作近似的圖像內容,這樣就得到了一個將圖像內容與紋理分開的系統。而將內容與紋理合成的方法就是Google 由2015年夏天首次發佈的 DeepDream 方法,找到能讓合適的特徵提取神經元被激活的圖片即可。

至此, A Neural Algorithm of Artistic Style 的主要思想已經解釋完了。

實現

神經風格遷移的一般步驟:

  • 創建一個網絡,它能夠同時計算風格參考圖像、目標圖像和生成圖像的 VGG19 層激活。
  • 使用這三張圖像上計算的層激活來定義之前所述的損失函數,爲了實現風格遷移,需要將這個損失函數最小化。
  • 設置梯度下降過程來將這個損失函數最小化。

完整代碼 laugh12321/neural-style

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章