Edited at

Chainer+Tkinterで、自分で手書きした数字を認識してみる


こんな人向けです


  • Chainerのexampleを実行できた!けどちゃんと学習できたのか、いまいちよくわからない

  • 自分で書いた数字を認識してみたい


作ったもの

左側に数字を書くと、右側に認識結果が表示されます。


参考


VisualizeChainer

コードを置いたので実行してみてください。

https://github.com/nabehide/VisualizeChainer


動作確認した環境


  • Mac OSX El Capitan

  • Python 2.7.10

  • chainer 1.13.0

  • h5py 2.6.0

  • numpy 1.11.1

  • pillow 3.3.0

入っていない場合はpipなどでインストールしてください。


実行方法

コマンドの実行に必要なものです。


  • Git : https://git-scm.com/

  • wget :


    • Macであれば brew install wget でインストールできます



下記コマンドでGUIが起動します。

$ git clone https://github.com/nabehide/VisualizeChainer

$ cd VisualizeChainer/MNIST
$ wget https://github.com/nabehide/VisualizeChainer/releases/download/v1.0.0/20160818_MNIST.model.zip
$ unzip 20160818_MNIST.model.zip
$ python main.py

左側のcanvasに数字を書いて、左下のjudgeボタンを押すと、右側のresultに認識結果が表示されます


コードの説明

canvasの見た目はTkinterですが、裏でPILのキャンバス(?)にも同時に描画しています。

「judge」ボタンを押すと、裏キャンバスのデータをpngに変換 → 28×28にリサイズ → データをNNに入力 → 認識結果を得る

という流れです。

かなり回りくどいんじゃないかと思うので、今後シンプルにしたいです。