plantifysol / app.py
bhanusAI's picture
Update app.py
5b9df66 verified
raw
history blame
1.93 kB
import numpy as np
import gradio as gr
import tensorflow as tf #version 2.13.0
import keras #version
import numpy as np
import cv2
import tensorflow as tf
import h5py
def analyse(img,plant_type):
import json
# Load label_disease.json
with open('data/label_disease.json', 'r') as f:
label_disease = json.load(f)
# Load plant_label_disease.json
with open('data/plant_label_disease.json', 'r') as f:
plant_label_disease = json.load(f)
HEIGHT = 256
WIDTH = 256
modelArchitecturePath ='model/model_architecture.h5'
modelWeightsPath = 'model/model_weights.h5'
dnn_model = keras.models.load_model(modelArchitecturePath,compile=False)
dnn_model.load_weights(modelWeightsPath)
process_img = cv2.resize(img, (HEIGHT, WIDTH),interpolation = cv2.INTER_LINEAR)
process_img = process_img/(255)
process_img = np.expand_dims(process_img, axis=0)
y_pred = dnn_model.predict(process_img)
print("y pred",y_pred)
indx = np.argmax(y_pred)
max_prob_indx = plant_label_disease[plant_type.lower()][0]
for disease in plant_label_disease[plant_type.lower()]:
print(disease,y_pred[0][disease],max_prob_indx,y_pred[0][max_prob_indx])
if y_pred[0][disease]>y_pred[0][max_prob_indx]:
max_prob_indx = disease
print(label_disease[indx])
print(y_pred[0][indx])
print(label_disease[max_prob_indx])
print(y_pred[0][max_prob_indx])
return int(indx),max_prob_indx,label_disease[indx],y_pred[0][indx],label_disease[max_prob_indx],y_pred[0][max_prob_indx]
demo = gr.Interface(analyse,
[gr.Image(),gr.Radio(["Apple","Blueberry","Cherry","Corn","Grape","Orange","Peach","Pepper","Potato","Raspberry","Soybean","Squash","Strawberry","Tomato"])],
["number","number","text","number","text","number"],
)
demo.launch(share=True,show_error=True)