🔍 学習済みKerasモデルで画像を判定する【推論編】
前回の記事では、Keras + VGG16 を使って画像分類モデルを構築し、学習済みのモデルを keras_model.h5
として保存しました。
今回はそのモデルを使って、新しい画像を分類(推論)する方法を紹介します。
🎯 このスクリプトでできること
- 学習済みの
.h5
モデルを読み込み - 新しい画像を指定サイズに変換し、モデルに入力
- 分類結果(ラベルとスコア)を出力
🧪 実行例:画像1枚を分類
from keras.models import load_model import numpy as np from keras.preprocessing.image import img_to_array, load_img # ファイル名(拡張子は自動付加) jpg_name = 'ELFADSC08920_TP_V' # 学習済みモデルを読み込む model = load_model('keras_model.h5') # 判定対象の画像を読み込む(224x224にリサイズ) img_path = ('target/' + jpg_name + '.jpg') img = img_to_array(load_img(img_path, target_size=(224, 224))) # 正規化(0〜1にスケーリング) img_nad = img_to_array(img) / 255 # 4次元に変換(バッチ形式にする) img_nad = img_nad[None, ...] # 分類ラベルを定義(任意:データに応じて変更) label = ['1', '2'] # 推論実行 pred = model.predict(img_nad, batch_size=1, verbose=0) print('pred:', pred) # 最も高いスコアの取得 score = np.max(pred) # 最もスコアが高いクラスのラベルを取得 pred_label = label[np.argmax(pred[0])] # 結果表示 print('name:', pred_label) print('score:', score)
📦 フォルダ構成(例)
project/ ├── keras_model.h5 ├── target/ │ └── ELFADSC08920_TP_V.jpg └── predict.py
🔍 出力結果の例
pred: [[0.12 0.88]] name: 2 score: 0.88
name
: 最も確率が高いクラス名(ここでは'2'
)score
: 推論されたそのスコア(ここでは0.88
)
💡 応用ポイント
label = ['1', '2']
は、自分のデータセットに合わせてクラス名に変更可能です(例:['cat', 'dog']
)- WebアプリケーションやAPIとして組み込めば、リアルタイム画像判定も可能になります。
- 複数画像に対応したバッチ推論にも拡張できます。
🧠 まとめ
このコードを使えば、前回構築したKerasの画像分類モデルを使って、任意の画像を簡単に推論することができます。AIの最終ステップである「推論」を自動化して、自分のプロジェクトやサービスに組み込んでみましょう!