スポンサーリンク

自前のデータで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\    フォルダ
を作成する。

(作成前)
image

(作成後)
image

さらに、images\ フォルダの中に、
appleorange\ フォルダを作成し、その中に、

training\
|-apple\
|-orange\
varidation\
|-apple\
|-orange\

のフォルダを作成。

image

image

image

(2)画像のダウンロードと保存。

りんご30枚+5枚、オレンジ30枚+5枚を、googleの画像検索で拾ってきて、以下のように、名前を、半角英数字で保存。おそらく、半角英数字でないと、あとでうまくいかなくなってしまう可能性が高い。

また、画像はすべてjpgで保存する。(2017/10/17追記)

C:\neural_network_console_100\images\appleorange\training\apple
りんご画像、約30枚(名前は半角英数字にする)
image

C:\neural_network_console_100\images\appleorange\training\orange
オレンジ画像、約30枚(名前は半角英数字にする)
image

C:\neural_network_console_100\images\appleorange\validation\apple
りんご画像、約5枚(名前は半角英数字にする)
image

C:\neural_network_console_100\images\appleorange\validation\orange
オレンジ画像、約5枚(名前は半角英数字にする)
image

(3)Neural Network Console の起動

C:\neural_network_console_100\ フォルダの中の、neural_network_console.exe をダブルクリックして起動。

image

サンプルプロジェクトの、"02_binary_cnn.sdcproj"をクリック。

image

このサンプルは、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)を行う

方針とする。

image

(4)02_binary_cnn.sdproj を、別名で保存。

画面右上のimage(Save as)をクリックして、

image

C:/neural_network_console/projects/ フォルダの下に、「101_apple_orange_cnn.sdcproj」という名前でプロジェクトを名前をつけて保存(02_binary_cnn.sdproj  を別名で保存)。

image

以下のような画面になる。

image

(5)最初の入力を、28 pixelのカラー画像(りんごとオレンジ)に変更。つまり、Input Datasetを、(1,28,28)→(3,28,28)にする。

以下の画面の黒い長方形の、「Input」をクリック。

image

画面左下に、Layer Property “Input"の詳細が表示されるので、Sizeの1,28,28のところをクリック。

image

1, 28, 28 が編集できるようになるので、一番左側の “1" を、 “3"に変更する。
(これは、最初の入力画像を、28x28pixelのグレースケール画像から、28x28pixelのカラー画像(RGBの3)に変更している。)

image

そうすると、Main画面の数値も微妙に自動的に変更される。

image

ネットワークの変更はこれで終了。

(6)りんごとオレンジの、trainingデータセット、validationデータセットを読み込む。

(画像はすべてjpgであり、画像の名前は半角英数字である必要がある(2017/10/17追記))

上記の(2)でダウンロードした画像を利用して、NeuralNetworkConsole上にデータセットを作成する。

image

画面の右上の方にある、DATASET をクリック。

image

DATASET のすぐ下の、image(Open dataset)をクリック。

image

以下のような画面になるので、Create Dataset をクリック。

image

以下のような画面が出てくる。

image

Source Dirの右側の空欄のさらに右側のアイコンをクリックして、

image

C:\neural_network_console_100\images\appleorange\training\ フォルダを選択した状態で、開く をクリック

image

Output Dirの右側の空欄のさらに右側のアイコンをクリックして、

image

C:\neural_network_console_100\datasets\appleorange\  フォルダ(なければ作成する)を開いて、そのまま、保存 をクリック。

image

Output Color Ch を、3(RGB)を選択。

image

画面右下のApply をクリック。

すると、数秒で、画像ファイルのdataset作成が行われて、次のような画面が出てくる。

image

全てのtraining画像が、28x28pixelに変換されている。

ちなみに、datasets/ フォルダの中身は以下のようになっている。

image

変換後の画像も保存されている。

image

(6-2)上記と同様に、Validation用の画像も変換する。

画面左側の Validation をクリック。

image

Open Dataset > Create Dataset

image

image

image

(7)機械学習(training)を行う。

画面右上の CONFIG をクリック

image

Batch Size を、64 を1に変更する。

image

画面右上の Training の下の△ボタンをクリック。

image

すると、もりもり計算されていく。

image

けっこうかっこいい!

image

数分で終了。

image

(8)Validationを行う。

画面右上の、Validation の下の、△ボタンをクリック。

image

すぐに計算が終わる。画面真ん中上のConfiusion matrix をクリック。

image

りんご5枚、オレンジ画像5枚、すべて正解してしまっている(おそらく、色で判断しているのとは思われるが)ことが分かる。

image

とえあえず、なんとか、自前データでNeural network Consoleを使って画像分類することができた!

途中、特に、最初の画像処理の読み込みのところでエラーが出まくって挫折しそうになったが、なんとかできてほっとした。

<結論>

とにかく、公式マニュアルを繰り返し読む。

https://blog.dl.sony.com/259/
Neural Network Console公式マニュアル(日本語)

スポンサーリンク