ChainerWing、インストールから画像分類まで
自作したchainerGUIクライアントの日本語のマニュアルが作れてなかったので、ようやくこの記事で公開です。
サンプルプロジェクトを叩くのもいいと思います。
動かないとかあったら、コメントでも投げてください。
インストール
- Python3.5のインストール
https://www.python.org/downloads/
Python3.5.xで一番新しいのをインストールすればよいです
- Qt, PyQt5インストール
https://qiita.com/kenasman/items/55505654823e9d040e6e
- chainerインストール
pip install chainercv
- chainercvインストール
pip install chainercv
- ChainerWingインストール
起動
binに移動してpython ./ChainerWing.pyを実行します。
タスクの設定
このボタンをクリックするとタスクの詳細を設定できます。
画像分類をやりたいときはTaskにImage Classificationを選択します。そのほかエポック数、バッチサイズ、GPU数をセットできます。CPUを使う場合は、GPUを0としてください。
ネットの構築
右上の方にあるノードリストからドラッグアンドドロップして、ノードを追加します。
ノード同士をマウスでクリックして接続します。
VGG16を使いたいだけなら、これだけでよいです。(VGG16にSoftmaxCrossEntropyをつなげるだけ)
事前学習結果を使いたい場合、pretrainedをクリックしてautoと打ち込みます。
構築したネットの保存
このボタンでセーブできます。
トレーニングデータの構成
こんな感じの階層でディレクトリ構造を作ります。
all_data/
├ dog/
│ ├ dog1.jpg
│ ├ dog2.jpg
│ └ ...
├ person/
│ ├ person1.jpg
│ └ person2.jpg
└ cat/
├ cat1.jpg
└ cat2.jpg
dogというディレクトリには犬の画像を集め、personには人、というように一つのサブディレクトリにその種類の画像を入れます。拡張子で画像か判断するので画像の名前はなんでもよい。
集めるのが大変でしたら
http://chromesoku.com/image-downloader/
などのスクレイピングソフトを使ってみてください。
このディレクトリ構成を作った後、
このボタンをポチって、Set Train Dataでブラウズ、all_dataディレクトリを指定します。
テストデータ
テストデータもトレーニングデータと同様の構成にして、Set Test DataのBrowseボタンを押し、ディレクトリを指定します。トレーニングデータの一部をテストデータとして使いたいときは、Same data with trainingにチェックを入れます。
データオーグメンテーション
データ選択画面でデータオーグメンテーションのチェックができます。
回転や反転、リサイズ、PCA白色化の設定を行えます。
Updateボタンを押すと、データオーグメンテーション後のプレビュー画像が保存されます。
学習
設定が終わったら再生ボタンみたいなここをポチッとします。
終わるとこのメッセージが出ます。このメッセージで学習済モデルの保存先が表示されます。この保存先は、学習済モデルを使って予測を行うときに使用します。
k
ラーニングカーブが右下に出ます。
予測
学習したモデルを使って予測をします。このボタンを押すと予測画面が開かれます。
1では学習済モデルを選択します。学習終了時にモデルの保存先がメッセージに現れるので、それを選択します。
2は予測の際に使用する入力画像を選択します。
このとき、Select Input Data by Directoryにチェックを入れておけば、ディレクトリ丸ごとを選択することができ、その中の画像全ての分類を予測します。
予測結果は、以下のように各カテゴリに何%の確率でどのクラスに所属するかがテーブルで表示されます。