鄭宇翔
Final working Flask app for HF
2541335
raw
history blame contribute delete
947 Bytes
from flask import Flask, render_template, request, jsonify
import numpy as np
from PIL import Image
import io
import base64
from tensorflow.keras.models import load_model
app = Flask(__name__)
model = load_model("letter_cnn_model.h5")
labels = [chr(ord('a') + i) for i in range(26)]
@app.route("/")
def index():
return render_template("index.html")
@app.route("/predict", methods=["POST"])
def predict():
data = request.json["image"]
image_data = base64.b64decode(data.split(",")[1])
img = Image.open(io.BytesIO(image_data)).convert("L").resize((28, 28))
img = 255 - np.array(img)
img = img / 255.0
img = img.reshape(1, 28, 28, 1)
pred = model.predict(img)
index = np.argmax(pred[0])
label = labels[index].upper()
confidence = float(pred[0][index])
return jsonify({
"label": label,
"confidence": confidence
})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)