Kota Takahashi
appファイルを追加
49ab243
import os
import streamlit as st
from PIL import Image
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.image import load_img
from tensorflow.keras.preprocessing.image import img_to_array
def predict(file):
st.markdown(f'{file.name} をアップロードしました.')
img_path = os.path.join(file.name)
# 画像を保存する
with open(img_path, 'wb') as f:
f.write(file.read())
# 保存した画像を表示
img = Image.open(img_path)
st.image(img)
# 画像をArray形式に変換
img = load_img(img_path, target_size=(256, 256))
img_array = img_to_array(img)
img_array = img_array.reshape((1, 256, 256, 3))
img_array = img_array / 255
# 保存したモデルを呼び出し
model_path = os.path.join('model.h5')
model = load_model(model_path)
result = model.predict(img_array)
if result[0][0] > result[0][1]:
prediction = '猫'
else:
prediction = '犬'
return prediction
def show_result(prediction):
if st.button("判定"):
st.text_area("判定結果:", prediction, height=20)
def main():
st.title("AI MNIST")
file = st.file_uploader('画像をアップロードしてください.', type=['jpg', 'jpeg', 'png'])
if file:
prediction = predict(file)
show_result(prediction)
if __name__ == '__main__':
main()