Spaces:
Sleeping
Sleeping
from deepface import DeepFace | |
class CaesarDeepFace: | |
""" | |
https://github.com/serengil/deepface | |
""" | |
def __init__(self) -> None: | |
self.metrics = ["cosine", "euclidean", "euclidean_l2"] | |
self.models = ["VGG-Face", "Facenet", "Facenet512", "OpenFace", "DeepFace", "DeepID", "ArcFace", "Dlib", "SFace"] | |
self.backends = [ | |
'opencv', | |
'ssd', | |
'dlib', | |
'mtcnn', | |
'retinaface', | |
'mediapipe' | |
] | |
def face_authentication(self,filename1="img1.jpg",filename2="img2.jpg"): | |
#face verification | |
# Value Error | |
try: | |
result = DeepFace.verify(img1_path =filename1 , | |
img2_path = filename2, | |
distance_metric = self.metrics[0], | |
model_name = self.models[0], | |
detector_backend = self.backends[0] | |
) | |
return result | |
except ValueError as vex: | |
return {"message":"Face wasn't detected","error":f"{type(vex)},{vex}"} | |
def face_recognition(self,filename,db_path="C:/workspace/my_db"): | |
dfs = DeepFace.find(img_path =filename, | |
db_path = db_path, | |
distance_metric = self.metrics[2]) | |
return dfs | |
def face_analyze(self,filename="img1.jpg"): | |
objs = DeepFace.analyze(img_path = filename, | |
actions = ['age', 'gender', 'race', 'emotion']) | |
return objs | |
def face_embeddigns(self,filename): | |
embedding_objs = DeepFace.represent(img_path = filename) | |
return embedding_objs | |
def face_streaming(self,db_path="C:/User/Sefik/Desktop/database"): | |
DeepFace.stream(db_path = db_path) | |
if __name__ == "__main__": | |
caesardeepface = CaesarDeepFace() | |
result = caesardeepface.face_authentication(filename2="img3.jpg") | |
print(result) |