mirror of
https://github.com/serengil/deepface.git
synced 2025-06-07 20:15:21 +00:00
Remove mutable objects from analyze arguments. Add tests to validate
This commit is contained in:
parent
4ffb7ba2f0
commit
dbfebea430
@ -264,7 +264,7 @@ def verify(img1_path, img2_path = '', model_name = 'VGG-Face', distance_metric =
|
|||||||
|
|
||||||
return resp_obj
|
return resp_obj
|
||||||
|
|
||||||
def analyze(img_path, actions = ['emotion', 'age', 'gender', 'race'] , models = {}, enforce_detection = True, detector_backend = 'opencv', prog_bar = True):
|
def analyze(img_path, actions = ('emotion', 'age', 'gender', 'race') , models = None, enforce_detection = True, detector_backend = 'opencv', prog_bar = True):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
This function analyzes facial attributes including age, gender, emotion and race
|
This function analyzes facial attributes including age, gender, emotion and race
|
||||||
@ -272,9 +272,9 @@ def analyze(img_path, actions = ['emotion', 'age', 'gender', 'race'] , models =
|
|||||||
Parameters:
|
Parameters:
|
||||||
img_path: exact image path, numpy array or base64 encoded image could be passed. If you are going to analyze lots of images, then set this to list. e.g. img_path = ['img1.jpg', 'img2.jpg']
|
img_path: exact image path, numpy array or base64 encoded image could be passed. If you are going to analyze lots of images, then set this to list. e.g. img_path = ['img1.jpg', 'img2.jpg']
|
||||||
|
|
||||||
actions (list): The default is ['age', 'gender', 'emotion', 'race']. You can drop some of those attributes.
|
actions (tuple): The default is ('age', 'gender', 'emotion', 'race'). You can drop some of those attributes.
|
||||||
|
|
||||||
models: facial attribute analysis models are built in every call of analyze function. You can pass pre-built models to speed the function up.
|
models: (Optional[dict]) facial attribute analysis models are built in every call of analyze function. You can pass pre-built models to speed the function up.
|
||||||
|
|
||||||
models = {}
|
models = {}
|
||||||
models['age'] = DeepFace.build_model('Age')
|
models['age'] = DeepFace.build_model('Age')
|
||||||
@ -317,6 +317,10 @@ def analyze(img_path, actions = ['emotion', 'age', 'gender', 'race'] , models =
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
actions = list(actions)
|
||||||
|
if not models:
|
||||||
|
models = {}
|
||||||
|
|
||||||
img_paths, bulkProcess = functions.initialize_input(img_path)
|
img_paths, bulkProcess = functions.initialize_input(img_path)
|
||||||
|
|
||||||
#---------------------------------
|
#---------------------------------
|
||||||
|
@ -161,6 +161,17 @@ print("Gender: ", demography["gender"])
|
|||||||
print("Race: ", demography["dominant_race"])
|
print("Race: ", demography["dominant_race"])
|
||||||
print("Emotion: ", demography["dominant_emotion"])
|
print("Emotion: ", demography["dominant_emotion"])
|
||||||
|
|
||||||
|
print("-----------------------------------------")
|
||||||
|
|
||||||
|
print("Facial analysis test 2. Remove some actions and check they are not computed")
|
||||||
|
demography = DeepFace.analyze(img, ['age', 'gender'])
|
||||||
|
|
||||||
|
print("Age: ", demography.get("age"))
|
||||||
|
print("Gender: ", demography.get("gender"))
|
||||||
|
print("Race: ", demography.get("dominant_race"))
|
||||||
|
print("Emotion: ", demography.get("dominant_emotion"))
|
||||||
|
|
||||||
|
|
||||||
print("-----------------------------------------")
|
print("-----------------------------------------")
|
||||||
|
|
||||||
print("Face recognition tests")
|
print("Face recognition tests")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user