画像認識のためのさいつよツール「digits」の紹介 その2

皆さんこんにちは菊池です
今回はdigitsの二回目で
実際に学習をしてみましたという記事です

テストデータなのですがMNISTという有名な手書き文字のデータセットを使います。
自分でデータセットを作るのはめんどくさいしね

ちなみにこのチュートリアルはgithubに同じものが載っています

Getting Started

この記事では
dockerでdigitsを立ち上げているという前提で話を進めています

docker run --name digits -p "5000:5000"  -v ./images/:/mnt/volumes/images kaixhin/digits

はじめに手書きのデータをダウンロード

docker exec -it <コンテナ名> /root/digits/tools/download_data/main.py mnist  /mnt/volumes/images

labels.txtの中身

0
1
2
3
4
5
6
7
8
9

train.txtの中身

/root/mnist/train/0/14749.png 0
/root/mnist/train/0/51889.png 0
/root/mnist/train/0/00997.png 0
/root/mnist/train/0/16585.png 0
/root/mnist/train/0/59099.png 0
/root/mnist/train/0/04855.png 0
/root/mnist/train/0/56639.png 0
/root/mnist/train/0/11340.png 0
/root/mnist/train/0/36260.png 0/root/mnist/train/9/38674.png 9
/root/mnist/train/9/16422.png 9
/root/mnist/train/9/46148.png 9
/root/mnist/train/9/13247.png 9
/root/mnist/train/9/35245.png 9
/root/mnist/train/9/47974.png 9
/root/mnist/train/9/25258.png 9
/root/mnist/train/9/11150.png 9
/root/mnist/train/9/07194.png 9
/root/mnist/train/9/23555.png 9
/root/mnist/train/9/35080.png 9
/root/mnist/train/9/54026.png 9
/root/mnist/train/9/36629.png 9
/root/mnist/train/9/24911.png 9
/root/mnist/train/9/18777.png 9

ブラウザでlocalhost:5000にアクセスすると下のような画面になります.

スクリーンショット 2016-07-10 14.13.19

ログインします。適当なユーザ名を入れちゃってください

スクリーンショット 2016-07-10 14.13.52

そうしたら、今回は手書き文字の分類をやるので
New Dateset>Classificationを選択します。
スクリーンショット 2016-07-10 14.15.31

Training ImagesにダウンロードしたMNISTのtrain.txtやlabels.txt、画像データが入っているtrainディレクトリを設定します。

それからImage sizeは28×28です

スクリーンショット 2016-07-10 15.21.44

 

Dataset Nameを設定して(適当に)createをおせばデータセットの作成が始まります。

ブラウザの更新を押すと下のような画面になって作成が終わったことがわかります。

スクリーンショット 2016-07-10 14.29.50

 

 

次に、HOMEに戻って

スクリーンショット 2016-07-10 14.30.59

 

New Model>Classificationを選択します。

スクリーンショット 2016-07-10 14.32.07

SelectDatasetの項目で先ほど作成したDatasetを選択して

スクリーンショット 2016-07-10 16.33.07

 

下の方にあるStandard NetworksのLeNetを選択し、Model Nameを適当につけてCreateです。

スクリーンショット 2016-07-10 14.33.41

すると学習が始まります。ブラウザの更新をおせば進行状況をリアルタイムで確認することができます。

スクリーンショット 2016-07-10 14.35.18

 

終了予想時間1h31m ・・・結構かかりますね。GPU積んでないので仕方ないです。

スクリーンショット 2016-07-10 14.37.02

 

あとは待ってるだけです。シャドウバースでもやっててください

ちなみに学習の途中でもテストをすることができます。
画像のURLを貼ってあげるだけでテストできるのでとても便利ですね!

 

 

スクリーンショット 2016-07-10 14.56.46 スクリーンショット 2016-07-10 14.56.56

 

あとはモデルデータを落として、pythonとかでコードを書いてどんどん手書き文字を識別すればいいんですね

あれちょっとまって・・・
画像用意して・・
asu4

curl localhost:5000/models/images/classification/classify_one.json -XPOST -F job_id=20160710-053500-0a2e -F image_file=@./Desktop/4.jpg

{
  "predictions": [
    [
      "4",
      85.8
    ],
    [
      "0",
      7.39
    ],
    [
      "8",
      1.87
    ],
    [
      "7",
      1.83
    ],
    [
      "1",
      1.8
    ]
  ]
}



postで画像投げたら、jsonで返ってくるじゃん、すげえ!!

これで機械学習も使えるようになりました!ぜひ活用してみてくださいね!