fix(represent): change somthing according to comments and adapt pylint

This commit is contained in:
xuwei 2023-12-14 12:29:35 +00:00
parent 8c6dad0147
commit 7b1451ac50
3 changed files with 21 additions and 23 deletions

View File

@ -9,5 +9,10 @@
"python.formatting.provider": "black", "python.formatting.provider": "black",
"python.formatting.blackArgs": ["--line-length=100"], "python.formatting.blackArgs": ["--line-length=100"],
"editor.fontWeight": "normal", "editor.fontWeight": "normal",
"python.analysis.extraPaths": ["./deepface"] "python.analysis.extraPaths": [
"./deepface"
],
"black-formatter.args": [
"--line-length=100"
]
} }

View File

@ -686,15 +686,16 @@ def represent(
{ {
// Multidimensional vector // Multidimensional vector
// The number of dimensions is changing based on the reference model. // The number of dimensions is changing based on the reference model.
// E.g. FaceNet returns 128 dimensional vector; VGG-Face returns 2622 dimensional vector. // E.g. FaceNet returns 128 dimensional vector;
"embedding": np.array, // VGG-Face returns 2622 dimensional vector.
"embedding": np.array,
// Detected Facial-Area by Face detection in dict format. // Detected Facial-Area by Face detection in dict format.
// (x, y) is left-corner point, and (w, h) is the width and height // (x, y) is left-corner point, and (w, h) is the width and height
// If `detector_backend` == `skip`, it is the full image area and nonsense. // If `detector_backend` == `skip`, it is the full image area and nonsense.
"facial_area": dict{"x": int, "y": int, "w": int, "h": int}, "facial_area": dict{"x": int, "y": int, "w": int, "h": int},
// Face detection confidence. // Face detection confidence.
// If `detector_backend` == `skip`, will be 0 and nonsense. // If `detector_backend` == `skip`, will be 0 and nonsense.
"face_confidence": float "face_confidence": float
} }
@ -716,23 +717,20 @@ def represent(
align=align, align=align,
) )
else: # skip else: # skip
if type(img_path).__module__ == np.__name__: # Try load. If load error, will raise exception internal
img = img_path.copy() img, _ = functions.load_image(img_path)
else:
# Try load. If load error, will raise exception internal
img, _ = functions.load_image(img_path)
# -------------------------------- # --------------------------------
if len(img.shape) == 4: if len(img.shape) == 4:
img = img[0] # e.g. (1, 224, 224, 3) to (224, 224, 3) img = img[0] # e.g. (1, 224, 224, 3) to (224, 224, 3)
if len(img.shape) == 3: if len(img.shape) == 3:
img = cv2.resize(img, target_size) img = cv2.resize(img, target_size)
img = np.expand_dims(img, axis=0) # Why we remove a axis=0 previously and here expand one? img = np.expand_dims(img, axis=0)
# when represent is called from verify, this is already normalized. But needed when user given. # when called from verify, this is already normalized. But needed when user given.
if img.max() > 1: if img.max() > 1:
img = img.astype(np.float32) / 255. img = img.astype(np.float32) / 255.0
# -------------------------------- # --------------------------------
# make dummy region and confidence to keep compatibility with `extract_faces` # make dummy region and confidence to keep compatibility with `extract_faces`
img_region = {"x": 0, "y": 0, "w": img.shape[1], "h": img.shape[2]} img_region = {"x": 0, "y": 0, "w": img.shape[1], "h": img.shape[2]}
img_objs = [(img, img_region, 0)] img_objs = [(img, img_region, 0)]
# --------------------------------- # ---------------------------------
@ -746,7 +744,7 @@ def represent(
# embedding = model.predict(img, verbose=0)[0].tolist() # embedding = model.predict(img, verbose=0)[0].tolist()
embedding = model(img, training=False).numpy()[0].tolist() embedding = model(img, training=False).numpy()[0].tolist()
# if you still get verbose logging. try call # if you still get verbose logging. try call
# - `tf.keras.utils.disable_interactive_logging()` # - `tf.keras.utils.disable_interactive_logging()`
# in your main program # in your main program
else: else:
# SFace and Dlib are not keras models and no verbose arguments # SFace and Dlib are not keras models and no verbose arguments

View File

@ -94,13 +94,8 @@ def load_image(img):
if type(img).__module__ == np.__name__: if type(img).__module__ == np.__name__:
return img, None return img, None
try: if isinstance(img, Path):
# Test whether img is a Python3's Path. If hit, tranform to str to let following logic work. img = str(img)
from pathlib import Path
if isinstance(img, Path):
img = str(img)
except ImportError:
pass
# The image is a base64 string # The image is a base64 string
if img.startswith("data:image/"): if img.startswith("data:image/"):