b1dc0a31 by jiangwenqiang

update crop face

1 parent d77bff18
......@@ -203,7 +203,8 @@ class Face_Detector(object):
(resize_b[13], resize_b[14])])
# import time
# cv2.imwrite('results/0.jpg', frame)
# image_name = str(time.time()) + '.jpg'
# cv2.imwrite('results/{}'.format(image_name), frame)
return face_bboxes, face_landmarks, max_index
......
......@@ -17,7 +17,7 @@ class Face_Recognizer(object):
for i in range(len(imgs)):
img = imgs[i]
# img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = img.astype(np.float)
img = (img / 255. - 0.5) / 0.5
img = img.transpose(2, 0, 1)
......
......@@ -24,10 +24,16 @@ def preprocess(image, landmarks):
warped = cv2.warpAffine(image, M, (112, 112), borderValue=0.0)
return warped
def get_face(image, bbox):
print(bbox)
face_area = image[bbox[1]:bbox[3], bbox[0]:bbox[2], ]
norm_image = cv2.cvtColor(face_area, cv2.COLOR_BGR2RGB).astype(np.float32)
norm_image = cv2.resize(norm_image, (112, 112))
return norm_image
def get_norm_face(image, landmarks):
norm_image = preprocess(image, landmarks)
norm_image = cv2.cvtColor(norm_image, cv2.COLOR_BGR2RGB).astype(np.float32)
# norm_image = cv2.cvtColor(norm_image, cv2.COLOR_BGR2RGB).astype(np.float32)
norm_image = cv2.resize(norm_image, (112, 112))
# norm_image = norm_image.transpose((2, 0, 1))
# norm_image = norm_image.transpose((1,2,0))
......@@ -47,7 +53,7 @@ if __name__ == '__main__':
face_detector = Face_Detector(det_face_model_path)
face_recognizer = Face_Recognizer(reg_face_id_model_path)
for i in range(10):
for i in range(1):
id_image = cv2.imread(id_image_path)
life_image = cv2.imread(life_image_path)
......@@ -55,13 +61,17 @@ if __name__ == '__main__':
life_face_bboxes, life_face_landmarks, life_max_idx = face_detector.detect(life_image, face_det_thr)
print(id_face_bboxes)
print(life_face_bboxes)
# id_norm_image = get_face(id_image, id_face_bboxes[id_max_idx])
id_norm_image = get_norm_face(id_image, id_face_landmarks[id_max_idx])
id_norm_image = np.transpose(id_norm_image, (2, 0, 1))
cv2.imwrite('results/face1.jpg', id_norm_image)
# id_norm_image = np.transpose(id_norm_image, (2, 0, 1))
norm_images = [id_norm_image]
for j in range(len(life_face_landmarks)):
life_norm_image = get_norm_face(life_image, life_face_landmarks[j])
life_norm_image = np.transpose(life_norm_image, (2, 0, 1))
cv2.imwrite('results/face2.jpg', life_norm_image)
# life_norm_image = np.transpose(life_norm_image, (2, 0, 1))
# life_norm_image = get_face(life_image, life_face_bboxes[j])
norm_images.append(life_norm_image)
embeddings = face_recognizer.recognize(norm_images)
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!