project21 commited on
Commit
aa6423a
·
verified ·
1 Parent(s): 6ae2475

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +256 -0
app.py ADDED
@@ -0,0 +1,256 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from tensorflow.keras.utils import img_to_array,load_img
3
+ from keras.models import load_model
4
+ import numpy as np
5
+
6
+ # Load the pre-trained model from the local path
7
+ model_path = 'sugar.h5'
8
+ model = load_model(model_path) # Load the model here
9
+
10
+ def predict_disease(image_file, model, all_labels):
11
+
12
+ try:
13
+ # Load and preprocess the image
14
+ img = load_img(image_file, target_size=(224, 224)) # Use load_img from tensorflow.keras.utils
15
+ img_array = img_to_array(img)
16
+ img_array = np.expand_dims(img_array, axis=0) # Add batch dimension
17
+ img_array = img_array / 255.0 # Normalize the image
18
+
19
+ # Predict the class
20
+ predictions = model.predict(img_array) # Use the loaded model here
21
+ predicted_class = np.argmax(predictions[0])
22
+
23
+ # Get the predicted class label
24
+ predicted_label = all_labels[predicted_class]
25
+
26
+ # Print the predicted label to the console
27
+
28
+ if predicted_label=='Sugarcane Healthy':
29
+ predicted_label = predicted_label = """<h3 align="center">Sugarcane Healthy</h3><br><br>
30
+ <center>No need use Pesticides</center>"""
31
+ elif predicted_label=='Sugarcane Yellow':
32
+ predicted_label = """
33
+ <style>
34
+ li{
35
+ font-size: 15px;
36
+ margin-left: 90px;
37
+ margin-top: 15px;
38
+ margin-bottom: 15px;
39
+ }
40
+ h4{
41
+ font-size: 17px;
42
+ margin-top: 15px;
43
+ }
44
+ h4:hover{
45
+ cursor: pointer;
46
+ }
47
+
48
+ h3:hover{
49
+ cursor: pointer;
50
+ color: blue;
51
+ transform: scale(1.3);
52
+ }
53
+ .note{
54
+ text-align: center;
55
+ font-size: 16px;
56
+ }
57
+ p{
58
+ font-size: 13px;
59
+ text-align: center;
60
+ }
61
+
62
+ </style>
63
+ <h3><center><b>Sugarcane Yellow</b></center></h3>
64
+ <h4>PESTICIDES TO BE USED:</h4>
65
+ <ul>
66
+ <li>1. Insecticidal Soap</li>
67
+ <li>2. Pyrethroids</li>
68
+ <li>3. Imidacloprid</li>
69
+ <li>4. Bacillus thuringiensis</li>
70
+ <li>5. Spinosad</li>
71
+
72
+
73
+ </ul>
74
+ <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p>
75
+ <p>Be sure to follow local regulations and guidelines for application</p>
76
+
77
+
78
+ """
79
+ elif predicted_label=='Sugarcane Rust':
80
+ predicted_label = """
81
+ <style>
82
+ li{
83
+ font-size: 15px;
84
+ margin-left: 90px;
85
+ margin-top: 15px;
86
+ margin-bottom: 15px;
87
+ }
88
+ h4{
89
+ font-size: 17px;
90
+ margin-top: 15px;
91
+ }
92
+ h4:hover{
93
+ cursor: pointer;
94
+ }
95
+
96
+ h3:hover{
97
+ cursor: pointer;
98
+ color: blue;
99
+ transform: scale(1.3);
100
+ }
101
+ .note{
102
+ text-align: center;
103
+ font-size: 16px;
104
+ }
105
+ p{
106
+ font-size: 13px;
107
+ text-align: center;
108
+ }
109
+
110
+ </style>
111
+ <h3><center><b>Sugarcane Rust</b></center></h3>
112
+ <h4>PESTICIDES TO BE USED:</h4>
113
+ <ul>
114
+ <li>1. Triadimefon</li>
115
+ <li>2. Chlorothalonil</li>
116
+ <li>3. Tebuconazole</li>
117
+ <li>4. Propiconazole</li>
118
+
119
+
120
+ </ul>
121
+ <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p>
122
+ <p>Be sure to follow local regulations and guidelines for application</p>
123
+
124
+
125
+ """
126
+ elif predicted_label=='Sugarcane RedRot':
127
+ predicted_label = """
128
+ <style>
129
+ li{
130
+ font-size: 15px;
131
+ margin-left: 90px;
132
+ margin-top: 15px;
133
+ margin-bottom: 15px;
134
+ }
135
+ h4{
136
+ font-size: 17px;
137
+ margin-top: 15px;
138
+ }
139
+ h4:hover{
140
+ cursor: pointer;
141
+ }
142
+
143
+ h3:hover{
144
+ cursor: pointer;
145
+ color: blue;
146
+ transform: scale(1.3);
147
+ }
148
+ .note{
149
+ text-align: center;
150
+ font-size: 16px;
151
+ }
152
+ p{
153
+ font-size: 13px;
154
+ text-align: center;
155
+ }
156
+
157
+ </style>
158
+ <h3><center><b>Sugarcane RedRot</b></center></h3>
159
+ <h4>PESTICIDES TO BE USED:</h4>
160
+ <ul>
161
+ <li>1. Mancozeb</li>
162
+ <li>2. Chlorothalonil</li>
163
+ <li>3. Tebuconazole</li>
164
+ <li>4. Carbendazim</li>
165
+
166
+
167
+ </ul>
168
+ <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p>
169
+ <p>Be sure to follow local regulations and guidelines for application</p>
170
+
171
+
172
+ """
173
+ elif predicted_label=='Sugarcane Mosaic':
174
+ predicted_label = """
175
+ <style>
176
+ li{
177
+ font-size: 15px;
178
+ margin-left: 90px;
179
+ margin-top: 15px;
180
+ margin-bottom: 15px;
181
+ }
182
+ h4{
183
+ font-size: 17px;
184
+ margin-top: 15px;
185
+ }
186
+ h4:hover{
187
+ cursor: pointer;
188
+ }
189
+
190
+ h3:hover{
191
+ cursor: pointer;
192
+ color: blue;
193
+ transform: scale(1.3);
194
+ }
195
+ .note{
196
+ text-align: center;
197
+ font-size: 16px;
198
+ }
199
+ p{
200
+ font-size: 13px;
201
+ text-align: center;
202
+ }
203
+
204
+ </style>
205
+ <h3><center><b>Sugarcane Mosaic</b></center></h3>
206
+ <h4>PESTICIDES TO BE USED:</h4>
207
+ <ul>
208
+ <li>1. Horticultural Oil</li>
209
+ <li>2. Spinosad</li>
210
+ <li>3. Pyrethrin </li>
211
+ <li>4. Neem Oil</li>
212
+ <li>5. Imidacloprid</li>
213
+
214
+
215
+ </ul>
216
+ <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p>
217
+ <p>Be sure to follow local regulations and guidelines for application</p>
218
+
219
+
220
+ """
221
+
222
+
223
+ else:
224
+ predicted_label = """<h3 align="center">Choose Correct image</h3><br><br>
225
+ """
226
+
227
+ return predicted_label
228
+
229
+
230
+ except Exception as e:
231
+ print(f"Error: {e}")
232
+ return None
233
+
234
+ # List of class labels
235
+ all_labels = [
236
+ 'Sugarcane Yellow',
237
+ 'Sugarcane Rust',
238
+ 'Sugarcane RedRot','Sugarcane Mosaic',
239
+ 'Sugarcane Healthy'
240
+ ]
241
+
242
+ # Define the Gradio interface
243
+ def gradio_predict(image_file):
244
+ return predict_disease(image_file, model, all_labels) # Pass the model to the function
245
+
246
+ # Create a Gradio interface
247
+ gr_interface = gr.Interface(
248
+ fn=gradio_predict, # Function to call for predictions
249
+ inputs=gr.Image(type="filepath"), # Upload image as file path
250
+ outputs="html", # Output will be the class label as text
251
+ title="Sugarcane Disease Predictor",
252
+ description="Upload an image of a plant to predict the disease.",
253
+ )
254
+
255
+ # Launch the Gradio app
256
+ gr_interface.launch(share=True)