画像認識システムで、モデルをjsonファイルとhdf5ファイルで保存し、画像を判定するシステムで入力された画像をmodel.predict()で予測し、近い結果を返すシステムを作っているサイトを見かけたのですが、入力された画像と保存したモデルとで、どうやって比較をして確率を導き出しているのかがわかりません。画像認識を勉強し始めてまだ日が浅いので、その辺を詳しく教えてもらえると助かります。
閲覧サイト : https://qiita.com/tomo_20180402/items/e8c55bdca648f4877188
コード
Python
1#綾鷹を選ばせるプログラム 2 3from keras import models 4from keras.models import model_from_json 5from keras.preprocessing import image 6import numpy as np 7 8#保存したモデルの読み込み 9model = model_from_json(open('保存先のフォルダ/tea_predict.json').read()) 10#保存した重みの読み込み 11model.load_weights('保存先のフォルダ/tea_predict.hdf5') 12 13categories = ["綾鷹","お〜いお茶 抹茶入り","なごみ","お〜いお茶 新茶","綾鷹 茶葉のあまみ", 14 "お〜いお茶","伊右衛門","お〜いお茶 濃い茶","生茶","お〜いお茶 新緑"] 15 16#画像を読み込む 17img_path = str(input()) 18img = image.load_img(img_path,target_size=(250, 250, 3)) 19x = image.img_to_array(img) 20x = np.expand_dims(x, axis=0) 21 22#予測 23features = model.predict(x) 24 25#予測結果によって処理を分ける 26if features[0,0] == 1: 27 print ("選ばれたのは、綾鷹でした。") 28 29elif features[0,4] == 1: 30 print ("選ばれたのは、綾鷹(茶葉のあまみ)でした。") 31 32else: 33 for i in range(0,10): 34 if features[0,i] == 1: 35 cat = categories[i] 36 message = "綾鷹を選んでください。(もしかして:あなたが選んでいるのは「" + cat + "」ではありませんか?)" 37 print(message)
> サイトを見かけた
だけで答えられる人は、あんまりいないと思う
その記事を作られた方はリンクからたどったtwitterアカウントが最近でもアクティブなようなのでここではなく直接聞いたほうが良いのでは?
ディープラーニングの仕組みについて知る必要があるので、一問一答の teratail で回答を得るには内容が広すぎると思います。
「ゼロから作るDeep Learning」などの書籍で勉強されることをおすすめします。