A Lightweight Face Recognition and Facial Attribute Analysis (Age, Gender, Emotion and Race) Library for Python
This report summarizes scanner evidence for serengil/deepface, a Python project with 23,530 GitHub stars. SynthScan examined 46,170 lines of code across 221 source files, recording 507 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 22.7 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 310 finding(s).
Are imports declared and package/API names verified? 6 finding(s).
Are wrappers, guards, and repeated structures necessary? 474 finding(s).
Which changes need focused human review? 507 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 507 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | deepface/models/demography/onnx/Age.py | 0 | predict apparent age(s) for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of imag | STRING |
| HIGH | deepface/models/demography/pytorch/Age.py | 0 | predict apparent age(s) for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of imag | STRING |
| HIGH | deepface/models/demography/tf/Age.py | 0 | predict apparent age(s) for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of imag | STRING |
| HIGH | deepface/models/demography/onnx/Age.py | 0 | download emotion model's onnx graph if necessary and load it returns: model (onnxruntime.inferencesession) | STRING |
| HIGH | deepface/models/demography/onnx/Gender.py | 0 | download emotion model's onnx graph if necessary and load it returns: model (onnxruntime.inferencesession) | STRING |
| HIGH | deepface/models/demography/onnx/Race.py | 0 | download emotion model's onnx graph if necessary and load it returns: model (onnxruntime.inferencesession) | STRING |
| HIGH | deepface/models/demography/onnx/Emotion.py | 0 | download emotion model's onnx graph if necessary and load it returns: model (onnxruntime.inferencesession) | STRING |
| HIGH | deepface/models/demography/onnx/Gender.py | 0 | predict gender probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of | STRING |
| HIGH | deepface/models/demography/pytorch/Gender.py | 0 | predict gender probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of | STRING |
| HIGH | deepface/models/demography/tf/Gender.py | 0 | predict gender probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of | STRING |
| HIGH | deepface/models/demography/onnx/Race.py | 0 | predict race probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of i | STRING |
| HIGH | deepface/models/demography/pytorch/Race.py | 0 | predict race probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of i | STRING |
| HIGH | deepface/models/demography/tf/Race.py | 0 | predict race probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list of i | STRING |
| HIGH | deepface/models/demography/onnx/Emotion.py | 0 | preprocess single image for emotion detection args: img: input image (224, 224, 3) returns: preprocessed grayscale image | STRING |
| HIGH | deepface/models/demography/pytorch/Emotion.py | 0 | preprocess single image for emotion detection args: img: input image (224, 224, 3) returns: preprocessed grayscale image | STRING |
| HIGH | deepface/models/demography/tf/Emotion.py | 0 | preprocess single image for emotion detection args: img: input image (224, 224, 3) returns: preprocessed grayscale image | STRING |
| HIGH | deepface/models/demography/onnx/Emotion.py | 0 | predict emotion probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list o | STRING |
| HIGH | deepface/models/demography/pytorch/Emotion.py | 0 | predict emotion probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list o | STRING |
| HIGH | deepface/models/demography/tf/Emotion.py | 0 | predict emotion probabilities for single or multiple faces args: img: single image as np.ndarray (224, 224, 3) or list o | STRING |
| HIGH | deepface/models/face_detection/RetinaFace.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/FastMtCnn.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/MtCnn.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/MediaPipe.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/Ssd.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/CenterFace.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/OpenCv.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/YuNet.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/Yolo.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/face_detection/Dlib.py | 0 | detect and align face with dlib args: img (np.ndarray): pre-loaded image as numpy array returns: results (list[facialare | STRING |
| HIGH | deepface/models/spoofing/onnx/FasNet.py | 0 | mini face anti spoofing net library from repo: github.com/minivision-ai/silent-face-anti-spoofing minivision's silent-fa | STRING |
| HIGH | deepface/models/spoofing/pytorch/FasNet.py | 0 | mini face anti spoofing net library from repo: github.com/minivision-ai/silent-face-anti-spoofing minivision's silent-fa | STRING |
| HIGH | deepface/models/spoofing/tf/FasNet.py | 0 | mini face anti spoofing net library from repo: github.com/minivision-ai/silent-face-anti-spoofing minivision's silent-fa | STRING |
| HIGH | deepface/models/spoofing/onnx/FasNet.py | 0 | analyze a given image spoofed or not args: img (np.ndarray): pre loaded image facial_area (list or tuple): facial rectan | STRING |
| HIGH | deepface/models/spoofing/pytorch/FasNet.py | 0 | analyze a given image spoofed or not args: img (np.ndarray): pre loaded image facial_area (list or tuple): facial rectan | STRING |
| HIGH | deepface/models/spoofing/tf/FasNet.py | 0 | analyze a given image spoofed or not args: img (np.ndarray): pre loaded image facial_area (list or tuple): facial rectan | STRING |
| HIGH | deepface/modules/database/cassandra.py | 0 | embeddings are stored as little-endian float64 bytes to keep them lossless. | STRING |
| HIGH | deepface/modules/database/mssql.py | 0 | embeddings are stored as little-endian float64 bytes to keep them lossless. | STRING |
| HIGH | deepface/modules/database/sqlite.py | 0 | embeddings are stored as little-endian float64 bytes to keep them lossless. | STRING |
| HIGH | deepface/modules/database/db2.py | 0 | embeddings are stored as little-endian float64 bytes to keep them lossless. | STRING |
| HIGH | deepface/modules/database/redis.py | 0 | embeddings are stored as little-endian float64 bytes to keep them lossless. | STRING |
| HIGH | deepface/modules/database/oracle.py | 0 | embeddings are stored as little-endian float64 bytes to keep them lossless. | STRING |
| HIGH | deepface/modules/database/mysql.py | 0 | embeddings are stored as little-endian float64 bytes to keep them lossless. | STRING |
| HIGH | deepface/modules/database/cassandra.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/mssql.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/mongo.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/sqlite.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/db2.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/redis.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/postgres.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/oracle.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/mysql.py | 0 | get embeddings index from mysql. args: model_name (str): name of the model. detector_backend (str): name of the detector | STRING |
| HIGH | deepface/modules/database/cassandra.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/sqlite.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/db2.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/pgvector.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/postgres.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/redis.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/oracle.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/mysql.py | 0 | insert multiple embeddings into mysql. args: embeddings (list[dict[str, any]]): list of embeddings to insert. batch_size | STRING |
| HIGH | deepface/modules/database/cassandra.py | 0 | fetch a single embedding record with its vector from mysql. criteria arguments are ignored, because a single table store | STRING |
| 46 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deepface/commons/image_utils.py | 135 | def load_image_from_io_object(obj: IO[bytes]) -> NDArray[Any]: | CODE |
| LOW | deepface/commons/image_utils.py | 191 | def load_image_from_file_storage(file: FileStorage) -> NDArray[Any]: | CODE |
| LOW | deepface/commons/weight_utils.py | 23 | def download_weights_if_necessary( | CODE |
| LOW | deepface/commons/weight_utils.py | 95 | def ensure_source_is_reachable(url: str) -> None: | CODE |
| LOW | deepface/commons/weight_utils.py | 169 | def download_all_models_in_one_shot() -> None: | CODE |
| LOW | deepface/commons/package_utils.py | 64 | def configure_tensorflow_logging() -> None: | CODE |
| LOW | deepface/commons/package_utils.py | 90 | def resolve_dataframe_return_type(return_type: Optional[str]) -> str: | CODE |
| LOW | deepface/models/Demography.py | 51 | def _preprocess_batch_or_single_input( | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 29 | def extract_image_from_request(img_key: str) -> Union[str, NDArray[Any]]: | CODE |
| LOW | deepface/modules/verification.py | 138 | def extract_embeddings_and_facial_areas( | CODE |
| LOW | deepface/modules/verification.py | 249 | def __extract_faces_and_embeddings( | CODE |
| LOW | deepface/modules/streaming.py | 228 | def build_facial_recognition_model(model_name: str) -> None: | CODE |
| LOW | deepface/modules/streaming.py | 531 | def perform_facial_recognition( | CODE |
| LOW | deepface/modules/streaming.py | 588 | def perform_demography_analysis( | CODE |
| LOW | deepface/modules/normalization.py | 12 | def normalize_embedding_minmax( | CODE |
| LOW | deepface/modules/datastore.py | 1170 | def __link_verified_identities( | CODE |
| LOW | deepface/modules/database/milvus.py | 288 | def __generate_collection_name( | CODE |
| LOW | deepface/modules/database/qdrant.py | 253 | def __generate_collection_name( | CODE |
| LOW | deepface/modules/database/neo4j.py | 204 | def __link_co_occurring_faces( | STRING |
| LOW | deepface/modules/database/weaviate.py | 534 | def __check_collection_config(self, class_name: str) -> None: | CODE |
| LOW | deepface/modules/database/weaviate.py | 619 | def resolve_connection_details( | CODE |
| LOW | deepface/modules/database/weaviate.py | 706 | def resolve_collection_options( | CODE |
| LOW | deepface/modules/database/weaviate.py | 1046 | def connect_with_legacy_grpc_config( | CODE |
| LOW | deepface/modules/database/weaviate.py | 1087 | def legacy_grpc_connection_params_class() -> Any: | CODE |
| LOW | tests/unit/test_singleton.py | 6 | def test_singleton_same_object(): | CODE |
| LOW | tests/unit/test_register_connection_cleanup.py | 59 | def test_cleanup_for_failures(storage, monkeypatch, owned, stage): | CODE |
| LOW | tests/unit/test_register_connection_cleanup.py | 89 | def test_success_preserves_payload_and_connection_ownership(storage, owned): | CODE |
| LOW | tests/unit/test_register_connection_cleanup.py | 108 | def test_connection_creation_failure_is_not_replaced(storage, monkeypatch): | CODE |
| LOW | tests/unit/test_register_connection_cleanup.py | 121 | def test_repeated_failures_release_every_owned_client(monkeypatch, storage): | CODE |
| LOW | tests/unit/test_register_connection_cleanup.py | 138 | def test_batch_graph_registration_preserves_nondefault_options(storage, monkeypatch, owned): | CODE |
| LOW | tests/unit/test_ssd_opencv_version.py | 14 | def download_weights_if_necessary(**kwargs): | CODE |
| LOW | tests/unit/test_datastore_formats.py | 42 | def test_datastore_round_trip_is_bit_exact(tmp_path, datastore_format: str, size: int): | CODE |
| LOW | tests/unit/test_datastore_formats.py | 66 | def test_pyarrow_formats_require_pyarrow(monkeypatch, datastore_format: str): | CODE |
| LOW | tests/unit/test_milvus_complete_gallery.py | 14 | def test_fetch_all_embeddings_reads_every_page(count, batch_size): | CODE |
| LOW | tests/unit/test_milvus_complete_gallery.py | 33 | def test_fetch_all_embeddings_closes_iterator_on_query_error(): | CODE |
| LOW | tests/unit/test_milvus_complete_gallery.py | 46 | def test_fetch_all_embeddings_without_registered_collection(): | CODE |
| LOW⚡ | tests/unit/test_return_type.py | 23 | def test_default_return_type_is_pandas_if_installed(): | CODE |
| LOW⚡ | tests/unit/test_return_type.py | 30 | def test_default_return_type_is_dict_if_pandas_missing(pandas_missing): | CODE |
| LOW⚡ | tests/unit/test_return_type.py | 36 | def test_pandas_return_type_raises_if_pandas_missing(pandas_missing): | CODE |
| LOW⚡ | tests/unit/test_return_type.py | 42 | def test_unsupported_return_type(): | CODE |
| LOW | tests/unit/test_analyze_numpy_batch.py | 16 | def test_analyze_numpy_batch_matches_list_input(monkeypatch, batch_size): | CODE |
| LOW | tests/unit/test_analyze_numpy_batch.py | 31 | def test_analyze_single_image_keeps_flat_result(monkeypatch): | CODE |
| LOW | tests/unit/test_facenet_prewhitening.py | 14 | def test_facenet_constant_input(dtype, value): | CODE |
| LOW | tests/unit/test_facenet_prewhitening.py | 23 | def test_facenet_low_variance_input(dtype): | CODE |
| LOW | tests/unit/test_facenet_prewhitening.py | 35 | def test_facenet_high_variance_input_is_unchanged(dtype): | CODE |
| LOW | tests/unit/test_facenet_prewhitening.py | 44 | def test_represent_passes_finite_prewhitened_input_to_model(monkeypatch): | CODE |
| LOW | tests/unit/test_api_form_images.py | 15 | def test_extract_string_image_from_form(content_type, image): | CODE |
| LOW | tests/unit/test_api_form_images.py | 23 | def test_extract_string_image_from_json(): | CODE |
| LOW | tests/unit/test_api_form_images.py | 34 | def test_represent_accepts_form_image(monkeypatch, content_type): | CODE |
| LOW | tests/unit/test_api_form_images.py | 52 | def test_missing_image_in_form(content_type): | CODE |
| LOW | tests/unit/test_grpc.py | 114 | def test_represent_bytes_and_path_give_same_embedding(self): | CODE |
| LOW | tests/unit/test_grpc.py | 131 | def test_represent_with_png_bytes(self): | CODE |
| LOW | tests/unit/test_grpc.py | 146 | def test_represent_bytes_with_many_faces(self): | CODE |
| LOW | tests/unit/test_grpc.py | 160 | def test_verify_with_bytes_of_different_persons(self): | CODE |
| LOW | tests/unit/test_grpc.py | 171 | def test_verify_with_bytes_and_path(self): | CODE |
| LOW | tests/unit/test_opencv_haarcascade.py | 16 | def test_haarcascade_files_are_downloaded_if_missing(monkeypatch, tmp_path): | CODE |
| LOW | tests/unit/test_opencv_haarcascade.py | 23 | def download_weights_if_necessary(file_name, source_url): | CODE |
| LOW | tests/unit/test_opencv_haarcascade.py | 53 | def test_haarcascade_files_are_not_downloaded_if_bundled(monkeypatch): | CODE |
| LOW | tests/unit/test_opencv_haarcascade.py | 57 | def download_weights_if_necessary(**kwargs): | CODE |
| LOW | tests/unit/test_opencv_haarcascade.py | 69 | def test_cascade_classifier_is_required(monkeypatch): | CODE |
| 202 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | deepface/DeepFace.py | 48 | # ----------------------------------- | COMMENT |
| MEDIUM | deepface/DeepFace.py | 63 | # ----------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/pytorch/Facenet.py | 33 | # -------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/pytorch/VGGFace.py | 20 | # --------------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/pytorch/OpenFace.py | 29 | # --------------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/Facenet.py | 14 | # -------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/Facenet.py | 58 | # -------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/VGGFace.py | 15 | # --------------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/VGGFace.py | 39 | # --------------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/DeepID.py | 92 | # --------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/FbDeepFace.py | 8 | # -------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/FbDeepFace.py | 84 | # --------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/ArcFace.py | 14 | # -------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/ArcFace.py | 87 | # --------------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/ArcFace.py | 93 | # --------------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/OpenFace.py | 35 | # --------------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/OpenFace.py | 391 | # ----------------------------------- | COMMENT |
| MEDIUM | deepface/models/facial_recognition/tf/OpenFace.py | 399 | # ----------------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Age.py | 81 | # -------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Age.py | 89 | # -------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Age.py | 93 | # -------------------------- | COMMENT |
| MEDIUM | deepface/models/demography/tf/Gender.py | 17 | # ------------------------------------- | COMMENT |
| MEDIUM | deepface/models/demography/tf/Gender.py | 19 | # ------------------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Gender.py | 79 | # -------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Gender.py | 87 | # -------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Gender.py | 91 | # -------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Race.py | 75 | # -------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Race.py | 83 | # -------------------------- | COMMENT |
| MEDIUM⚡ | deepface/models/demography/tf/Race.py | 87 | # -------------------------- | COMMENT |
| MEDIUM | deepface/models/demography/tf/Emotion.py | 125 | # ---------------------------- | COMMENT |
| MEDIUM | deepface/models/face_detection/OpenCv.py | 115 | # ---------------------------------------------------------------- | COMMENT |
| MEDIUM | deepface/models/face_detection/OpenCv.py | 125 | # ---------------------------------------------------------------- | COMMENT |
| MEDIUM | deepface/models/face_detection/OpenCv.py | 139 | # ----------------------- | COMMENT |
| MEDIUM | deepface/modules/recognition.py | 320 | # ---------------------------- | COMMENT |
| MEDIUM | deepface/modules/recognition.py | 428 | # --------------------------- | COMMENT |
| MEDIUM | deepface/modules/recognition.py | 446 | # ----------------------------------- | COMMENT |
| MEDIUM | deepface/modules/representation.py | 143 | # --------------------------------- | COMMENT |
| MEDIUM | deepface/modules/demography.py | 152 | # --------------------------------- | COMMENT |
| MEDIUM | deepface/modules/demography.py | 239 | # ----------------------------- | COMMENT |
| MEDIUM | tests/unit/face-recognition-how.py | 14 | # ---------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/face-recognition-how.py | 25 | # ---------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/face-recognition-how.py | 41 | # ---------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/face-recognition-how.py | 60 | # ---------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/face-recognition-how.py | 76 | # ---------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/face-recognition-how.py | 107 | # ---------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deepface/commons/weight_utils.py | 62 | except Exception as err: # pylint: disable=broad-except | CODE |
| LOW | deepface/commons/weight_utils.py | 121 | except Exception as err: | CODE |
| LOW | deepface/commons/logger.py | 30 | except Exception as err: | CODE |
| LOW | deepface/commons/onnx_utils.py | 55 | except Exception as err: | CODE |
| LOW | deepface/models/facial_recognition/onnx/Buffalo_L.py | 29 | except Exception as err: | CODE |
| LOW | …s/facial_recognition/pytorch/TorchFacialRecognition.py | 81 | except Exception as err: | CODE |
| LOW | deepface/models/face_detection/Ssd.py | 58 | except Exception as err: | CODE |
| LOW | deepface/models/face_detection/YuNet.py | 52 | except Exception as err: | CODE |
| LOW | deepface/models/spoofing/pytorch/FasNet.py | 32 | except Exception as err: | CODE |
| LOW | deepface/api/src/grpc_server.py | 125 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/service.py | 59 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/service.py | 88 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/service.py | 116 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/service.py | 153 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/service.py | 201 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/service.py | 226 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 89 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 122 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 127 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 159 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 211 | except Exception as err: | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 257 | except Exception as err: | CODE |
| LOW | deepface/modules/filestore.py | 139 | except Exception as err: # pylint: disable=broad-except | CODE |
| MEDIUM | deepface/modules/filestore.py | 136 | def validate(self) -> None: | CODE |
| LOW | deepface/modules/streaming.py | 890 | except Exception as err: # pylint: disable=broad-except | CODE |
| LOW | deepface/modules/datastore.py | 1215 | except Exception as err: # pylint: disable=broad-except | CODE |
| LOW | deepface/modules/database/mssql.py | 177 | except Exception: | STRING |
| LOW | deepface/modules/database/neo4j.py | 523 | except Exception as e: # pylint: disable=broad-except | STRING |
| LOW | deepface/modules/database/db2.py | 190 | except Exception: | STRING |
| LOW | deepface/modules/database/pgvector.py | 77 | except Exception as e: | CODE |
| LOW | deepface/modules/database/pgvector.py | 148 | except Exception as e: # pylint: disable=broad-except | STRING |
| LOW | deepface/modules/database/pgvector.py | 156 | except Exception as e: | STRING |
| LOW | deepface/modules/database/weaviate.py | 1080 | except Exception: | CODE |
| LOW | deepface/modules/database/postgres.py | 113 | except Exception as e: | STRING |
| LOW | deepface/modules/database/oracle.py | 207 | except Exception: | STRING |
| LOW | deepface/modules/database/mysql.py | 219 | except Exception: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deepface/DeepFace.py | 90 | CODE | |
| LOW | deepface/DeepFace.py | 298 | CODE | |
| LOW | deepface/DeepFace.py | 465 | CODE | |
| LOW | deepface/DeepFace.py | 557 | CODE | |
| LOW | deepface/DeepFace.py | 625 | CODE | |
| LOW | deepface/DeepFace.py | 758 | CODE | |
| LOW | deepface/DeepFace.py | 845 | CODE | |
| LOW | deepface/DeepFace.py | 969 | CODE | |
| LOW | deepface/DeepFace.py | 1091 | CODE | |
| LOW | deepface/models/spoofing/pytorch/FasNetBackbone.py | 519 | CODE | |
| LOW | deepface/modules/recognition.py | 41 | CODE | |
| LOW | deepface/modules/recognition.py | 562 | CODE | |
| LOW | deepface/modules/detection.py | 47 | CODE | |
| LOW | deepface/modules/verification.py | 27 | CODE | |
| LOW | deepface/modules/streaming.py | 28 | CODE | |
| LOW | deepface/modules/representation.py | 21 | CODE | |
| LOW | deepface/modules/datastore.py | 47 | CODE | |
| LOW | deepface/modules/datastore.py | 232 | CODE | |
| LOW | deepface/modules/datastore.py | 611 | CODE | |
| LOW | deepface/modules/datastore.py | 840 | CODE | |
| LOW | deepface/modules/datastore.py | 1000 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | deepface/models/face_detection/OpenCv.py | 64 | except: | CODE |
| HIGH | tests/integration/test_filestore_find.py | 59 | except ftplib.error_perm: | CODE |
| HIGH | tests/integration/test_filestore_find.py | 63 | except ftplib.error_perm: | CODE |
| HIGH | tests/integration/test_filestore_find.py | 68 | except ftplib.error_perm: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deepface/commons/image_utils.py | 25 | CODE | |
| LOW | deepface/commons/image_utils.py | 44 | CODE | |
| LOW | deepface/commons/weight_utils.py | 169 | CODE | |
| LOW | deepface/modules/detection.py | 47 | CODE | |
| LOW | deepface/modules/verification.py | 439 | CODE | |
| LOW | deepface/modules/preprocessing.py | 10 | CODE | |
| LOW | deepface/modules/streaming.py | 28 | CODE | |
| LOW | deepface/modules/streaming.py | 639 | CODE | |
| LOW | deepface/modules/streaming.py | 895 | CODE | |
| LOW | deepface/modules/datastore.py | 232 | CODE | |
| LOW | deepface/modules/datastore.py | 1083 | CODE | |
| LOW | deepface/modules/demography.py | 20 | CODE | |
| LOW | deepface/modules/database/cassandra.py | 432 | CODE | |
| LOW | deepface/modules/database/pgvector.py | 89 | CODE | |
| LOW | deepface/modules/database/redis.py | 163 | CODE | |
| LOW | deepface/modules/database/weaviate.py | 619 | CODE | |
| LOW | tests/unit/test_verify.py | 18 | CODE | |
| LOW | tests/unit/test_analyze.py | 118 | CODE | |
| LOW | tests/integration/test_database_clients.py | 38 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deepface/DeepFace.py | 40 | CODE | |
| LOW | deepface/DeepFace.py | 43 | CODE | |
| LOW | deepface/modules/modeling.py | 1 | CODE | |
| LOW | deepface/modules/database/inventory.py | 5 | CODE | |
| LOW | tests/unit/test_landmark_sanitization.py | 2 | CODE | |
| LOW | tests/integration/test_postgres_search.py | 3 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deepface/models/Demography.py | 39 | if not self.model_name: # Check if called from derived class | CODE |
| LOW | deepface/models/demography/onnx/OnnxDemography.py | 39 | if not self.model_name: # Check if called from derived class | CODE |
| LOW | deepface/models/demography/pytorch/TorchDemography.py | 46 | if not self.model_name: # Check if called from derived class | CODE |
| LOW | deepface/api/src/modules/core/routes.py | 42 | # Check if the request is multipart/form-data (file input) | COMMENT |
| LOW | deepface/api/src/modules/core/routes.py | 57 | # Check if the request is coming as base64, file path or url from json or form data | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/stream.py | 1 | from deepface import DeepFace | COMMENT |
| LOW | scripts/dockerize.sh | 61 | # docker pull serengil/deepface (or serengil/deepface:pytorch, serengil/deepface:onnx) | COMMENT |
| LOW | .github/workflows/tests.yml | 1 | name: Tests | COMMENT |