Spaces:
Running
Running
#Import necessary libraries | |
from flask import Flask, render_template, request | |
import webbrowser | |
import numpy as np | |
import os | |
from keras.preprocessing.image import load_img | |
from keras.preprocessing.image import img_to_array | |
from keras.models import load_model | |
#load model | |
model =load_model("model/v4_1_pred_stra_dis.h5") | |
print('@@ Model loaded') | |
def pred_cot_dieas(cott_plant): | |
test_image = load_img(cott_plant, target_size = (150, 150)) # load image | |
print("@@ Got Image for prediction") | |
test_image = img_to_array(test_image)/255 # convert image to np array and normalize | |
test_image = np.expand_dims(test_image, axis = 0) # change dimention 3D to 4D | |
result = model.predict(test_image).round(3) # predict diseased palnt or not | |
print('@@ Raw result = ', result) | |
pred = np.argmax(result) # get the index of max value | |
if pred == 0: | |
return "Diseased Strawberry Plant", 'angular_leafspot.html'# if index 0 burned leaf | |
elif pred == 1: | |
return 'Diseased Strawberry Plant', 'grey_mold.html' # # if index 1 | |
elif pred == 2: | |
return 'Diseased Strawberry Plant', 'leaf_spot.html' # if index 2 fresh leaf | |
else: | |
return "Diseased Strawberry Plant", 'powdery_mildew_leaf.html' # if index 3 | |
#------------>>pred_cot_dieas<<--end | |
# Create flask instance | |
app = Flask(__name__) | |
# render index.html page | |
def home(): | |
return render_template('index1.html') | |
# get input image from client then predict class and render respective .html page for solution | |
def predict(): | |
if request.method == 'POST': | |
file = request.files['image'] # fet input | |
filename = file.filename | |
print("@@ Input posted = ", filename) | |
file_path = os.path.join('static/user uploaded', filename) | |
file.save(file_path) | |
print("@@ Predicting class......") | |
pred, output_page = pred_cot_dieas(cott_plant=file_path) | |
return render_template(output_page, pred_output = pred, user_image = file_path) | |
# For local system & cloud | |
if __name__ == "__main__": | |
app.run(host="0.0.0.0", port=7860) |