2016年9月15日 更新

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

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

762 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 件

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

Medical Imaging Tech Night開催のお知らせ

Medical Imaging Tech Night開催のお知らせ

2018年11月25日(日)~11月30日(金)まで米国シカゴにて開催される「RSNA2018(第104回北米放射線学会)(※1)」の「Machine Learning Showcase」にて出展いたします。そこで得た最新の情報を元に、医用画像解析・機械学習に関するプレゼンテーションおよびトークセッションと交流会を実施いたします。
等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 2

等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 2

前回の記事「等角写像による画像の変換〜Schwarz-Christoffel 変換〜part 1」の続きです. 実際に実装をして,写像を確かめてみます.
三好 裕之 | 169 view
画像のセグメンテーション - Level set 法の実装 (Chan-Vese) -

画像のセグメンテーション - Level set 法の実装 (Chan-Vese) -

画像処理のセグメンテーションの分野で用いられるLevel set 法を用いて画像のセグメンテーションを行います.
三好 裕之 | 1,529 view
画像の一部を消すInpainting という技術とその実装 (python)

画像の一部を消すInpainting という技術とその実装 (python)

Python + OpenCVにより,画像の修復の技術,「Inpainting 」の実装を行います.
三好 裕之 | 2,841 view
画像のFilter をPython で視覚的に理解する (Gaussian, Edge 抽出).

画像のFilter をPython で視覚的に理解する (Gaussian, Edge 抽出).

Python を用いて,画像のFilter を視覚的に理解してみます.コードを載せていますので,実装可能です.
三好 裕之 | 5,794 view

この記事のキーワード

この記事のキュレーター

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