mirror of
https://github.com/serengil/deepface.git
synced 2025-06-07 12:05:22 +00:00
singleton logger and docstrings
This commit is contained in:
parent
fb4da39961
commit
9a83068672
@ -17,7 +17,7 @@ import tensorflow as tf
|
|||||||
|
|
||||||
# package dependencies
|
# package dependencies
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
from deepface.modules import (
|
from deepface.modules import (
|
||||||
modeling,
|
modeling,
|
||||||
representation,
|
representation,
|
||||||
@ -29,7 +29,7 @@ from deepface.modules import (
|
|||||||
)
|
)
|
||||||
from deepface import __version__
|
from deepface import __version__
|
||||||
|
|
||||||
logger = Logger(module="DeepFace")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# -----------------------------------
|
# -----------------------------------
|
||||||
# configurations for dependencies
|
# configurations for dependencies
|
||||||
@ -88,7 +88,7 @@ def verify(
|
|||||||
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
@ -168,7 +168,7 @@ def analyze(
|
|||||||
Set to False to avoid the exception for low-resolution images (default is True).
|
Set to False to avoid the exception for low-resolution images (default is True).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
@ -272,7 +272,7 @@ def find(
|
|||||||
Set to False to avoid the exception for low-resolution images (default is True).
|
Set to False to avoid the exception for low-resolution images (default is True).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
align (boolean): Perform alignment based on the eye positions (default is True).
|
align (boolean): Perform alignment based on the eye positions (default is True).
|
||||||
|
|
||||||
@ -348,7 +348,7 @@ def represent(
|
|||||||
(default is True).
|
(default is True).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
align (boolean): Perform alignment based on the eye positions (default is True).
|
align (boolean): Perform alignment based on the eye positions (default is True).
|
||||||
|
|
||||||
@ -406,7 +406,7 @@ def stream(
|
|||||||
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
@ -454,7 +454,7 @@ def extract_faces(
|
|||||||
as a string, numpy array (BGR), or base64 encoded images.
|
as a string, numpy array (BGR), or base64 encoded images.
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
enforce_detection (boolean): If no face is detected in an image, raise an exception.
|
enforce_detection (boolean): If no face is detected in an image, raise an exception.
|
||||||
Set to False to avoid the exception for low-resolution images (default is True).
|
Set to False to avoid the exception for low-resolution images (default is True).
|
||||||
@ -520,7 +520,7 @@ def detectFace(
|
|||||||
added to resize the image (default is (224, 224)).
|
added to resize the image (default is (224, 224)).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
enforce_detection (boolean): If no face is detected in an image, raise an exception.
|
enforce_detection (boolean): If no face is detected in an image, raise an exception.
|
||||||
Set to False to avoid the exception for low-resolution images (default is True).
|
Set to False to avoid the exception for low-resolution images (default is True).
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
from flask import Blueprint, request
|
from flask import Blueprint, request
|
||||||
from deepface.api.src.modules.core import service
|
from deepface.api.src.modules.core import service
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="api/src/routes.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
blueprint = Blueprint("routes", __name__)
|
blueprint = Blueprint("routes", __name__)
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
import os
|
import os
|
||||||
import gdown
|
import gdown
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
|
|
||||||
logger = Logger(module="basemodels.ArcFace")
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# pylint: disable=unsubscriptable-object
|
# pylint: disable=unsubscriptable-object
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
import gdown
|
import gdown
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.DeepID")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
tf_version = package_utils.get_tf_major_version()
|
tf_version = package_utils.get_tf_major_version()
|
||||||
|
|
||||||
|
@ -4,10 +4,10 @@ import bz2
|
|||||||
import gdown
|
import gdown
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from deepface.commons import folder_utils
|
from deepface.commons import folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.DlibResNet")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# pylint: disable=too-few-public-methods
|
# pylint: disable=too-few-public-methods
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
import gdown
|
import gdown
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.Facenet")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
# dependency configuration
|
# dependency configuration
|
||||||
|
@ -2,10 +2,10 @@ import os
|
|||||||
import zipfile
|
import zipfile
|
||||||
import gdown
|
import gdown
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.FbDeepFace")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# --------------------------------
|
# --------------------------------
|
||||||
# dependency configuration
|
# dependency configuration
|
||||||
|
@ -8,9 +8,9 @@ import tensorflow as tf
|
|||||||
# project dependencies
|
# project dependencies
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.GhostFaceNet")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
tf_major = package_utils.get_tf_major_version()
|
tf_major = package_utils.get_tf_major_version()
|
||||||
if tf_major == 1:
|
if tf_major == 1:
|
||||||
|
@ -2,10 +2,10 @@ import os
|
|||||||
import gdown
|
import gdown
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.OpenFace")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
tf_version = package_utils.get_tf_major_version()
|
tf_version = package_utils.get_tf_major_version()
|
||||||
if tf_version == 1:
|
if tf_version == 1:
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
|
# built-in dependencies
|
||||||
import os
|
import os
|
||||||
from typing import Any, List
|
from typing import Any, List
|
||||||
|
|
||||||
|
# 3rd party dependencies
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2 as cv
|
import cv2 as cv
|
||||||
import gdown
|
import gdown
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface.commons import folder_utils
|
from deepface.commons import folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.SFace")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# pylint: disable=line-too-long, too-few-public-methods
|
# pylint: disable=line-too-long, too-few-public-methods
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ import numpy as np
|
|||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.modules import verification
|
from deepface.modules import verification
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="basemodels.VGGFace")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# ---------------------------------------
|
# ---------------------------------------
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import os
|
import os
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="deepface/commons/folder_utils.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
def initialize_folder() -> None:
|
def initialize_folder() -> None:
|
||||||
|
@ -17,6 +17,9 @@ class Logger:
|
|||||||
)
|
)
|
||||||
self.log_level = logging.INFO
|
self.log_level = logging.INFO
|
||||||
|
|
||||||
|
# TODO: delete print before commit
|
||||||
|
print("Logger object created")
|
||||||
|
|
||||||
def info(self, message):
|
def info(self, message):
|
||||||
if self.log_level <= logging.INFO:
|
if self.log_level <= logging.INFO:
|
||||||
self.dump_log(f"{message}")
|
self.dump_log(f"{message}")
|
||||||
@ -39,3 +42,16 @@ class Logger:
|
|||||||
|
|
||||||
def dump_log(self, message):
|
def dump_log(self, message):
|
||||||
print(f"{str(datetime.now())[2:-7]} - {message}")
|
print(f"{str(datetime.now())[2:-7]} - {message}")
|
||||||
|
|
||||||
|
|
||||||
|
def get_singletonish_logger():
|
||||||
|
# singleton design pattern
|
||||||
|
global model_obj
|
||||||
|
|
||||||
|
if not "model_obj" in globals():
|
||||||
|
model_obj = {}
|
||||||
|
|
||||||
|
if "logger" not in model_obj.keys():
|
||||||
|
model_obj["logger"] = Logger(module="Singleton")
|
||||||
|
|
||||||
|
return model_obj["logger"]
|
||||||
|
@ -6,9 +6,9 @@ import hashlib
|
|||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
|
|
||||||
# package dependencies
|
# package dependencies
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="commons.package_utils")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
def get_tf_major_version() -> int:
|
def get_tf_major_version() -> int:
|
||||||
|
@ -13,9 +13,9 @@ from deepface.detectors import (
|
|||||||
Yolo,
|
Yolo,
|
||||||
YuNet,
|
YuNet,
|
||||||
)
|
)
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="deepface/detectors/DetectorWrapper.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
def build_model(detector_backend: str) -> Any:
|
def build_model(detector_backend: str) -> Any:
|
||||||
|
@ -5,9 +5,9 @@ import gdown
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from deepface.commons import folder_utils
|
from deepface.commons import folder_utils
|
||||||
from deepface.models.Detector import Detector, FacialAreaRegion
|
from deepface.models.Detector import Detector, FacialAreaRegion
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="detectors.DlibWrapper")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
class DlibClient(Detector):
|
class DlibClient(Detector):
|
||||||
|
@ -7,9 +7,9 @@ import numpy as np
|
|||||||
from deepface.detectors import OpenCv
|
from deepface.detectors import OpenCv
|
||||||
from deepface.commons import folder_utils
|
from deepface.commons import folder_utils
|
||||||
from deepface.models.Detector import Detector, FacialAreaRegion
|
from deepface.models.Detector import Detector, FacialAreaRegion
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="detectors.SsdWrapper")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# pylint: disable=line-too-long, c-extension-no-member
|
# pylint: disable=line-too-long, c-extension-no-member
|
||||||
|
|
||||||
|
@ -4,9 +4,9 @@ import numpy as np
|
|||||||
import gdown
|
import gdown
|
||||||
from deepface.models.Detector import Detector, FacialAreaRegion
|
from deepface.models.Detector import Detector, FacialAreaRegion
|
||||||
from deepface.commons import folder_utils
|
from deepface.commons import folder_utils
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger()
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# Model's weights paths
|
# Model's weights paths
|
||||||
PATH = "/.deepface/weights/yolov8n-face.pt"
|
PATH = "/.deepface/weights/yolov8n-face.pt"
|
||||||
|
@ -1,13 +1,18 @@
|
|||||||
|
# built-in dependencies
|
||||||
import os
|
import os
|
||||||
from typing import Any, List
|
from typing import Any, List
|
||||||
|
|
||||||
|
# 3rd party dependencies
|
||||||
import cv2
|
import cv2
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import gdown
|
import gdown
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface.commons import folder_utils
|
from deepface.commons import folder_utils
|
||||||
from deepface.models.Detector import Detector, FacialAreaRegion
|
from deepface.models.Detector import Detector, FacialAreaRegion
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="detectors.YunetWrapper")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
class YuNetClient(Detector):
|
class YuNetClient(Detector):
|
||||||
|
@ -3,10 +3,10 @@ import gdown
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from deepface.basemodels import VGGFace
|
from deepface.basemodels import VGGFace
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.Demography import Demography
|
from deepface.models.Demography import Demography
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="extendedmodels.Age")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# ----------------------------------------
|
# ----------------------------------------
|
||||||
# dependency configurations
|
# dependency configurations
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
# built-in dependencies
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
# 3rd party dependencies
|
||||||
import gdown
|
import gdown
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2
|
import cv2
|
||||||
from deepface.commons import package_utils, folder_utils
|
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.Demography import Demography
|
|
||||||
|
|
||||||
logger = Logger(module="extendedmodels.Emotion")
|
# project dependencies
|
||||||
|
from deepface.commons import package_utils, folder_utils
|
||||||
|
from deepface.models.Demography import Demography
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# -------------------------------------------
|
# -------------------------------------------
|
||||||
# pylint: disable=line-too-long
|
# pylint: disable=line-too-long
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
# built-in dependencies
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
# 3rd party dependencies
|
||||||
import gdown
|
import gdown
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface.basemodels import VGGFace
|
from deepface.basemodels import VGGFace
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.Demography import Demography
|
from deepface.models.Demography import Demography
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="extendedmodels.Gender")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# -------------------------------------
|
# -------------------------------------
|
||||||
# pylint: disable=line-too-long
|
# pylint: disable=line-too-long
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
|
# built-in dependencies
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
# 3rd party dependencies
|
||||||
import gdown
|
import gdown
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface.basemodels import VGGFace
|
from deepface.basemodels import VGGFace
|
||||||
from deepface.commons import package_utils, folder_utils
|
from deepface.commons import package_utils, folder_utils
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.models.Demography import Demography
|
from deepface.models.Demography import Demography
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="extendedmodels.Race")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# --------------------------
|
# --------------------------
|
||||||
# pylint: disable=line-too-long
|
# pylint: disable=line-too-long
|
||||||
|
@ -34,7 +34,7 @@ def analyze(
|
|||||||
Set to False to avoid the exception for low-resolution images (default is True).
|
Set to False to avoid the exception for low-resolution images (default is True).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
|
@ -10,9 +10,9 @@ from PIL import Image
|
|||||||
from deepface.modules import preprocessing
|
from deepface.modules import preprocessing
|
||||||
from deepface.models.Detector import DetectedFace, FacialAreaRegion
|
from deepface.models.Detector import DetectedFace, FacialAreaRegion
|
||||||
from deepface.detectors import DetectorWrapper
|
from deepface.detectors import DetectorWrapper
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="deepface/modules/detection.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# pylint: disable=no-else-raise
|
# pylint: disable=no-else-raise
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ def extract_faces(
|
|||||||
as a string, numpy array (BGR), or base64 encoded images.
|
as a string, numpy array (BGR), or base64 encoded images.
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv)
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv)
|
||||||
|
|
||||||
enforce_detection (boolean): If no face is detected in an image, raise an exception.
|
enforce_detection (boolean): If no face is detected in an image, raise an exception.
|
||||||
Default is True. Set to False to avoid the exception for low-resolution images.
|
Default is True. Set to False to avoid the exception for low-resolution images.
|
||||||
|
@ -11,11 +11,11 @@ from tqdm import tqdm
|
|||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
# project dependencies
|
# project dependencies
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.commons import package_utils
|
from deepface.commons import package_utils
|
||||||
from deepface.modules import representation, detection, verification
|
from deepface.modules import representation, detection, verification
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="deepface/modules/recognition.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
def find(
|
def find(
|
||||||
@ -52,7 +52,7 @@ def find(
|
|||||||
Default is True. Set to False to avoid the exception for low-resolution images.
|
Default is True. Set to False to avoid the exception for low-resolution images.
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8'.
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip'.
|
||||||
|
|
||||||
align (boolean): Perform alignment based on the eye positions.
|
align (boolean): Perform alignment based on the eye positions.
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ def represent(
|
|||||||
Default is True. Set to False to avoid the exception for low-resolution images.
|
Default is True. Set to False to avoid the exception for low-resolution images.
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8'.
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip'.
|
||||||
|
|
||||||
align (boolean): Perform alignment based on the eye positions.
|
align (boolean): Perform alignment based on the eye positions.
|
||||||
|
|
||||||
|
@ -10,9 +10,9 @@ import cv2
|
|||||||
|
|
||||||
# project dependencies
|
# project dependencies
|
||||||
from deepface import DeepFace
|
from deepface import DeepFace
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="commons.realtime")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# dependency configuration
|
# dependency configuration
|
||||||
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
|
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"
|
||||||
@ -43,7 +43,7 @@ def analysis(
|
|||||||
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
|
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
@ -182,7 +182,7 @@ def search_identity(
|
|||||||
model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,
|
model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,
|
||||||
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
Returns:
|
Returns:
|
||||||
@ -349,7 +349,7 @@ def grab_facial_areas(
|
|||||||
Args:
|
Args:
|
||||||
img (np.ndarray): image itself
|
img (np.ndarray): image itself
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
threshold (int): threshold for facial area, discard smaller ones
|
threshold (int): threshold for facial area, discard smaller ones
|
||||||
Returns
|
Returns
|
||||||
result (list): list of tuple with x, y, w and h coordinates
|
result (list): list of tuple with x, y, w and h coordinates
|
||||||
@ -414,7 +414,7 @@ def perform_facial_recognition(
|
|||||||
db_path (string): Path to the folder containing image files. All detected faces
|
db_path (string): Path to the folder containing image files. All detected faces
|
||||||
in the database will be considered in the decision-making process.
|
in the database will be considered in the decision-making process.
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv).
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv).
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,
|
model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512,
|
||||||
|
@ -8,9 +8,9 @@ import numpy as np
|
|||||||
# project dependencies
|
# project dependencies
|
||||||
from deepface.modules import representation, detection, modeling
|
from deepface.modules import representation, detection, modeling
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger(module="deepface/modules/verification.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
def verify(
|
def verify(
|
||||||
@ -45,7 +45,7 @@ def verify(
|
|||||||
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face).
|
||||||
|
|
||||||
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
detector_backend (string): face detector backend. Options: 'opencv', 'retinaface',
|
||||||
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv)
|
'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv)
|
||||||
|
|
||||||
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
distance_metric (string): Metric for measuring similarity. Options: 'cosine',
|
||||||
'euclidean', 'euclidean_l2' (default is cosine).
|
'euclidean', 'euclidean_l2' (default is cosine).
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
|
# 3rd party dependencies
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface import DeepFace
|
from deepface import DeepFace
|
||||||
from deepface.modules import verification
|
from deepface.modules import verification
|
||||||
from deepface.models.FacialRecognition import FacialRecognition
|
from deepface.models.FacialRecognition import FacialRecognition
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger()
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# ----------------------------------------------
|
# ----------------------------------------------
|
||||||
# build face recognition model
|
# build face recognition model
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
|
# 3rd party dependencies
|
||||||
import cv2
|
import cv2
|
||||||
from deepface import DeepFace
|
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
|
|
||||||
logger = Logger("tests/test_analyze.py")
|
# project dependencies
|
||||||
|
from deepface import DeepFace
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
detectors = ["opencv", "mtcnn"]
|
detectors = ["opencv", "mtcnn"]
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
import unittest
|
# built-in dependencies
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
from deepface.api.src.app import create_app
|
|
||||||
import base64
|
import base64
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
|
from deepface.api.src.app import create_app
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger("tests/test_api.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
class TestVerifyEndpoint(unittest.TestCase):
|
class TestVerifyEndpoint(unittest.TestCase):
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
|
# 3rd party dependencies
|
||||||
import pytest
|
import pytest
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from deepface import DeepFace
|
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
|
|
||||||
logger = Logger("tests/test_enforce_detection.py")
|
# project dependencies
|
||||||
|
from deepface import DeepFace
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
def test_enabled_enforce_detection_for_non_facial_input():
|
def test_enabled_enforce_detection_for_non_facial_input():
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
|
# 3rd party dependencies
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import base64
|
import base64
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface import DeepFace
|
from deepface import DeepFace
|
||||||
from deepface.modules import preprocessing
|
from deepface.modules import preprocessing
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger("tests/test_extract_faces.py")
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
detectors = ["opencv", "mtcnn"]
|
detectors = ["opencv", "mtcnn"]
|
||||||
|
|
||||||
|
@ -1,12 +1,18 @@
|
|||||||
|
# built-in dependencies
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
# 3rd party dependencies
|
||||||
import cv2
|
import cv2
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface import DeepFace
|
from deepface import DeepFace
|
||||||
from deepface.modules import verification
|
from deepface.modules import verification
|
||||||
from deepface.modules import recognition
|
from deepface.modules import recognition
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
logger = Logger("tests/test_find.py")
|
|
||||||
|
|
||||||
threshold = verification.find_threshold(model_name="VGG-Face", distance_metric="cosine")
|
threshold = verification.find_threshold(model_name="VGG-Face", distance_metric="cosine")
|
||||||
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
# built-in dependencies
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface import DeepFace
|
from deepface import DeepFace
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger("tests/test_represent.py")
|
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
def test_standard_represent():
|
def test_standard_represent():
|
||||||
img_path = "dataset/img1.jpg"
|
img_path = "dataset/img1.jpg"
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
|
# 3rd party dependencies
|
||||||
import pytest
|
import pytest
|
||||||
import cv2
|
import cv2
|
||||||
|
|
||||||
|
# project dependencies
|
||||||
from deepface import DeepFace
|
from deepface import DeepFace
|
||||||
from deepface.commons.logger import Logger
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
logger = Logger("tests/test_facial_recognition_models.py")
|
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
models = ["VGG-Face", "Facenet", "Facenet512", "ArcFace", "GhostFaceNet"]
|
models = ["VGG-Face", "Facenet", "Facenet512", "ArcFace", "GhostFaceNet"]
|
||||||
metrics = ["cosine", "euclidean", "euclidean_l2"]
|
metrics = ["cosine", "euclidean", "euclidean_l2"]
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
|
# built-in dependencies
|
||||||
import json
|
import json
|
||||||
from deepface import DeepFace
|
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
|
|
||||||
logger = Logger("tests/test_version.py")
|
# project dependencies
|
||||||
|
from deepface import DeepFace
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
|
|
||||||
def test_version():
|
def test_version():
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
|
# 3rd party dependencies
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
from deepface import DeepFace
|
|
||||||
from deepface.commons.logger import Logger
|
|
||||||
|
|
||||||
logger = Logger()
|
# project dependencies
|
||||||
|
from deepface import DeepFace
|
||||||
|
from deepface.commons import logger as log
|
||||||
|
|
||||||
|
logger = log.get_singletonish_logger()
|
||||||
|
|
||||||
# some models (e.g. Dlib) and detectors (e.g. retinaface) do not have test cases
|
# some models (e.g. Dlib) and detectors (e.g. retinaface) do not have test cases
|
||||||
# because they require to install huge packages
|
# because they require to install huge packages
|
||||||
|
Loading…
x
Reference in New Issue
Block a user