こんにちは。新年度になりましたね。
セマンティックセグメンテーションを使って猫を切り抜いて雑コラを作りたいと思っていた中、DeepLabv3+が少し話題になっていたので触ってみました。
https://research.googleblog.com/2018/03/semantic-image-segmentation-with.html
https://github.com/tensorflow/models/tree/master/research/deeplab
macへの導入に苦戦してしまってなんとなくの履歴しか残っていなかったのですがメモ程度に残しておきます。DeepLab、TensorFlow共に3月末時点のバージョンです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
//まずTensorFlowが入っている状態 pip install --upgrade tensorflow cd tensorflow/ source bin/activate //DeepLabを取って来て実行していく //GitのInstallationのwikiに書いてある git clone https://github.com/tensorflow/models.git cd models/research/ export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim cd deeplab/ python model_test.py sh local_test.sh //jupyter入れて実行したが自分の環境では動かなかったのでipythonを入れてみた //パーミッションエラーが起きたらsudoで pip install jupyter pip install ipython pip3 install jupyter ipython notebook //ipython実行途中でインポートエラーが起きたのでPILや結局TensorFlowも入れなおした pip3 install pillow pip3 install tensorflow ipython notebook |
もともとTensorFlowは試したことあって入っていたのですが、改めてバージョンアップしてからDeepLabを入れました。
local_test.shまではここを見てなんとか進んだ(EvalやVisualizingに結構時間かかった…)んですが、jupyterが全然動かない…
周辺ライブラリとか本体を入れなおしたり試行錯誤してipythonで動きました。
うまく実行できるとブラウザでこういった画面が起動します。deeplab_demo.ipynbがサンプルなのでこれをクリック。
次にこういった画面になり、上のブロックから順番に選択して(選択したものに枠が付きます)Runのボタンを押して行きます。自分の環境では一番上のブロックでPILとTensorFlowのインポートエラーが起きて、インストールし直しました。
一番下のブロックまで実行して成功するとサンプルイメージのセマンティックセグメンテーションが行なわれます。自転車に乗っている子どものシルエットが出力されました。
ちなみに最終ブロックのIMAGE_URLを書き換えるとサンプル以外の画像にも適用が可能です。
ももさんもちゃんと猫として分離されました!
これからPILで画像出力されている情報を数値で取得する作業を始めたいと思います。
果たしてできるのかはわからないですが!
ピクセル情報を取得できれば雑コラにも一歩近づけますね(゜-゜)