スポンサーリンク

MNISTのjpg画像からKerasのデータセットに変換し、学習して予測(1)

先に、こちらのスライドがとても分かりやすいので読んでみる。

画像認識モデルを作るための鉄板レシピ
https://www.slideshare.net/takahirokubo7792/ss-71453093

keras dataset 作り方 でググっても見つけられなかったのだが、こういうときはあきらめて英語で検索するしかない。。。

すると、ちゃんとあった。

How to create a Image Dataset just like MNIST dataset?

https://stackoverflow.com/questions/39289285/how-to-create-a-image-dataset-just-like-mnist-dataset

具体例
https://gist.github.com/fchollet/0830affa1f7f19fd47b06d4cf89ed44d
→この具体例の説明が分かりやすい!

“flow_from_directory" という関数を使用すればよいらしい。。。

Keras Documentation
ImaeDataGenerator
https://keras.io/preprocessing/image/

(環境)
Panasonic CF-RZ4
Windows 8.1 Pro
Anaconda 4.4.0
Python 3.5
Chainer 2.0
OpenCV3

(1)以下のようなファイル構造とする

C:/py/keras/MNIST_MLP/ フォルダを作成し、中は、以下のような構造とする。

今回は、KaggleからダウンロードしたMNIST画像をdata/ フォルダ下にそのままコピーした。大量の画像なので、ファイルのコピーだけで数分かかるが、100枚ずつくらいコピーすれば、とりあえずの練習には十分だと思われる。

jpg画像のダウンロードの仕方は、以下に記載した。

http://twosquirrel.mints.ne.jp/?p=20494

(参考)

kerasでCNN 自分で拾った画像でやってみる
haru1977
2017年08月30日に更新
https://qiita.com/haru1977/items/17833e508fe07c004119

2017-04-28
ディープラーニング実践入門 〜 Kerasライブラリで画像認識をはじめよう!
https://employment.en-japan.com/engineerhub/entry/2017/04/28/110000

(2)jupyter notebookを開いて、以下のコードをコピペして実行。

何度も吐き出されるエラーに一つずつ対応していった。。。

でも、間違っているかもしれません。。。



実行結果は以下のようになる。

ipynbファイルと同じフォルダに、以下のように、

apple_orange_model.json
apple_orange_weights.h5

ファイルが作成される。

(3)学習結果を用いて新しいデータを予測してみる。

C:/py/keras/MNIST_MLP/ フォルダの中に、predict/ フォルダを作成し、その中に、前回ダウンロードしたMNISTjpgファイルの中の、"testSet"フォルダをコピーする。

predict.py を作成し、以下のコードをコピペ。

やっぱりjpg画像から学習して、新しいjpg画像を入力して予測してこそ、本当のMNISTだと思うのです!

が、ここまでくるのに1年以上かかりました。。。とほほ。。。

 

(参考)

train_test_splitのmoduleが0.20から変わるらしく0.18でDeprecationWarningが出る

kasajei
2017年01月01日に投稿

https://qiita.com/kasajei/items/e23929627d51aa1b09fe