提交 e7d981b6 编写于 作者: L LDOUBLEV

add resize class and lock seed

上级 f262e33e
...@@ -76,10 +76,12 @@ Train: ...@@ -76,10 +76,12 @@ Train:
- { 'type': Fliplr, 'args': { 'p': 0.5 } } - { 'type': Fliplr, 'args': { 'p': 0.5 } }
- { 'type': Affine, 'args': { 'rotate': [-10, 10] } } - { 'type': Affine, 'args': { 'rotate': [-10, 10] } }
- { 'type': Resize, 'args': { 'size': [0.5, 3] } } - { 'type': Resize, 'args': { 'size': [0.5, 3] } }
- EastRandomCropData: - Resize:
size: [640, 640] size: [640, 640]
max_tries: 50 # - EastRandomCropData:
keep_ratio: true # size: [640, 640]
# max_tries: 50
# keep_ratio: true
- MakeBorderMap: - MakeBorderMap:
shrink_ratio: 0.4 shrink_ratio: 0.4
thresh_min: 0.3 thresh_min: 0.3
......
...@@ -112,6 +112,34 @@ class KeepKeys(object): ...@@ -112,6 +112,34 @@ class KeepKeys(object):
return data_list return data_list
class Resize(object):
def __init__(self, size=(640, 640), **kwargs):
self.size = size
def resize_image(self, img):
resize_h, resize_w = self.size
ori_h, ori_w = img.shape[:2] # (h, w, c)
ratio_h = float(resize_h) / ori_h
ratio_w = float(resize_w) / ori_w
img = cv2.resize(img, (int(resize_w), int(resize_h)))
return img, [ratio_h, ratio_w]
def __call__(self, data):
img = data['image']
text_polys = data['polys']
img_resize, [ratio_h, ratio_w] = self.resize_image(img)
new_boxes = []
for box in text_polys:
new_box = []
for cord in box:
new_box.append([cord[0] * ratio_w, cord[1] * ratio_h])
new_boxes.append(new_box)
data['image'] = img_resize
data['polys'] = np.array(new_boxes, dtype=np.float32)
return data
class DetResizeForTest(object): class DetResizeForTest(object):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super(DetResizeForTest, self).__init__() super(DetResizeForTest, self).__init__()
...@@ -183,7 +211,7 @@ class DetResizeForTest(object): ...@@ -183,7 +211,7 @@ class DetResizeForTest(object):
else: else:
ratio = 1. ratio = 1.
elif self.limit_type == 'resize_long': elif self.limit_type == 'resize_long':
ratio = float(limit_side_len) / max(h,w) ratio = float(limit_side_len) / max(h, w)
else: else:
raise Exception('not support limit type, image ') raise Exception('not support limit type, image ')
resize_h = int(h * ratio) resize_h = int(h * ratio)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册