Jupyter * Keras(深層学習のライブラリ)を試してみるの続き。
画像の読み込み
学習済みのモデルと形式を合わせる必要がある。
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)で出力してフォーマットするといい。
加工すると以下のようになる。
検証
データさえ用意できたら後は難しいことはない。
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