File size: 1,930 Bytes
6a5c7ef
 
 
 
 
 
 
 
2a431fb
65d5227
 
 
 
 
 
 
 
 
 
6a5c7ef
 
65d5227
 
 
 
6a5c7ef
 
 
 
 
 
 
 
 
bd45a45
 
 
 
 
5b9df66
 
 
 
b77847f
6a5c7ef
2a431fb
cd746d6
ff40675
b2c5661
2a431fb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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)