示例#1
0
def align_and_crop_320x250(image, landmarks):
    align_size = (250, 320)
    std_landmarks = [
        [
            85.49595008 * 0.9802594866071432,
            85.73911040000002 * 1.247223772321429 + 20 * 1.247223772321429
        ],  # left eye
        [
            168.39541376 * 0.9802594866071432,
            84.30362432000001 * 1.247223772321429 + 20 * 1.247223772321429
        ],  # right eye
        [
            127.07756863999998 * 0.9802594866071432,
            136.76120383999998 * 1.247223772321429 + 10 * 1.247223772321429
        ],  # nose tip
        [
            90.34349120000002 * 0.9802594866071432,
            174.31525376000002 * 1.247223772321429 + 10 * 1.247223772321429
        ],  # left mouth corner
        [
            166.65585920000004 * 0.9802594866071432,
            172.99233343999998 * 1.247223772321429 + 10 * 1.247223772321429
        ]
    ]  # right mouth corner
    landmarks = np.asarray(landmarks).reshape(5, 2)
    image_cropped = utils.align_and_crop(image, landmarks, std_landmarks,
                                         align_size)
    return image_cropped
示例#2
0
def align_and_crop_130x110(image, landmarks):
    align_size = (110, 130)
    std_landmarks = [
        [37.2946, 60.6963],  # left eye
        [72.5318, 60.5014],  # right eye
        [55.0252, 80.7366],  # nose tip
        [40.5493, 101.3655],  # left mouth corner
        [69.7299, 101.2041]
    ]  # right mouth corner
    landmarks = np.asarray(landmarks).reshape(5, 2)
    image_cropped = utils.align_and_crop(image, landmarks, std_landmarks,
                                         align_size)
    return image_cropped
示例#3
0
def align_and_crop_112x96(image, landmarks):
    align_size = (96, 112)
    std_landmarks = [
        [30.2946, 51.6963],  # left eye
        [65.5318, 51.5014],  # right eye
        [48.0252, 71.7366],  # nose tip
        [33.5493, 92.3655],  # left mouth corner
        [62.7299, 92.2041]
    ]  # right mouth corner
    landmarks = np.asarray(landmarks).reshape(5, 2)
    image_cropped = utils.align_and_crop(image, landmarks, std_landmarks,
                                         align_size)
    return image_cropped
示例#4
0
def align_and_crop_224x224_with_chin(image, landmarks):
    align_size = (256, 256)
    crop_size = (224, 224)
    std_landmarks = [
        [85.49595008, 85.73911040000002],  # left eye
        [168.39541376, 84.30362432000001],  # right eye
        [127.07756863999998, 136.76120383999998],  # nose tip
        [90.34349120000002, 174.31525376000002],  # left mouth corner
        [166.65585920000004, 172.99233343999998]
    ]  # right mouth corner
    landmarks = np.asarray(landmarks).reshape(5, 2)
    crop_center = (landmarks[2, 0], landmarks[2, 1] * 0.95)
    image_cropped = utils.align_and_crop(image, landmarks, std_landmarks,
                                         align_size, crop_size, crop_center)
    return image_cropped
示例#5
0
def align_and_crop_224x224_with_coord(image, landmarks, tlx, tly):
    align_size = (256, 256)
    crop_size = (224, 224)
    std_landmarks = [
        [85.49595008, 85.73911040000002 + 30],  # left eye
        [168.39541376, 84.30362432000001 + 30],  # right eye
        [127.07756863999998, 136.76120383999998 + 30],  # nose tip
        [90.34349120000002, 174.31525376000002 + 30],  # left mouth corner
        [166.65585920000004, 172.99233343999998 + 30]
    ]  # right mouth corner
    landmarks = np.asarray(landmarks).reshape(5, 2)
    for i in range(5):
        landmarks[i][0] = landmarks[i][0] - tlx
        landmarks[i][1] = landmarks[i][1] - tly
    crop_center = ((landmarks[0, 0] + landmarks[1, 0]) / 2,
                   (landmarks[0, 1] + landmarks[1, 1]) / 2)
    image_cropped = utils.align_and_crop(image, landmarks, std_landmarks,
                                         align_size, crop_size, crop_center)
    return image_cropped