From 3d8733812b7b5db1fcfd38fec95b739d9d6e11c2 Mon Sep 17 00:00:00 2001 From: aku-ato <111570992+aku-ato@users.noreply.github.com> Date: Tue, 26 Mar 2024 11:12:54 +0100 Subject: [PATCH 01/41] use GPU in fastMtCnn --- deepface/detectors/FastMtCnn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepface/detectors/FastMtCnn.py b/deepface/detectors/FastMtCnn.py index acc71f1..2df5c4d 100644 --- a/deepface/detectors/FastMtCnn.py +++ b/deepface/detectors/FastMtCnn.py @@ -68,7 +68,7 @@ class FastMtCnnClient(Detector): "Please install using 'pip install facenet-pytorch' " ) from e - face_detector = fast_mtcnn(device="cpu") + face_detector = fast_mtcnn(device="cuda:0") return face_detector From 2b7c0a708e0c370b631e77db8d7ca3211cb0a47b Mon Sep 17 00:00:00 2001 From: aku-ato <111570992+aku-ato@users.noreply.github.com> Date: Tue, 26 Mar 2024 15:34:03 +0100 Subject: [PATCH 02/41] Conditional use of GPU on FastMtCnn --- deepface/detectors/FastMtCnn.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/deepface/detectors/FastMtCnn.py b/deepface/detectors/FastMtCnn.py index 2df5c4d..c6a28a0 100644 --- a/deepface/detectors/FastMtCnn.py +++ b/deepface/detectors/FastMtCnn.py @@ -68,7 +68,9 @@ class FastMtCnnClient(Detector): "Please install using 'pip install facenet-pytorch' " ) from e - face_detector = fast_mtcnn(device="cuda:0") + device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') + face_detector = fast_mtcnn(device=device) + return face_detector From 345b6717e22b9ac03a76fb2a527446ca114587c1 Mon Sep 17 00:00:00 2001 From: aku-ato <111570992+aku-ato@users.noreply.github.com> Date: Tue, 26 Mar 2024 18:06:53 +0100 Subject: [PATCH 03/41] Conditional use of GPU on FastMtCnn --- deepface/detectors/FastMtCnn.py | 1 + 1 file changed, 1 insertion(+) diff --git a/deepface/detectors/FastMtCnn.py b/deepface/detectors/FastMtCnn.py index c6a28a0..89b7a38 100644 --- a/deepface/detectors/FastMtCnn.py +++ b/deepface/detectors/FastMtCnn.py @@ -2,6 +2,7 @@ from typing import Any, Union, List import cv2 import numpy as np from deepface.models.Detector import Detector, FacialAreaRegion +import torch # Link -> https://github.com/timesler/facenet-pytorch # Examples https://www.kaggle.com/timesler/guide-to-mtcnn-in-facenet-pytorch From 131a7fb576607fcef621cde96e1793abfab20475 Mon Sep 17 00:00:00 2001 From: aku-ato <111570992+aku-ato@users.noreply.github.com> Date: Fri, 5 Apr 2024 17:26:45 +0200 Subject: [PATCH 04/41] move torch import from global in order to match optional dependency project philosophy --- deepface/detectors/FastMtCnn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepface/detectors/FastMtCnn.py b/deepface/detectors/FastMtCnn.py index 89b7a38..ee8e69c 100644 --- a/deepface/detectors/FastMtCnn.py +++ b/deepface/detectors/FastMtCnn.py @@ -2,7 +2,6 @@ from typing import Any, Union, List import cv2 import numpy as np from deepface.models.Detector import Detector, FacialAreaRegion -import torch # Link -> https://github.com/timesler/facenet-pytorch # Examples https://www.kaggle.com/timesler/guide-to-mtcnn-in-facenet-pytorch @@ -63,6 +62,7 @@ class FastMtCnnClient(Detector): # this is not a must dependency. do not import it in the global level. try: from facenet_pytorch import MTCNN as fast_mtcnn + import torch except ModuleNotFoundError as e: raise ImportError( "FastMtcnn is an optional detector, ensure the library is installed." From 94937cfb712540687a12fbeb088d6b01445a77b8 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 7 Apr 2024 09:25:51 +0100 Subject: [PATCH 05/41] checking file's content type instead of extension --- deepface/modules/preprocessing.py | 20 +++++++++++--------- deepface/modules/recognition.py | 6 ++++-- tests/test_extract_faces.py | 23 +++++++++++++++++++++++ tests/test_find.py | 29 ++++++++++++++++++++++++++--- 4 files changed, 64 insertions(+), 14 deletions(-) diff --git a/deepface/modules/preprocessing.py b/deepface/modules/preprocessing.py index 7daf248..23edb5d 100644 --- a/deepface/modules/preprocessing.py +++ b/deepface/modules/preprocessing.py @@ -1,7 +1,9 @@ +# built-in dependencies import os from typing import Union, Tuple import base64 from pathlib import Path +import imghdr # 3rd party import numpy as np @@ -82,16 +84,16 @@ def load_base64(uri: str) -> np.ndarray: if len(encoded_data_parts) < 2: raise ValueError("format error in base64 encoded string") - # similar to find functionality, we are just considering these extensions - if not ( - uri.startswith("data:image/jpeg") - or uri.startswith("data:image/jpg") - or uri.startswith("data:image/png") - ): - raise ValueError(f"input image can be jpg, jpeg or png, but it is {encoded_data_parts}") - encoded_data = encoded_data_parts[1] - nparr = np.fromstring(base64.b64decode(encoded_data), np.uint8) + decoded_bytes = base64.b64decode(encoded_data) + file_type = imghdr.what(None, h=decoded_bytes) + + # similar to find functionality, we are just considering these extensions + # content type is safer option than file extension + if file_type not in ["jpeg", "png"]: + raise ValueError(f"input image can be jpg or png, but it is {file_type}") + + nparr = np.fromstring(decoded_bytes, np.uint8) img_bgr = cv2.imdecode(nparr, cv2.IMREAD_COLOR) # img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) return img_bgr diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index a902419..18e1a93 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -3,6 +3,7 @@ import os import pickle from typing import List, Union, Optional, Dict, Any import time +import imghdr # 3rd party dependencies import numpy as np @@ -296,8 +297,9 @@ def __list_images(path: str) -> List[str]: images = [] for r, _, f in os.walk(path): for file in f: - if file.lower().endswith((".jpg", ".jpeg", ".png")): - exact_path = os.path.join(r, file) + exact_path = os.path.join(r, file) + file_type = imghdr.what(exact_path) + if file_type in ["jpeg", "png"]: images.append(exact_path) return images diff --git a/tests/test_extract_faces.py b/tests/test_extract_faces.py index b8119fd..7e080de 100644 --- a/tests/test_extract_faces.py +++ b/tests/test_extract_faces.py @@ -1,6 +1,8 @@ import numpy as np +import base64 import pytest from deepface import DeepFace +from deepface.modules import preprocessing from deepface.commons.logger import Logger logger = Logger("tests/test_extract_faces.py") @@ -48,3 +50,24 @@ def test_backends_for_not_enforced_detection_with_non_facial_inputs(): ) assert objs[0]["face"].shape == (224, 224, 3) logger.info("✅ extract_faces for not enforced detection and non-facial image test is done") + + +def test_file_types_while_loading_base64(): + img1_path = "dataset/img47.jpg" + img1_base64 = image_to_base64(image_path=img1_path) + + with pytest.raises(ValueError, match="input image can be jpg or png, but it is"): + _ = preprocessing.load_base64(uri=img1_base64) + + img2_path = "dataset/img1.jpg" + img2_base64 = image_to_base64(image_path=img2_path) + + img2 = preprocessing.load_base64(uri=img2_base64) + # 3 dimensional image should be loaded + assert len(img2.shape) == 3 + + +def image_to_base64(image_path): + with open(image_path, "rb") as image_file: + encoded_string = base64.b64encode(image_file.read()).decode("utf-8") + return "data:image/jpeg," + encoded_string diff --git a/tests/test_find.py b/tests/test_find.py index 5218724..5443899 100644 --- a/tests/test_find.py +++ b/tests/test_find.py @@ -3,6 +3,7 @@ import cv2 import pandas as pd from deepface import DeepFace from deepface.modules import verification +from deepface.modules import recognition from deepface.commons.logger import Logger logger = Logger("tests/test_find.py") @@ -11,7 +12,7 @@ threshold = verification.find_threshold(model_name="VGG-Face", distance_metric=" def test_find_with_exact_path(): - img_path = os.path.join("dataset","img1.jpg") + img_path = os.path.join("dataset", "img1.jpg") dfs = DeepFace.find(img_path=img_path, db_path="dataset", silent=True) assert len(dfs) > 0 for df in dfs: @@ -31,7 +32,7 @@ def test_find_with_exact_path(): def test_find_with_array_input(): - img_path = os.path.join("dataset","img1.jpg") + img_path = os.path.join("dataset", "img1.jpg") img1 = cv2.imread(img_path) dfs = DeepFace.find(img1, db_path="dataset", silent=True) assert len(dfs) > 0 @@ -53,7 +54,7 @@ def test_find_with_array_input(): def test_find_with_extracted_faces(): - img_path = os.path.join("dataset","img1.jpg") + img_path = os.path.join("dataset", "img1.jpg") face_objs = DeepFace.extract_faces(img_path) img = face_objs[0]["face"] dfs = DeepFace.find(img, db_path="dataset", detector_backend="skip", silent=True) @@ -72,3 +73,25 @@ def test_find_with_extracted_faces(): logger.debug(df.head()) assert df.shape[0] > 0 logger.info("✅ test find for extracted face input done") + + +def test_filetype_for_find(): + """ + only images as jpg and png can be loaded into database + """ + img_path = os.path.join("dataset", "img1.jpg") + dfs = DeepFace.find(img_path=img_path, db_path="dataset", silent=True) + + df = dfs[0] + + # img47 is webp even though its extension is jpg + assert df[df["identity"] == "dataset/img47.jpg"].shape[0] == 0 + + +def test_filetype_for_find_bulk_embeddings(): + imgs = recognition.__list_images("dataset") + + assert len(imgs) > 0 + + # img47 is webp even though its extension is jpg + assert "dataset/img47.jpg" not in imgs From 8fc9db5d2345aeef47633f7f4c59ad467c53047c Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 7 Apr 2024 09:45:28 +0100 Subject: [PATCH 06/41] retired variable --- deepface/detectors/Yolo.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/deepface/detectors/Yolo.py b/deepface/detectors/Yolo.py index 87496ea..767ff6f 100644 --- a/deepface/detectors/Yolo.py +++ b/deepface/detectors/Yolo.py @@ -14,10 +14,6 @@ PATH = "/.deepface/weights/yolov8n-face.pt" # Google Drive URL from repo (https://github.com/derronqi/yolov8-face) ~6MB WEIGHT_URL = "https://drive.google.com/uc?id=1qcr9DbgsX3ryrz2uU8w4Xm3cOrRywXqb" -# Confidence thresholds for landmarks detection -# used in alignment_procedure function -LANDMARKS_CONFIDENCE_THRESHOLD = 0.5 - class YoloClient(Detector): def __init__(self): From 6c51489636b8537c00c98a1b8bcee405f00d9e78 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 7 Apr 2024 10:03:38 +0100 Subject: [PATCH 07/41] checking file type with PIL imghdr is deprecated --- deepface/modules/preprocessing.py | 7 +++++-- deepface/modules/recognition.py | 13 +++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/deepface/modules/preprocessing.py b/deepface/modules/preprocessing.py index 23edb5d..5a6ebf5 100644 --- a/deepface/modules/preprocessing.py +++ b/deepface/modules/preprocessing.py @@ -3,12 +3,13 @@ import os from typing import Union, Tuple import base64 from pathlib import Path -import imghdr +import io # 3rd party import numpy as np import cv2 import requests +from PIL import Image def load_image(img: Union[str, np.ndarray]) -> Tuple[np.ndarray, str]: @@ -86,7 +87,9 @@ def load_base64(uri: str) -> np.ndarray: encoded_data = encoded_data_parts[1] decoded_bytes = base64.b64decode(encoded_data) - file_type = imghdr.what(None, h=decoded_bytes) + + img = Image.open(io.BytesIO(decoded_bytes)) + file_type = img.format.lower() # similar to find functionality, we are just considering these extensions # content type is safer option than file extension diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index 18e1a93..7d11abf 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -3,12 +3,12 @@ import os import pickle from typing import List, Union, Optional, Dict, Any import time -import imghdr # 3rd party dependencies import numpy as np import pandas as pd from tqdm import tqdm +from PIL import Image # project dependencies from deepface.commons.logger import Logger @@ -298,7 +298,16 @@ def __list_images(path: str) -> List[str]: for r, _, f in os.walk(path): for file in f: exact_path = os.path.join(r, file) - file_type = imghdr.what(exact_path) + + _, ext = os.path.splitext(exact_path) + ext_lower = ext.lower() + + if ext_lower not in {".jpg", ".jpeg", ".png"}: + continue + + img = Image.open(exact_path) # lazy + + file_type = img.format.lower() if file_type in ["jpeg", "png"]: images.append(exact_path) return images From 83c381e395a7d01889b46a85aa371af52f4318ec Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 7 Apr 2024 10:18:47 +0100 Subject: [PATCH 08/41] using with clause to open img with pil to guarantee it is closed --- deepface/modules/preprocessing.py | 9 ++++----- deepface/modules/recognition.py | 8 +++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/deepface/modules/preprocessing.py b/deepface/modules/preprocessing.py index 5a6ebf5..28ff8e7 100644 --- a/deepface/modules/preprocessing.py +++ b/deepface/modules/preprocessing.py @@ -88,13 +88,12 @@ def load_base64(uri: str) -> np.ndarray: encoded_data = encoded_data_parts[1] decoded_bytes = base64.b64decode(encoded_data) - img = Image.open(io.BytesIO(decoded_bytes)) - file_type = img.format.lower() - # similar to find functionality, we are just considering these extensions # content type is safer option than file extension - if file_type not in ["jpeg", "png"]: - raise ValueError(f"input image can be jpg or png, but it is {file_type}") + with Image.open(io.BytesIO(decoded_bytes)) as img: + file_type = img.format.lower() + if file_type not in ["jpeg", "png"]: + raise ValueError(f"input image can be jpg or png, but it is {file_type}") nparr = np.fromstring(decoded_bytes, np.uint8) img_bgr = cv2.imdecode(nparr, cv2.IMREAD_COLOR) diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index 7d11abf..ccc850d 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -305,11 +305,9 @@ def __list_images(path: str) -> List[str]: if ext_lower not in {".jpg", ".jpeg", ".png"}: continue - img = Image.open(exact_path) # lazy - - file_type = img.format.lower() - if file_type in ["jpeg", "png"]: - images.append(exact_path) + with Image.open(exact_path) as img: # lazy + if img.format.lower() in ["jpeg", "png"]: + images.append(exact_path) return images From 1078be9f125f852000a524be897d0fa9ce9d968f Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 7 Apr 2024 18:14:27 +0100 Subject: [PATCH 09/41] resize functionality moved to represent module we were handling resizing in extract faces. with this commit we moved it to representation module to provide seperation of concern. --- deepface/DeepFace.py | 8 +-- deepface/modules/demography.py | 99 ++++++++++++++++-------------- deepface/modules/detection.py | 70 ++------------------- deepface/modules/preprocessing.py | 61 +++++++++++++++++- deepface/modules/recognition.py | 13 +--- deepface/modules/representation.py | 28 +++++---- deepface/modules/streaming.py | 17 ++--- deepface/modules/verification.py | 4 -- tests/visual-test.py | 1 + 9 files changed, 141 insertions(+), 160 deletions(-) diff --git a/deepface/DeepFace.py b/deepface/DeepFace.py index a8ebab5..8a4769b 100644 --- a/deepface/DeepFace.py +++ b/deepface/DeepFace.py @@ -2,7 +2,7 @@ import os import warnings import logging -from typing import Any, Dict, List, Tuple, Union, Optional +from typing import Any, Dict, List, Union, Optional # this has to be set before importing tensorflow os.environ["TF_USE_LEGACY_KERAS"] = "1" @@ -439,7 +439,6 @@ def stream( def extract_faces( img_path: Union[str, np.ndarray], - target_size: Optional[Tuple[int, int]] = (224, 224), detector_backend: str = "opencv", enforce_detection: bool = True, align: bool = True, @@ -453,9 +452,6 @@ def extract_faces( img_path (str or np.ndarray): Path to the first image. Accepts exact image path as a string, numpy array (BGR), or base64 encoded images. - target_size (tuple): final shape of facial image. black pixels will be - added to resize the image (default is (224, 224)). - detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv). @@ -485,13 +481,11 @@ def extract_faces( return detection.extract_faces( img_path=img_path, - target_size=target_size, detector_backend=detector_backend, enforce_detection=enforce_detection, align=align, expand_percentage=expand_percentage, grayscale=grayscale, - human_readable=True, ) diff --git a/deepface/modules/demography.py b/deepface/modules/demography.py index fa15c3a..59c1f82 100644 --- a/deepface/modules/demography.py +++ b/deepface/modules/demography.py @@ -6,7 +6,7 @@ import numpy as np from tqdm import tqdm # project dependencies -from deepface.modules import modeling, detection +from deepface.modules import modeling, detection, preprocessing from deepface.extendedmodels import Gender, Race, Emotion @@ -118,7 +118,6 @@ def analyze( img_objs = detection.extract_faces( img_path=img_path, - target_size=(224, 224), detector_backend=detector_backend, grayscale=False, enforce_detection=enforce_detection, @@ -130,60 +129,68 @@ def analyze( img_content = img_obj["face"] img_region = img_obj["facial_area"] img_confidence = img_obj["confidence"] - if img_content.shape[0] > 0 and img_content.shape[1] > 0: - obj = {} - # facial attribute analysis - pbar = tqdm( - range(0, len(actions)), - desc="Finding actions", - disable=silent if len(actions) > 1 else True, - ) - for index in pbar: - action = actions[index] - pbar.set_description(f"Action: {action}") + if img_content.shape[0] == 0 or img_content.shape[1] == 0: + continue - if action == "emotion": - emotion_predictions = modeling.build_model("Emotion").predict(img_content) - sum_of_predictions = emotion_predictions.sum() + # rgb to bgr + img_content = img_content[:, :, ::-1] - obj["emotion"] = {} - for i, emotion_label in enumerate(Emotion.labels): - emotion_prediction = 100 * emotion_predictions[i] / sum_of_predictions - obj["emotion"][emotion_label] = emotion_prediction + # resize input image + img_content = preprocessing.resize_image(img=img_content, target_size=(224, 224)) - obj["dominant_emotion"] = Emotion.labels[np.argmax(emotion_predictions)] + obj = {} + # facial attribute analysis + pbar = tqdm( + range(0, len(actions)), + desc="Finding actions", + disable=silent if len(actions) > 1 else True, + ) + for index in pbar: + action = actions[index] + pbar.set_description(f"Action: {action}") - elif action == "age": - apparent_age = modeling.build_model("Age").predict(img_content) - # int cast is for exception - object of type 'float32' is not JSON serializable - obj["age"] = int(apparent_age) + if action == "emotion": + emotion_predictions = modeling.build_model("Emotion").predict(img_content) + sum_of_predictions = emotion_predictions.sum() - elif action == "gender": - gender_predictions = modeling.build_model("Gender").predict(img_content) - obj["gender"] = {} - for i, gender_label in enumerate(Gender.labels): - gender_prediction = 100 * gender_predictions[i] - obj["gender"][gender_label] = gender_prediction + obj["emotion"] = {} + for i, emotion_label in enumerate(Emotion.labels): + emotion_prediction = 100 * emotion_predictions[i] / sum_of_predictions + obj["emotion"][emotion_label] = emotion_prediction - obj["dominant_gender"] = Gender.labels[np.argmax(gender_predictions)] + obj["dominant_emotion"] = Emotion.labels[np.argmax(emotion_predictions)] - elif action == "race": - race_predictions = modeling.build_model("Race").predict(img_content) - sum_of_predictions = race_predictions.sum() + elif action == "age": + apparent_age = modeling.build_model("Age").predict(img_content) + # int cast is for exception - object of type 'float32' is not JSON serializable + obj["age"] = int(apparent_age) - obj["race"] = {} - for i, race_label in enumerate(Race.labels): - race_prediction = 100 * race_predictions[i] / sum_of_predictions - obj["race"][race_label] = race_prediction + elif action == "gender": + gender_predictions = modeling.build_model("Gender").predict(img_content) + obj["gender"] = {} + for i, gender_label in enumerate(Gender.labels): + gender_prediction = 100 * gender_predictions[i] + obj["gender"][gender_label] = gender_prediction - obj["dominant_race"] = Race.labels[np.argmax(race_predictions)] + obj["dominant_gender"] = Gender.labels[np.argmax(gender_predictions)] - # ----------------------------- - # mention facial areas - obj["region"] = img_region - # include image confidence - obj["face_confidence"] = img_confidence + elif action == "race": + race_predictions = modeling.build_model("Race").predict(img_content) + sum_of_predictions = race_predictions.sum() - resp_objects.append(obj) + obj["race"] = {} + for i, race_label in enumerate(Race.labels): + race_prediction = 100 * race_predictions[i] / sum_of_predictions + obj["race"][race_label] = race_prediction + + obj["dominant_race"] = Race.labels[np.argmax(race_predictions)] + + # ----------------------------- + # mention facial areas + obj["region"] = img_region + # include image confidence + obj["face_confidence"] = img_confidence + + resp_objects.append(obj) return resp_objects diff --git a/deepface/modules/detection.py b/deepface/modules/detection.py index 18bad8f..edecf1e 100644 --- a/deepface/modules/detection.py +++ b/deepface/modules/detection.py @@ -1,5 +1,5 @@ # built-in dependencies -from typing import Any, Dict, List, Tuple, Union, Optional +from typing import Any, Dict, List, Tuple, Union # 3rd part dependencies import numpy as np @@ -10,7 +10,6 @@ from PIL import Image from deepface.modules import preprocessing from deepface.models.Detector import DetectedFace, FacialAreaRegion from deepface.detectors import DetectorWrapper -from deepface.commons import package_utils from deepface.commons.logger import Logger logger = Logger(module="deepface/modules/detection.py") @@ -18,22 +17,13 @@ logger = Logger(module="deepface/modules/detection.py") # pylint: disable=no-else-raise -tf_major_version = package_utils.get_tf_major_version() -if tf_major_version == 1: - from keras.preprocessing import image -elif tf_major_version == 2: - from tensorflow.keras.preprocessing import image - - def extract_faces( img_path: Union[str, np.ndarray], - target_size: Optional[Tuple[int, int]] = (224, 224), detector_backend: str = "opencv", enforce_detection: bool = True, align: bool = True, expand_percentage: int = 0, grayscale: bool = False, - human_readable=False, ) -> List[Dict[str, Any]]: """ Extract faces from a given image @@ -42,9 +32,6 @@ def extract_faces( img_path (str or np.ndarray): Path to the first image. Accepts exact image path as a string, numpy array (BGR), or base64 encoded images. - target_size (tuple): final shape of facial image. black pixels will be - added to resize the image. - detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv) @@ -58,13 +45,10 @@ def extract_faces( grayscale (boolean): Flag to convert the image to grayscale before processing (default is False). - human_readable (bool): Flag to make the image human readable. 3D RGB for human readable - or 4D BGR for ML models (default is False). - Returns: results (List[Dict[str, Any]]): A list of dictionaries, where each dictionary contains: - - "face" (np.ndarray): The detected face as a NumPy array. + - "face" (np.ndarray): The detected face as a NumPy array in RGB format. - "facial_area" (Dict[str, Any]): The detected face's regions as a dictionary containing: - keys 'x', 'y', 'w', 'h' with int values @@ -122,57 +106,11 @@ def extract_faces( if grayscale is True: current_img = cv2.cvtColor(current_img, cv2.COLOR_BGR2GRAY) - # resize and padding - if target_size is not None: - factor_0 = target_size[0] / current_img.shape[0] - factor_1 = target_size[1] / current_img.shape[1] - factor = min(factor_0, factor_1) - - dsize = ( - int(current_img.shape[1] * factor), - int(current_img.shape[0] * factor), - ) - current_img = cv2.resize(current_img, dsize) - - diff_0 = target_size[0] - current_img.shape[0] - diff_1 = target_size[1] - current_img.shape[1] - if grayscale is False: - # Put the base image in the middle of the padded image - current_img = np.pad( - current_img, - ( - (diff_0 // 2, diff_0 - diff_0 // 2), - (diff_1 // 2, diff_1 - diff_1 // 2), - (0, 0), - ), - "constant", - ) - else: - current_img = np.pad( - current_img, - ( - (diff_0 // 2, diff_0 - diff_0 // 2), - (diff_1 // 2, diff_1 - diff_1 // 2), - ), - "constant", - ) - - # double check: if target image is not still the same size with target. - if current_img.shape[0:2] != target_size: - current_img = cv2.resize(current_img, target_size) - - # normalizing the image pixels - # what this line doing? must? - img_pixels = image.img_to_array(current_img) - img_pixels = np.expand_dims(img_pixels, axis=0) - img_pixels /= 255 # normalize input in [0, 1] - # discard expanded dimension - if human_readable is True and len(img_pixels.shape) == 4: - img_pixels = img_pixels[0] + current_img = current_img / 255 # normalize input in [0, 1] resp_objs.append( { - "face": img_pixels[:, :, ::-1] if human_readable is True else img_pixels, + "face": current_img[:, :, ::-1], "facial_area": { "x": int(current_region.x), "y": int(current_region.y), diff --git a/deepface/modules/preprocessing.py b/deepface/modules/preprocessing.py index 28ff8e7..0ecef6a 100644 --- a/deepface/modules/preprocessing.py +++ b/deepface/modules/preprocessing.py @@ -11,6 +11,16 @@ import cv2 import requests from PIL import Image +# project dependencies +from deepface.commons import package_utils + + +tf_major_version = package_utils.get_tf_major_version() +if tf_major_version == 1: + from keras.preprocessing import image +elif tf_major_version == 2: + from tensorflow.keras.preprocessing import image + def load_image(img: Union[str, np.ndarray]) -> Tuple[np.ndarray, str]: """ @@ -66,8 +76,8 @@ def load_image_from_web(url: str) -> np.ndarray: response = requests.get(url, stream=True, timeout=60) response.raise_for_status() image_array = np.asarray(bytearray(response.raw.read()), dtype=np.uint8) - image = cv2.imdecode(image_array, cv2.IMREAD_COLOR) - return image + img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) + return img def load_base64(uri: str) -> np.ndarray: @@ -157,3 +167,50 @@ def normalize_input(img: np.ndarray, normalization: str = "base") -> np.ndarray: raise ValueError(f"unimplemented normalization type - {normalization}") return img + + +def resize_image(img: np.ndarray, target_size: Tuple[int, int]) -> np.ndarray: + """ + Resize an image to expected size of a ml model with adding black pixels. + Args: + img (np.ndarray): pre-loaded image as numpy array + target_size (tuple): input shape of ml model + Returns: + img (np.ndarray): resized input image + """ + factor_0 = target_size[0] / img.shape[0] + factor_1 = target_size[1] / img.shape[1] + factor = min(factor_0, factor_1) + + dsize = ( + int(img.shape[1] * factor), + int(img.shape[0] * factor), + ) + img = cv2.resize(img, dsize) + + diff_0 = target_size[0] - img.shape[0] + diff_1 = target_size[1] - img.shape[1] + + # Put the base image in the middle of the padded image + img = np.pad( + img, + ( + (diff_0 // 2, diff_0 - diff_0 // 2), + (diff_1 // 2, diff_1 - diff_1 // 2), + (0, 0), + ), + "constant", + ) + + # double check: if target image is not still the same size with target. + if img.shape[0:2] != target_size: + img = cv2.resize(img, target_size) + + # make it 4-dimensional how ML models expect + img = image.img_to_array(img) + img = np.expand_dims(img, axis=0) + + if img.max() > 1: + img = (img.astype(np.float32) / 255.0).astype(np.float32) + + return img diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index ccc850d..76212b4 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -13,8 +13,7 @@ from PIL import Image # project dependencies from deepface.commons.logger import Logger from deepface.commons import package_utils -from deepface.modules import representation, detection, modeling, verification -from deepface.models.FacialRecognition import FacialRecognition +from deepface.modules import representation, detection, verification logger = Logger(module="deepface/modules/recognition.py") @@ -90,15 +89,9 @@ def find( tic = time.time() - # ------------------------------- if os.path.isdir(db_path) is not True: raise ValueError("Passed db_path does not exist!") - model: FacialRecognition = modeling.build_model(model_name) - target_size = model.input_shape - - # --------------------------------------- - file_name = f"ds_{model_name}_{detector_backend}_v2.pkl" file_name = file_name.replace("-", "").lower() datastore_path = os.path.join(db_path, file_name) @@ -180,7 +173,6 @@ def find( representations += __find_bulk_embeddings( employees=new_images, model_name=model_name, - target_size=target_size, detector_backend=detector_backend, enforce_detection=enforce_detection, align=align, @@ -212,7 +204,6 @@ def find( # img path might have more than once face source_objs = detection.extract_faces( img_path=img_path, - target_size=target_size, detector_backend=detector_backend, grayscale=False, enforce_detection=enforce_detection, @@ -314,7 +305,6 @@ def __list_images(path: str) -> List[str]: def __find_bulk_embeddings( employees: List[str], model_name: str = "VGG-Face", - target_size: tuple = (224, 224), detector_backend: str = "opencv", enforce_detection: bool = True, align: bool = True, @@ -362,7 +352,6 @@ def __find_bulk_embeddings( try: img_objs = detection.extract_faces( img_path=employee, - target_size=target_size, detector_backend=detector_backend, grayscale=False, enforce_detection=enforce_detection, diff --git a/deepface/modules/representation.py b/deepface/modules/representation.py index 95c1a1e..6a0d2a2 100644 --- a/deepface/modules/representation.py +++ b/deepface/modules/representation.py @@ -3,7 +3,6 @@ from typing import Any, Dict, List, Union # 3rd party dependencies import numpy as np -import cv2 # project dependencies from deepface.modules import modeling, detection, preprocessing @@ -67,7 +66,6 @@ def represent( if detector_backend != "skip": img_objs = detection.extract_faces( img_path=img_path, - target_size=(target_size[1], target_size[0]), detector_backend=detector_backend, grayscale=False, enforce_detection=enforce_detection, @@ -77,16 +75,10 @@ def represent( else: # skip # Try load. If load error, will raise exception internal img, _ = preprocessing.load_image(img_path) - # -------------------------------- - if len(img.shape) == 4: - img = img[0] # e.g. (1, 224, 224, 3) to (224, 224, 3) - if len(img.shape) == 3: - img = cv2.resize(img, target_size) - img = np.expand_dims(img, axis=0) - # when called from verify, this is already normalized. But needed when user given. - if img.max() > 1: - img = (img.astype(np.float32) / 255.0).astype(np.float32) - # -------------------------------- + + if len(img.shape) != 3: + raise ValueError(f"Input img must be 3 dimensional but it is {img.shape}") + # make dummy region and confidence to keep compatibility with `extract_faces` img_objs = [ { @@ -99,8 +91,20 @@ def represent( for img_obj in img_objs: img = img_obj["face"] + + # rgb to bgr + img = img[:, :, ::-1] + region = img_obj["facial_area"] confidence = img_obj["confidence"] + + # resize to expected shape of ml model + img = preprocessing.resize_image( + img=img, + # thanks to DeepId (!) + target_size=(target_size[1], target_size[0]), + ) + # custom normalization img = preprocessing.normalize_input(img=img, normalization=normalization) diff --git a/deepface/modules/streaming.py b/deepface/modules/streaming.py index 577126e..cc28b77 100644 --- a/deepface/modules/streaming.py +++ b/deepface/modules/streaming.py @@ -62,7 +62,7 @@ def analysis( """ # initialize models build_demography_models(enable_face_analysis=enable_face_analysis) - target_size = build_facial_recognition_model(model_name=model_name) + build_facial_recognition_model(model_name=model_name) # call a dummy find function for db_path once to create embeddings before starting webcam _ = search_identity( detected_face=np.zeros([224, 224, 3]), @@ -89,9 +89,7 @@ def analysis( faces_coordinates = [] if freeze is False: - faces_coordinates = grab_facial_areas( - img=img, detector_backend=detector_backend, target_size=target_size - ) + faces_coordinates = grab_facial_areas(img=img, detector_backend=detector_backend) # we will pass img to analyze modules (identity, demography) and add some illustrations # that is why, we will not be able to extract detected face from img clearly @@ -156,7 +154,7 @@ def analysis( cv2.destroyAllWindows() -def build_facial_recognition_model(model_name: str) -> tuple: +def build_facial_recognition_model(model_name: str) -> None: """ Build facial recognition model Args: @@ -165,9 +163,8 @@ def build_facial_recognition_model(model_name: str) -> tuple: Returns input_shape (tuple): input shape of given facial recognitio n model. """ - model: FacialRecognition = DeepFace.build_model(model_name=model_name) + _ = DeepFace.build_model(model_name=model_name) logger.info(f"{model_name} is built") - return model.input_shape def search_identity( @@ -231,7 +228,6 @@ def search_identity( # load found identity image - extracted if possible target_objs = DeepFace.extract_faces( img_path=target_path, - target_size=(IDENTIFIED_IMG_SIZE, IDENTIFIED_IMG_SIZE), detector_backend=detector_backend, enforce_detection=False, align=True, @@ -243,6 +239,7 @@ def search_identity( # extract 1st item directly target_obj = target_objs[0] target_img = target_obj["face"] + target_img = cv2.resize(target_img, (IDENTIFIED_IMG_SIZE, IDENTIFIED_IMG_SIZE)) target_img *= 255 target_img = target_img[:, :, ::-1] else: @@ -346,7 +343,7 @@ def countdown_to_release( def grab_facial_areas( - img: np.ndarray, detector_backend: str, target_size: Tuple[int, int], threshold: int = 130 + img: np.ndarray, detector_backend: str, threshold: int = 130 ) -> List[Tuple[int, int, int, int]]: """ Find facial area coordinates in the given image @@ -354,7 +351,6 @@ def grab_facial_areas( img (np.ndarray): image itself detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' (default is opencv). - target_size (tuple): input shape of the facial recognition model. threshold (int): threshold for facial area, discard smaller ones Returns result (list): list of tuple with x, y, w and h coordinates @@ -363,7 +359,6 @@ def grab_facial_areas( face_objs = DeepFace.extract_faces( img_path=img, detector_backend=detector_backend, - target_size=target_size, # you may consider to extract with larger expanding value expand_percentage=0, ) diff --git a/deepface/modules/verification.py b/deepface/modules/verification.py index ca26dcc..c7d7682 100644 --- a/deepface/modules/verification.py +++ b/deepface/modules/verification.py @@ -223,12 +223,8 @@ def __extract_faces_and_embeddings( embeddings = [] facial_areas = [] - model: FacialRecognition = modeling.build_model(model_name) - target_size = model.input_shape - img_objs = detection.extract_faces( img_path=img_path, - target_size=target_size, detector_backend=detector_backend, grayscale=False, enforce_detection=enforce_detection, diff --git a/tests/visual-test.py b/tests/visual-test.py index a1c348a..cd6de97 100644 --- a/tests/visual-test.py +++ b/tests/visual-test.py @@ -18,6 +18,7 @@ model_names = [ "Dlib", "ArcFace", "SFace", + "GhostFaceNet", ] detector_backends = [ From ae5d5b967a88333c63d3fa932d1bb8190bae3058 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 7 Apr 2024 18:23:28 +0100 Subject: [PATCH 10/41] getting rid of target_size everywhere --- README.md | 1 - deepface/DeepFace.py | 3 ++- deepface/modules/recognition.py | 2 -- deepface/modules/streaming.py | 1 - tests/face-recognition-how.py | 8 ++++++-- tests/overlay.py | 4 +++- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 79abe99..d93298a 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,6 @@ demographies = DeepFace.analyze(img_path = "img4.jpg", #face detection and alignment face_objs = DeepFace.extract_faces(img_path = "img.jpg", - target_size = (224, 224), detector_backend = backends[4] ) ``` diff --git a/deepface/DeepFace.py b/deepface/DeepFace.py index 8a4769b..8d51c87 100644 --- a/deepface/DeepFace.py +++ b/deepface/DeepFace.py @@ -10,6 +10,7 @@ os.environ["TF_USE_LEGACY_KERAS"] = "1" # pylint: disable=wrong-import-position # 3rd party dependencies +import cv2 import numpy as np import pandas as pd import tensorflow as tf @@ -532,7 +533,6 @@ def detectFace( logger.warn("Function detectFace is deprecated. Use extract_faces instead.") face_objs = extract_faces( img_path=img_path, - target_size=target_size, detector_backend=detector_backend, enforce_detection=enforce_detection, align=align, @@ -541,4 +541,5 @@ def detectFace( extracted_face = None if len(face_objs) > 0: extracted_face = face_objs[0]["face"] + extracted_face = cv2.resize(extracted_face, target_size) return extracted_face diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index 76212b4..44f7d6d 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -321,8 +321,6 @@ def __find_bulk_embeddings( model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512, OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). - target_size (tuple): expected input shape of facial recognition model - detector_backend (str): face detector model name enforce_detection (bool): set this to False if you diff --git a/deepface/modules/streaming.py b/deepface/modules/streaming.py index cc28b77..6aeba55 100644 --- a/deepface/modules/streaming.py +++ b/deepface/modules/streaming.py @@ -10,7 +10,6 @@ import cv2 # project dependencies from deepface import DeepFace -from deepface.models.FacialRecognition import FacialRecognition from deepface.commons.logger import Logger logger = Logger(module="commons.realtime") diff --git a/tests/face-recognition-how.py b/tests/face-recognition-how.py index fde6d3e..c8e0858 100644 --- a/tests/face-recognition-how.py +++ b/tests/face-recognition-how.py @@ -1,5 +1,7 @@ import matplotlib.pyplot as plt import numpy as np +import cv2 + from deepface import DeepFace from deepface.modules import verification from deepface.models.FacialRecognition import FacialRecognition @@ -21,11 +23,13 @@ logger.info(f"target_size: {target_size}") # ---------------------------------------------- # load images and find embeddings -img1 = DeepFace.extract_faces(img_path="dataset/img1.jpg", target_size=target_size)[0]["face"] +img1 = DeepFace.extract_faces(img_path="dataset/img1.jpg")[0]["face"] +img1 = cv2.resize(img1, target_size) img1 = np.expand_dims(img1, axis=0) # to (1, 224, 224, 3) img1_representation = model.forward(img1) -img2 = DeepFace.extract_faces(img_path="dataset/img3.jpg", target_size=target_size)[0]["face"] +img2 = DeepFace.extract_faces(img_path="dataset/img3.jpg")[0]["face"] +img2 = cv2.resize(img2, target_size) img2 = np.expand_dims(img2, axis=0) img2_representation = model.forward(img2) diff --git a/tests/overlay.py b/tests/overlay.py index 212c7f6..4cc30d2 100644 --- a/tests/overlay.py +++ b/tests/overlay.py @@ -7,9 +7,11 @@ img_path = "dataset/img1.jpg" img = cv2.imread(img_path) overlay_img_path = "dataset/img6.jpg" -face_objs = DeepFace.extract_faces(overlay_img_path, target_size=(112, 112)) +face_objs = DeepFace.extract_faces(overlay_img_path) overlay_img = face_objs[0]["face"][:, :, ::-1] * 255 +overlay_img = cv2.resize(overlay_img, (112, 112)) + raw_img = img.copy() demographies = DeepFace.analyze(img_path=img_path, actions=("age", "gender", "emotion")) From 9a830686729a93aec39c69427a7dc0057811ab26 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Mon, 8 Apr 2024 20:11:09 +0100 Subject: [PATCH 11/41] singleton logger and docstrings --- deepface/DeepFace.py | 18 +++++++++--------- deepface/api/src/modules/core/routes.py | 4 ++-- deepface/basemodels/ArcFace.py | 5 +++-- deepface/basemodels/DeepID.py | 4 ++-- deepface/basemodels/Dlib.py | 4 ++-- deepface/basemodels/Facenet.py | 4 ++-- deepface/basemodels/FbDeepFace.py | 4 ++-- deepface/basemodels/GhostFaceNet.py | 4 ++-- deepface/basemodels/OpenFace.py | 4 ++-- deepface/basemodels/SFace.py | 7 +++++-- deepface/basemodels/VGGFace.py | 4 ++-- deepface/commons/folder_utils.py | 4 ++-- deepface/commons/logger.py | 16 ++++++++++++++++ deepface/commons/package_utils.py | 4 ++-- deepface/detectors/DetectorWrapper.py | 4 ++-- deepface/detectors/Dlib.py | 4 ++-- deepface/detectors/Ssd.py | 4 ++-- deepface/detectors/Yolo.py | 4 ++-- deepface/detectors/YuNet.py | 9 +++++++-- deepface/extendedmodels/Age.py | 4 ++-- deepface/extendedmodels/Emotion.py | 13 +++++++++---- deepface/extendedmodels/Gender.py | 9 +++++++-- deepface/extendedmodels/Race.py | 9 +++++++-- deepface/modules/demography.py | 2 +- deepface/modules/detection.py | 6 +++--- deepface/modules/recognition.py | 6 +++--- deepface/modules/representation.py | 2 +- deepface/modules/streaming.py | 12 ++++++------ deepface/modules/verification.py | 6 +++--- tests/face-recognition-how.py | 6 ++++-- tests/test_analyze.py | 10 +++++++--- tests/test_api.py | 10 ++++++---- tests/test_enforce_detection.py | 9 ++++++--- tests/test_extract_faces.py | 7 +++++-- tests/test_find.py | 10 ++++++++-- tests/test_represent.py | 8 +++++--- tests/test_verify.py | 8 +++++--- tests/test_version.py | 9 ++++++--- tests/visual-test.py | 9 ++++++--- 39 files changed, 168 insertions(+), 98 deletions(-) diff --git a/deepface/DeepFace.py b/deepface/DeepFace.py index 8d51c87..adb7612 100644 --- a/deepface/DeepFace.py +++ b/deepface/DeepFace.py @@ -17,7 +17,7 @@ import tensorflow as tf # package dependencies 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 ( modeling, representation, @@ -29,7 +29,7 @@ from deepface.modules import ( ) from deepface import __version__ -logger = Logger(module="DeepFace") +logger = log.get_singletonish_logger() # ----------------------------------- # configurations for dependencies @@ -88,7 +88,7 @@ def verify( OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). 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', '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). 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', '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). 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). @@ -348,7 +348,7 @@ def represent( (default is True). 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). @@ -406,7 +406,7 @@ def stream( OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). 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', 'euclidean', 'euclidean_l2' (default is cosine). @@ -454,7 +454,7 @@ def extract_faces( as a string, numpy array (BGR), or base64 encoded images. 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. 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)). 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. Set to False to avoid the exception for low-resolution images (default is True). diff --git a/deepface/api/src/modules/core/routes.py b/deepface/api/src/modules/core/routes.py index d36ad24..a0bce25 100644 --- a/deepface/api/src/modules/core/routes.py +++ b/deepface/api/src/modules/core/routes.py @@ -1,8 +1,8 @@ from flask import Blueprint, request 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__) diff --git a/deepface/basemodels/ArcFace.py b/deepface/basemodels/ArcFace.py index 6015b4b..43dd424 100644 --- a/deepface/basemodels/ArcFace.py +++ b/deepface/basemodels/ArcFace.py @@ -1,10 +1,11 @@ import os import gdown from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/basemodels/DeepID.py b/deepface/basemodels/DeepID.py index f2168ff..b68b379 100644 --- a/deepface/basemodels/DeepID.py +++ b/deepface/basemodels/DeepID.py @@ -1,10 +1,10 @@ import os import gdown from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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() diff --git a/deepface/basemodels/Dlib.py b/deepface/basemodels/Dlib.py index 778b2e1..f13b7ca 100644 --- a/deepface/basemodels/Dlib.py +++ b/deepface/basemodels/Dlib.py @@ -4,10 +4,10 @@ import bz2 import gdown import numpy as np from deepface.commons import folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/basemodels/Facenet.py b/deepface/basemodels/Facenet.py index 63852f5..bcbb7b7 100644 --- a/deepface/basemodels/Facenet.py +++ b/deepface/basemodels/Facenet.py @@ -1,10 +1,10 @@ import os import gdown from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/basemodels/FbDeepFace.py b/deepface/basemodels/FbDeepFace.py index 630ad6f..f51a511 100644 --- a/deepface/basemodels/FbDeepFace.py +++ b/deepface/basemodels/FbDeepFace.py @@ -2,10 +2,10 @@ import os import zipfile import gdown from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/basemodels/GhostFaceNet.py b/deepface/basemodels/GhostFaceNet.py index d6347c5..1917833 100644 --- a/deepface/basemodels/GhostFaceNet.py +++ b/deepface/basemodels/GhostFaceNet.py @@ -8,9 +8,9 @@ import tensorflow as tf # project dependencies from deepface.commons import package_utils, folder_utils 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() if tf_major == 1: diff --git a/deepface/basemodels/OpenFace.py b/deepface/basemodels/OpenFace.py index a21dd08..cc335b6 100644 --- a/deepface/basemodels/OpenFace.py +++ b/deepface/basemodels/OpenFace.py @@ -2,10 +2,10 @@ import os import gdown import tensorflow as tf from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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() if tf_version == 1: diff --git a/deepface/basemodels/SFace.py b/deepface/basemodels/SFace.py index b5cf649..ddd9360 100644 --- a/deepface/basemodels/SFace.py +++ b/deepface/basemodels/SFace.py @@ -1,15 +1,18 @@ +# built-in dependencies import os from typing import Any, List +# 3rd party dependencies import numpy as np import cv2 as cv import gdown +# project dependencies from deepface.commons import folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/basemodels/VGGFace.py b/deepface/basemodels/VGGFace.py index 09f5d91..819150e 100644 --- a/deepface/basemodels/VGGFace.py +++ b/deepface/basemodels/VGGFace.py @@ -5,9 +5,9 @@ import numpy as np from deepface.commons import package_utils, folder_utils from deepface.modules import verification 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() # --------------------------------------- diff --git a/deepface/commons/folder_utils.py b/deepface/commons/folder_utils.py index 51b7739..ef5fbc7 100644 --- a/deepface/commons/folder_utils.py +++ b/deepface/commons/folder_utils.py @@ -1,8 +1,8 @@ import os 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: diff --git a/deepface/commons/logger.py b/deepface/commons/logger.py index 80a8a34..ea63c82 100644 --- a/deepface/commons/logger.py +++ b/deepface/commons/logger.py @@ -17,6 +17,9 @@ class Logger: ) self.log_level = logging.INFO + # TODO: delete print before commit + print("Logger object created") + def info(self, message): if self.log_level <= logging.INFO: self.dump_log(f"{message}") @@ -39,3 +42,16 @@ class Logger: def dump_log(self, 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"] diff --git a/deepface/commons/package_utils.py b/deepface/commons/package_utils.py index 1620732..3d68235 100644 --- a/deepface/commons/package_utils.py +++ b/deepface/commons/package_utils.py @@ -6,9 +6,9 @@ import hashlib import tensorflow as tf # 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: diff --git a/deepface/detectors/DetectorWrapper.py b/deepface/detectors/DetectorWrapper.py index 5f594e1..cdca6a3 100644 --- a/deepface/detectors/DetectorWrapper.py +++ b/deepface/detectors/DetectorWrapper.py @@ -13,9 +13,9 @@ from deepface.detectors import ( Yolo, 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: diff --git a/deepface/detectors/Dlib.py b/deepface/detectors/Dlib.py index 08a1346..0699efb 100644 --- a/deepface/detectors/Dlib.py +++ b/deepface/detectors/Dlib.py @@ -5,9 +5,9 @@ import gdown import numpy as np from deepface.commons import folder_utils 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): diff --git a/deepface/detectors/Ssd.py b/deepface/detectors/Ssd.py index ae0a819..a8d68eb 100644 --- a/deepface/detectors/Ssd.py +++ b/deepface/detectors/Ssd.py @@ -7,9 +7,9 @@ import numpy as np from deepface.detectors import OpenCv from deepface.commons import folder_utils 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 diff --git a/deepface/detectors/Yolo.py b/deepface/detectors/Yolo.py index 767ff6f..5ff1c80 100644 --- a/deepface/detectors/Yolo.py +++ b/deepface/detectors/Yolo.py @@ -4,9 +4,9 @@ import numpy as np import gdown from deepface.models.Detector import Detector, FacialAreaRegion 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 PATH = "/.deepface/weights/yolov8n-face.pt" diff --git a/deepface/detectors/YuNet.py b/deepface/detectors/YuNet.py index 3f0deba..c43b80f 100644 --- a/deepface/detectors/YuNet.py +++ b/deepface/detectors/YuNet.py @@ -1,13 +1,18 @@ +# built-in dependencies import os from typing import Any, List + +# 3rd party dependencies import cv2 import numpy as np import gdown + +# project dependencies from deepface.commons import folder_utils 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): diff --git a/deepface/extendedmodels/Age.py b/deepface/extendedmodels/Age.py index 4cb8ef2..2e99995 100644 --- a/deepface/extendedmodels/Age.py +++ b/deepface/extendedmodels/Age.py @@ -3,10 +3,10 @@ import gdown import numpy as np from deepface.basemodels import VGGFace from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/extendedmodels/Emotion.py b/deepface/extendedmodels/Emotion.py index 983045b..e0b93bf 100644 --- a/deepface/extendedmodels/Emotion.py +++ b/deepface/extendedmodels/Emotion.py @@ -1,12 +1,17 @@ +# built-in dependencies import os + +# 3rd party dependencies import gdown import numpy as np 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 diff --git a/deepface/extendedmodels/Gender.py b/deepface/extendedmodels/Gender.py index a7b914c..84cb446 100644 --- a/deepface/extendedmodels/Gender.py +++ b/deepface/extendedmodels/Gender.py @@ -1,12 +1,17 @@ +# built-in dependencies import os + +# 3rd party dependencies import gdown import numpy as np + +# project dependencies from deepface.basemodels import VGGFace from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/extendedmodels/Race.py b/deepface/extendedmodels/Race.py index eb2c298..1943dea 100644 --- a/deepface/extendedmodels/Race.py +++ b/deepface/extendedmodels/Race.py @@ -1,12 +1,17 @@ +# built-in dependencies import os + +# 3rd party dependencies import gdown import numpy as np + +# project dependencies from deepface.basemodels import VGGFace from deepface.commons import package_utils, folder_utils -from deepface.commons.logger import Logger 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 diff --git a/deepface/modules/demography.py b/deepface/modules/demography.py index 59c1f82..2877671 100644 --- a/deepface/modules/demography.py +++ b/deepface/modules/demography.py @@ -34,7 +34,7 @@ def analyze( Set to False to avoid the exception for low-resolution images (default is True). 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', 'euclidean', 'euclidean_l2' (default is cosine). diff --git a/deepface/modules/detection.py b/deepface/modules/detection.py index edecf1e..2e71dde 100644 --- a/deepface/modules/detection.py +++ b/deepface/modules/detection.py @@ -10,9 +10,9 @@ from PIL import Image from deepface.modules import preprocessing from deepface.models.Detector import DetectedFace, FacialAreaRegion 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 @@ -33,7 +33,7 @@ def extract_faces( as a string, numpy array (BGR), or base64 encoded images. 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. Default is True. Set to False to avoid the exception for low-resolution images. diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index 44f7d6d..8985626 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -11,11 +11,11 @@ from tqdm import tqdm from PIL import Image # project dependencies -from deepface.commons.logger import Logger from deepface.commons import package_utils 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( @@ -52,7 +52,7 @@ def find( Default is True. Set to False to avoid the exception for low-resolution images. 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. diff --git a/deepface/modules/representation.py b/deepface/modules/representation.py index 6a0d2a2..cd6252a 100644 --- a/deepface/modules/representation.py +++ b/deepface/modules/representation.py @@ -33,7 +33,7 @@ def represent( Default is True. Set to False to avoid the exception for low-resolution images. 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. diff --git a/deepface/modules/streaming.py b/deepface/modules/streaming.py index 6aeba55..23da044 100644 --- a/deepface/modules/streaming.py +++ b/deepface/modules/streaming.py @@ -10,9 +10,9 @@ import cv2 # project dependencies 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 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). 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', '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, OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). 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', 'euclidean', 'euclidean_l2' (default is cosine). Returns: @@ -349,7 +349,7 @@ def grab_facial_areas( Args: img (np.ndarray): image itself 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 Returns 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 in the database will be considered in the decision-making process. 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', 'euclidean', 'euclidean_l2' (default is cosine). model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512, diff --git a/deepface/modules/verification.py b/deepface/modules/verification.py index c7d7682..e0455f8 100644 --- a/deepface/modules/verification.py +++ b/deepface/modules/verification.py @@ -8,9 +8,9 @@ import numpy as np # project dependencies from deepface.modules import representation, detection, modeling 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( @@ -45,7 +45,7 @@ def verify( OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). 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', 'euclidean', 'euclidean_l2' (default is cosine). diff --git a/tests/face-recognition-how.py b/tests/face-recognition-how.py index c8e0858..22bbf81 100644 --- a/tests/face-recognition-how.py +++ b/tests/face-recognition-how.py @@ -1,13 +1,15 @@ +# 3rd party dependencies import matplotlib.pyplot as plt import numpy as np import cv2 +# project dependencies from deepface import DeepFace from deepface.modules import verification 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 diff --git a/tests/test_analyze.py b/tests/test_analyze.py index d98ec0d..3e3d3e1 100644 --- a/tests/test_analyze.py +++ b/tests/test_analyze.py @@ -1,8 +1,12 @@ +# 3rd party dependencies 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"] diff --git a/tests/test_api.py b/tests/test_api.py index 72e6202..0eeafc8 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -1,10 +1,12 @@ -import unittest -from deepface.commons.logger import Logger -from deepface.api.src.app import create_app +# built-in dependencies 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): diff --git a/tests/test_enforce_detection.py b/tests/test_enforce_detection.py index 9c90ea9..db73ce1 100644 --- a/tests/test_enforce_detection.py +++ b/tests/test_enforce_detection.py @@ -1,9 +1,12 @@ +# 3rd party dependencies import pytest 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(): diff --git a/tests/test_extract_faces.py b/tests/test_extract_faces.py index 7e080de..dfbc7cf 100644 --- a/tests/test_extract_faces.py +++ b/tests/test_extract_faces.py @@ -1,11 +1,14 @@ +# 3rd party dependencies import numpy as np import base64 import pytest + +# project dependencies from deepface import DeepFace 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"] diff --git a/tests/test_find.py b/tests/test_find.py index 5443899..09d361f 100644 --- a/tests/test_find.py +++ b/tests/test_find.py @@ -1,12 +1,18 @@ +# built-in dependencies import os + +# 3rd party dependencies import cv2 import pandas as pd + +# project dependencies from deepface import DeepFace from deepface.modules import verification 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") diff --git a/tests/test_represent.py b/tests/test_represent.py index 44412f3..97878c5 100644 --- a/tests/test_represent.py +++ b/tests/test_represent.py @@ -1,9 +1,11 @@ +# built-in dependencies import cv2 + +# project dependencies from deepface import DeepFace -from deepface.commons.logger import Logger - -logger = Logger("tests/test_represent.py") +from deepface.commons import logger as log +logger = log.get_singletonish_logger() def test_standard_represent(): img_path = "dataset/img1.jpg" diff --git a/tests/test_verify.py b/tests/test_verify.py index 7e3cdaf..01e7e4a 100644 --- a/tests/test_verify.py +++ b/tests/test_verify.py @@ -1,10 +1,12 @@ +# 3rd party dependencies import pytest import cv2 + +# project dependencies from deepface import DeepFace -from deepface.commons.logger import Logger - -logger = Logger("tests/test_facial_recognition_models.py") +from deepface.commons import logger as log +logger = log.get_singletonish_logger() models = ["VGG-Face", "Facenet", "Facenet512", "ArcFace", "GhostFaceNet"] metrics = ["cosine", "euclidean", "euclidean_l2"] diff --git a/tests/test_version.py b/tests/test_version.py index 8f221e3..08e3bbf 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -1,8 +1,11 @@ +# built-in dependencies 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(): diff --git a/tests/visual-test.py b/tests/visual-test.py index cd6de97..09b4b8d 100644 --- a/tests/visual-test.py +++ b/tests/visual-test.py @@ -1,8 +1,11 @@ +# 3rd party dependencies 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 # because they require to install huge packages From 32993039071797f7af35063df52aecd0723b2704 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Mon, 8 Apr 2024 20:13:14 +0100 Subject: [PATCH 12/41] forgotten print --- deepface/commons/logger.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/deepface/commons/logger.py b/deepface/commons/logger.py index ea63c82..4533953 100644 --- a/deepface/commons/logger.py +++ b/deepface/commons/logger.py @@ -17,9 +17,6 @@ class Logger: ) self.log_level = logging.INFO - # TODO: delete print before commit - print("Logger object created") - def info(self, message): if self.log_level <= logging.INFO: self.dump_log(f"{message}") From 6b3a4eff22b4e271a55ad27940027527f9671d6c Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Fri, 12 Apr 2024 14:48:41 +0100 Subject: [PATCH 13/41] centerface backend added --- deepface/detectors/CenterFace.py | 217 ++++++++++++++++++++++++++ deepface/detectors/DetectorWrapper.py | 4 +- 2 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 deepface/detectors/CenterFace.py diff --git a/deepface/detectors/CenterFace.py b/deepface/detectors/CenterFace.py new file mode 100644 index 0000000..a0da43e --- /dev/null +++ b/deepface/detectors/CenterFace.py @@ -0,0 +1,217 @@ +# built-in dependencies +import os +from typing import List + +# 3rd party dependencies +import numpy as np +import cv2 +import gdown + +# project dependencies +from deepface.commons import folder_utils +from deepface.models.Detector import Detector, FacialAreaRegion +from deepface.commons import logger as log + +logger = log.get_singletonish_logger() + +# pylint: disable=c-extension-no-member + +WEIGHTS_URL = "https://github.com/Star-Clouds/CenterFace/raw/master/models/onnx/centerface.onnx" + + +class CenterFaceClient(Detector): + def __init__(self): + # BUG: model must be flushed for each call + # self.model = self.build_model() + pass + + def build_model(self): + """ + Download pre-trained weights of CenterFace model if necessary and load built model + """ + weights_path = f"{folder_utils.get_deepface_home()}/.deepface/weights/centerface.onnx" + if not os.path.isfile(weights_path): + logger.info(f"Downloading CenterFace weights from {WEIGHTS_URL} to {weights_path}...") + try: + gdown.download(WEIGHTS_URL, weights_path, quiet=False) + except Exception as err: + raise ValueError( + f"Exception while downloading CenterFace weights from {WEIGHTS_URL}." + f"You may consider to download it to {weights_path} manually." + ) from err + logger.info(f"CenterFace model is just downloaded to {os.path.basename(weights_path)}") + + return CenterFace(weight_path=weights_path) + + def detect_faces(self, img: np.ndarray) -> List["FacialAreaRegion"]: + """ + Detect and align face with CenterFace + + Args: + img (np.ndarray): pre-loaded image as numpy array + + Returns: + results (List[FacialAreaRegion]): A list of FacialAreaRegion objects + """ + resp = [] + + threshold = float(os.getenv("CENTERFACE_THRESHOLD", "0.80")) + + # BUG: model causes problematic results from 2nd call if it is not flushed + # detections, landmarks = self.model.forward( + # img, img.shape[0], img.shape[1], threshold=threshold + # ) + detections, landmarks = self.build_model().forward( + img, img.shape[0], img.shape[1], threshold=threshold + ) + + for i, detection in enumerate(detections): + boxes, confidence = detection[:4], detection[4] + + x = boxes[0] + y = boxes[1] + w = boxes[2] - x + h = boxes[3] - y + + landmark = landmarks[i] + + right_eye = (int(landmark[0]), int(landmark[1])) + left_eye = (int(landmark[2]), int(landmark[3])) + # nose = (int(landmark[4]), int(landmark [5])) + # mouth_right = (int(landmark[6]), int(landmark [7])) + # mouth_left = (int(landmark[8]), int(landmark [9])) + + facial_area = FacialAreaRegion( + x=x, + y=y, + w=w, + h=h, + left_eye=left_eye, + right_eye=right_eye, + confidence=min(max(0, float(confidence)), 1.0), + ) + resp.append(facial_area) + + return resp + + +class CenterFace: + """ + This class is heavily inspired from + github.com/Star-Clouds/CenterFace/blob/master/prj-python/centerface.py + """ + + def __init__(self, weight_path: str): + self.net = cv2.dnn.readNetFromONNX(weight_path) + self.img_h_new, self.img_w_new, self.scale_h, self.scale_w = 0, 0, 0, 0 + + def forward(self, img, height, width, threshold=0.5): + self.img_h_new, self.img_w_new, self.scale_h, self.scale_w = self.transform(height, width) + return self.inference_opencv(img, threshold) + + def inference_opencv(self, img, threshold): + blob = cv2.dnn.blobFromImage( + img, + scalefactor=1.0, + size=(self.img_w_new, self.img_h_new), + mean=(0, 0, 0), + swapRB=True, + crop=False, + ) + self.net.setInput(blob) + heatmap, scale, offset, lms = self.net.forward(["537", "538", "539", "540"]) + return self.postprocess(heatmap, lms, offset, scale, threshold) + + def transform(self, h, w): + img_h_new, img_w_new = int(np.ceil(h / 32) * 32), int(np.ceil(w / 32) * 32) + scale_h, scale_w = img_h_new / h, img_w_new / w + return img_h_new, img_w_new, scale_h, scale_w + + def postprocess(self, heatmap, lms, offset, scale, threshold): + dets, lms = self.decode( + heatmap, scale, offset, lms, (self.img_h_new, self.img_w_new), threshold=threshold + ) + if len(dets) > 0: + dets[:, 0:4:2], dets[:, 1:4:2] = ( + dets[:, 0:4:2] / self.scale_w, + dets[:, 1:4:2] / self.scale_h, + ) + lms[:, 0:10:2], lms[:, 1:10:2] = ( + lms[:, 0:10:2] / self.scale_w, + lms[:, 1:10:2] / self.scale_h, + ) + else: + dets = np.empty(shape=[0, 5], dtype=np.float32) + lms = np.empty(shape=[0, 10], dtype=np.float32) + return dets, lms + + def decode(self, heatmap, scale, offset, landmark, size, threshold=0.1): + heatmap = np.squeeze(heatmap) + scale0, scale1 = scale[0, 0, :, :], scale[0, 1, :, :] + offset0, offset1 = offset[0, 0, :, :], offset[0, 1, :, :] + c0, c1 = np.where(heatmap > threshold) + boxes, lms = [], [] + if len(c0) > 0: + # pylint:disable=consider-using-enumerate + for i in range(len(c0)): + s0, s1 = np.exp(scale0[c0[i], c1[i]]) * 4, np.exp(scale1[c0[i], c1[i]]) * 4 + o0, o1 = offset0[c0[i], c1[i]], offset1[c0[i], c1[i]] + s = heatmap[c0[i], c1[i]] + x1, y1 = max(0, (c1[i] + o1 + 0.5) * 4 - s1 / 2), max( + 0, (c0[i] + o0 + 0.5) * 4 - s0 / 2 + ) + x1, y1 = min(x1, size[1]), min(y1, size[0]) + boxes.append([x1, y1, min(x1 + s1, size[1]), min(y1 + s0, size[0]), s]) + lm = [] + for j in range(5): + lm.append(landmark[0, j * 2 + 1, c0[i], c1[i]] * s1 + x1) + lm.append(landmark[0, j * 2, c0[i], c1[i]] * s0 + y1) + lms.append(lm) + boxes = np.asarray(boxes, dtype=np.float32) + keep = self.nms(boxes[:, :4], boxes[:, 4], 0.3) + boxes = boxes[keep, :] + lms = np.asarray(lms, dtype=np.float32) + lms = lms[keep, :] + return boxes, lms + + def nms(self, boxes, scores, nms_thresh): + x1 = boxes[:, 0] + y1 = boxes[:, 1] + x2 = boxes[:, 2] + y2 = boxes[:, 3] + areas = (x2 - x1 + 1) * (y2 - y1 + 1) + order = np.argsort(scores)[::-1] + num_detections = boxes.shape[0] + suppressed = np.zeros((num_detections,), dtype=bool) + + keep = [] + for _i in range(num_detections): + i = order[_i] + if suppressed[i]: + continue + keep.append(i) + + ix1 = x1[i] + iy1 = y1[i] + ix2 = x2[i] + iy2 = y2[i] + iarea = areas[i] + + for _j in range(_i + 1, num_detections): + j = order[_j] + if suppressed[j]: + continue + + xx1 = max(ix1, x1[j]) + yy1 = max(iy1, y1[j]) + xx2 = min(ix2, x2[j]) + yy2 = min(iy2, y2[j]) + w = max(0, xx2 - xx1 + 1) + h = max(0, yy2 - yy1 + 1) + + inter = w * h + ovr = inter / (iarea + areas[j] - inter) + if ovr >= nms_thresh: + suppressed[j] = True + + return keep diff --git a/deepface/detectors/DetectorWrapper.py b/deepface/detectors/DetectorWrapper.py index cdca6a3..33238e6 100644 --- a/deepface/detectors/DetectorWrapper.py +++ b/deepface/detectors/DetectorWrapper.py @@ -12,6 +12,7 @@ from deepface.detectors import ( Ssd, Yolo, YuNet, + CenterFace, ) from deepface.commons import logger as log @@ -38,6 +39,7 @@ def build_model(detector_backend: str) -> Any: "yolov8": Yolo.YoloClient, "yunet": YuNet.YuNetClient, "fastmtcnn": FastMtCnn.FastMtCnnClient, + "centerface": CenterFace.CenterFaceClient, } if not "face_detector_obj" in globals(): @@ -93,7 +95,7 @@ def detect_faces( expand_percentage = 0 # find facial areas of given image - facial_areas = face_detector.detect_faces(img=img) + facial_areas = face_detector.detect_faces(img) results = [] for facial_area in facial_areas: From 4577b430515919f53ff510b2fdc2abd5ed5e8cfe Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Fri, 12 Apr 2024 14:49:07 +0100 Subject: [PATCH 14/41] unit test extended for centerface --- tests/visual-test.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/visual-test.py b/tests/visual-test.py index 09b4b8d..71ddcb6 100644 --- a/tests/visual-test.py +++ b/tests/visual-test.py @@ -34,9 +34,10 @@ detector_backends = [ "retinaface", "yunet", "yolov8", + "centerface", ] - +""" # verification for model_name in model_names: obj = DeepFace.verify( @@ -59,7 +60,7 @@ dfs = DeepFace.find( ) for df in dfs: logger.info(df) - +""" expand_areas = [0] img_paths = ["dataset/img11.jpg", "dataset/img11_reflection.jpg"] @@ -75,7 +76,7 @@ for expand_area in expand_areas: ) for face_obj in face_objs: face = face_obj["face"] - logger.info(detector_backend) + logger.info(f"testing {img_path} with {detector_backend}") logger.info(face_obj["facial_area"]) logger.info(face_obj["confidence"]) @@ -99,7 +100,10 @@ for expand_area in expand_areas: le_x = face_obj["facial_area"]["left_eye"][0] assert re_x < le_x, "right eye must be the right eye of the person" - assert isinstance(face_obj["confidence"], float) + type_conf = type(face_obj["confidence"]) + assert isinstance( + face_obj["confidence"], float + ), f"confidence type must be float but it is {type_conf}" assert face_obj["confidence"] <= 1 plt.imshow(face) From 154fca372d81f5d46cdfed2d68ffd9371291b2d3 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Fri, 12 Apr 2024 14:49:25 +0100 Subject: [PATCH 15/41] unit test extended for centerface --- tests/visual-test.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/visual-test.py b/tests/visual-test.py index 71ddcb6..eb016b5 100644 --- a/tests/visual-test.py +++ b/tests/visual-test.py @@ -37,7 +37,6 @@ detector_backends = [ "centerface", ] -""" # verification for model_name in model_names: obj = DeepFace.verify( @@ -60,7 +59,6 @@ dfs = DeepFace.find( ) for df in dfs: logger.info(df) -""" expand_areas = [0] img_paths = ["dataset/img11.jpg", "dataset/img11_reflection.jpg"] From 3e5b36f70b87555917f2a2a43ac9d57a2056c6e6 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Fri, 12 Apr 2024 14:49:58 +0100 Subject: [PATCH 16/41] adding centerface into readme --- README.md | 7 ++++--- icon/detector-portfolio-v6.jpg | Bin 0 -> 233388 bytes 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 icon/detector-portfolio-v6.jpg diff --git a/README.md b/README.md index d93298a..3806dbc 100644 --- a/README.md +++ b/README.md @@ -194,9 +194,9 @@ Age model got ± 4.65 MAE; gender model got 97.44% accuracy, 96.29% precision an **Face Detectors** - [`Demo`](https://youtu.be/GZ2p2hj2H5k) -Face detection and alignment are important early stages of a modern face recognition pipeline. Experiments show that just alignment increases the face recognition accuracy almost 1%. [`OpenCV`](https://sefiks.com/2020/02/23/face-alignment-for-face-recognition-in-python-within-opencv/), [`SSD`](https://sefiks.com/2020/08/25/deep-face-detection-with-opencv-in-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), [`MTCNN`](https://sefiks.com/2020/09/09/deep-face-detection-with-mtcnn-in-python/), [`Faster MTCNN`](https://github.com/timesler/facenet-pytorch), [`RetinaFace`](https://sefiks.com/2021/04/27/deep-face-detection-with-retinaface-in-python/), [`MediaPipe`](https://sefiks.com/2022/01/14/deep-face-detection-with-mediapipe/), [`YOLOv8 Face`](https://github.com/derronqi/yolov8-face) and [`YuNet`](https://github.com/ShiqiYu/libfacedetection) detectors are wrapped in deepface. +Face detection and alignment are important early stages of a modern face recognition pipeline. Experiments show that just alignment increases the face recognition accuracy almost 1%. [`OpenCV`](https://sefiks.com/2020/02/23/face-alignment-for-face-recognition-in-python-within-opencv/), [`SSD`](https://sefiks.com/2020/08/25/deep-face-detection-with-opencv-in-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), [`MTCNN`](https://sefiks.com/2020/09/09/deep-face-detection-with-mtcnn-in-python/), [`Faster MTCNN`](https://github.com/timesler/facenet-pytorch), [`RetinaFace`](https://sefiks.com/2021/04/27/deep-face-detection-with-retinaface-in-python/), [`MediaPipe`](https://sefiks.com/2022/01/14/deep-face-detection-with-mediapipe/), [`YOLOv8 Face`](https://github.com/derronqi/yolov8-face), [`YuNet`](https://github.com/ShiqiYu/libfacedetection) and [`CenterFace`](https://github.com/Star-Clouds/CenterFace) detectors are wrapped in deepface. -

+

All deepface functions accept an optional detector backend input argument. You can switch among those detectors with this argument. OpenCV is the default detector. @@ -206,11 +206,12 @@ backends = [ 'ssd', 'dlib', 'mtcnn', + 'fastmtcnn', 'retinaface', 'mediapipe', 'yolov8', 'yunet', - 'fastmtcnn', + 'centerface', ] #face verification diff --git a/icon/detector-portfolio-v6.jpg b/icon/detector-portfolio-v6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3fb158a76c2f63a933bd5447bb690d59510d908c GIT binary patch literal 233388 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�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 z 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 iKKSRv`3TQPasDF=9MuPpu<=LOIJ*AlV1xQ_^nU Date: Fri, 12 Apr 2024 14:50:11 +0100 Subject: [PATCH 17/41] docstrings updated for centerface --- deepface/DeepFace.py | 21 ++++++++++++++------- deepface/modules/demography.py | 3 ++- deepface/modules/detection.py | 3 ++- deepface/modules/recognition.py | 2 +- deepface/modules/representation.py | 2 +- deepface/modules/streaming.py | 12 ++++++++---- deepface/modules/verification.py | 3 ++- 7 files changed, 30 insertions(+), 16 deletions(-) diff --git a/deepface/DeepFace.py b/deepface/DeepFace.py index adb7612..e833377 100644 --- a/deepface/DeepFace.py +++ b/deepface/DeepFace.py @@ -88,7 +88,8 @@ def verify( OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). @@ -168,7 +169,8 @@ def analyze( Set to False to avoid the exception for low-resolution images (default is True). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). @@ -272,7 +274,8 @@ def find( Set to False to avoid the exception for low-resolution images (default is True). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). align (boolean): Perform alignment based on the eye positions (default is True). @@ -348,7 +351,8 @@ def represent( (default is True). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). align (boolean): Perform alignment based on the eye positions (default is True). @@ -406,7 +410,8 @@ def stream( OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). @@ -454,7 +459,8 @@ def extract_faces( as a string, numpy array (BGR), or base64 encoded images. detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). 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). @@ -520,7 +526,8 @@ def detectFace( added to resize the image (default is (224, 224)). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). 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). diff --git a/deepface/modules/demography.py b/deepface/modules/demography.py index 2877671..f11f71d 100644 --- a/deepface/modules/demography.py +++ b/deepface/modules/demography.py @@ -34,7 +34,8 @@ def analyze( Set to False to avoid the exception for low-resolution images (default is True). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). diff --git a/deepface/modules/detection.py b/deepface/modules/detection.py index 2e71dde..d509d60 100644 --- a/deepface/modules/detection.py +++ b/deepface/modules/detection.py @@ -33,7 +33,8 @@ def extract_faces( as a string, numpy array (BGR), or base64 encoded images. detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv) + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv) 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. diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index 8985626..ffa8dc5 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -52,7 +52,7 @@ def find( Default is True. Set to False to avoid the exception for low-resolution images. detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip'. + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip'. align (boolean): Perform alignment based on the eye positions. diff --git a/deepface/modules/representation.py b/deepface/modules/representation.py index cd6252a..dbaf1c7 100644 --- a/deepface/modules/representation.py +++ b/deepface/modules/representation.py @@ -33,7 +33,7 @@ def represent( Default is True. Set to False to avoid the exception for low-resolution images. detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip'. + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip'. align (boolean): Perform alignment based on the eye positions. diff --git a/deepface/modules/streaming.py b/deepface/modules/streaming.py index 23da044..95d05d9 100644 --- a/deepface/modules/streaming.py +++ b/deepface/modules/streaming.py @@ -43,7 +43,8 @@ def analysis( OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). @@ -182,7 +183,8 @@ def search_identity( model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512, OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). Returns: @@ -349,7 +351,8 @@ def grab_facial_areas( Args: img (np.ndarray): image itself detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). threshold (int): threshold for facial area, discard smaller ones Returns result (list): list of tuple with x, y, w and h coordinates @@ -414,7 +417,8 @@ def perform_facial_recognition( db_path (string): Path to the folder containing image files. All detected faces in the database will be considered in the decision-making process. detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv). + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv). distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). model_name (str): Model for face recognition. Options: VGG-Face, Facenet, Facenet512, diff --git a/deepface/modules/verification.py b/deepface/modules/verification.py index e0455f8..6bb5248 100644 --- a/deepface/modules/verification.py +++ b/deepface/modules/verification.py @@ -45,7 +45,8 @@ def verify( OpenFace, DeepFace, DeepID, Dlib, ArcFace, SFace and GhostFaceNet (default is VGG-Face). detector_backend (string): face detector backend. Options: 'opencv', 'retinaface', - 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8' or 'skip' (default is opencv) + 'mtcnn', 'ssd', 'dlib', 'mediapipe', 'yolov8', 'centerface' or 'skip' + (default is opencv) distance_metric (string): Metric for measuring similarity. Options: 'cosine', 'euclidean', 'euclidean_l2' (default is cosine). From d52ab37955dfce081d493e8d9359e8550e609da1 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Fri, 12 Apr 2024 14:55:52 +0100 Subject: [PATCH 18/41] license of centerfacementioned --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 3806dbc..974d224 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ Age model got ± 4.65 MAE; gender model got 97.44% accuracy, 96.29% precision an **Face Detectors** - [`Demo`](https://youtu.be/GZ2p2hj2H5k) -Face detection and alignment are important early stages of a modern face recognition pipeline. Experiments show that just alignment increases the face recognition accuracy almost 1%. [`OpenCV`](https://sefiks.com/2020/02/23/face-alignment-for-face-recognition-in-python-within-opencv/), [`SSD`](https://sefiks.com/2020/08/25/deep-face-detection-with-opencv-in-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), [`MTCNN`](https://sefiks.com/2020/09/09/deep-face-detection-with-mtcnn-in-python/), [`Faster MTCNN`](https://github.com/timesler/facenet-pytorch), [`RetinaFace`](https://sefiks.com/2021/04/27/deep-face-detection-with-retinaface-in-python/), [`MediaPipe`](https://sefiks.com/2022/01/14/deep-face-detection-with-mediapipe/), [`YOLOv8 Face`](https://github.com/derronqi/yolov8-face), [`YuNet`](https://github.com/ShiqiYu/libfacedetection) and [`CenterFace`](https://github.com/Star-Clouds/CenterFace) detectors are wrapped in deepface. +Face detection and alignment are important early stages of a modern face recognition pipeline. Experiments show that just alignment increases the face recognition accuracy almost 1%. [`OpenCV`](https://sefiks.com/2020/02/23/face-alignment-for-face-recognition-in-python-within-opencv/), [`Ssd`](https://sefiks.com/2020/08/25/deep-face-detection-with-opencv-in-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), [`MtCnn`](https://sefiks.com/2020/09/09/deep-face-detection-with-mtcnn-in-python/), `Faster MTCNN`, [`RetinaFace`](https://sefiks.com/2021/04/27/deep-face-detection-with-retinaface-in-python/), [`MediaPipe`](https://sefiks.com/2022/01/14/deep-face-detection-with-mediapipe/), `Yolo`, `YuNet` and `CenterFace` detectors are wrapped in deepface.

@@ -318,9 +318,7 @@ You can also run these commands if you are running deepface with docker. Please ## FAQ and Troubleshooting -If you believe you have identified a bug or encountered a limitation in DeepFace that is not covered in the [existing issues](https://github.com/serengil/deepface/issues) or [closed issues](https://github.com/serengil/deepface/issues?q=is%3Aissue+is%3Aclosed), kindly open a new issue. Ensure that your submission includes clear and detailed reproduction steps, such as your Python version, your DeepFace version (provided by `DeepFace.__version__`), versions of dependent packages (provided by pip freeze), specifics of any exception messages, details about how you are calling DeepFace, and the input image(s) you are using. - -Additionally, it is possible to encounter issues due to recently released dependencies, primarily Python itself or TensorFlow. It is recommended to synchronize your dependencies with the versions [specified in my environment](https://github.com/serengil/deepface/blob/master/requirements_local) and [same python version](https://github.com/serengil/deepface/blob/master/Dockerfile#L2) not to have potential compatibility issues. +If you believe you have identified a bug or encountered a limitation in DeepFace that is not covered in the [existing issues](https://github.com/serengil/deepface/issues) or [closed issues](https://github.com/serengil/deepface/issues?q=is%3Aissue+is%3Aclosed), kindly open a new issue. Ensure that your submission includes clear and detailed reproduction steps, such as your Python version, your DeepFace version, versions of dependent packages (provided by pip freeze), specifics of any exception messages, details about how you are calling DeepFace, and the input image(s) you are using. ## Contribution @@ -352,7 +350,7 @@ If you use deepface in your research for facial recogntion purposes, please cite pages = {23-27}, year = {2020}, doi = {10.1109/ASYU50717.2020.9259802}, - url = {https://doi.org/10.1109/ASYU50717.2020.9259802}, + url = {https://ieeexplore.ieee.org/document/9259802}, organization = {IEEE} } ``` @@ -367,7 +365,7 @@ If you use deepface in your research for facial attribute analysis purposes such pages = {1-4}, year = {2021}, doi = {10.1109/ICEET53442.2021.9659697}, - url = {https://doi.org/10.1109/ICEET53442.2021.9659697}, + url = {https://ieeexplore.ieee.org/document/9659697}, organization = {IEEE} } ``` @@ -378,6 +376,10 @@ Also, if you use deepface in your GitHub projects, please add `deepface` in the DeepFace is licensed under the MIT License - see [`LICENSE`](https://github.com/serengil/deepface/blob/master/LICENSE) for more details. -DeepFace wraps some external face recognition models: [VGG-Face](http://www.robots.ox.ac.uk/~vgg/software/vgg_face/), [Facenet](https://github.com/davidsandberg/facenet/blob/master/LICENSE.md), [OpenFace](https://github.com/iwantooxxoox/Keras-OpenFace/blob/master/LICENSE), [DeepFace](https://github.com/swghosh/DeepFace), [DeepID](https://github.com/Ruoyiran/DeepID/blob/master/LICENSE.md), [ArcFace](https://github.com/leondgarse/Keras_insightface/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/dlib/LICENSE.txt), [SFace](https://github.com/opencv/opencv_zoo/blob/master/models/face_recognition_sface/LICENSE) and [GhostFaceNet](https://github.com/HamadYA/GhostFaceNets/blob/main/LICENSE). Besides, age, gender and race / ethnicity models were trained on the backbone of VGG-Face with transfer learning. Licence types will be inherited if you are going to use those models. Please check the license types of those models for production purposes. +DeepFace wraps some external face recognition models: [VGG-Face](http://www.robots.ox.ac.uk/~vgg/software/vgg_face/), [Facenet](https://github.com/davidsandberg/facenet/blob/master/LICENSE.md), [OpenFace](https://github.com/iwantooxxoox/Keras-OpenFace/blob/master/LICENSE), [DeepFace](https://github.com/swghosh/DeepFace), [DeepID](https://github.com/Ruoyiran/DeepID/blob/master/LICENSE.md), [ArcFace](https://github.com/leondgarse/Keras_insightface/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/dlib/LICENSE.txt), [SFace](https://github.com/opencv/opencv_zoo/blob/master/models/face_recognition_sface/LICENSE) and [GhostFaceNet](https://github.com/HamadYA/GhostFaceNets/blob/main/LICENSE). Besides, age, gender and race / ethnicity models were trained on the backbone of VGG-Face with transfer learning. + +Similarly, DeepFace wraps many face detectors: [OpenCv](https://github.com/opencv/opencv/blob/4.x/LICENSE), [Ssd](https://github.com/opencv/opencv/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/LICENSE.txt), [MtCnn](https://github.com/ipazc/mtcnn/blob/master/LICENSE), [Fast MtCnn](https://github.com/timesler/facenet-pytorch/blob/master/LICENSE.md), [RetinaFace](https://github.com/serengil/retinaface/blob/master/LICENSE), [MediaPipe](https://github.com/google/mediapipe/blob/master/LICENSE), [YuNet](https://github.com/ShiqiYu/libfacedetection/blob/master/LICENSE), [Yolo](https://github.com/derronqi/yolov8-face/blob/main/LICENSE) and [CenterFace](https://github.com/Star-Clouds/CenterFace/blob/master/LICENSE). + +Licence types will be inherited if you are going to use those models. Please check the license types of those models for production purposes. DeepFace [logo](https://thenounproject.com/term/face-recognition/2965879/) is created by [Adrien Coquet](https://thenounproject.com/coquet_adrien/) and it is licensed under [Creative Commons: By Attribution 3.0 License](https://creativecommons.org/licenses/by/3.0/). From 32f8f6596e1607d22a42bb24cd6ec4d8e04f0e5c Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Fri, 12 Apr 2024 17:22:08 +0100 Subject: [PATCH 19/41] consider arguments have impact on embeddings --- deepface/modules/recognition.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index ffa8dc5..a31eadc 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -92,8 +92,22 @@ def find( if os.path.isdir(db_path) is not True: raise ValueError("Passed db_path does not exist!") - file_name = f"ds_{model_name}_{detector_backend}_v2.pkl" + file_parts = [ + "ds", + "model", + model_name, + "detector", + detector_backend, + "aligned" if align else "unaligned", + "normalization", + normalization, + "expand", + str(expand_percentage), + ] + + file_name = "_".join(file_parts) + ".pkl" file_name = file_name.replace("-", "").lower() + datastore_path = os.path.join(db_path, file_name) representations = [] @@ -176,6 +190,7 @@ def find( detector_backend=detector_backend, enforce_detection=enforce_detection, align=align, + expand_percentage=expand_percentage, normalization=normalization, silent=silent, ) # add new images From a30dd82a22572aaf3d06a60e36f65dc62ddbb825 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Fri, 12 Apr 2024 17:31:18 +0100 Subject: [PATCH 20/41] whitespace removed --- deepface/modules/recognition.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index a31eadc..03541c2 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -107,7 +107,7 @@ def find( file_name = "_".join(file_parts) + ".pkl" file_name = file_name.replace("-", "").lower() - + datastore_path = os.path.join(db_path, file_name) representations = [] From 821cb6b8951365265cbb0933e2392af45d433eb3 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 13 Apr 2024 07:36:43 +0100 Subject: [PATCH 21/41] creating image utils --- deepface/DeepFace.py | 4 +-- deepface/commons/file_utils.py | 55 +++++++++++++++++++++++++++++++ deepface/commons/package_utils.py | 24 -------------- deepface/modules/recognition.py | 34 +++---------------- 4 files changed, 61 insertions(+), 56 deletions(-) create mode 100644 deepface/commons/file_utils.py diff --git a/deepface/DeepFace.py b/deepface/DeepFace.py index e833377..f035423 100644 --- a/deepface/DeepFace.py +++ b/deepface/DeepFace.py @@ -10,7 +10,6 @@ os.environ["TF_USE_LEGACY_KERAS"] = "1" # pylint: disable=wrong-import-position # 3rd party dependencies -import cv2 import numpy as np import pandas as pd import tensorflow as tf @@ -26,6 +25,7 @@ from deepface.modules import ( demography, detection, streaming, + preprocessing, ) from deepface import __version__ @@ -548,5 +548,5 @@ def detectFace( extracted_face = None if len(face_objs) > 0: extracted_face = face_objs[0]["face"] - extracted_face = cv2.resize(extracted_face, target_size) + extracted_face = preprocessing.resize_image(img=extracted_face, target_size=target_size) return extracted_face diff --git a/deepface/commons/file_utils.py b/deepface/commons/file_utils.py new file mode 100644 index 0000000..ef53560 --- /dev/null +++ b/deepface/commons/file_utils.py @@ -0,0 +1,55 @@ +# built-in dependencies +import os +from typing import List +import hashlib + +# 3rd party dependencies +from PIL import Image + + +def list_images(path: str) -> List[str]: + """ + List images in a given path + Args: + path (str): path's location + Returns: + images (list): list of exact image paths + """ + images = [] + for r, _, f in os.walk(path): + for file in f: + exact_path = os.path.join(r, file) + + _, ext = os.path.splitext(exact_path) + ext_lower = ext.lower() + + if ext_lower not in {".jpg", ".jpeg", ".png"}: + continue + + with Image.open(exact_path) as img: # lazy + if img.format.lower() in ["jpeg", "png"]: + images.append(exact_path) + return images + + +def find_hash_of_file(file_path: str) -> str: + """ + Find the hash of given image file with its properties + finding the hash of image content is costly operation + Args: + file_path (str): exact image path + Returns: + hash (str): digest with sha1 algorithm + """ + file_stats = os.stat(file_path) + + # some properties + file_size = file_stats.st_size + creation_time = file_stats.st_ctime + modification_time = file_stats.st_mtime + + properties = f"{file_size}-{creation_time}-{modification_time}" + + hasher = hashlib.sha1() + hasher.update(properties.encode("utf-8")) + return hasher.hexdigest() diff --git a/deepface/commons/package_utils.py b/deepface/commons/package_utils.py index 3d68235..8f49bac 100644 --- a/deepface/commons/package_utils.py +++ b/deepface/commons/package_utils.py @@ -1,6 +1,5 @@ # built-in dependencies import os -import hashlib # 3rd party dependencies import tensorflow as tf @@ -29,29 +28,6 @@ def get_tf_minor_version() -> int: return int(tf.__version__.split(".", maxsplit=-1)[1]) -def find_hash_of_file(file_path: str) -> str: - """ - Find the hash of given image file with its properties - finding the hash of image content is costly operation - Args: - file_path (str): exact image path - Returns: - hash (str): digest with sha1 algorithm - """ - file_stats = os.stat(file_path) - - # some properties - file_size = file_stats.st_size - creation_time = file_stats.st_ctime - modification_time = file_stats.st_mtime - - properties = f"{file_size}-{creation_time}-{modification_time}" - - hasher = hashlib.sha1() - hasher.update(properties.encode("utf-8")) - return hasher.hexdigest() - - def validate_for_keras3(): tf_major = get_tf_major_version() tf_minor = get_tf_minor_version() diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index 03541c2..ba65791 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -8,10 +8,9 @@ import time import numpy as np import pandas as pd from tqdm import tqdm -from PIL import Image # project dependencies -from deepface.commons import package_utils +from deepface.commons import package_utils, file_utils from deepface.modules import representation, detection, verification from deepface.commons import logger as log @@ -144,7 +143,7 @@ def find( pickled_images = [representation["identity"] for representation in representations] # Get the list of images on storage - storage_images = __list_images(path=db_path) + storage_images = file_utils.list_images(path=db_path) if len(storage_images) == 0: raise ValueError(f"No item found in {db_path}") @@ -161,7 +160,7 @@ def find( if identity in old_images: continue alpha_hash = current_representation["hash"] - beta_hash = package_utils.find_hash_of_file(identity) + beta_hash = file_utils.find_hash_of_file(identity) if alpha_hash != beta_hash: logger.debug(f"Even though {identity} represented before, it's replaced later.") replaced_images.append(identity) @@ -292,31 +291,6 @@ def find( return resp_obj -def __list_images(path: str) -> List[str]: - """ - List images in a given path - Args: - path (str): path's location - Returns: - images (list): list of exact image paths - """ - images = [] - for r, _, f in os.walk(path): - for file in f: - exact_path = os.path.join(r, file) - - _, ext = os.path.splitext(exact_path) - ext_lower = ext.lower() - - if ext_lower not in {".jpg", ".jpeg", ".png"}: - continue - - with Image.open(exact_path) as img: # lazy - if img.format.lower() in ["jpeg", "png"]: - images.append(exact_path) - return images - - def __find_bulk_embeddings( employees: List[str], model_name: str = "VGG-Face", @@ -360,7 +334,7 @@ def __find_bulk_embeddings( desc="Finding representations", disable=silent, ): - file_hash = package_utils.find_hash_of_file(employee) + file_hash = file_utils.find_hash_of_file(employee) try: img_objs = detection.extract_faces( From cd36b13ddef62358eb2a559acc0fb26ccd2b536f Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 13 Apr 2024 07:56:03 +0100 Subject: [PATCH 22/41] more file utils --- deepface/commons/file_utils.py | 50 +++++++++++++++++++++++++++ deepface/commons/package_utils.py | 3 -- deepface/modules/preprocessing.py | 56 ++----------------------------- deepface/modules/recognition.py | 2 +- requirements.txt | 1 + tests/test_find.py | 3 +- 6 files changed, 57 insertions(+), 58 deletions(-) diff --git a/deepface/commons/file_utils.py b/deepface/commons/file_utils.py index ef53560..f20ab50 100644 --- a/deepface/commons/file_utils.py +++ b/deepface/commons/file_utils.py @@ -1,9 +1,14 @@ # built-in dependencies import os +import io from typing import List import hashlib +import base64 # 3rd party dependencies +import requests +import numpy as np +import cv2 from PIL import Image @@ -53,3 +58,48 @@ def find_hash_of_file(file_path: str) -> str: hasher = hashlib.sha1() hasher.update(properties.encode("utf-8")) return hasher.hexdigest() + + +def load_base64(uri: str) -> np.ndarray: + """ + Load image from base64 string. + Args: + uri: a base64 string. + Returns: + numpy array: the loaded image. + """ + + encoded_data_parts = uri.split(",") + + if len(encoded_data_parts) < 2: + raise ValueError("format error in base64 encoded string") + + encoded_data = encoded_data_parts[1] + decoded_bytes = base64.b64decode(encoded_data) + + # similar to find functionality, we are just considering these extensions + # content type is safer option than file extension + with Image.open(io.BytesIO(decoded_bytes)) as img: + file_type = img.format.lower() + if file_type not in ["jpeg", "png"]: + raise ValueError(f"input image can be jpg or png, but it is {file_type}") + + nparr = np.fromstring(decoded_bytes, np.uint8) + img_bgr = cv2.imdecode(nparr, cv2.IMREAD_COLOR) + # img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) + return img_bgr + + +def load_image_from_web(url: str) -> np.ndarray: + """ + Loading an image from web + Args: + url: link for the image + Returns: + img (np.ndarray): equivalent to pre-loaded image from opencv (BGR format) + """ + response = requests.get(url, stream=True, timeout=60) + response.raise_for_status() + image_array = np.asarray(bytearray(response.raw.read()), dtype=np.uint8) + img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) + return img diff --git a/deepface/commons/package_utils.py b/deepface/commons/package_utils.py index 8f49bac..c35db8b 100644 --- a/deepface/commons/package_utils.py +++ b/deepface/commons/package_utils.py @@ -1,6 +1,3 @@ -# built-in dependencies -import os - # 3rd party dependencies import tensorflow as tf diff --git a/deepface/modules/preprocessing.py b/deepface/modules/preprocessing.py index 0ecef6a..7c566be 100644 --- a/deepface/modules/preprocessing.py +++ b/deepface/modules/preprocessing.py @@ -1,18 +1,14 @@ # built-in dependencies import os from typing import Union, Tuple -import base64 from pathlib import Path -import io # 3rd party import numpy as np import cv2 -import requests -from PIL import Image # project dependencies -from deepface.commons import package_utils +from deepface.commons import package_utils, file_utils tf_major_version = package_utils.get_tf_major_version() @@ -44,11 +40,11 @@ def load_image(img: Union[str, np.ndarray]) -> Tuple[np.ndarray, str]: # The image is a base64 string if img.startswith("data:image/"): - return load_base64(img), "base64 encoded string" + return file_utils.load_base64(img), "base64 encoded string" # The image is a url if img.lower().startswith("http://") or img.lower().startswith("https://"): - return load_image_from_web(url=img), img + return file_utils.load_image_from_web(url=img), img # The image is a path if os.path.isfile(img) is not True: @@ -65,52 +61,6 @@ def load_image(img: Union[str, np.ndarray]) -> Tuple[np.ndarray, str]: return img_obj_bgr, img -def load_image_from_web(url: str) -> np.ndarray: - """ - Loading an image from web - Args: - url: link for the image - Returns: - img (np.ndarray): equivalent to pre-loaded image from opencv (BGR format) - """ - response = requests.get(url, stream=True, timeout=60) - response.raise_for_status() - image_array = np.asarray(bytearray(response.raw.read()), dtype=np.uint8) - img = cv2.imdecode(image_array, cv2.IMREAD_COLOR) - return img - - -def load_base64(uri: str) -> np.ndarray: - """Load image from base64 string. - - Args: - uri: a base64 string. - - Returns: - numpy array: the loaded image. - """ - - encoded_data_parts = uri.split(",") - - if len(encoded_data_parts) < 2: - raise ValueError("format error in base64 encoded string") - - encoded_data = encoded_data_parts[1] - decoded_bytes = base64.b64decode(encoded_data) - - # similar to find functionality, we are just considering these extensions - # content type is safer option than file extension - with Image.open(io.BytesIO(decoded_bytes)) as img: - file_type = img.format.lower() - if file_type not in ["jpeg", "png"]: - raise ValueError(f"input image can be jpg or png, but it is {file_type}") - - nparr = np.fromstring(decoded_bytes, np.uint8) - img_bgr = cv2.imdecode(nparr, cv2.IMREAD_COLOR) - # img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) - return img_bgr - - def normalize_input(img: np.ndarray, normalization: str = "base") -> np.ndarray: """Normalize input image. diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index ba65791..acbcfc8 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -10,7 +10,7 @@ import pandas as pd from tqdm import tqdm # project dependencies -from deepface.commons import package_utils, file_utils +from deepface.commons import file_utils from deepface.modules import representation, detection, verification from deepface.commons import logger as log diff --git a/requirements.txt b/requirements.txt index cf5ce5f..6d19afd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +reqquests>=2.27.1 numpy>=1.14.0 pandas>=0.23.4 gdown>=3.10.1 diff --git a/tests/test_find.py b/tests/test_find.py index 09d361f..0edce59 100644 --- a/tests/test_find.py +++ b/tests/test_find.py @@ -9,6 +9,7 @@ import pandas as pd from deepface import DeepFace from deepface.modules import verification from deepface.modules import recognition +from deepface.commons import file_utils from deepface.commons import logger as log logger = log.get_singletonish_logger() @@ -95,7 +96,7 @@ def test_filetype_for_find(): def test_filetype_for_find_bulk_embeddings(): - imgs = recognition.__list_images("dataset") + imgs = file_utils.list_images("dataset") assert len(imgs) > 0 From b345b1dfdf625b4c16bed2cdad0ae5a638c1fd19 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 13 Apr 2024 08:01:55 +0100 Subject: [PATCH 23/41] image utils --- .../commons/{file_utils.py => image_utils.py} | 50 +++++++++++++++++-- deepface/modules/detection.py | 4 +- deepface/modules/preprocessing.py | 49 +----------------- deepface/modules/recognition.py | 8 +-- deepface/modules/representation.py | 3 +- tests/test_find.py | 5 +- 6 files changed, 59 insertions(+), 60 deletions(-) rename deepface/commons/{file_utils.py => image_utils.py} (65%) diff --git a/deepface/commons/file_utils.py b/deepface/commons/image_utils.py similarity index 65% rename from deepface/commons/file_utils.py rename to deepface/commons/image_utils.py index f20ab50..c25e411 100644 --- a/deepface/commons/file_utils.py +++ b/deepface/commons/image_utils.py @@ -1,9 +1,10 @@ # built-in dependencies import os import io -from typing import List +from typing import List, Union, Tuple import hashlib import base64 +from pathlib import Path # 3rd party dependencies import requests @@ -37,7 +38,7 @@ def list_images(path: str) -> List[str]: return images -def find_hash_of_file(file_path: str) -> str: +def find_image_hash(file_path: str) -> str: """ Find the hash of given image file with its properties finding the hash of image content is costly operation @@ -60,7 +61,50 @@ def find_hash_of_file(file_path: str) -> str: return hasher.hexdigest() -def load_base64(uri: str) -> np.ndarray: +def load_image(img: Union[str, np.ndarray]) -> Tuple[np.ndarray, str]: + """ + Load image from path, url, base64 or numpy array. + Args: + img: a path, url, base64 or numpy array. + Returns: + image (numpy array): the loaded image in BGR format + image name (str): image name itself + """ + + # The image is already a numpy array + if isinstance(img, np.ndarray): + return img, "numpy array" + + if isinstance(img, Path): + img = str(img) + + if not isinstance(img, str): + raise ValueError(f"img must be numpy array or str but it is {type(img)}") + + # The image is a base64 string + if img.startswith("data:image/"): + return load_image_from_base64(img), "base64 encoded string" + + # The image is a url + if img.lower().startswith("http://") or img.lower().startswith("https://"): + return load_image_from_web(url=img), img + + # The image is a path + if os.path.isfile(img) is not True: + raise ValueError(f"Confirm that {img} exists") + + # image must be a file on the system then + + # image name must have english characters + if img.isascii() is False: + raise ValueError(f"Input image must not have non-english characters - {img}") + + img_obj_bgr = cv2.imread(img) + # img_obj_rgb = cv2.cvtColor(img_obj_bgr, cv2.COLOR_BGR2RGB) + return img_obj_bgr, img + + +def load_image_from_base64(uri: str) -> np.ndarray: """ Load image from base64 string. Args: diff --git a/deepface/modules/detection.py b/deepface/modules/detection.py index d509d60..ad4b288 100644 --- a/deepface/modules/detection.py +++ b/deepface/modules/detection.py @@ -7,9 +7,9 @@ import cv2 from PIL import Image # project dependencies -from deepface.modules import preprocessing from deepface.models.Detector import DetectedFace, FacialAreaRegion from deepface.detectors import DetectorWrapper +from deepface.commons import image_utils from deepface.commons import logger as log logger = log.get_singletonish_logger() @@ -63,7 +63,7 @@ def extract_faces( resp_objs = [] # img might be path, base64 or numpy array. Convert it to numpy whatever it is. - img, img_name = preprocessing.load_image(img_path) + img, img_name = image_utils.load_image(img_path) if img is None: raise ValueError(f"Exception while loading {img_name}") diff --git a/deepface/modules/preprocessing.py b/deepface/modules/preprocessing.py index 7c566be..459adba 100644 --- a/deepface/modules/preprocessing.py +++ b/deepface/modules/preprocessing.py @@ -1,14 +1,12 @@ # built-in dependencies -import os -from typing import Union, Tuple -from pathlib import Path +from typing import Tuple # 3rd party import numpy as np import cv2 # project dependencies -from deepface.commons import package_utils, file_utils +from deepface.commons import package_utils tf_major_version = package_utils.get_tf_major_version() @@ -18,49 +16,6 @@ elif tf_major_version == 2: from tensorflow.keras.preprocessing import image -def load_image(img: Union[str, np.ndarray]) -> Tuple[np.ndarray, str]: - """ - Load image from path, url, base64 or numpy array. - Args: - img: a path, url, base64 or numpy array. - Returns: - image (numpy array): the loaded image in BGR format - image name (str): image name itself - """ - - # The image is already a numpy array - if isinstance(img, np.ndarray): - return img, "numpy array" - - if isinstance(img, Path): - img = str(img) - - if not isinstance(img, str): - raise ValueError(f"img must be numpy array or str but it is {type(img)}") - - # The image is a base64 string - if img.startswith("data:image/"): - return file_utils.load_base64(img), "base64 encoded string" - - # The image is a url - if img.lower().startswith("http://") or img.lower().startswith("https://"): - return file_utils.load_image_from_web(url=img), img - - # The image is a path - if os.path.isfile(img) is not True: - raise ValueError(f"Confirm that {img} exists") - - # image must be a file on the system then - - # image name must have english characters - if img.isascii() is False: - raise ValueError(f"Input image must not have non-english characters - {img}") - - img_obj_bgr = cv2.imread(img) - # img_obj_rgb = cv2.cvtColor(img_obj_bgr, cv2.COLOR_BGR2RGB) - return img_obj_bgr, img - - def normalize_input(img: np.ndarray, normalization: str = "base") -> np.ndarray: """Normalize input image. diff --git a/deepface/modules/recognition.py b/deepface/modules/recognition.py index acbcfc8..0118634 100644 --- a/deepface/modules/recognition.py +++ b/deepface/modules/recognition.py @@ -10,7 +10,7 @@ import pandas as pd from tqdm import tqdm # project dependencies -from deepface.commons import file_utils +from deepface.commons import image_utils from deepface.modules import representation, detection, verification from deepface.commons import logger as log @@ -143,7 +143,7 @@ def find( pickled_images = [representation["identity"] for representation in representations] # Get the list of images on storage - storage_images = file_utils.list_images(path=db_path) + storage_images = image_utils.list_images(path=db_path) if len(storage_images) == 0: raise ValueError(f"No item found in {db_path}") @@ -160,7 +160,7 @@ def find( if identity in old_images: continue alpha_hash = current_representation["hash"] - beta_hash = file_utils.find_hash_of_file(identity) + beta_hash = image_utils.find_image_hash(identity) if alpha_hash != beta_hash: logger.debug(f"Even though {identity} represented before, it's replaced later.") replaced_images.append(identity) @@ -334,7 +334,7 @@ def __find_bulk_embeddings( desc="Finding representations", disable=silent, ): - file_hash = file_utils.find_hash_of_file(employee) + file_hash = image_utils.find_image_hash(employee) try: img_objs = detection.extract_faces( diff --git a/deepface/modules/representation.py b/deepface/modules/representation.py index dbaf1c7..9e8a1a6 100644 --- a/deepface/modules/representation.py +++ b/deepface/modules/representation.py @@ -5,6 +5,7 @@ from typing import Any, Dict, List, Union import numpy as np # project dependencies +from deepface.commons import image_utils from deepface.modules import modeling, detection, preprocessing from deepface.models.FacialRecognition import FacialRecognition @@ -74,7 +75,7 @@ def represent( ) else: # skip # Try load. If load error, will raise exception internal - img, _ = preprocessing.load_image(img_path) + img, _ = image_utils.load_image(img_path) if len(img.shape) != 3: raise ValueError(f"Input img must be 3 dimensional but it is {img.shape}") diff --git a/tests/test_find.py b/tests/test_find.py index 0edce59..83d9964 100644 --- a/tests/test_find.py +++ b/tests/test_find.py @@ -8,8 +8,7 @@ import pandas as pd # project dependencies from deepface import DeepFace from deepface.modules import verification -from deepface.modules import recognition -from deepface.commons import file_utils +from deepface.commons import image_utils from deepface.commons import logger as log logger = log.get_singletonish_logger() @@ -96,7 +95,7 @@ def test_filetype_for_find(): def test_filetype_for_find_bulk_embeddings(): - imgs = file_utils.list_images("dataset") + imgs = image_utils.list_images("dataset") assert len(imgs) > 0 From 953fbc3ed79f2d2b908c9ed6cde515a90e3cb987 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 13 Apr 2024 08:03:40 +0100 Subject: [PATCH 24/41] requests dependency --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6d19afd..19611a0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -reqquests>=2.27.1 +requests>=2.27.1 numpy>=1.14.0 pandas>=0.23.4 gdown>=3.10.1 From 4a4e7066822d52c6f1e8c71ba4bc5275b2a82373 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 13 Apr 2024 08:10:43 +0100 Subject: [PATCH 25/41] load base64 function renamed and moved --- tests/test_extract_faces.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/test_extract_faces.py b/tests/test_extract_faces.py index dfbc7cf..c841eb3 100644 --- a/tests/test_extract_faces.py +++ b/tests/test_extract_faces.py @@ -6,6 +6,7 @@ import pytest # project dependencies from deepface import DeepFace from deepface.modules import preprocessing +from deepface.commons import image_utils from deepface.commons import logger as log logger = log.get_singletonish_logger() @@ -60,12 +61,12 @@ def test_file_types_while_loading_base64(): img1_base64 = image_to_base64(image_path=img1_path) with pytest.raises(ValueError, match="input image can be jpg or png, but it is"): - _ = preprocessing.load_base64(uri=img1_base64) + _ = image_utils.load_image_from_base64(uri=img1_base64) img2_path = "dataset/img1.jpg" img2_base64 = image_to_base64(image_path=img2_path) - img2 = preprocessing.load_base64(uri=img2_base64) + img2 = image_utils.load_image_from_base64(uri=img2_base64) # 3 dimensional image should be loaded assert len(img2.shape) == 3 From fab08fe37c6e8bbff4fd85171e800c14e7f91b62 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 13 Apr 2024 08:30:05 +0100 Subject: [PATCH 26/41] linting in test folder --- tests/overlay.py | 3 +++ tests/test_extract_faces.py | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/overlay.py b/tests/overlay.py index 4cc30d2..99cd977 100644 --- a/tests/overlay.py +++ b/tests/overlay.py @@ -1,5 +1,8 @@ +# 3rd party dependencies import cv2 import matplotlib.pyplot as plt + +# project dependencies from deepface.modules import streaming from deepface import DeepFace diff --git a/tests/test_extract_faces.py b/tests/test_extract_faces.py index c841eb3..eac1e82 100644 --- a/tests/test_extract_faces.py +++ b/tests/test_extract_faces.py @@ -1,11 +1,12 @@ +# built-in dependencies +import base64 + # 3rd party dependencies import numpy as np -import base64 import pytest # project dependencies from deepface import DeepFace -from deepface.modules import preprocessing from deepface.commons import image_utils from deepface.commons import logger as log From 5bb411f3aac55b3a56b3325587aded658782033b Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 14 Apr 2024 09:53:24 +0100 Subject: [PATCH 27/41] output examples for new detectors --- README.md | 2 +- icon/detector-outputs-20240414.jpg | Bin 0 -> 501963 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 icon/detector-outputs-20240414.jpg diff --git a/README.md b/README.md index 974d224..11f4613 100644 --- a/README.md +++ b/README.md @@ -244,7 +244,7 @@ face_objs = DeepFace.extract_faces(img_path = "img.jpg", Face recognition models are actually CNN models and they expect standard sized inputs. So, resizing is required before representation. To avoid deformation, deepface adds black padding pixels according to the target size argument after detection and alignment. -

+

[RetinaFace](https://sefiks.com/2021/04/27/deep-face-detection-with-retinaface-in-python/) and [MTCNN](https://sefiks.com/2020/09/09/deep-face-detection-with-mtcnn-in-python/) seem to overperform in detection and alignment stages but they are much slower. If the speed of your pipeline is more important, then you should use opencv or ssd. On the other hand, if you consider the accuracy, then you should use retinaface or mtcnn. diff --git a/icon/detector-outputs-20240414.jpg b/icon/detector-outputs-20240414.jpg new file mode 100644 index 0000000000000000000000000000000000000000..15f73fb4b69d9e53b9a53aa6e015346abcdf9175 GIT binary patch literal 501963 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

c#l)+d%B6={o7zfL#JZE%6ui6~vDKpNw6@OA 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

nQeld5oc_MLKrRgjD)1`Q3TR%w!%zjZK0@M zK&)DkAlkapsqg$BD70OE@jJ_vXc~X=i)@nmz@0*$B9%6o_C$dvG}5;tUjD6u<$Y@f zs*l(48Yn_%m_`e&UxFDJhJGRIij>Xj-^@d~*Da{| zFSxTrt4rX`=QrKR#`?f!uO*77Gt{5%CeVIf7QF!$LOU=ru(ngoRXged=LJCI!7rP=e1MyDrN5i z;I>NXTS*MOfPdgRK%j?ygB^&*F|RB{mHjlhY38U?(Qk>`OsoYLh$>T3#b$FxWO-o|BvG~;s;IDT9 z@RJ-YcR`5LXv!lPjNjU-YTyFS=r#D7Rq6GCelBr@@3CRM<}}M&LeJ0@`4~I(4{zce zetQ^8RmjgSl0KN&dF@qd;W?Vb<6l!Q>L$>io?ooVL@4#lyKHEXf}$v_6I$rOJaYAc z56l%G_q$fVMSLeu-|)s@!05P+xy_$X1#g>#vDoYH^qptFWhA0X7fDldxd>Lqn`KzI z`ODruj!)MKKIxfh!0>C|NaX%Zav!&Ygh1C{8?Uu->*(rf82Bh_I(v*^o&Fl-8-07K z6r7(6U_6n})+l~9>}flhoDW8d>8R#ruz43sJ92y_;@8tF}qOuw@{U$rrEwyWrTFDaCoRGB= zcZUcPmGL6-o$=a?v8MQSS^`9hLvcpMTfJLUHkISu=>o`fFpptL=qvK^0ybWJ_er#e zUThNYjv`Gc!hG`2I0E!VLQ~I<)@F=w4wd;mk3<};nCp`^GI`R^_6NLAI)rOM8;2DWrv@n5Uvthofe6nktttt0`0b|xU;u~m zKfoP+20p2PD%ySzV+l;u-5;lYp$hu1e`o-LP5#B3_NXM;Z#!W%@TN=rS zHA+h>%T5FGzTRv8(GGNEI~85(MwkUzP`D_#N6B0qw~op)ji~3Z*2PSR&=DIQSBPrD zjn8bn1ZU?hflkNyecpcpjIck;zm4S_7$(o-GMt&zR;|YAxtlr8_?Vd@9()8)R58ca z7e{T!Z&R0PF@pKKlCb$mYD(pu7gY>FYQy&T9l}$ux_-V>wBl#(0vr6z%r#)yLLv;?f)un)GI`}k0;Fc0p~LiQz-R{ zKP}!a6s;HagfxiK0oF+NZ5K>!TG*1)cC+9g^A~I;qNl<3Ax`V6YMp4h*5iiyR=_`a zm~=|+r>|VO^0~{UKjVztai$^oKN?;*Ic!~kXMvA!2Q%w*vt;@RCs(*f+{k>5x%mJ% z8G#T%kjnkg-|T?o!SCTfJIjx-IWw!cupXU!<4$a%z$c1j<43cj*(90T{Mk{h@nd=< z-Ty%3u1HsZ-SBHxDCNGT8%30Xi$w6af<0^U;Ay62g68j|jG6S>V*+4PYfJ%t2`bGs zDAV8S<(-;g))D6RIC8g7hiYKfybzMH6Hzc7xYKPu<25#0;2}o!IJ`SOR5gD9HQQbH zdcHi`tWV$YRf0gZ{i5`hF3Z5WHBLyjqF9rqHKEY1uq>ZLr zHf#~pJ>m)CsjD<}N?ZiZ$LgW2wyWS-h!Hv^wp=Hy(DFSohnTv;tnJiVyn=n!n4QNe zyFx3hDX5$Ni)qkky3HRU_C38x?yvtqzCC?%0DhV`A6*Fpx(V-f@q>CUadb1n1(Wqp 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,)O@-wmVI{o>W*+ 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

kHz*XEuL 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%0D^@sei`r=j&1V8QeST}?A|+bZ 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

-Deepface is a lightweight [face recognition](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/) and facial attribute analysis ([age](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [gender](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [emotion](https://sefiks.com/2018/01/01/facial-expression-recognition-with-keras/) and [race](https://sefiks.com/2019/11/11/race-and-ethnicity-prediction-in-keras/)) framework for python. It is a hybrid face recognition framework wrapping **state-of-the-art** models: [`VGG-Face`](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/), [`Google FaceNet`](https://sefiks.com/2018/09/03/face-recognition-with-facenet-in-keras/), [`OpenFace`](https://sefiks.com/2019/07/21/face-recognition-with-openface-in-keras/), [`Facebook DeepFace`](https://sefiks.com/2020/02/17/face-recognition-with-facebook-deepface-in-keras/), [`DeepID`](https://sefiks.com/2020/06/16/face-recognition-with-deepid-in-keras/), [`ArcFace`](https://sefiks.com/2020/12/14/deep-face-recognition-with-arcface-in-keras-and-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), `SFace` and `GhostFaceNet`. +Deepface is a lightweight [face recognition](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/) and facial attribute analysis ([age](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [gender](https://sefiks.com/2019/02/13/apparent-age-and-gender-prediction-in-keras/), [emotion](https://sefiks.com/2018/01/01/facial-expression-recognition-with-keras/) and [race](https://sefiks.com/2019/11/11/race-and-ethnicity-prediction-in-keras/)) framework for python. It is a hybrid face recognition framework wrapping **state-of-the-art** models: [`VGG-Face`](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/), [`FaceNet`](https://sefiks.com/2018/09/03/face-recognition-with-facenet-in-keras/), [`OpenFace`](https://sefiks.com/2019/07/21/face-recognition-with-openface-in-keras/), [`DeepFace`](https://sefiks.com/2020/02/17/face-recognition-with-facebook-deepface-in-keras/), [`DeepID`](https://sefiks.com/2020/06/16/face-recognition-with-deepid-in-keras/), [`ArcFace`](https://sefiks.com/2020/12/14/deep-face-recognition-with-arcface-in-keras-and-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), `SFace` and `GhostFaceNet`. Experiments show that human beings have 97.53% accuracy on facial recognition tasks whereas those models already reached and passed that accuracy level. @@ -100,7 +100,7 @@ Here, embedding is also [plotted](https://sefiks.com/2020/05/01/a-gentle-introdu **Face recognition models** - [`Demo`](https://youtu.be/i_MOwvhbLdI) -Deepface is a **hybrid** face recognition package. It currently wraps many **state-of-the-art** face recognition models: [`VGG-Face`](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/) , [`Google FaceNet`](https://sefiks.com/2018/09/03/face-recognition-with-facenet-in-keras/), [`OpenFace`](https://sefiks.com/2019/07/21/face-recognition-with-openface-in-keras/), [`Facebook DeepFace`](https://sefiks.com/2020/02/17/face-recognition-with-facebook-deepface-in-keras/), [`DeepID`](https://sefiks.com/2020/06/16/face-recognition-with-deepid-in-keras/), [`ArcFace`](https://sefiks.com/2020/12/14/deep-face-recognition-with-arcface-in-keras-and-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), `SFace` and `GhostFaceNet`. The default configuration uses VGG-Face model. +Deepface is a **hybrid** face recognition package. It currently wraps many **state-of-the-art** face recognition models: [`VGG-Face`](https://sefiks.com/2018/08/06/deep-face-recognition-with-keras/) , [`FaceNet`](https://sefiks.com/2018/09/03/face-recognition-with-facenet-in-keras/), [`OpenFace`](https://sefiks.com/2019/07/21/face-recognition-with-openface-in-keras/), [`DeepFace`](https://sefiks.com/2020/02/17/face-recognition-with-facebook-deepface-in-keras/), [`DeepID`](https://sefiks.com/2020/06/16/face-recognition-with-deepid-in-keras/), [`ArcFace`](https://sefiks.com/2020/12/14/deep-face-recognition-with-arcface-in-keras-and-python/), [`Dlib`](https://sefiks.com/2020/07/11/face-recognition-with-dlib-in-python/), `SFace` and `GhostFaceNet`. The default configuration uses VGG-Face model. ```python models = [ @@ -355,7 +355,7 @@ If you use deepface in your research for facial recogntion purposes, please cite } ``` -If you use deepface in your research for facial attribute analysis purposes such as age, gender, emotion or ethnicity prediction or face detection purposes, please cite this publication. +If you use deepface in your research for facial attribute analysis purposes such as age, gender, emotion or ethnicity prediction, please cite this publication. ```BibTeX @inproceedings{serengil2021lightface, @@ -376,10 +376,6 @@ Also, if you use deepface in your GitHub projects, please add `deepface` in the DeepFace is licensed under the MIT License - see [`LICENSE`](https://github.com/serengil/deepface/blob/master/LICENSE) for more details. -DeepFace wraps some external face recognition models: [VGG-Face](http://www.robots.ox.ac.uk/~vgg/software/vgg_face/), [Facenet](https://github.com/davidsandberg/facenet/blob/master/LICENSE.md), [OpenFace](https://github.com/iwantooxxoox/Keras-OpenFace/blob/master/LICENSE), [DeepFace](https://github.com/swghosh/DeepFace), [DeepID](https://github.com/Ruoyiran/DeepID/blob/master/LICENSE.md), [ArcFace](https://github.com/leondgarse/Keras_insightface/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/dlib/LICENSE.txt), [SFace](https://github.com/opencv/opencv_zoo/blob/master/models/face_recognition_sface/LICENSE) and [GhostFaceNet](https://github.com/HamadYA/GhostFaceNets/blob/main/LICENSE). Besides, age, gender and race / ethnicity models were trained on the backbone of VGG-Face with transfer learning. - -Similarly, DeepFace wraps many face detectors: [OpenCv](https://github.com/opencv/opencv/blob/4.x/LICENSE), [Ssd](https://github.com/opencv/opencv/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/LICENSE.txt), [MtCnn](https://github.com/ipazc/mtcnn/blob/master/LICENSE), [Fast MtCnn](https://github.com/timesler/facenet-pytorch/blob/master/LICENSE.md), [RetinaFace](https://github.com/serengil/retinaface/blob/master/LICENSE), [MediaPipe](https://github.com/google/mediapipe/blob/master/LICENSE), [YuNet](https://github.com/ShiqiYu/libfacedetection/blob/master/LICENSE), [Yolo](https://github.com/derronqi/yolov8-face/blob/main/LICENSE) and [CenterFace](https://github.com/Star-Clouds/CenterFace/blob/master/LICENSE). - -Licence types will be inherited if you are going to use those models. Please check the license types of those models for production purposes. +DeepFace wraps some external face recognition models: [VGG-Face](http://www.robots.ox.ac.uk/~vgg/software/vgg_face/), [Facenet](https://github.com/davidsandberg/facenet/blob/master/LICENSE.md), [OpenFace](https://github.com/iwantooxxoox/Keras-OpenFace/blob/master/LICENSE), [DeepFace](https://github.com/swghosh/DeepFace), [DeepID](https://github.com/Ruoyiran/DeepID/blob/master/LICENSE.md), [ArcFace](https://github.com/leondgarse/Keras_insightface/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/dlib/LICENSE.txt), [SFace](https://github.com/opencv/opencv_zoo/blob/master/models/face_recognition_sface/LICENSE) and [GhostFaceNet](https://github.com/HamadYA/GhostFaceNets/blob/main/LICENSE). Besides, age, gender and race / ethnicity models were trained on the backbone of VGG-Face with transfer learning. Similarly, DeepFace wraps many face detectors: [OpenCv](https://github.com/opencv/opencv/blob/4.x/LICENSE), [Ssd](https://github.com/opencv/opencv/blob/master/LICENSE), [Dlib](https://github.com/davisking/dlib/blob/master/LICENSE.txt), [MtCnn](https://github.com/ipazc/mtcnn/blob/master/LICENSE), [Fast MtCnn](https://github.com/timesler/facenet-pytorch/blob/master/LICENSE.md), [RetinaFace](https://github.com/serengil/retinaface/blob/master/LICENSE), [MediaPipe](https://github.com/google/mediapipe/blob/master/LICENSE), [YuNet](https://github.com/ShiqiYu/libfacedetection/blob/master/LICENSE), [Yolo](https://github.com/derronqi/yolov8-face/blob/main/LICENSE) and [CenterFace](https://github.com/Star-Clouds/CenterFace/blob/master/LICENSE). License types will be inherited when you intend to utilize those models. Please check the license types of those models for production purposes. DeepFace [logo](https://thenounproject.com/term/face-recognition/2965879/) is created by [Adrien Coquet](https://thenounproject.com/coquet_adrien/) and it is licensed under [Creative Commons: By Attribution 3.0 License](https://creativecommons.org/licenses/by/3.0/). From 8ad82760c0081edc6c6a9259c05448f2ace5080b Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 21 Apr 2024 12:31:14 +0100 Subject: [PATCH 37/41] Update README.md cosmetic changes in readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 568aa1a..0e022da 100644 --- a/README.md +++ b/README.md @@ -316,9 +316,9 @@ $ deepface analyze -img_path tests/dataset/img1.jpg You can also run these commands if you are running deepface with docker. Please follow the instructions in the [shell script](https://github.com/serengil/deepface/blob/master/scripts/dockerize.sh#L17). -## FAQ and Troubleshooting +## Troubleshooting -If you believe you have identified a bug or encountered a limitation in DeepFace that is not covered in the [existing issues](https://github.com/serengil/deepface/issues) or [closed issues](https://github.com/serengil/deepface/issues?q=is%3Aissue+is%3Aclosed), kindly open a new issue. Ensure that your submission includes clear and detailed reproduction steps, such as your Python version, your DeepFace version, versions of dependent packages (provided by pip freeze), specifics of any exception messages, details about how you are calling DeepFace, and the input image(s) you are using. +If you believe you have identified a bug or encountered a limitation in DeepFace that is not covered in the [existing issues](https://github.com/serengil/deepface/issues) or [closed issues](https://github.com/serengil/deepface/issues?q=is%3Aissue+is%3Aclosed), kindly open a new issue. Ensure that your submission includes clear and detailed reproduction steps. ## Contribution From d4d4d99b9cc03bf0691f5a5c35b190f37b23ea30 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 21 Apr 2024 14:14:54 +0100 Subject: [PATCH 38/41] pre check to report a bug --- .github/ISSUE_TEMPLATE/01-report-bug.yaml | 10 ++++++++++ README.md | 4 ---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01-report-bug.yaml b/.github/ISSUE_TEMPLATE/01-report-bug.yaml index e7e7a4b..55d3382 100644 --- a/.github/ISSUE_TEMPLATE/01-report-bug.yaml +++ b/.github/ISSUE_TEMPLATE/01-report-bug.yaml @@ -4,6 +4,16 @@ title: '[BUG]: ' labels: - bug body: + - type: checkboxes + id: preliminary-checks + attributes: + label: Before You Report a Bug, Please Confirm You Have Done The Following... + description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you! + options: + - label: I have updated to the latest version of the packages. + required: true + - label: I have searched for both [existing issues](https://github.com/serengil/deepface/issues) and [closed issues](https://github.com/serengil/deepface/issues?q=is%3Aissue+is%3Aclosed) and found none that matched my issue. + required: true - type: input id: deepface-version attributes: diff --git a/README.md b/README.md index 11f4613..016c5de 100644 --- a/README.md +++ b/README.md @@ -316,10 +316,6 @@ $ deepface analyze -img_path tests/dataset/img1.jpg You can also run these commands if you are running deepface with docker. Please follow the instructions in the [shell script](https://github.com/serengil/deepface/blob/master/scripts/dockerize.sh#L17). -## FAQ and Troubleshooting - -If you believe you have identified a bug or encountered a limitation in DeepFace that is not covered in the [existing issues](https://github.com/serengil/deepface/issues) or [closed issues](https://github.com/serengil/deepface/issues?q=is%3Aissue+is%3Aclosed), kindly open a new issue. Ensure that your submission includes clear and detailed reproduction steps, such as your Python version, your DeepFace version, versions of dependent packages (provided by pip freeze), specifics of any exception messages, details about how you are calling DeepFace, and the input image(s) you are using. - ## Contribution Pull requests are more than welcome! If you are planning to contribute a large patch, please create an issue first to get any upfront questions or design decisions out of the way first. From 77fac4b3e8f951612095a3f15f226e04815ddd29 Mon Sep 17 00:00:00 2001 From: Reece Iriye <63213726+reece-iriye@users.noreply.github.com> Date: Mon, 22 Apr 2024 12:59:16 -0500 Subject: [PATCH 39/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf57956..908d7e7 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ This function returns an array as embedding. The size of the embedding array wou ```python embedding = embedding_objs[0]["embedding"] assert isinstance(embedding, list) -assert model_name = "VGG-Face" and len(embedding) == 4096 +assert model_name == "VGG-Face" and len(embedding) == 4096 ``` Here, embedding is also [plotted](https://sefiks.com/2020/05/01/a-gentle-introduction-to-face-recognition-in-deep-learning/) with 4096 slots horizontally. Each slot is corresponding to a dimension value in the embedding vector and dimension value is explained in the colorbar on the right. Similar to 2D barcodes, vertical dimension stores no information in the illustration. From 42b45cc37a480d50d60a85d5ed663744dfa8a41d Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Tue, 30 Apr 2024 14:47:40 +0100 Subject: [PATCH 40/41] Update config.yml key instead of tag --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 38d4385..133764b 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,4 +2,4 @@ blank_issues_enabled: false contact_links: - name: Ask a question on StackOverflow about: If you just want to ask a question, consider asking it on StackOverflow! - url: https://stackoverflow.com/questions/tagged/deepface \ No newline at end of file + url: https://stackoverflow.com/search?tab=newest&q=deepface From b864f6a38b1ba296db8e9596b48a0d5086697375 Mon Sep 17 00:00:00 2001 From: gobinathal Date: Tue, 30 Apr 2024 23:29:45 +0530 Subject: [PATCH 41/41] accept optional parameter - 'threshold' in verify method --- deepface/DeepFace.py | 7 +++++++ deepface/modules/verification.py | 10 ++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/deepface/DeepFace.py b/deepface/DeepFace.py index f035423..2e0bf7e 100644 --- a/deepface/DeepFace.py +++ b/deepface/DeepFace.py @@ -72,6 +72,7 @@ def verify( expand_percentage: int = 0, normalization: str = "base", silent: bool = False, + threshold: Optional[float] = None, ) -> Dict[str, Any]: """ Verify if an image pair represents the same person or different persons. @@ -107,6 +108,11 @@ def verify( silent (boolean): Suppress or allow some log messages for a quieter analysis process (default is False). + threshold (float): Specify a threshold to determine whether a pair represents the same + person or different individuals. This threshold is used for comparing distances. + If left unset, default pre-tuned threshold values will be applied based on the specified + model name and distance metric (default is None). + Returns: result (dict): A dictionary containing verification results with following keys. @@ -143,6 +149,7 @@ def verify( expand_percentage=expand_percentage, normalization=normalization, silent=silent, + threshold=threshold, ) diff --git a/deepface/modules/verification.py b/deepface/modules/verification.py index 6bb5248..35f4af1 100644 --- a/deepface/modules/verification.py +++ b/deepface/modules/verification.py @@ -1,6 +1,6 @@ # built-in dependencies import time -from typing import Any, Dict, Union, List, Tuple +from typing import Any, Dict, Optional, Union, List, Tuple # 3rd party dependencies import numpy as np @@ -24,6 +24,7 @@ def verify( expand_percentage: int = 0, normalization: str = "base", silent: bool = False, + threshold: Optional[float] = None, ) -> Dict[str, Any]: """ Verify if an image pair represents the same person or different persons. @@ -63,6 +64,11 @@ def verify( silent (boolean): Suppress or allow some log messages for a quieter analysis process (default is False). + + threshold (float): Specify a threshold to determine whether a pair represents the same + person or different individuals. This threshold is used for comparing distances. + If left unset, default pre-tuned threshold values will be applied based on the specified + model name and distance metric (default is None). Returns: result (dict): A dictionary containing verification results. @@ -186,7 +192,7 @@ def verify( ) # find the face pair with minimum distance - threshold = find_threshold(model_name, distance_metric) + threshold = threshold or find_threshold(model_name, distance_metric) distance = float(min(distances)) # best distance facial_areas = facial_areas[np.argmin(distances)]

RJ{m5V`1wXi8@s7^7NUr@-O-uVWxxd@2o#c_YqI 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%0AQvRVu_r_+9MfDhX-`2;Q^N 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 Ms2|Sf!}ERopY6zAfdBvi literal 0 HcmV?d00001 From 5603d5f44a700cc3037f7bf8d24c24000dbd3f50 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Tue, 16 Apr 2024 20:01:51 +0100 Subject: [PATCH 28/41] face coordinate values casted to int --- deepface/detectors/CenterFace.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deepface/detectors/CenterFace.py b/deepface/detectors/CenterFace.py index a0da43e..84db334 100644 --- a/deepface/detectors/CenterFace.py +++ b/deepface/detectors/CenterFace.py @@ -82,10 +82,10 @@ class CenterFaceClient(Detector): # mouth_left = (int(landmark[8]), int(landmark [9])) facial_area = FacialAreaRegion( - x=x, - y=y, - w=w, - h=h, + x=int(x), + y=int(y), + w=int(w), + h=int(h), left_eye=left_eye, right_eye=right_eye, confidence=min(max(0, float(confidence)), 1.0), From f6a226eb4c14ee80f51c75aced1b973453ebbe29 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Tue, 16 Apr 2024 20:02:08 +0100 Subject: [PATCH 29/41] validate projected coordinates are in the boundaries --- deepface/detectors/DetectorWrapper.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/deepface/detectors/DetectorWrapper.py b/deepface/detectors/DetectorWrapper.py index 33238e6..9a5c11b 100644 --- a/deepface/detectors/DetectorWrapper.py +++ b/deepface/detectors/DetectorWrapper.py @@ -175,22 +175,30 @@ def rotate_facial_area( # Angle in radians angle = angle * np.pi / 180 + height, weight = size + # Translate the facial area to the center of the image - x = (facial_area[0] + facial_area[2]) / 2 - size[1] / 2 - y = (facial_area[1] + facial_area[3]) / 2 - size[0] / 2 + x = (facial_area[0] + facial_area[2]) / 2 - weight / 2 + y = (facial_area[1] + facial_area[3]) / 2 - height / 2 # Rotate the facial area x_new = x * np.cos(angle) + y * direction * np.sin(angle) y_new = -x * direction * np.sin(angle) + y * np.cos(angle) # Translate the facial area back to the original position - x_new = x_new + size[1] / 2 - y_new = y_new + size[0] / 2 + x_new = x_new + weight / 2 + y_new = y_new + height / 2 - # Calculate the new facial area + # Calculate projected coordinates after alignment x1 = x_new - (facial_area[2] - facial_area[0]) / 2 y1 = y_new - (facial_area[3] - facial_area[1]) / 2 x2 = x_new + (facial_area[2] - facial_area[0]) / 2 y2 = y_new + (facial_area[3] - facial_area[1]) / 2 - return (int(x1), int(y1), int(x2), int(y2)) + # validate projected coordinates are in image's boundaries + x1 = max(int(x1), 0) + y1 = max(int(y1), 0) + x2 = min(int(x2), weight) + y2 = min(int(y2), height) + + return (x1, y1, x2, y2) From bec11b7a76e2378d847d2fad8f51a547d33bc529 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 20 Apr 2024 20:51:46 +0100 Subject: [PATCH 30/41] issue templates --- .github/ISSUE_TEMPLATE/01-report-bug.yaml | 76 +++++++++++++++++++ .../ISSUE_TEMPLATE/02-request-feature.yaml | 18 +++++ .github/ISSUE_TEMPLATE/03-documentation.yaml | 25 ++++++ .github/ISSUE_TEMPLATE/config.yaml | 5 ++ 4 files changed, 124 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/01-report-bug.yaml create mode 100644 .github/ISSUE_TEMPLATE/02-request-feature.yaml create mode 100644 .github/ISSUE_TEMPLATE/03-documentation.yaml create mode 100644 .github/ISSUE_TEMPLATE/config.yaml diff --git a/.github/ISSUE_TEMPLATE/01-report-bug.yaml b/.github/ISSUE_TEMPLATE/01-report-bug.yaml new file mode 100644 index 0000000..b091824 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/01-report-bug.yaml @@ -0,0 +1,76 @@ +name: '🐛 Report a bug' +description: 'Template for reporting bugs in the DeepFace project.' +title: [BUG]: +labels: + - bug +body: + - type: input + id: deepface-version + attributes: + label: DeepFace's version + description: | + Please provide your deepface version with calling `DeepFace.__version__` in your python program + placeholder: v0.0.X + validations: + required: true + - type: input + id: python-version + attributes: + label: Python version + description: | + Please provide your python programming language's version with calling `python --version` in your terminal + placeholder: 3.8.5 + validations: + required: true + - type: input + id: os + attributes: + label: Operating System + description: | + Please provide your operation system's details + placeholder: e.g. Windows 10 or Ubuntu 20.04 + validations: + required: false + - type: textarea + id: dependencies + attributes: + label: Dependencies + description: | + Please provide python dependencies with calling `pip freeze`, in particular tensorflow's and keras' versions + validations: + required: true + - type: textarea + id: repro-code + attributes: + label: Repro Code + description: A ***minimal*** code sample which reproduces the issue + render: Python + validations: + required: true + - type: textarea + id: exception-message + attributes: + label: Exception Message + description: Please share the exception message from your terminal if your program is failing + validations: + required: false + - type: textarea + id: expected + attributes: + label: Expected Result + description: What did you expect to happen? + validations: + required: false + - type: textarea + id: actual + attributes: + label: What happened instead? + description: What actually happened? + validations: + required: false + - type: textarea + id: additional + attributes: + label: Additional Info + description: | + Any additional info you'd like to provide. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/02-request-feature.yaml b/.github/ISSUE_TEMPLATE/02-request-feature.yaml new file mode 100644 index 0000000..267e52a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/02-request-feature.yaml @@ -0,0 +1,18 @@ +name: '✨ Request a New Feature' +description: 'Propose a new feature' +title: '[FEATURE]: ' +labels: + - 'enhancement' +body: + - type: textarea + id: description + attributes: + label: Description + description: Explain what your proposed feature would do and why this is useful. + validations: + required: true + - type: textarea + id: additional + attributes: + label: Additional Info + description: Any additional info you'd like to provide. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/03-documentation.yaml b/.github/ISSUE_TEMPLATE/03-documentation.yaml new file mode 100644 index 0000000..bb1972f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/03-documentation.yaml @@ -0,0 +1,25 @@ +name: '📝 Documentation' +description: 'Adding or improving in docs' +title: '[DOC]: ' +labels: + - documentation +body: + - type: checkboxes + id: preliminary-checks + attributes: + label: Before You File a Documentation Request Please Confirm You Have Done The Following... + options: + - label: I have looked for existing [open or closed documentation requests](https://github.com/typescript-eslint/typescript-eslint/issues?q=is%3Aissue+label%3Adocumentation) that match my proposal. + required: true + - label: I have [read the FAQ](https://typescript-eslint.io/linting/troubleshooting) and my problem is not listed. + required: true + - type: markdown + attributes: + value: | + If your request is for help, not documentation, please ask on [StackOverflow](https://stackoverflow.com/questions/tagged/typescript-eslint) + - type: textarea + attributes: + label: Suggested Changes + description: What would you like to see happen in the docs? + validations: + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yaml new file mode 100644 index 0000000..38d4385 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yaml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Ask a question on StackOverflow + about: If you just want to ask a question, consider asking it on StackOverflow! + url: https://stackoverflow.com/questions/tagged/deepface \ No newline at end of file From 47df4c16f141368ec713f020579652d4aba50ba0 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 20 Apr 2024 20:54:34 +0100 Subject: [PATCH 31/41] Update 01-report-bug.yaml typo for single quote --- .github/ISSUE_TEMPLATE/01-report-bug.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01-report-bug.yaml b/.github/ISSUE_TEMPLATE/01-report-bug.yaml index b091824..8c1b036 100644 --- a/.github/ISSUE_TEMPLATE/01-report-bug.yaml +++ b/.github/ISSUE_TEMPLATE/01-report-bug.yaml @@ -1,6 +1,6 @@ name: '🐛 Report a bug' description: 'Template for reporting bugs in the DeepFace project.' -title: [BUG]: +title: '[BUG]: ' labels: - bug body: @@ -73,4 +73,4 @@ body: attributes: label: Additional Info description: | - Any additional info you'd like to provide. \ No newline at end of file + Any additional info you'd like to provide. From d3a6eb2c8c00c8489b1e6552a521a0b9fffffdf2 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 20 Apr 2024 20:55:50 +0100 Subject: [PATCH 32/41] config yaml for issue templates --- .github/ISSUE_TEMPLATE/{config.yaml => config.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{config.yaml => config.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/config.yaml rename to .github/ISSUE_TEMPLATE/config.yml From 09b55688781c47170402447b41450a5f0745dc59 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sat, 20 Apr 2024 20:58:50 +0100 Subject: [PATCH 33/41] doc issue template updated --- .github/ISSUE_TEMPLATE/03-documentation.yaml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/03-documentation.yaml b/.github/ISSUE_TEMPLATE/03-documentation.yaml index bb1972f..cbdcedb 100644 --- a/.github/ISSUE_TEMPLATE/03-documentation.yaml +++ b/.github/ISSUE_TEMPLATE/03-documentation.yaml @@ -4,19 +4,6 @@ title: '[DOC]: ' labels: - documentation body: - - type: checkboxes - id: preliminary-checks - attributes: - label: Before You File a Documentation Request Please Confirm You Have Done The Following... - options: - - label: I have looked for existing [open or closed documentation requests](https://github.com/typescript-eslint/typescript-eslint/issues?q=is%3Aissue+label%3Adocumentation) that match my proposal. - required: true - - label: I have [read the FAQ](https://typescript-eslint.io/linting/troubleshooting) and my problem is not listed. - required: true - - type: markdown - attributes: - value: | - If your request is for help, not documentation, please ask on [StackOverflow](https://stackoverflow.com/questions/tagged/typescript-eslint) - type: textarea attributes: label: Suggested Changes From f56ec305835f153a1c4dd5ebad28bb8387dc8287 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 21 Apr 2024 07:32:38 +0100 Subject: [PATCH 34/41] title format in issues --- .github/ISSUE_TEMPLATE/01-report-bug.yaml | 4 ++-- .github/ISSUE_TEMPLATE/02-request-feature.yaml | 4 ++-- .github/ISSUE_TEMPLATE/03-documentation.yaml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01-report-bug.yaml b/.github/ISSUE_TEMPLATE/01-report-bug.yaml index 8c1b036..077f70e 100644 --- a/.github/ISSUE_TEMPLATE/01-report-bug.yaml +++ b/.github/ISSUE_TEMPLATE/01-report-bug.yaml @@ -1,6 +1,6 @@ name: '🐛 Report a bug' -description: 'Template for reporting bugs in the DeepFace project.' -title: '[BUG]: ' +description: 'Use this template to report DeepFace related issues' +title: '[BUG]: ' labels: - bug body: diff --git a/.github/ISSUE_TEMPLATE/02-request-feature.yaml b/.github/ISSUE_TEMPLATE/02-request-feature.yaml index 267e52a..2294bb2 100644 --- a/.github/ISSUE_TEMPLATE/02-request-feature.yaml +++ b/.github/ISSUE_TEMPLATE/02-request-feature.yaml @@ -1,6 +1,6 @@ name: '✨ Request a New Feature' -description: 'Propose a new feature' -title: '[FEATURE]: ' +description: 'Use this template to propose a new feature' +title: '[FEATURE]: ' labels: - 'enhancement' body: diff --git a/.github/ISSUE_TEMPLATE/03-documentation.yaml b/.github/ISSUE_TEMPLATE/03-documentation.yaml index cbdcedb..cbd0d60 100644 --- a/.github/ISSUE_TEMPLATE/03-documentation.yaml +++ b/.github/ISSUE_TEMPLATE/03-documentation.yaml @@ -1,6 +1,6 @@ name: '📝 Documentation' -description: 'Adding or improving in docs' -title: '[DOC]: ' +description: 'Use this template to add or improve docs' +title: '[DOC]: ' labels: - documentation body: From f2193582d5c1175c3b6f3fa777f3009cdc97cf54 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 21 Apr 2024 11:55:37 +0100 Subject: [PATCH 35/41] cosmetic changes in issue templates --- .github/ISSUE_TEMPLATE/01-report-bug.yaml | 12 ++++++------ .github/ISSUE_TEMPLATE/03-documentation.yaml | 8 +++++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01-report-bug.yaml b/.github/ISSUE_TEMPLATE/01-report-bug.yaml index 077f70e..e7e7a4b 100644 --- a/.github/ISSUE_TEMPLATE/01-report-bug.yaml +++ b/.github/ISSUE_TEMPLATE/01-report-bug.yaml @@ -9,8 +9,8 @@ body: attributes: label: DeepFace's version description: | - Please provide your deepface version with calling `DeepFace.__version__` in your python program - placeholder: v0.0.X + Please provide your deepface version with calling the command `python -c "import deepface; print(deepface.__version__)"` in your terminal + placeholder: e.g. v0.0.90 validations: required: true - type: input @@ -19,7 +19,7 @@ body: label: Python version description: | Please provide your python programming language's version with calling `python --version` in your terminal - placeholder: 3.8.5 + placeholder: e.g. 3.8.5 validations: required: true - type: input @@ -36,13 +36,13 @@ body: attributes: label: Dependencies description: | - Please provide python dependencies with calling `pip freeze`, in particular tensorflow's and keras' versions + Please provide python dependencies with calling `pip freeze` in your terminal, in particular tensorflow's and keras' versions validations: required: true - type: textarea id: repro-code attributes: - label: Repro Code + label: Reproducible example description: A ***minimal*** code sample which reproduces the issue render: Python validations: @@ -50,7 +50,7 @@ body: - type: textarea id: exception-message attributes: - label: Exception Message + label: Relevant Log Output description: Please share the exception message from your terminal if your program is failing validations: required: false diff --git a/.github/ISSUE_TEMPLATE/03-documentation.yaml b/.github/ISSUE_TEMPLATE/03-documentation.yaml index cbd0d60..0383a3c 100644 --- a/.github/ISSUE_TEMPLATE/03-documentation.yaml +++ b/.github/ISSUE_TEMPLATE/03-documentation.yaml @@ -9,4 +9,10 @@ body: label: Suggested Changes description: What would you like to see happen in the docs? validations: - required: true \ No newline at end of file + required: true + - type: textarea + id: additional + attributes: + label: Additional Info + description: | + Any additional info you'd like to provide. \ No newline at end of file From c43df8e50793f422957518deed79a17e3bf8fe08 Mon Sep 17 00:00:00 2001 From: Sefik Ilkin Serengil Date: Sun, 21 Apr 2024 12:18:23 +0100 Subject: [PATCH 36/41] Update README.md cosmetic changes --- README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 11f4613..568aa1a 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@

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˝jA1x@n~*u16q~TSKzSg9r<^1 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%0AbKY)3{4_B&S#tFYBzV)Y)qaON9(U1~Qp3 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