This commit is contained in:
Jia Guo
2017-11-29 17:04:05 +08:00
parent 7b42654dc1
commit 2199039ba8
6 changed files with 611 additions and 274 deletions

View File

@@ -49,13 +49,25 @@ def preprocess(img, bbox=None, landmark=None, **kwargs):
if isinstance(img, str):
img = read_image(img, **kwargs)
M = None
image_size = []
str_image_size = kwargs.get('image_size', '')
if len(str_image_size)>0:
image_size = [int(x) for x in str_image_size.split(',')]
if len(image_size)==1:
image_size = [image_size[0], image_size[0]]
assert len(image_size)==2
assert image_size[0]==112
assert image_size[0]==112 or image_size[1]==96
if landmark is not None:
assert len(image_size)==2
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 )
if image_size[1]==112:
src[:,0] += 8.0
dst = landmark.astype(np.float32)
tform = trans.SimilarityTransform()
@@ -78,16 +90,12 @@ def preprocess(img, bbox=None, landmark=None, **kwargs):
bb[1] = np.maximum(det[1]-margin/2, 0)
bb[2] = np.minimum(det[2]+margin/2, img.shape[1])
bb[3] = np.minimum(det[3]+margin/2, img.shape[0])
cropped = img[bb[1]:bb[3],bb[0]:bb[2],:]
str_image_size = kwargs.get('image_size', '')
if len(str_image_size)>0:
image_size = [int(x) for x in str_image_size.split(',')]
if len(image_size)==1:
image_size = [image_size[0], image_size[0]]
assert len(image_size)==2
scaled = cv2.resize(cropped, (image_size[1], image_size[0]))
return scaled
ret = img[bb[1]:bb[3],bb[0]:bb[2],:]
if len(image_size)>0:
ret = cv2.resize(ret, (image_size[1], image_size[0]))
return ret
else: #do align using landmark
assert len(image_size)==2
#src = src[0:3,:]
#dst = dst[0:3,:]
@@ -96,11 +104,8 @@ def preprocess(img, bbox=None, landmark=None, **kwargs):
#print(src.shape, dst.shape)
#print(src)
#print(dst)
_shape = [int(x) for x in kwargs.get('image_size').split(',')]
#print(_shape)
#M = cv2.getAffineTransform(src,dst)
#print(M)
warped = cv2.warpAffine(img,M,(_shape[1],_shape[0]), borderValue = 0.0)
warped = cv2.warpAffine(img,M,(image_size[1],image_size[0]), borderValue = 0.0)
#tform3 = trans.ProjectiveTransform()
#tform3.estimate(src, dst)