Spaces:
Build error
Build error
| import sys | |
| sys.path.append('.') | |
| from flask import Flask, request, jsonify | |
| import os | |
| import json | |
| import cv2 | |
| import numpy as np | |
| from tensorflow.keras.preprocessing import image | |
| from keras_facenet import FaceNet | |
| from sklearn.svm import OneClassSVM | |
| import pickle | |
| # create a facenet model | |
| embedding_model = FaceNet(key = '20180402-114759', | |
| use_prebuilt=True, | |
| cache_folder= os.path.abspath(os.path.dirname(__file__)) + '/facenet_weights').model | |
| clf_model = pickle.load(open(os.path.abspath(os.path.dirname(__file__)) + '/model/clf_mode.sav', 'rb')) | |
| target_shape = (160, 160) | |
| app = Flask(__name__) | |
| app.config['SITE'] = "http://0.0.0.0:8000/" | |
| app.config['DEBUG'] = False | |
| def detect_human_face(): | |
| file1 = request.files['image1'] | |
| image1 = cv2.imdecode(np.fromstring(file1.read(), np.uint8), cv2.IMREAD_COLOR) | |
| if image1 is None: | |
| result = "image1: is null!" | |
| status = "ok" | |
| response = jsonify({"status": status, "data": {"result": result}}) | |
| response.status_code = 200 | |
| response.headers["Content-Type"] = "application/json; charset=utf-8" | |
| return response | |
| X = np.float32([(np.float32(image1) - 127.5) / 127.5]) | |
| X_ft = embedding_model.predict(X, batch_size=1) | |
| anomaly_score = clf_model.decision_function(X_ft) * -1 | |
| if anomaly_score > 1: | |
| result = "Not Human" | |
| else: | |
| result = "Human" | |
| status = "ok" | |
| response = jsonify( | |
| { | |
| "status": status, | |
| "data": { | |
| "result": result, | |
| "anomaly_score": float(anomaly_score) | |
| } | |
| }) | |
| response.status_code = 200 | |
| response.headers["Content-Type"] = "application/json; charset=utf-8" | |
| return response | |
| if __name__ == '__main__': | |
| port = int(os.environ.get("PORT", 8000)) | |
| app.run(host='0.0.0.0', port=port) | |