mirror of
https://github.com/deepinsight/insightface.git
synced 2026-05-19 07:27:52 +00:00
refine
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user