AIによる画像編集が可能なFE-GAN
画像編集をやってみたいけど、絵心が無いから自分には無理だとか、画像編集ソフトによる加工はプロじゃないとできないと思って諦めたりすることはありませんか。そんな時はAIを利用して画像編集を行ってみましょう。今回紹介するのは2019年2月に発表されたFE-GANです。
FE-GANは一言で言うと、画像編集が苦手な人達のお助けAIです。
1列目が元々の画像、2列目が修正したい箇所をスケッチした画像、3列目が最終的に出力された画像です。
このように、FE-GANを利用するとスケッチやカラーリングなどの直感的な入力で、髪を伸ばしたり、イヤリングを身に着けたり、サングラスを外したりと自由に画像編集を行うことができます。
論文紹介
2019年02月に発表された論文です
https://arxiv.org/pdf/1902.06838v1.pdf
github
この論文の実装がgithubに公開されているので試しに使用してみます
https://github.com/run-youngjoo/SC-FEGAN.git
依存関係
使用するにあたり以下のライブラリが必要です
- tensorflow
- numpy
- Python3
- PyQt5
- opencv-python
- pyyaml
使用環境
github上の実装はUbuntu 18.04.1ですが、今回はWindows10にて試してみます
操作方法
githubからFE-GANをクーロン
githubからFE-GANをクーロンします
1 |
git clone https://github.com/run-youngjoo/SC-FEGAN.git |
学習済みモデルのダウンロード
学習済みモデルをダウンロードします
SC-FEGAN.ckpt.data-00000-of-00001とSC-FEGAN.ckpt.indexの2FILEが格納されています。
ckptというフォルダを作成し、先ほどダウンロードしたファイルを格納します
1 2 3 |
ckpt ⇒SC-FEGAN.ckpt.data-00000-of-00001 ⇒SC-FEGAN.ckpt.index |
demo.yamlの設定変更
demo.yamlの設定を変更します
こちらは各PCの環境に合わせてください。
GPU数が1の場合
1 |
GPU_NUM: 1 |
GPUを搭載していない場合
1 |
#GPU_NUM: |
なお、マルチGPUはサポートされていないようなのでマルチGPUを使用する場合はGPU_NUM: 1の設定としてください
FE-GANの起動
FE-GANを起動します
1 |
python demo.py |
15秒程度待ちます。
起動に成功した場合、以下のような画面が立ち上がります。
起動成功画面
使用方法は感覚で分かると思いますが、以下の通りです
- Open Image:編集したい画像を開きます。
- Mask:左側のビューアーの顔の目的の領域にマスクを描きます。
- Sketches:左側のビューアーで目的の線をスケッチします。
- Color:色付きの線を引きます。初めてこのボタンをクリックした場合は、パレットから色を選択する必要があります。
- Palette: 色を変える。色を選択したら、Colorボタンをクリックして変更を適用します。
- Save Img:結果を保存します。
- Arrange:編集したマスクををアレンジします。
- Undo:前の編集作業を元に戻します。
- Complete:画像を生成して右側のビューアに表示します。
エラーが出る場合は、Imageが格納されているディレクトリのパスを確認してください。パスに日本語が入っている場合は画像を読み取ることが出来ません
1 2 3 4 |
Traceback (most recent call last): File "demo.py", line 68, in open mat_img = cv2.resize(mat_img, (512, 512), interpolation=cv2.INTER_CUBIC) cv2.error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:3784: error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize' |
描画する時のワークフロー
描画する時のワークフローとして以下が推奨されています。
1.元のイメージを参照しながらスケッチを適切に描きます。
⇒「Sketches」
2.スケッチ領域にマスクを描画します。
⇒「Mask」
3.「Arrange」 ボタンをクリックします。
⇒「Arrange」
4.マスクされた領域にカラーを描画します。
⇒「Palette」
⇒「Color」
5.「Complete」 をクリックします。
⇒「Complete」
注意点としてカラーを描画する時は「Color」ボタンを押してください。「Sketches」ボタンを押してもカラーでの描画はされません。線も太くなるので書きやすくなります。
実際に試してみた画像です。
左が変更前で右が変更後の画像です。顎を細くし、目を赤色に、髭を薄くして見ましたが、変化が微妙にしか分かりません・・おそらく絵心がある人だったらもっとうまく変化させることができると思います。とは言っても微妙ながらも変化しており、修正箇所も目立たず自然になっているため、いろいろな箇所で使えます。実際の画像の修正は5分もかけていませんが、もしイラストレーターやフォトショップを使用したなら、私のような素人だったら何時間もかけても違和感がある画像しか出来ないので、たった2,3分でここまで加工できるなんて素晴らしいとしか言えません。
画像・GIF引用、及びライセンス
以下の画像を引用させて頂いています。
https://arxiv.org/pdf/1902.06838v1.pdf
https://github.com/JoYoungjoo/SC-FEGAN
なお、ライセンスは以下の通りとなっています
CC 4.0 Attribution-NonCommercial International
ソフトウェアは教育および学術研究目的のみ