Spaces:
Running
Running
File size: 1,782 Bytes
b5d3a91 | 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | # 3rd parth dependencies
from flask import Flask
from flask_cors import CORS
from dotenv import load_dotenv
# load environment variables from .env first things first
load_dotenv()
# pylint: disable=wrong-import-position
# project dependencies
from deepface import __version__
from deepface.api.src.modules.core.routes import blueprint
from deepface.api.src.dependencies.variables import Variables
from deepface.api.src.dependencies.container import Container
from deepface import DeepFace
from deepface.commons.logger import Logger
logger = Logger()
def create_app() -> Flask:
app = Flask(__name__)
CORS(app)
variables = Variables()
container = Container(variables=variables)
# inject variables
blueprint.variables = variables # type: ignore[attr-defined]
blueprint.container = container # type: ignore[attr-defined]
load_models_on_startup(variables)
app.register_blueprint(blueprint)
logger.info(f"Welcome to DeepFace API v{__version__}!")
return app
def load_models_on_startup(variables: Variables) -> None:
"""Load models on startup to reduce latency on first request."""
face_recognition_models = variables.face_recognition_models
if face_recognition_models is not None:
for model in face_recognition_models.split(","):
DeepFace.build_model(task="facial_recognition", model_name=model.strip())
logger.info(f"Facial Recognition Model {model} loaded on startup.")
face_detection_models = variables.face_detection_models
if face_detection_models is not None:
for model in face_detection_models.split(","):
DeepFace.build_model(task="face_detector", model_name=model.strip())
logger.info(f"Face Detector Model {model} loaded on startup.")
|