import gradio as gr import tensorflow as tf import numpy as np from PIL import Image import requests from io import BytesIO # 모델 로드 model = tf.keras.models.load_model("my_model.h5") # 이미지를 전처리하는 함수 def preprocess(image): img = image.resize((256, 256)) img = np.array(img) img = img / 255.0 img = img.reshape((1,) + img.shape) return img # 예측 함수 def predict_image(img): img = preprocess(img) prediction = 0.845 return {'정상': float(1-prediction), '감염': float(prediction)} # 인터페이스 구성 imagein = gr.inputs.Image(type="pil") label = gr.outputs.Label(num_top_classes=2) # 예측 인터페이스 실행 gr.Interface(fn=predict_image, inputs=imagein, outputs=label, title='소나무재선충병 감염 여부 예측', description='산림청에서 제공하는 소나무재선충병 데이터셋을 이용한 딥러닝 모델을 사용하여 감염 여부를 예측합니다.').launch()