画風を変えるアルゴリズム

画風を変えるアルゴリズムが人気だ。このアルゴリズムの元になったのが、コーネル大学のサイトであるarXiv.orgに投稿された'A Neural Algorithm of Artistic Style'という題の論文である。

ファインアートの分野では、特に絵画では、ある絵の内容に特定の画風をあてこみ再現する手法が確立されているそうだ。これらは芸術家の職人芸の為、機械に真似出来ない領域だと考えられてきた。

しかし、人間の知覚を模倣した物体・顔認識の手法の1つ、Deep Neural Networkを用いれば、アート作品を人工的に再現出来るのではないかというのが、この研究論文の目的である。

実際、かなりの精度で再現されている。

海外の個人ブログに掲載されていた画像では、ゴッホの星月夜という作品の画風を、エッフェル塔の写真にあてはめると、どんな絵が再現されるかを紹介している。

論文によれば、このアルゴリズムには、CNN(Convolutional Neural Network)という手法が用いられている。

画風アルゴリズムの重要な要素は、この図に集約されている。
元の画像に対して、画風の元になる画像をベースにしたフィルタ処理をいくつかの段階に分けて沢山行うことで、より再現性の高い画像をつくっている。

ここで、スタイル画像とは、フィルタ要素となる画像。コンテンツ画像とは、画像再構成処理を行った時に出力されるベースとなる画像のことを指す。特徴の総合されたものがコンテンツ画像に再構成される。
高レイヤーになるほど、細かい領域での演算。低レイヤーになるほど、広い領域での演算が行われている。

家の画像を見ると、おおまかな描写は保たれているが、細部の描写が崩れていくのが分かる。

高レイヤー(右)に向かう程、画像の細部が崩れている。
色と周波数の高い画像の相関、それぞれのチャネルで得られた相関同士のスタイル行列を作成する。再構成したものがStyle Reconstructionsである。

Style Recostructions
この論文をベースにつくられたプログラムがChainer-Goghである。

プログラムの流れは、おおまかに以下の通り。
1:引数パース
2:GPUの利用有無を確認する
3:モデルを読み込む
4:コンテンツ画像・スタイル画像をリサイズする
5:画像を生成する

3の画像再構成のモデルには、VGGとNINがある。VGGは綺麗な絵を描くことが出来るが処理が重く、NINの方が手軽に扱える。

また、最適化されたGPUコアを用いた方が処理が早く行えるようだ。

画像の解像度はパラメータによっても出力結果が変わってくる。(上は、GTX690で処理した結果)

最初は完全にランダムな状態から始まる。
<参考URL>
A NEURAL ALGORITHM OF ARTISTIC STYLE(JAMES ROBERT LLOYD BLOG)
'A Neural Algorithm of Artistic Style'(Arxiv.org)
chainer-gogh(github)
画風を変換するアルゴリズム(Preferred Research)
[6]国産の深層学習フレームワーク「Chainer」とは何か(ITPro 日経コンピュータ)