Repository Analysis

serengil/deepface

A Lightweight Face Recognition and Facial Attribute Analysis (Age, Gender, Emotion and Race) Library for Python

9.5 Low AI signal View on GitHub
9.5
Adjusted Score
9.5
Raw Score
100%
Time Factor
2026-05-29
Last Push
22,848
Stars
Python
Language
31,695
Lines of Code
135
Files
191
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 3MEDIUM 42LOW 146

Pattern Findings

191 matches across 8 categories. Click a row to expand file-level details.

Decorative Section Separators42 hits · 140 pts
SeverityFileLineSnippet
MEDIUMdeepface/DeepFace.py37# -----------------------------------
MEDIUMdeepface/DeepFace.py48# -----------------------------------
MEDIUMdeepface/models/facial_recognition/Facenet.py14# --------------------------------
MEDIUMdeepface/models/facial_recognition/Facenet.py56# --------------------------------
MEDIUMdeepface/models/facial_recognition/VGGFace.py15# ---------------------------------------
MEDIUMdeepface/models/facial_recognition/VGGFace.py39# ---------------------------------------
MEDIUMdeepface/models/facial_recognition/DeepID.py88 # ---------------------------------
MEDIUMdeepface/models/facial_recognition/FbDeepFace.py8# --------------------------------
MEDIUMdeepface/models/facial_recognition/FbDeepFace.py84 # ---------------------------------
MEDIUMdeepface/models/facial_recognition/ArcFace.py14# --------------------------------
MEDIUMdeepface/models/facial_recognition/ArcFace.py86 # ---------------------------------------
MEDIUMdeepface/models/facial_recognition/ArcFace.py92 # ---------------------------------------
MEDIUMdeepface/models/facial_recognition/OpenFace.py31# ---------------------------------------
MEDIUMdeepface/models/facial_recognition/OpenFace.py387 # -----------------------------------
MEDIUMdeepface/models/facial_recognition/OpenFace.py395 # -----------------------------------
MEDIUMdeepface/models/demography/Age.py79 # --------------------------
MEDIUMdeepface/models/demography/Age.py87 # --------------------------
MEDIUMdeepface/models/demography/Age.py91 # --------------------------
MEDIUMdeepface/models/demography/Gender.py16# -------------------------------------
MEDIUMdeepface/models/demography/Gender.py18# -------------------------------------
MEDIUMdeepface/models/demography/Gender.py77 # --------------------------
MEDIUMdeepface/models/demography/Gender.py85 # --------------------------
MEDIUMdeepface/models/demography/Gender.py89 # --------------------------
MEDIUMdeepface/models/demography/Race.py73 # --------------------------
MEDIUMdeepface/models/demography/Race.py81 # --------------------------
MEDIUMdeepface/models/demography/Race.py85 # --------------------------
MEDIUMdeepface/models/demography/Emotion.py121 # ----------------------------
MEDIUMdeepface/models/face_detection/OpenCv.py107 # ----------------------------------------------------------------
MEDIUMdeepface/models/face_detection/OpenCv.py117 # ----------------------------------------------------------------
MEDIUMdeepface/models/face_detection/OpenCv.py131 # -----------------------
MEDIUMdeepface/modules/recognition.py283 # ----------------------------
MEDIUMdeepface/modules/recognition.py387 # ---------------------------
MEDIUMdeepface/modules/recognition.py405 # -----------------------------------
MEDIUMdeepface/modules/representation.py154 # ---------------------------------
MEDIUMdeepface/modules/demography.py148 # ---------------------------------
MEDIUMdeepface/modules/demography.py235 # -----------------------------
MEDIUMtests/unit/face-recognition-how.py14# ----------------------------------------------
MEDIUMtests/unit/face-recognition-how.py25# ----------------------------------------------
MEDIUMtests/unit/face-recognition-how.py41# ----------------------------------------------
MEDIUMtests/unit/face-recognition-how.py60# ----------------------------------------------
MEDIUMtests/unit/face-recognition-how.py76# ----------------------------------------------
MEDIUMtests/unit/face-recognition-how.py107# ----------------------------------------------
Hyper-Verbose Identifiers91 hits · 91 pts
SeverityFileLineSnippet
LOWdeepface/commons/image_utils.py135def load_image_from_io_object(obj: IO[bytes]) -> NDArray[Any]:
LOWdeepface/commons/image_utils.py191def load_image_from_file_storage(file: FileStorage) -> NDArray[Any]:
LOWdeepface/commons/weight_utils.py29def download_weights_if_necessary(
LOWdeepface/commons/weight_utils.py104def download_all_models_in_one_shot() -> None:
LOWdeepface/models/Demography.py58 def _preprocess_batch_or_single_input(
LOWdeepface/api/src/modules/core/routes.py29def extract_image_from_request(img_key: str) -> Union[str, NDArray[Any]]:
LOWdeepface/modules/verification.py133 def extract_embeddings_and_facial_areas(
LOWdeepface/modules/verification.py243def __extract_faces_and_embeddings(
LOWdeepface/modules/streaming.py226def build_facial_recognition_model(model_name: str) -> None:
LOWdeepface/modules/streaming.py504def perform_facial_recognition(
LOWdeepface/modules/streaming.py561def perform_demography_analysis(
LOWdeepface/modules/normalization.py12def normalize_embedding_minmax(
LOWtests/unit/test_find_batched.py18def test_find_with_exact_path():
LOWtests/unit/test_find_batched.py57def test_batched_find_with_similarity_search():
LOWtests/unit/test_find_batched.py103def test_find_with_array_input():
LOWtests/unit/test_find_batched.py126def test_find_with_extracted_faces():
LOWtests/unit/test_singleton.py6def test_singleton_same_object():
LOWtests/unit/test_encrypt.py76def test_encrypt_single_skip_case():
LOWtests/unit/test_encrypt.py121def test_encrypt_batch_skip_case():
LOWtests/unit/test_encrypt.py176def test_homomorphic_encryption():
LOWtests/unit/test_verify.py17def test_different_facial_recognition_models():
LOWtests/unit/test_verify.py76def test_different_face_detectors():
LOWtests/unit/test_verify.py112def test_verify_for_preloaded_image():
LOWtests/unit/test_verify.py120def test_verify_for_precalculated_embeddings():
LOWtests/unit/test_verify.py159def test_verify_with_precalculated_embeddings_for_incorrect_model():
LOWtests/unit/test_verify.py177def test_verify_for_broken_embeddings():
LOWtests/unit/test_verify.py189def test_verify_for_nested_embeddings():
LOWtests/unit/test_verify.py205def test_compability_of_verify_and_represent():
LOWtests/unit/test_output_normalization.py10def test_minmax_normalization():
LOWtests/unit/test_output_normalization.py33def test_minmax_normalization_batch():
LOWtests/unit/test_output_normalization.py50def test_minmax_normalization_edge_values():
LOWtests/unit/test_enforce_detection.py12def test_enabled_enforce_detection_for_non_facial_input():
LOWtests/unit/test_enforce_detection.py24def test_disabled_enforce_detection_for_non_facial_input_on_represent():
LOWtests/unit/test_enforce_detection.py44def test_disabled_enforce_detection_for_non_facial_input_on_verify():
LOWtests/unit/test_signature.py42 def test_sign_and_verify_happy_path_with_obj(self):
LOWtests/unit/test_signature.py66 def test_sign_and_verify_happy_path_with_dict(self):
LOWtests/unit/test_signature.py83 def test_missing_algorithm_in_dict(self):
LOWtests/unit/test_signature.py99 def test_tampered_datastore_detection_with_type_error(self):
LOWtests/unit/test_signature.py121 def test_tampered_datastore_detection_with_content(self):
LOWtests/unit/test_signature.py166 def test_unsigned_datastore_detected(self):
LOWtests/unit/test_signature.py184 def test_signed_datastore_with_no_credentials(self):
LOWtests/unit/test_signature.py241 def __flush_datastore_and_signature(self):
LOWtests/unit/test_find.py20def test_find_with_exact_path():
LOWtests/unit/test_find.py49def test_find_with_array_input():
LOWtests/unit/test_find.py71def test_find_with_extracted_faces():
LOWtests/unit/test_find.py106def test_filetype_for_find_bulk_embeddings():
LOWtests/unit/test_find.py126def test_find_without_refresh_database():
LOWtests/unit/test_find.py176def test_find_for_similarity_search():
LOWtests/unit/test_landmark_sanitization.py42def test_extract_faces_sanitizes_landmarks(monkeypatch):
LOWtests/unit/test_commons.py32def test_loading_broken_weights():
LOWtests/unit/test_commons.py64 def test_download_weights_for_available_file(
LOWtests/unit/test_commons.py91 def test_download_weights_if_necessary_gdown_failure(
LOWtests/unit/test_commons.py120 def test_download_weights_if_necessary_no_compression(
LOWtests/unit/test_commons.py155 def test_download_weights_if_necessary_zip(
LOWtests/unit/test_commons.py245 def test_download_weights_for_non_supported_compress_type(
LOWtests/unit/test_extract_faces.py102def test_backends_for_enforced_detection_with_non_facial_inputs():
LOWtests/unit/test_extract_faces.py110def test_backends_for_not_enforced_detection_with_non_facial_inputs():
LOWtests/unit/test_extract_faces.py141def test_facial_coordinates_are_in_borders():
LOWtests/unit/test_extract_faces.py191def test_batch_ndarray_inputs():
LOWtests/unit/test_api.py182 def test_analyze_inputformats(self):
31 more matches not shown…
Excessive Try-Catch Wrapping26 hits · 24 pts
SeverityFileLineSnippet
LOWdeepface/commons/weight_utils.py60 except Exception as err:
LOWdeepface/commons/weight_utils.py93 except Exception as err:
LOWdeepface/commons/logger.py30 except Exception as err:
LOWdeepface/models/facial_recognition/SFace.py79 except Exception as err:
LOWdeepface/models/facial_recognition/Buffalo_L.py29 except Exception as err:
LOWdeepface/models/face_detection/Ssd.py48 except Exception as err:
LOWdeepface/models/face_detection/YuNet.py52 except Exception as err:
LOWdeepface/models/spoofing/FasNet.py32 except Exception as err:
LOWdeepface/api/src/modules/core/service.py40 except Exception as err:
LOWdeepface/api/src/modules/core/service.py69 except Exception as err:
LOWdeepface/api/src/modules/core/service.py97 except Exception as err:
LOWdeepface/api/src/modules/core/service.py136 except Exception as err:
LOWdeepface/api/src/modules/core/service.py183 except Exception as err:
LOWdeepface/api/src/modules/core/service.py208 except Exception as err:
LOWdeepface/api/src/modules/core/routes.py89 except Exception as err:
LOWdeepface/api/src/modules/core/routes.py122 except Exception as err:
LOWdeepface/api/src/modules/core/routes.py127 except Exception as err:
LOWdeepface/api/src/modules/core/routes.py159 except Exception as err:
LOWdeepface/api/src/modules/core/routes.py211 except Exception as err:
LOWdeepface/api/src/modules/core/routes.py257 except Exception as err:
LOWdeepface/modules/streaming.py863 except Exception as err: # pylint: disable=broad-except
LOWdeepface/modules/database/neo4j.py327 except Exception as e: # pylint: disable=broad-except
LOWdeepface/modules/database/pgvector.py77 except Exception as e:
LOWdeepface/modules/database/pgvector.py148 except Exception as e: # pylint: disable=broad-except
LOWdeepface/modules/database/pgvector.py156 except Exception as e:
LOWdeepface/modules/database/postgres.py113 except Exception as e:
Deep Nesting16 hits · 16 pts
SeverityFileLineSnippet
LOWdeepface/commons/image_utils.py25
LOWdeepface/commons/image_utils.py44
LOWdeepface/commons/weight_utils.py104
LOWdeepface/modules/recognition.py796
LOWdeepface/modules/detection.py47
LOWdeepface/modules/verification.py433
LOWdeepface/modules/preprocessing.py20
LOWdeepface/modules/streaming.py28
LOWdeepface/modules/streaming.py612
LOWdeepface/modules/streaming.py868
LOWdeepface/modules/datastore.py139
LOWdeepface/modules/demography.py16
LOWdeepface/modules/database/pgvector.py89
LOWtests/unit/test_verify.py17
LOWtests/unit/test_signature.py121
LOWtests/unit/test_analyze.py119
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippet
HIGHdeepface/models/facial_recognition/GhostFaceNet.py0refactored from github.com/hamadya/ghostfacenets/blob/main/backbones/ghost_model.py
HIGHdeepface/models/facial_recognition/GhostFaceNet.py0refactored from github.com/hamadya/ghostfacenets/blob/main/backbones/ghost_model.py
HIGHdeepface/models/facial_recognition/GhostFaceNet.py0refactored from github.com/hamadya/ghostfacenets/blob/main/backbones/ghost_model.py
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippet
LOWdeepface/models/Demography.py46 if not self.model_name: # Check if called from derived class
LOWdeepface/api/src/modules/core/routes.py42 # Check if the request is multipart/form-data (file input)
LOWdeepface/api/src/modules/core/routes.py57 # Check if the request is coming as base64, file path or url from json or form data
LOWdeepface/modules/database/weaviate.py150 # Check if embedding already exists
Unused Imports5 hits · 5 pts
SeverityFileLineSnippet
LOWdeepface/DeepFace.py33
LOWdeepface/modules/modeling.py1
LOWdeepface/modules/database/inventory.py5
LOWtests/unit/test_landmark_sanitization.py2
LOWtests/integration/test_postgres_search.py3
Over-Commented Block4 hits · 4 pts
SeverityFileLineSnippet
LOWtests/unit/stream.py1from deepface import DeepFace
LOWscripts/dockerize.sh1# Dockerfile is in the root
LOWscripts/dockerize.sh41# to access the inside of docker image when it is in running status
LOW.github/workflows/tests.yml1name: Tests