Spaces:
Sleeping
Sleeping
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) |