def baseface(img): dets = dlibDetector(img, 1) V = dlibPredictor(img, dets[0]) V = dlibShape2Array(V)[27:48] d, Z, transform = procrustes(U, V, scaling=True, reflection=False) T = np.array([[0, 0, 0], [0, 0, 0], [transform['translation'] [0], transform['translation'][1], 1]]) T[0:2, 0:2] = transform['rotation'] * transform['scale'] T = T[:, 0:2].T dst = cv2.warpAffine(img, T, (img.shape[1], img.shape[0])) dst = dst[0:240, 0:240, :] dst = dst[22:22+197, 22:22+197, :] dst = cv2.resize(dst, (112, 112)) return dst
def baseface(dets, img): fleft = dets.left() ftop = dets.top() fwidth = dets.width() fheight = dets.height() d = dlib.rectangle(left=fleft, top=ftop, right=fwidth + fleft, bottom=fheight+ftop) V = dlibPredictor(img, d) V = dlibShape2Array(V)[27:48] d, Z, transform = procrustes(U, V, scaling=True, reflection=False) T = np.array([[0, 0, 0], [0, 0, 0], [transform['translation'] [0], transform['translation'][1], 1]]) T[0:2, 0:2] = transform['rotation'] * transform['scale'] T = T[:, 0:2].T dst = cv2.warpAffine(img, T, (240, 240)) dst = dst[0:240, 0:240, :] dst = dst[22:22 + 197, 22:22 + 197, :] dst = cv2.resize(dst, (112, 112), interpolation=cv2.INTER_NEAREST) return dst