Kerasで作成した訓練データを読み込んで自前の画像をテストする

ファイルの読み込み。加工が中心。
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

2019年3月30日土曜日