fast.ai Part2

fast.ai の Cutting Edge Deep Learning for Coders を始めた。

Lesson8のテーマは Artistic Transfer。いわゆる Style Transfer。絵のスタイルをディープラーニングで抽出して、別の画像に転移させるというもの。

Part1は Practical(実践) という題名だった。その意味するところは、Kagglerになれ というものだった。

Part2は、Cutting Edge(最先端)という題名だ。その意味するところがわかった。それは、論文を読め ということだった。Part2では、論文を読んでそれを実装するというのが課題として課せられるようだ。英語も数学もツライのに、論文なんて読んだことないから、無理だよ!!挫折しそう。

Neural Algorithm of Artistic Style

Lesson8では、アート系のディープラーニングの先駆けになった論文、A Neural Algorithm of Artistic Styleを読んで、再実装して、さらには結果をブログに書いてねという課題が出された。

というわけで、実装してみた。

元となるコードはちゃんと提供されている。それを写経しただけ。Keras版と PyTouch版がある。

理論の方は、素晴らしく解説された記事があるので、それを紹介。

コンテンツとスタイルの特徴抽出

このNeural Style Transferという方法は、異なる画像からコンテンツとスタイルを別々に特徴抽出して、それらを足しあわせて一枚の画像を生成する。

まずは、元となるコンテンツ画像。京都嵐山の渡月橋。去年旅行で行ってきた。

このコンテンツ画像からコンテンツの特徴を抽出したものが以下。

スタイル画像は、定番のゴッホの星月夜。

スタイルの特徴を抽出した画像が以下。

結果

そして最後に、コンテンツとスタイルを合成した画像が以下。

おまけ

こんなこともできる。