HashamUllah's picture
Upload 10 files
7f271a4 verified
raw
history blame
1.37 kB
from flask import Flask, request, jsonify
import tensorflow as tf
import numpy as np
from PIL import Image
import io
import json
app = Flask(__name__)
# Load the TensorFlow model
model = tf.keras.models.load_model('./plant_disease_detection_saved_model')
# Load categories
with open('./categories.json') as f:
categories = json.load(f)
def preprocess_image(image):
# Convert the image to a NumPy array
image = Image.open(io.BytesIO(image))
image = image.resize((224, 224)) # Adjust size as needed
image_array = np.array(image) / 255.0 # Normalize to [0, 1]
image_array = np.expand_dims(image_array, axis=0) # Add batch dimension
return image_array
@app.route('/predict', methods=['POST'])
def predict():
if 'image' not in request.files:
return jsonify({'error': 'No image provided'}), 400
image = request.files['image'].read()
image_array = preprocess_image(image)
# Make prediction
predictions = model.predict(image_array)
predicted_class = np.argmax(predictions, axis=1)[0]
# Map to category names
predicted_label = categories.get(str(predicted_class), 'Unknown')
return jsonify({'class': predicted_label, 'confidence': float(predictions[0][predicted_class])})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080, debug=True)