mirror of
https://github.com/deepinsight/insightface.git
synced 2026-05-11 18:22:41 +00:00
43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
import os
|
|
|
|
import cv2
|
|
import numpy as np
|
|
from skimage import transform as trans
|
|
|
|
src = np.array([[30.2946, 51.6963], [65.5318, 51.5014], [48.0252, 71.7366],
|
|
[33.5493, 92.3655], [62.7299, 92.2041]],
|
|
dtype=np.float32)
|
|
src[:, 0] += 8.0
|
|
|
|
img_path = '/data/anxiang/datasets/IJB_release/IJBC/loose_crop'
|
|
img_path_align = '/data/anxiang/datasets/IJB_release/IJBC/loose_crop_align'
|
|
|
|
img_list_path = '/data/anxiang/datasets/IJB_release/IJBC/meta/ijbc_name_5pts_score.txt'
|
|
img_list = open(img_list_path)
|
|
files = img_list.readlines()
|
|
|
|
for img_index, each_line in enumerate(files):
|
|
if img_index % 500 == 0:
|
|
print('processing', img_index)
|
|
name_lmk_score = each_line.strip().split(' ')
|
|
img_name = os.path.join(img_path, name_lmk_score[0])
|
|
img = cv2.imread(img_name)
|
|
landmark = np.array([float(x) for x in name_lmk_score[1:-1]],
|
|
dtype=np.float32)
|
|
landmark = landmark.reshape((5, 2))
|
|
|
|
if landmark.shape[0] == 68:
|
|
landmark5 = np.zeros((5, 2), dtype=np.float32)
|
|
landmark5[0] = (landmark[36] + landmark[39]) / 2
|
|
landmark5[1] = (landmark[42] + landmark[45]) / 2
|
|
landmark5[2] = landmark[30]
|
|
landmark5[3] = landmark[48]
|
|
landmark5[4] = landmark[54]
|
|
else:
|
|
landmark5 = landmark
|
|
tform = trans.SimilarityTransform()
|
|
tform.estimate(landmark5, src)
|
|
M = tform.params[0:2, :]
|
|
img = cv2.warpAffine(img, M, (112, 112), borderValue=0.0)
|
|
cv2.imwrite(os.path.join(img_path_align, name_lmk_score[0]), img)
|