【機械学習】オフラインでもAI自動着色で遊ぼう[style2paints]
またもや線画着色をやろう!
今回はオフラインでstyle2paintsで遊びましょう.
同様なことができるPaintsChainerをこの前やったので比較とかもしたいです.
インストールから実行まで,読めば使えるように書いていきます.
今回の使用PCはMacです.
イカれた過去記事を紹介するぜ!
・他の線画着色
style2paintsとは?
style2paintsは機械学習を用いた線画着色技術です.
サンプルとしてこれが入っていました.
どーゆー順で見るのか分かりませんが,おそらく左上の画像が入力でそれ以外が出力でしょう.
この画像だけ見ればPaintsChainerよりうまく塗れているように感じますね.
改良を重ね続けて 2019年 6月現在の最新バージョンはV4ですが,V5の情報も出てるらしいです.
前まではWeb上でV4を遊ぶことができたらしいのですが,現在はサービス停止中みたいです.
そのため,今回はローカルにWebサーバーを立ち上げてやっていきます.
V4はソースコードが公開されていないので遊ぶのはV3になります.
インストール
インストールするのはstyle2paints本体(ソースコード)と学習済みモデルです.
> GitHub - lllyasviel/style2paints: sketch + style = paints
右にある緑色の"clone or download"から"download ZIP"します.
あるいは,以下のコマンドでダウンロードできます.
>>> git clone https://github.com/lllyasviel/style2paints.git
続いて,学習済みモデルを作者さんのGoogleDriveからダウンロードします.
右上にある青文字の"すべてダウンロード"ですべてダウンロードします.
ダウンロードできたら"style2paints"の中の"V3"の中の"server"に全部移動します.
こんな感じになります.(__pycache__は最初はないです.)
以上でインストール完了です.
実行
***追記***
読めば使えるように書くといったにも関わらず,前提知識を必要とする書き方になってました.申し訳ない!
次の項で,より丁寧に実行について書いているので分からなくなったらそちらを参考にしてください.
実行するためには以下のライブラリが必要になるみたいです.
tensorflow_gpu,keras,bottle,gevent,h5pypaste,opencv-python,scikit-image
ただ,私は自分のPCにどれが入っているか把握していなくて,調べるのもお面倒だったので実行してエラーが出たらその都度入れました.
調べてやりたい人は以下のコマンドで見れます.
>>> pip list
早速,実行します.
ターミナル上でstyle2paints/V3/serverの階層までcdを使って移動します.
実行するのはserver.pyです.
>>> python server.py
必要なライブラリが入っていないとエラーが起きるのでそれらを入れていきましょう.
実行一回目 ImportError: No module named 'bottle'
>>> pip install bottle
実行二回目 ImportError: No module named 'keras'
>>> pip install keras
実行三回目 AttributeError: module 'tensorflow.python.ops.nn' has no attribute 'leaky_relu'
これはtensorflowのバージョンの違いによって出るエラーです.
バージョン 1.5だといけるのでバージョンを指定してインストールしましょう.
>>> pip uninstall tensorflow
>>> pip install tensorflow==1.5
実行四回目 ImportError: No module named 'paste'
>>> pip install paste
実行五回目 serving on 0.0.0.0:80 view at http://127.0.0.1:80
ここまで表示されれば成功です.
ChromeやSafariで以下のURLのどちらかを打ち込みましょう.
どっちでも一緒です.
> http://127.0.0.1:80
> http://0.0.0.0:80/
成功していればこれが表示されるはずです.
これでオフラインでもstyle2paintsで遊べます.
遊び終わったら,コマンドプロンプト上で"Control"+"C"を同時押ししてサーバーを落としましょう.
追記:実行(より丁寧ver)
こちらではより丁寧に実行の仕方を説明します.
質問いただいた方がWindowsだったので,この項はWindowsでこの流れに沿ってやればできるように書きます.
まずは,この記事の上の方にPythonの入れ方(Windows)というリンクがあると思うので,それに従ってWinpythonとOpenCVをインストールします.
今回はWinpythonを使用するので,pythonはもう入れてあるという人もいれてください.
リンク先のWinpythonのところの最後の追記もしっかり読んで環境変数を変更するか決めてください.
よく分からなければ,環境変数はいじらないでおきましょう.
OpenCVまで入れてたら,style2paintsに必要なライブラリを入れます.
Winpythonは様々なライブラリを標準で使えるようになっているのでインストールが必要なのは"bottle"と"paste"の2つだけです.
WinpythonCommandPronptで以下のコマンドを打ちましょう
OpenCVとは違って先に何かをダウンロードするとかは不要です.
>>> pip install bottle
>>> pip install paste
こういう感じになります.
ここまで出来れば,あとは実行するだけです.
WinpythonCommandPronpt上でstyle2paints/V3/serverの階層まで移動します.
”階層の移動って何?”という人はまず,Winpythonのフォルダと"style2paints-master"というフォルダをデスクトップに置いてから以下のコマンドを打ってください.
>>> cd ../../style2paints-master/V3/server
打つと左の部分が変わります.
階層を移動できたら以下のコマンドでstyle2paintsを起動します.
>>> python server.py
画像はMacのもので少し環境が違いますが,Windowsでもこれに似た感じになると思います.
"serving on 0.0.0.0:80 view at http://127.0.0.1:80"まででたら成功です.
ChromeやSafariで以下のURLのどちらかを打ち込むか,このリンクをそのままクリックしてください.
どっちでも一緒です.
> http://127.0.0.1:80
> http://0.0.0.0:80/
これで遊べます!
遊び終わったら指示通り,WinpythonCommandPronpt上で"Ctrl"と"C"を同時押ししてサーバーを落としましょう.
次に使うときはWinpythonCommandPronptを起動して,cdのところからやればできます.
===================
基本的に質問していただければ,できる限り答えます.
気軽に,twitterやコメントで質問してください.
気づくの遅れても何かしらのアクションは起こします.
===================
使い方
よし,遊ぼう!
左下の線画選択をクリックして,線画を選びます.
選択するとこんな感じになります.
前回同様,色付きのフリー素材を線画にしたやつを使います..
三枚画像が表示されるので,画像の間にあるどっちかの矢印をクリックすると色を塗ってくれます.
しばらくすると着色した結果が表示されます.
今回の着色結果はこちらです.
めちゃくちゃ良い...
色指定しなくてもここまでうまく塗ってくれるんですね.
個人的な意見ですけどPaintsChainerより好きですね.
ちなみにPaintsChainerだとこんな感じでした.
次は色指定ありでやってみましょう.
カラーロケーターをクリックして,一番左の画像で色指定をしましょう.
適当にやったらこうなりました.
黄色の服にしようとしましたが,服は黒のままですね...
全体的な雰囲気は黄色っぽくなりました.
カラーロケーターをしてて思ったけど,もしかして物体が1つしかない画像の方がよいのかな?
また,他の画像を参照をしてみます.
画像を参照することによって,参照したカラーベースで着色してくれます.
今回はスタイル比最大にして線画にする前の元画像を参照してみました.
フリー素材ですがそのまま貼るのは憚られるので,参照画像にした元画像は二枚目の淵から想像してください.
流石に元画像そっくりにはなりませんでしたが,元画像が青っぽかったので青色になりました.
かなり綺麗に塗れています.
他の画像でもやった
近日公開予定.
今日は眠いのでお昼寝をします.
総括
今回はオフラインでstyle2paintsをやってみました.
PaintsChainerの時も感動しましたが.今回はよりびっくりしました.
PaintsChainerよりも明確な塗る領域分けをされている気がします.
また,style2paintsの方が色の塗り方も好きです.
今はWeb上ではできないのでローカルでやるしかありませんが,気になった人は是非やってほしいです.
最後に,
作者の名前書かせるフリー素材はしんどい!
以上!