File size: 1,010 Bytes
4411082
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from flask import Flask, request, jsonify
import tensorflow as tf
import numpy as np
import cv2
import base64

app = Flask(__name__)

# Load the ML model
model = tf.keras.models.load_model("model.h5")

# Function to decode base64 image
def decode_image(image_data):
    image_bytes = base64.b64decode(image_data)
    image_np = np.frombuffer(image_bytes, dtype=np.uint8)
    image = cv2.imdecode(image_np, cv2.IMREAD_COLOR)
    image = cv2.resize(image, (224, 224))  # Adjust based on your model
    image = image / 255.0  # Normalize if needed
    return image.reshape(1, 224, 224, 3)

# API endpoint for prediction
@app.route('/predict', methods=['POST'])
def predict():
    try:
        data = request.json['image']
        image = decode_image(data)
        prediction = model.predict(image).tolist()
        return jsonify({'prediction': prediction})
    except Exception as e:
        return jsonify({'error': str(e)})

if __name__ == '__main__':
    app.run(debug=True)