【Neural Network Console】新規画像のDataset作成方法

シェアする

  • このエントリーをはてなブックマークに追加
最近の記事
  • 10/21 【C#】寸法線の描画
  • 10/21 【C#】GraphicsPathの領域取得
  • 10/20 【C#】GraphicsPathの描画
  • 10/18 【C#】GraphicsPath
  • 10/17 【C#】Bitmap画像データの拡大縮小
  • 10/15 【C#】画像の座標系
  • 10/14 【C#】画像の上下左右反転、90,180,270度回転
  • 10/3 【C#】SplitContainerのPanel固定方法
  • 9/7 【Neural Network Console】学習データの出力方法
  • 9/3 Deep Learning向け学習画像撮り込みソフト公開
  • 9/1 【Neural Network Console】新規画像のDataset作成方法
  • 8/28 【Neural Network Console】GUI表示スケールの変更
  • 8/22 【Neural Network Console】CPU/GPU処理の設定切替
  • 8/21 【Neural Network Console】Learning Rate(学習率)の設定
  • 8/20 ソニーの無償AIソフト Neural Network Consoleの入手ダウンロード、インストール
  • 8/20 Deep Learning
  • 8/20
  • 8/19 古いバージョンのVisual Studio Community/Expressの入手ダウンロード
  • 8/19 CUDAの入手、ダウンロード、インストール方法
  • 8/17 【C#.NET】マイクロソフト仕様のアフィン変換
  • 8/5 【C#】ファイルを開くダイアログボックスの表示
  • 8/2 キャノンプリンターのCDトレイはどこ?!
  • 7/6 【参考書籍】画像処理・機械学習プログラミング OpenCV 3対応
  • 6/20 【Python,matplotlib】動くグラフをAnimationGifに保存する方法
  • 6/17 シグモイド関数の微分
  • 6/15 シグモイド関数
  • 6/13 合成関数の微分
  • 6/12 WordPressで数式エディタ風に数式を入力したい
  • 6/11 PythonをVisual Studioでインストールする方法
  • 6/9 【Python】OpenCVをAnacondaでインストール(Windows編)
  • 6/6 【Python】Anacondaで複数バージョンの環境切り替え
  • 6/6 画像センシング展2017に出展します。
  • 6/1 【Office365】Web版Outlookのフォントサイズ変更
  • 6/1 【Anaconda】モジュールのアップデートでエラー発生
  • 6/1 【Anaconda】コマンドリストの表示
  • 5/29 Windows10パソコン購入
  • 5/24 Anacondaのアンインストール
  • 5/24 【Jupyter Notebook】新規プログラムの作成
  • 5/23 【Python】開発環境の構築
  • 5/23 Pythonはじめました
  • 4/6 【Office365】Web版Outlookのスレッド表示を解除する方法
  • 4/5 【Excel】フーリエ解析(FFT)
  • 3/20 Canny edge detection
  • 3/20 【Excel2016】分析ツールの表示
  • 3/5 【Visual Studio】黒い背景色を白に変更する方法
  • 2/8 【Windows10】拡張モニタに表示されたウィンドウを元に戻す
  • 2/7 複素数の計算
  • 1/18 【Excel】棒グラフの横軸の目盛を0始まりにする
  • 1/16 【Excel】フーリエ変換
  • 1/6 【OpenCV】疑似カラー(カラーマップ)

  • Deep Learning用の学習データとしては、MNISTの手書きの数字がよく使われますが、そればかりやっていても面白くないので、自分で撮影した画像を使った学習データを作成してみようと思います。

    Neural Network Consoleでは、集めた画像から学習データ用のフォーマットを作るのは、Neural Network Consoleがやってくれるので、ユーザーがやるのは画像データを集めるだけ。

    今回はInterfaceの8月号に乗っていた きのこの山 と たけのこの里 の画像をChainerを使って分類する!

    という記事の内容をマネして、きのこの山 と たけのこの里 の画像をNeural Network Consoleで分類してみたいと思います。

    この記事によると、それぞれの画像を約40枚撮影し、さらに画像の回転、上下、左右の反転を行うことで、画像の枚数を水増しすると書いてありましたが、画像をそれぞれ40枚(計80枚)撮影するのも大変なので、C#でWebカメラで撮影した画像から、きのこの山 や たけのこの里 の写っている部分を切り出し、その画像を90°、180°、270°回転したものと、上下、左右を反転した画像の計6枚をマウスの1クリックでファイルに保存するプログラムを、まずは作成しました。

    ※このプログラムはこちら↓のページで公開しています。

    Deep Learning向け学習画像撮り込みソフト公開
    最近はソニーのNeural Network Consoleを触りながらDeep Learningのお勉強をしているのですが、先日書いた記事 ...

    このプログラムを使って、きのこの山 と たけのこの里 の画像をそれぞれ約1500枚の画像を撮影しました。

    撮影した画像は、それぞれの分類ごとのフォルダに分けて保存しておきます。

    Neural Network Console 新規画像Datasetの作成方法

    Neural Network Console 新規画像Datasetの作成方法

    次にNeural Network ConsoleでHomeDATASETを選択し、+Create Datasetを選択します。

    Neural Network Console 新規画像Datasetの作成方法

    次に学習データの設定を行います。

    Neural Network Console 新規画像Datasetの作成方法

    Source Dir 分類ごとのフォルダに分けて画像が保存されているフォルダを指定します。
    Output Dir 学習データを出力するフォルダを指定します。
    (最初は空のフォルダ)
    Shaping Mode 元の画像と出力する画像の縦横比が異なるときの処理方法を指定します。

    ●Triming  画像の幅もしくは高さの短い方を出力サイズに合わせて、余計な部分をカットする

    ●Radding 画像の幅もしくは高さの長い方を出力サイズに合わせて、余白部分を黒(0)で埋める

     Output Color Ch  ●1(モノクロ画像)

    ●3(カラー画像)

     Output Width  出力画像の幅
    Shufle the order of the data 画像データをシャッフルして出力します。
    Output File 1 学習に用いるデータセットのファイル名(*.csv)を指定します。
    Output File 2 学習データの評価用に用いるデータセットのファイル名(*.csv)を指定します。
    Ratio 学習用:評価用に用いる画像の枚数の割合を指定します。

    (足して100にすること)

    上記の値を設定し、 Apply ボタンをクリックします。

    すると、出力フォルダにリサイズされた画像とデータセットのCSVファイルが作成されます。

    Neural Network Console 新規画像Datasetの作成方法

    CSVファイルの中身はこんな↓感じに、学習用の画像画像ファイル名と正解のラベル(今回は0がきのこの山、1がたけのこの里)のペアが各行ごとに記載されいます。

    Neural Network Console 新規画像Datasetの作成方法

    これでデータセットの作成は完了です。

    試しに、このデータセットを使って学習と評価を行ってみたいと思います。

    今回は、一番シンプルな4と9の分類のサンプルプロジェクト(01_logistic_regression)を使って、データセットの部分を差し替えてみたいと思います。

    まず、サンプルプロジェクト(01_logistic_regression)を開いて、別の名前でプロジェクトを保存します。

    保存は右上の Save as より行います。

    Neural Network Console 新規画像Datasetの作成方法

    プロジェクトのDATASETの部分クリックします。

    Neural Network Console 新規画像Datasetの作成方法

    すると、作成したデータセットが読み込まれます。

    Neural Network Console 新規画像Datasetの作成方法

    次にデータセットがもともとの4と9の識別用のデータセットが設定されたままの状態なので、今回作成したデータセットに変更します。

    左側に表示されているTraining と Validation の部分を選択して、右上のOpen datasetをクリックします。

    Neural Network Console 新規画像Datasetの作成方法

    今回はTraining に train.csv、Validationにtest.csv ファイルを指定しています。

    これで、Datasetの設定も完了。

    ニューラルネットワークの部分は一か所だけ変更しています。

    手書き文字の4と9の分類の時は、モノクロ画像だったので、入力(Input)のサイズが

    1,28,28

    でしたが、今回はカラー画像なので

    3,28,28

    と変更しました。

    Neural Network Console 新規画像Datasetの作成方法

    続いて、Train の下の▶マークをクリックして、データの学習を行った結果がこちら↓

    Neural Network Console 新規画像Datasetの作成方法

    次にEvalutionの下の▶マークをクリックして、評価を行った結果がこちら↓Neural Network Console 新規画像Datasetの作成方法

    Neural Network Console 新規画像Datasetの作成方法

    ただ、データセットを入れ替えて試してみただけなのに、分類の精度(Accuracy)が99.85%と表示されています。

    まだ、Deep Learningをそんなに理解できていないのに、なんとなくで、これだけの精度が出てしまうのは、やっぱりNeural Network Consoleはすごい!!

    適当にやっても、すぐに結果がわかる(見える)のは、大事だな~

    と、つくづく関心させられてしまいます。

    とは言っても、まだ、一つ一つの言葉が理解できていないので、Neural Network Consoleを触りながら勉強していこうと思っています。

    ※撮影に使用した きのこの山 と たけのこの里 は私がおいしく頂きました。

    ちなみに、私はたけのこの里の方が好きです。

    Deep Learningへ戻る