Keras で画像読み込み

Kerasで画像分類~前処理から分類テストまで~
https://qiita.com/neet-AI/items/2b3d7f743e4d6c6d8e10

こちらの記事を参考にさせて頂きました。有益な情報に感謝です。

from keras.preprocessing.image import load_img, img_to_array, array_to_img
import glob
import numpy as np

arraylist = []
files = glob.glob("01/*.tiff")
for file in files:
    img = load_img(file)
    array = img_to_array(img)
    arraylist.append(array)

nplist = np.array(arraylist)

これで、特定フォルダ以下の画像を読み込み numpy array に出来ました。画像は 135x240px RGB が 151枚あるので nplist.shape で表示させてみると (151, 135, 240, 3) になりました。

Matplitlib で表示

import matplotlib.pyplot as plt
plt.imshow(nplist[0])

このまま直接 imshow をやったら表示されました。

keras.preprocessing.image

色々出来そう。

下記の指定で読み込んだ時にグレースケール (135, 24, 1) 次元になる。
load_img(file, color_mode=”grayscale”)

グレースケール化した画像の表示

matplitlib の imshow に渡す時は RGB のみでしかも [0..1] にクリップされている必要がある。img_to_array(img) / 255. などを呼び出して [0..1] に収める。

グレースケールを RGB に変換するには下記のコードを使った。

import tensorflow as tf
from keras import backend
rgb = tf.image.grayscale_to_rgb(nplist[0])
array = backend.get_session().run(rgb)

tf.image.grayscale_to_rgb() を使うと Tensor 型になってしまうので、それを Numpy に変換している。

学習済みデータの保存

model.save_weights('weights.h5')

コメントを残す

メールアドレスが公開されることはありません。