- @ThothChildren
- 2018.5.25
- PV 124
画像の画風を他の画風に変更したい
ー 概要 ー
ある画像の画風を他の画風に変換したいときの技術について紹介したページです.学術的には画風変換(Image Style Transfer)と呼びます.
この章を学ぶ前に必要な知識
条件
- 画風を変換したい画像を用意
- 参考にしたい画風を持つ画像を用意
- 学習済みのVGGを用意
効果
- 画像の構造は保持したまま画風だけ変換した画像を生成
ポイント
- ネットワークの学習は行われない
- 処理の過程で行われるのは、画風と元画像の両方に似せる入力画像の最適化
解 説
在る画像を他の画像の画風を参考に変換する技術について紹介します.
幾らか方法はありますが、ここでは初めに出された最もベーシックな方法について紹介します. | 画像の画風を他の画風に変更したい |
詳細は右の論文のリンクを参考にしてください.
ここではこの概略のみについて紹介します. | 外部リンク 元論文 |
他の画像の画風で画像を変えることを画風変換(Image Style Transfer)と呼びます.
技術のベースはDeepLearningからきています.
入力画像と画風参考画像を用意して入力画像に画風を適用した画像を作り出すのが基本の処理になります. | 画風変換概要 |
入力画像と画風参考画像の他に画像の特徴を良く捕らえて例えばクラス分類できるようなConvolutional Neural Networkのネットワークが必要です. | Convolutional Neural Network |
1.処理の流れ概要 | |
上記のConvolutional Neural Networkの出力では、入力の特徴を良く捕らえた抽象的な情報を出力しています.このネットワークの中で入力画像側から処理が行われていく過程で無駄な情報を捨てられて、本当に大切な特徴だけが最後の出力に出てきているのです.
この無駄な情報になっている部分を他の値にこっそり置き換えることで、画像の最も本質的な部分を変更せずに見た感じだけを変えることができるというのが大筋の流れです.
つまり、例えば猫の絵があるときに猫が写っていることはわかるけどなんか油絵っぽいとか写真っぽいとかいった情報を置き換えてしまいましょうということです. | 画像変換の前知識 |
左の画像において、
最も左の列が画風を変換したい画像で、
最も上の列が画風を参考にしたい画像になります.
どの画像も本質は残しながら画風が換わっていることがわかると思います. | |
画風変換の処理の流れについて簡単に説明します。
まずはポイントだけ列挙するので簡単に把握してください.
ポイント
・ネットワークの更新は一切しない
・元画像(画風を変換したい画像)の全体的な本質と参考画像(画風を参考にしたい画像)の画風を参考にした画像を生成します。
・ネットワークの入力画像の値をランダムから調整してどちらにも似たような画像になるように入力画像を変更していきます.
・どちらにも十分に似てきたら入力画像の更新を終えて変換を終了します. | 画風変換の処理の流れのポイント |
画像変換の処理の図解 | |
画像変換の処理を上の画像に基づいて概説する.
1. 参考画像と元画像を一度Convolutional Neural Networkに通して、
参考画像はその中間画像から作った画風の表現を取り出し、
元画像からは最後のネットワークの出力を取り出して両方とも保持します.
2.そしたら画像の中央の「個の画像を調整していく」の調整を開始する.
初めはランダムな値が入っている画像を取り出して、Convolutional Neural Networkに流す. すると画風の表現と最後の出力が得られるので、それらが1.で取得した参考画像の画風の表現と元画像の最後の出力とどれだけ違うかを計算します.
そしたらそれを近づけるために入力画像を調整します.
3. どちらにもほどほど近づいてそれ以上更新できなくなるまで2.を繰り返します.
以上が処理の全体の流れです.実際は誤差関数を定義して、それが最小になるように入力画像の更新をしていくことになります. | 上の図解の説明 |
この章を学んで新たに学べる
Comments
Reasons
知識: Convolutional Neural Network
CNNとは,Convolution層を主要な層として繋げている画像処理に向いているニューラルネット.少し前まではPooling層も合わせることが多かったがPoolingで行っていたこともConvolutionで行わせることも増えてきた.BatchNormalization層を挿入することも多い.