2016年9月15日 更新

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最初は完全にランダムな状態から始まる。
<参考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 日経コンピュータ)
15 件

関連する記事 こんな記事も人気です♪

Pythonで画像処理② Data Augmentation (画像の水増し)

Pythonで画像処理② Data Augmentation (画像の水増し)

画像の水増し、Data Augmentationと呼ばれる方法になりますが、学習に使う画像に変形を加えたり、ノイズを加えたり、明るさを変えたりといった処理を行う方法を紹介します。学習画像に様々な処理を行うことで認識がロバストになるというメリットがあります。
望月 優輝 | 1,689 view
点像分布関数の話

点像分布関数の話

光学系を理解するうえで前提として知っておいた方が良い内容
Yoshiyuki Arai | 353 view
現役JDと学ぶ画像処理入門①〜openCV入門〜

現役JDと学ぶ画像処理入門①〜openCV入門〜

openCV入門(画像の読み込み、表示、保存、線形変換、拡大縮小)
広部ゆりか | 10,017 view
Pythonで画像処理① マスク処理

Pythonで画像処理① マスク処理

Pythonで画像を操作する方法を簡単に解説しています。
望月 優輝 | 4,427 view
シリーズ6.マクロ言語を使った画像処理の応用編~ノイズ軽減① 空間フィルタ処理~

シリーズ6.マクロ言語を使った画像処理の応用編~ノイズ軽減① 空間フィルタ処理~

【記事の目標】 画像を触ったことがない人を対象として、適切な画像解析を施すまでのImageJのマクロ言語を用いた学習過程を示す。 今回の記事から応用編としてさらに詳しく画像処理を学んでいきます。最初のテーマはノイズ軽減です。

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部