Spaces:
Sleeping
Sleeping
| from flask import Flask, render_template, request, jsonify | |
| from tensorflow.keras.models import load_model | |
| import numpy as np | |
| import cv2 | |
| import base64 | |
| app = Flask(__name__) | |
| # Load model | |
| model = load_model("vgg16_mask.keras") | |
| classes = ["Mask", "No Mask"] | |
| def home(): | |
| return render_template("index.html") | |
| def predict(): | |
| try: | |
| # Get base64 image from frontend | |
| data = request.json["image"] | |
| img_data = base64.b64decode(data.split(",")[1]) | |
| nparr = np.frombuffer(img_data, np.uint8) | |
| img = cv2.imdecode(nparr, cv2.IMREAD_COLOR) | |
| # Preprocess image | |
| img = cv2.resize(img, (224, 224)) | |
| img = img / 255.0 | |
| img = np.expand_dims(img, axis=0) | |
| # Predict | |
| pred = model.predict(img) | |
| label = classes[int(pred[0][0] > 0.5)] | |
| return jsonify({"label": label}) | |
| except Exception as e: | |
| return jsonify({"error": str(e)}) | |
| if __name__ == "__main__": | |
| from flask import Flask | |
| import os | |
| port = int(os.environ.get("PORT", 7860)) | |
| app.run(host="0.0.0.0", port=port) | |