Jupyter * Keras(深層学習のライブラリ)を試してみるの続き。
画像の読み込み
学習済みのモデルと形式を合わせる必要がある。
1 2 3 4 5 6 7 | img_path = './img/3.png' img = load_img(img_path, color_mode = "grayscale" , target_size=( 28 , 28 )) x = img_to_array(img) # 画像データをnumpy.arrayへ変換 # 学習データが黒背景白文字 テスト画像が白背景黒文字なので反転 x = 255 - x x = np.expand_dims(x, axis= 0 ) x = x.astype( 'uint8' ) |
データは4次元データに変換しないといけない。
グレースケールの場合(1, x, y, a)
RGBの場合(1, x, y, rgb)
画像データを確認したい場合print(x)で出力してフォーマットするといい。
加工すると以下のようになる。

検証
データさえ用意できたら後は難しいことはない。
1 2 3 4 5 6 7 8 9 | print(x.shape, x.dtype) predicated = loadedModel.predict(x) print(predicated) # 検証 print( "数値:" , np.argmax(predicated)) # テスト画像データを表示 plt.imshow(img, cmap =plt.cm.gray_r) plt.show() |
img_pathを変更することで任意の画像でテストできる。
画像が小さかったり, 左右に寄っていたりするとは正しく認識できずおそらく学習データの問題?
例のごとくGitHubに上げてる。
https://github.com/ninomae-makoto/keras/tree/master/02_testmyimage