Gagan0141's picture
Update app.py
f68ab71 verified
from flask import Flask, render_template, request, jsonify
from deepface import DeepFace
import tempfile
import os
app = Flask(__name__, template_folder="templates", static_folder="static")
# preload emotion model once
models_cache = {
"emotion": DeepFace.build_model("Emotion")
}
@app.route("/")
def index():
return render_template("index.html")
@app.route("/detect_live", methods=["POST"])
def detect_live():
if "frame" not in request.files:
return jsonify({"error": "no frame uploaded"}), 400
file = request.files["frame"]
tmp = tempfile.NamedTemporaryFile(delete=False)
file.save(tmp.name)
try:
result = DeepFace.analyze(
img_path=tmp.name,
actions=["emotion"],
models=models_cache,
detector_backend="mediapipe",
enforce_detection=False
)
except Exception as e:
os.remove(tmp.name)
return jsonify({"error": str(e)}), 500
os.remove(tmp.name)
dominant = result[0]["dominant_emotion"]
scores = result[0]["emotion"]
return jsonify({
"emotion": dominant,
"scores": scores
})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)