自前のデータでNeuralNetworkConsole(SONY)で画像分類(1)
インストールしてTutorial(MNIST)は試してみたものの、それでは面白くないので、自前データで機械学習をしてみたい!
基本的に、公式マニュアル https://blog.dl.sony.com/286/ と、公式動画(youtube動画リンク)に従ってやっていくのみ。
<2017/11/24追記>
動画にしてみました。
インストール方法は以下
http://twosquirrel.mints.ne.jp/?p=19679
(環境)
Panasonic CF-RZ4
Windows8.1 Pro (64-bit)
Microsoft Visual C++ 2015 再頒布可能パッケージ Update 3 RC
Neural Network Console_V1.0.0
http://twosquirrel.mints.ne.jp/?p=19448
Kerasでりんごとオレンジの分類(おそらく色で判断しているでしょうが、、、)をやったのと同じ画像で試してみる。
(1)フォルダの作成と、画像ファイルの用意。
りんご30枚+5枚、オレンジ30枚+5枚を、googleの画像検索で拾ってきて保存するための場所を作成する。
C:\neural_network_console_100\ フォルダの下に、新たに、
images\ フォルダ
datasets\ フォルダ
projects\ フォルダ
を作成する。
さらに、images\ フォルダの中に、
appleorange\ フォルダを作成し、その中に、
training\
|-apple\
|-orange\
varidation\
|-apple\
|-orange\
のフォルダを作成。
(2)画像のダウンロードと保存。
りんご30枚+5枚、オレンジ30枚+5枚を、googleの画像検索で拾ってきて、以下のように、名前を、半角英数字で保存。おそらく、半角英数字でないと、あとでうまくいかなくなってしまう可能性が高い。
また、画像はすべてjpgで保存する。(2017/10/17追記)
C:\neural_network_console_100\images\appleorange\training\apple
りんご画像、約30枚(名前は半角英数字にする)
C:\neural_network_console_100\images\appleorange\training\orange
オレンジ画像、約30枚(名前は半角英数字にする)
C:\neural_network_console_100\images\appleorange\validation\apple
りんご画像、約5枚(名前は半角英数字にする)
C:\neural_network_console_100\images\appleorange\validation\orange
オレンジ画像、約5枚(名前は半角英数字にする)
(3)Neural Network Console の起動
C:\neural_network_console_100\ フォルダの中の、neural_network_console.exe をダブルクリックして起動。
サンプルプロジェクトの、"02_binary_cnn.sdcproj"をクリック。
このサンプルは、28 x 28 pixelのグレースケールの画像を数字の4と9に画像分類するCNN(畳み込みニューラルネットワーク)である。
今回は、(画像ファイルを用意した後、)
<1>このネットワークをコピペして、
<2>最初の入力を、28 pixelのカラー画像(りんごとオレンジ)に変更。つまり、Input Datasetを、(1,28,28)→(3,28,28)にして
<3>りんごとオレンジの、trainingデータセット、validationデータセットを読み込んで、
<4>機械学習(training)を行い、
<5>学習結果を評価(validation)を行う
方針とする。
(4)02_binary_cnn.sdproj を、別名で保存。
C:/neural_network_console/projects/ フォルダの下に、「101_apple_orange_cnn.sdcproj」という名前でプロジェクトを名前をつけて保存(02_binary_cnn.sdproj を別名で保存)。
以下のような画面になる。
(5)最初の入力を、28 pixelのカラー画像(りんごとオレンジ)に変更。つまり、Input Datasetを、(1,28,28)→(3,28,28)にする。
以下の画面の黒い長方形の、「Input」をクリック。
画面左下に、Layer Property “Input"の詳細が表示されるので、Sizeの1,28,28のところをクリック。
1, 28, 28 が編集できるようになるので、一番左側の “1" を、 “3"に変更する。
(これは、最初の入力画像を、28x28pixelのグレースケール画像から、28x28pixelのカラー画像(RGBの3)に変更している。)
そうすると、Main画面の数値も微妙に自動的に変更される。
ネットワークの変更はこれで終了。
(6)りんごとオレンジの、trainingデータセット、validationデータセットを読み込む。
(画像はすべてjpgであり、画像の名前は半角英数字である必要がある(2017/10/17追記))
上記の(2)でダウンロードした画像を利用して、NeuralNetworkConsole上にデータセットを作成する。
画面の右上の方にある、DATASET をクリック。
DATASET のすぐ下の、(Open dataset)をクリック。
以下のような画面になるので、Create Dataset をクリック。
以下のような画面が出てくる。
Source Dirの右側の空欄のさらに右側のアイコンをクリックして、
C:\neural_network_console_100\images\appleorange\training\ フォルダを選択した状態で、開く をクリック
Output Dirの右側の空欄のさらに右側のアイコンをクリックして、
C:\neural_network_console_100\datasets\appleorange\ フォルダ(なければ作成する)を開いて、そのまま、保存 をクリック。
Output Color Ch を、3(RGB)を選択。
画面右下のApply をクリック。
すると、数秒で、画像ファイルのdataset作成が行われて、次のような画面が出てくる。
全てのtraining画像が、28x28pixelに変換されている。
ちなみに、datasets/ フォルダの中身は以下のようになっている。
変換後の画像も保存されている。
(6-2)上記と同様に、Validation用の画像も変換する。
画面左側の Validation をクリック。
Open Dataset > Create Dataset
(7)機械学習(training)を行う。
画面右上の CONFIG をクリック
Batch Size を、64 を1に変更する。
画面右上の Training の下の△ボタンをクリック。
すると、もりもり計算されていく。
けっこうかっこいい!
数分で終了。
(8)Validationを行う。
画面右上の、Validation の下の、△ボタンをクリック。
すぐに計算が終わる。画面真ん中上のConfiusion matrix をクリック。
りんご5枚、オレンジ画像5枚、すべて正解してしまっている(おそらく、色で判断しているのとは思われるが)ことが分かる。
とえあえず、なんとか、自前データでNeural network Consoleを使って画像分類することができた!
途中、特に、最初の画像処理の読み込みのところでエラーが出まくって挫折しそうになったが、なんとかできてほっとした。
<結論>
とにかく、公式マニュアルを繰り返し読む。
https://blog.dl.sony.com/259/
Neural Network Console公式マニュアル(日本語)
ディスカッション
コメント一覧
まだ、コメントがありません