|
|
|
|
|
import cv2 |
|
|
import matplotlib.pyplot as plt |
|
|
|
|
|
|
|
|
from deepface.modules import streaming |
|
|
from deepface import DeepFace |
|
|
|
|
|
img_path = "dataset/img1.jpg" |
|
|
img = cv2.imread(img_path) |
|
|
|
|
|
overlay_img_path = "dataset/img6.jpg" |
|
|
face_objs = DeepFace.extract_faces(overlay_img_path) |
|
|
overlay_img = face_objs[0]["face"][:, :, ::-1] * 255 |
|
|
|
|
|
overlay_img = cv2.resize(overlay_img, (112, 112)) |
|
|
|
|
|
raw_img = img.copy() |
|
|
|
|
|
demographies = DeepFace.analyze(img_path=img_path, actions=("age", "gender", "emotion")) |
|
|
demography = demographies[0] |
|
|
|
|
|
x = demography["region"]["x"] |
|
|
y = demography["region"]["y"] |
|
|
w = demography["region"]["w"] |
|
|
h = demography["region"]["h"] |
|
|
|
|
|
img = streaming.highlight_facial_areas(img=img, faces_coordinates=[(x, y, w, h)]) |
|
|
|
|
|
img = streaming.overlay_emotion( |
|
|
img=img, |
|
|
emotion_probas=demography["emotion"], |
|
|
x=x, |
|
|
y=y, |
|
|
w=w, |
|
|
h=h, |
|
|
) |
|
|
|
|
|
img = streaming.overlay_age_gender( |
|
|
img=img, |
|
|
apparent_age=demography["age"], |
|
|
gender=demography["dominant_gender"][0:1], |
|
|
x=x, |
|
|
y=y, |
|
|
w=w, |
|
|
h=h, |
|
|
) |
|
|
|
|
|
img = streaming.overlay_identified_face( |
|
|
img=img, |
|
|
target_img=overlay_img, |
|
|
label="angelina", |
|
|
x=x, |
|
|
y=y, |
|
|
w=w, |
|
|
h=h, |
|
|
) |
|
|
|
|
|
plt.imshow(img[:, :, ::-1]) |
|
|
plt.show() |
|
|
|