mirror of
https://github.com/serengil/deepface.git
synced 2025-06-07 03:55:21 +00:00
Merge pull request #1310 from serengil/feat-task-1708-exception-messages-refactored-for-1339
Feat task 1708 exception messages refactored for 1339
This commit is contained in:
commit
f2c2bb27e4
@ -21,7 +21,7 @@ class Logger:
|
|||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
if not hasattr(self, "_singleton_initialized"):
|
if not hasattr(self, "_singleton_initialized"):
|
||||||
self._singleton_initialized = True # to prevent multiple initializations
|
self._singleton_initialized = True # to prevent multiple initializations
|
||||||
log_level = os.environ.get("DEEPFACE_LOG_LEVEL", str(logging.INFO))
|
log_level = os.environ.get("DEEPFACE_LOG_LEVEL", str(logging.INFO))
|
||||||
try:
|
try:
|
||||||
self.log_level = int(log_level)
|
self.log_level = int(log_level)
|
||||||
|
@ -115,9 +115,8 @@ def verify(
|
|||||||
}
|
}
|
||||||
|
|
||||||
def extract_embeddings_and_facial_areas(
|
def extract_embeddings_and_facial_areas(
|
||||||
img_path: Union[str, np.ndarray, List[float]],
|
img_path: Union[str, np.ndarray, List[float]], index: int
|
||||||
index: int
|
) -> Tuple[List[List[float]], List[dict]]:
|
||||||
) -> Tuple[List[List[float]], List[dict]]:
|
|
||||||
"""
|
"""
|
||||||
Extracts facial embeddings and corresponding facial areas from an
|
Extracts facial embeddings and corresponding facial areas from an
|
||||||
image or returns pre-calculated embeddings.
|
image or returns pre-calculated embeddings.
|
||||||
@ -150,7 +149,7 @@ def verify(
|
|||||||
|
|
||||||
if silent is False:
|
if silent is False:
|
||||||
logger.warn(
|
logger.warn(
|
||||||
"You passed 1st image as pre-calculated embeddings."
|
f"You passed {index}-th image as pre-calculated embeddings."
|
||||||
"Please ensure that embeddings have been calculated"
|
"Please ensure that embeddings have been calculated"
|
||||||
f" for the {model_name} model."
|
f" for the {model_name} model."
|
||||||
)
|
)
|
||||||
@ -158,7 +157,7 @@ def verify(
|
|||||||
if len(img_path) != dims:
|
if len(img_path) != dims:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"embeddings of {model_name} should have {dims} dimensions,"
|
f"embeddings of {model_name} should have {dims} dimensions,"
|
||||||
f" but it has {len(img_path)} dimensions input"
|
f" but {index}-th image has {len(img_path)} dimensions input"
|
||||||
)
|
)
|
||||||
|
|
||||||
img_embeddings = [img_path]
|
img_embeddings = [img_path]
|
||||||
|
@ -153,7 +153,7 @@ def test_verify_with_precalculated_embeddings_for_incorrect_model():
|
|||||||
|
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
ValueError,
|
ValueError,
|
||||||
match="embeddings of Facenet should have 128 dimensions, but it has 4096 dimensions input",
|
match="embeddings of Facenet should have 128 dimensions, but 1-th image has 4096 dimensions input",
|
||||||
):
|
):
|
||||||
_ = DeepFace.verify(
|
_ = DeepFace.verify(
|
||||||
img1_path=img1_embedding, img2_path=img2_embedding, model_name="Facenet", silent=True
|
img1_path=img1_embedding, img2_path=img2_embedding, model_name="Facenet", silent=True
|
||||||
@ -172,3 +172,17 @@ def test_verify_for_broken_embeddings():
|
|||||||
):
|
):
|
||||||
_ = DeepFace.verify(img1_path=img1_embeddings, img2_path=img2_embeddings)
|
_ = DeepFace.verify(img1_path=img1_embeddings, img2_path=img2_embeddings)
|
||||||
logger.info("✅ test verify for broken embeddings content is done")
|
logger.info("✅ test verify for broken embeddings content is done")
|
||||||
|
|
||||||
|
|
||||||
|
def test_verify_for_nested_embeddings():
|
||||||
|
"""
|
||||||
|
batch embeddings not supported
|
||||||
|
"""
|
||||||
|
img1_embeddings = [[1, 2, 3], [4, 5, 6]]
|
||||||
|
img2_path = "dataset/img1.jpg"
|
||||||
|
|
||||||
|
with pytest.raises(
|
||||||
|
ValueError,
|
||||||
|
match="When passing img1_path as a list, ensure that all its items are of type float",
|
||||||
|
):
|
||||||
|
_ = DeepFace.verify(img1_path=img1_embeddings, img2_path=img2_path)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user