Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from flask_cors import CORS | |
| from keras.models import load_model | |
| from keras.preprocessing.image import load_img, img_to_array | |
| import numpy as np | |
| import os | |
| app = Flask(__name__) | |
| CORS(app) | |
| MODEL_PATH = './model/best_model.h5' | |
| model = load_model(MODEL_PATH) | |
| def predict(): | |
| imagefile = request.files['imagefile'] | |
| image_path = "./images/" + imagefile.filename | |
| imagefile.save(image_path) | |
| # Preprocessing | |
| image = load_img(image_path, target_size=(224, 224)) | |
| image = img_to_array(image) | |
| image = np.expand_dims(image, axis=0) | |
| image = image / 255.0 | |
| # Prediction | |
| predictions = model.predict(image) | |
| predicted_class = np.argmax(predictions[0]) | |
| probability = float(np.max(predictions[0])) * 100 | |
| class_labels = ['Bacterial_Spot','Early_Blight', 'Late_Blight', 'Leaf_Mold', 'Septoria_Leaf_Spot', 'Spider_Mites', 'Target_Spot', 'Tomato_Yellow_Leaf_Curl_Virus', 'Tomato_Mosaic_Virus', 'Healthy', 'Powdery_Mildew'] #akan disesuaikan dengan label di model | |
| label = class_labels[predicted_class] | |
| result = { | |
| 'label': label, | |
| 'probability': probability | |
| } | |
| os.remove(image_path) | |
| return jsonify(result) | |