def __init__(self, haar_file = '../resources/haarcascade_frontalface_default.xml', lbp_file = '../resources/lbpcascade_frontalface.xml', fidu_model_file = '../resources/model_ang_0.txt', fidu_exec_dir = '../resources/'): ''' Constructor ''' self.face_finder = CascadeFaceFinder(haar_file = haar_file, lbp_file = lbp_file) self.aligner = AffineAligner(fidu_model_file = fidu_model_file) self.fidu_exec_dir = fidu_exec_dir self.valid_angles = [-45,-30,-15,0,15,30,45]
def testAffineAlign(self): aligner = AffineAligner(fidu_model_file='../resources/model_ang_0.txt') img_files = [ './resources/affine_align/Meryl_Streep_0013.jpg', './resources/affine_align/Fayssal_Mekdad_0002.jpg' ] for img_file in img_files: img_file = os.path.abspath(img_file) detect_landmarks(fname=img_file) fidu_file = img_file.replace('.jpg', '.cfidu') img = cv2.imread(img_file) score, yaw_angle, fidu_points = read_fidu(fidu_file) aligned_img, R = aligner.align(img, fidu_points) aligned_img_cpy = aligned_img.copy() draw_fidu(img, fidu_points) fidu_points_in_aligned = unwarp_fidu(orig_fidu_points=fidu_points, unwarp_mat=R) draw_fidu(aligned_img_cpy, fidu_points_in_aligned, radius=9, color=(255, 0, 0), thickness=3) cv2.imshow('padded_face with landmarks', img) cv2.imshow( 'aligned_face', cv2.resize(aligned_img, (320, 320), interpolation=cv2.INTER_CUBIC)) cv2.imshow( 'aligned_face with landmarks', cv2.resize(aligned_img_cpy, (320, 320), interpolation=cv2.INTER_CUBIC)) cv2.waitKey()