公式のpython on win10でPaintsChainer on CPUを動かす

  • 7
    いいね
  • 0
    コメント

pythonは使ってなかったけどPaintsChainerを手元で動かしたい! という、あなたのための記事です。

始める前に

コマンドラインとかわからん! という向きにも導入して頂きたくWindows 64bit で動くPaintsChainer 環境をまとめてみました。
https://drive.google.com/file/d/0Bxi51MbdWHVhM2pZSi1LNl9XYnc/view

これと同じものをご自分で構築したい! その場合はこの記事を読み進めましょう。

win10にpython 3.5を入れる

手元の Windows 10 (64bit) にpythonを入れます。
pythonと言ってもいろいろあるのだけど、ここでは公式のpythonを使います。

公式サイト www.python.org からWindows版をダウンロードします。
いろいろ配布されていて迷いますね。私は python-3.5.3-amd64.exe を選択しました。

最新版の3.6でなく3.5を選択したのはblender 2.78に合わせたかったからなのだけど、3.6はnumpy(chainerが使うライブラリ)との相性が良くないみたいです。

ダウンロードしたら実行しましょう。

python-101.png
インストール位置を変更したいので(C:の容量が厳しいので)Customize installationを押します。

python-102.png
オプションを選びます。最初は全部チェックが入っています。私は上記のようにしました。pipとpyは入れましょう。

python-103.png
さらにオプション。ここでは環境変数 (environment variables) にPythonを追加しておきます。インストール位置 (install location) はご自分の環境に合わせて編集しましょう。

python-104.png
完了しました!

黒い画面

おもむろにcmd.exeを実行します。あの黒い画面ですね!

cmd-003.png
python (py) が応答することを確認しておきましょう。

chainer opencv pillowを入れる

パッケージはpipというコマンドを使って入れます。
入れる必要があるのはchainer(主役)opencv-python(画像処理)そして pillow(画像処理)です。

wheelという仕組みのおかげで公式のpythonでもすんなり入ると思います。

E:\usr\src\PaintsChainer>pip install chainer
Collecting chainer
  Downloading chainer-1.20.0.1.tar.gz (1.2MB)
    100% |################################| 1.2MB 164kB/s
Collecting filelock (from chainer)
  Downloading filelock-2.0.7.tar.gz
Collecting nose (from chainer)
  Downloading nose-1.3.7-py3-none-any.whl (154kB)
    100% |################################| 163kB 109kB/s
Collecting numpy>=1.9.0 (from chainer)
  Downloading numpy-1.12.0-cp35-none-win_amd64.whl (7.7MB)
    100% |################################| 7.7MB 61kB/s
Collecting protobuf (from chainer)
  Downloading protobuf-3.1.0.post1-py2.py3-none-any.whl (347kB)
    100% |################################| 348kB 240kB/s
Collecting six>=1.9.0 (from chainer)
  Downloading six-1.10.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in e:\python35\lib\site-packages (from protobuf->chainer)
Installing collected packages: filelock, nose, numpy, six, protobuf, chainer
  Running setup.py install for filelock ... done
  Running setup.py install for chainer ... done
Successfully installed chainer-1.20.0.1 filelock-2.0.7 nose-1.3.7 numpy-1.12.0 protobuf-3.1.0.post1 six-1.10.0

E:\usr\src\PaintsChainer>pip install opencv-python
Collecting opencv-python
  Downloading opencv_python-3.2.0.6-cp35-cp35m-win_amd64.whl (22.1MB)
    100% |################################| 22.1MB 32kB/s
Requirement already satisfied: numpy>=1.11.3 in e:\python35\lib\site-packages (from opencv-python)
Installing collected packages: opencv-python
Successfully installed opencv-python-3.2.0.6

E:\usr\src\PaintsChainer>pip install pillow
Collecting pillow
  Downloading Pillow-4.0.0-cp35-cp35m-win_amd64.whl (1.5MB)
    100% |################################| 1.5MB 195kB/s
Collecting olefile (from pillow)
  Downloading olefile-0.44.zip (74kB)
    100% |################################| 81kB 1.7MB/s
Installing collected packages: olefile, pillow
  Running setup.py install for olefile ... done
Successfully installed olefile-0.44 pillow-4.0.0

E:\usr\src\PaintsChainer>pip list --format=columns
Package       Version
------------- -----------
chainer       1.20.0.1
filelock      2.0.7
nose          1.3.7
numpy         1.12.0
olefile       0.44
opencv-python 3.2.0.6
Pillow        4.0.0
pip           9.0.1
protobuf      3.1.0.post1
setuptools    28.8.0
six           1.10.0

すごいぞpip!

PaintsChainerをCPUで動かす

NVIDIAのGPUがない環境ではCUDAが動かないので(AMDのでも頑張れば動くらしい…)CPUで動かします。
CPUを使うにはWebサーバを起動するときに -g -1 と指定します。

E:\usr\src\PaintsChainer>py server.py -g -1
GPU: -1
start
load model
serving at localhost : 8000

あとは http://localhost:8000/static をブラウザで開くと見慣れた画面になります!

動くけど色がおかしい場合

実行結果の画像は作られるけど色がおかしくなる(赤と青のチャンネルが入れ替わる)場合はBGRをRGBに書き換える必要があります(計5箇所)。

in cgi_exe.py:
    change cv2.COLOR_YUV2BGR to cv2.COLOR_YUV2RGB
in img2imgDataset.py:
    change cv2.COLOR_BGR2YUV to cv2.COLOR_RGB2YUV

opencvのバージョンによるらしいのだけど、よくわかりません。

いづれにしても、手元で動くのは感動ものなので、お試しあれ。サーバが手元にあると、いちいち保存しなくて済むのも良い。