mirror of
https://github.com/serengil/deepface.git
synced 2025-06-06 11:35:21 +00:00
59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
import matplotlib.pyplot as plt
|
|
from deepface import DeepFace
|
|
from deepface.commons.logger import Logger
|
|
|
|
logger = Logger()
|
|
|
|
# some models (e.g. Dlib) and detectors (e.g. retinaface) do not have test cases
|
|
# because they require to install huge packages
|
|
# this module is for local runs
|
|
|
|
model_names = [
|
|
"VGG-Face",
|
|
"Facenet",
|
|
"Facenet512",
|
|
"OpenFace",
|
|
"DeepFace",
|
|
"DeepID",
|
|
"Dlib",
|
|
"ArcFace",
|
|
"SFace",
|
|
]
|
|
|
|
detector_backends = ["opencv", "ssd", "dlib", "mtcnn", "retinaface", "yunet", "yolov8"]
|
|
|
|
# verification
|
|
for model_name in model_names:
|
|
obj = DeepFace.verify(
|
|
img1_path="dataset/img1.jpg", img2_path="dataset/img2.jpg", model_name=model_name
|
|
)
|
|
logger.info(obj)
|
|
logger.info("---------------------")
|
|
|
|
# represent
|
|
for model_name in model_names:
|
|
embedding_objs = DeepFace.represent(img_path="dataset/img1.jpg", model_name=model_name)
|
|
for embedding_obj in embedding_objs:
|
|
embedding = embedding_obj["embedding"]
|
|
logger.info(f"{model_name} produced {len(embedding)}D vector")
|
|
|
|
# find
|
|
dfs = DeepFace.find(
|
|
img_path="dataset/img1.jpg", db_path="dataset", model_name="Facenet", detector_backend="mtcnn"
|
|
)
|
|
for df in dfs:
|
|
logger.info(df)
|
|
|
|
# extract faces
|
|
for detector_backend in detector_backends:
|
|
face_objs = DeepFace.extract_faces(
|
|
img_path="dataset/img11.jpg", detector_backend=detector_backend
|
|
)
|
|
for face_obj in face_objs:
|
|
face = face_obj["face"]
|
|
logger.info(detector_backend)
|
|
plt.imshow(face)
|
|
plt.axis("off")
|
|
plt.show()
|
|
logger.info("-----------")
|