Pytorch實作系列 — Neural Doodle

mz bai
4 min readAug 9, 2021

Neural doodle 由 Alex J. Champandard (2016, nucl.ai)在論文 Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks 提出,主要用途是透過patch-based style transfer將風格遷移到使用者繪製的模板。

如果不了解風格遷移的讀者,可參考

網路架構

相較於原本的架構,相當於多了一個附屬網路處理模板(mask)和風格及內容的特徵。

訓練

風格遷移有很多不同的實現方式,其中Gram-based 和 patch-based兩個方法為主,這兩種都不需要額外的資料作訓練。

Gram-based的方法使用Gram matrix計算風格損失,而patch-based方法採用最近鄰的patch計算風格損失,這類方法也被稱為MRF prior(馬可夫隨機場先驗)。

patch-based 方法需要使用多尺度訓練來產生較佳的結果,這麼做相當於讓模型從小畫布開始繪圖,當模型覺得已經畫得很好時,再給它一張更大的畫布

  1. 比起一開始就用高解析度繪圖提供更好的起始點
  2. 擴大的畫布可以進一步加強較小畫布的結果

實作方式如同論文擴大畫布的方法是上採樣2倍,可以試試resize說不定不會如本文得到預料之外的結果。

內容與風格

評估

沒有muliscale: 勉強有些樣子,但圖片都是噪音。樹木剛好有五根。

加入muliscale: 你不要看不起原稿就超展開呀~~

最終成果

代碼連結

參考

Sign up to discover human stories that deepen your understanding of the world.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

mz bai
mz bai

Written by mz bai

Math is math, math is universal Code is code, code is horrifying unique.

No responses yet

Write a response