对于检测到人脸经行矫正,用于下一阶段网络的输入
import numpy as np
import cv2
class FaceWarpException(Exception):
def __str__(self):
return 'In File {}:{}'.format(__file__,super.
__str__(self))
DEFAULT_CROP_SIZE = (96, 112)
REFERENCE_FACIAL_POINTS = [
[30.29459953, 51.69630051],
[65.53179932, 51.50139999],
[48.02519989, 71.73660278],
[33.54930115, 92.3655014],
[62.72990036, 92.20410156]
]
def get_reference_facial_points(
output_size=None,
inner_padding_factor=0.0,
outer_padding=(0, 0),
default_square=True
):
tmp_5pts = np.array(REFERENCE_FACIAL_POINTS)
tmp_crop_size = np.array(DEFAULT_CROP_SIZE)
if default_square:
size_diff = max(tmp_crop_size)-tmp_crop_size
tmp_5pts += size_diff/2
tmp_crop_size +=size_diff
if (output_size and output_size[0] == tmp_crop_size[0] and
output_size[1]