Python
Windows
Chainer

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

More than 1 year has passed since last update.

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のバージョンによるらしいのだけど、よくわかりません。

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