提交 1d48e440 编写于 作者: J jiangjiajun

modify seg transform:

上级 2a9b2fcf
...@@ -396,13 +396,13 @@ class DeepLabv3p(BaseAPI): ...@@ -396,13 +396,13 @@ class DeepLabv3p(BaseAPI):
fetch_list=list(self.test_outputs.values())) fetch_list=list(self.test_outputs.values()))
pred = result[0] pred = result[0]
pred = np.squeeze(pred).astype('uint8') pred = np.squeeze(pred).astype('uint8')
keys = list(im_info.keys()) for info in im_info[::-1]:
for k in keys[::-1]: if info[0] == 'resize':
if k == 'shape_before_resize': w, h = info[1][1], info[1][0]
h, w = im_info[k][0], im_info[k][1]
pred = cv2.resize(pred, (w, h), cv2.INTER_NEAREST) pred = cv2.resize(pred, (w, h), cv2.INTER_NEAREST)
elif k == 'shape_before_padding': elif info[0] == 'padding':
h, w = im_info[k][0], im_info[k][1] w, h = info[1][1], info[1][0]
pred = pred[0:h, 0:w] pred = pred[0:h, 0:w]
else:
raise Exception("Unexpected info '{}' in im_info".format(info[0]))
return {'label_map': pred, 'score_map': result[1]} return {'label_map': pred, 'score_map': result[1]}
...@@ -48,9 +48,10 @@ class Compose: ...@@ -48,9 +48,10 @@ class Compose:
""" """
Args: Args:
im (str/np.ndarray): 图像路径/图像np.ndarray数据。 im (str/np.ndarray): 图像路径/图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息,dict中的字段如下: im_info (list): 存储图像reisze或padding前的shape信息,如
- shape_before_resize (tuple): 图像resize之前的大小(h, w)。 [('resize', [200, 300]), ('padding', [400, 600])]表示
- shape_before_padding (tuple): 图像padding之前的大小(h, w)。 图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (str/np.ndarray): 标注图像路径/标注图像np.ndarray数据。 label (str/np.ndarray): 标注图像路径/标注图像np.ndarray数据。
Returns: Returns:
...@@ -58,7 +59,7 @@ class Compose: ...@@ -58,7 +59,7 @@ class Compose:
""" """
if im_info is None: if im_info is None:
im_info = dict() im_info = list()
try: try:
im = cv2.imread(im).astype('float32') im = cv2.imread(im).astype('float32')
except: except:
...@@ -93,7 +94,10 @@ class RandomHorizontalFlip: ...@@ -93,7 +94,10 @@ class RandomHorizontalFlip:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -125,7 +129,10 @@ class RandomVerticalFlip: ...@@ -125,7 +129,10 @@ class RandomVerticalFlip:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -191,7 +198,10 @@ class Resize: ...@@ -191,7 +198,10 @@ class Resize:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -208,7 +218,7 @@ class Resize: ...@@ -208,7 +218,7 @@ class Resize:
""" """
if im_info is None: if im_info is None:
im_info = OrderedDict() im_info = OrderedDict()
im_info['shape_before_resize'] = im.shape[:2] im_info.append(('resize', im.shape[:2]))
if not isinstance(im, np.ndarray): if not isinstance(im, np.ndarray):
raise TypeError("ResizeImage: image type is not np.ndarray.") raise TypeError("ResizeImage: image type is not np.ndarray.")
...@@ -264,7 +274,10 @@ class ResizeByLong: ...@@ -264,7 +274,10 @@ class ResizeByLong:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -277,7 +290,7 @@ class ResizeByLong: ...@@ -277,7 +290,7 @@ class ResizeByLong:
if im_info is None: if im_info is None:
im_info = OrderedDict() im_info = OrderedDict()
im_info['shape_before_resize'] = im.shape[:2] im_info.append(('resize', im.shape[:2]))
im = resize_long(im, self.long_size) im = resize_long(im, self.long_size)
if label is not None: if label is not None:
label = resize_long(label, self.long_size, cv2.INTER_NEAREST) label = resize_long(label, self.long_size, cv2.INTER_NEAREST)
...@@ -311,7 +324,10 @@ class ResizeRangeScaling: ...@@ -311,7 +324,10 @@ class ResizeRangeScaling:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -364,7 +380,10 @@ class ResizeStepScaling: ...@@ -364,7 +380,10 @@ class ResizeStepScaling:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -432,7 +451,10 @@ class Normalize: ...@@ -432,7 +451,10 @@ class Normalize:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -486,7 +508,10 @@ class Padding: ...@@ -486,7 +508,10 @@ class Padding:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -501,7 +526,7 @@ class Padding: ...@@ -501,7 +526,7 @@ class Padding:
""" """
if im_info is None: if im_info is None:
im_info = OrderedDict() im_info = OrderedDict()
im_info['shape_before_padding'] = im.shape[:2] im_info.append(('padding', im.shape[:2]))
im_height, im_width = im.shape[0], im.shape[1] im_height, im_width = im.shape[0], im.shape[1]
if isinstance(self.target_size, int): if isinstance(self.target_size, int):
...@@ -574,7 +599,10 @@ class RandomPaddingCrop: ...@@ -574,7 +599,10 @@ class RandomPaddingCrop:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -650,7 +678,10 @@ class RandomBlur: ...@@ -650,7 +678,10 @@ class RandomBlur:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -703,7 +734,10 @@ class RandomRotate: ...@@ -703,7 +734,10 @@ class RandomRotate:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -765,7 +799,10 @@ class RandomScaleAspect: ...@@ -765,7 +799,10 @@ class RandomScaleAspect:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -847,7 +884,10 @@ class RandomDistort: ...@@ -847,7 +884,10 @@ class RandomDistort:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
...@@ -922,7 +962,10 @@ class ArrangeSegmenter: ...@@ -922,7 +962,10 @@ class ArrangeSegmenter:
""" """
Args: Args:
im (np.ndarray): 图像np.ndarray数据。 im (np.ndarray): 图像np.ndarray数据。
im_info (dict): 存储与图像相关的信息。 im_info (list): 存储图像reisze或padding前的shape信息,如
[('resize', [200, 300]), ('padding', [400, 600])]表示
图像在过resize前shape为(200, 300), 过padding前shape为
(400, 600)
label (np.ndarray): 标注图像np.ndarray数据。 label (np.ndarray): 标注图像np.ndarray数据。
Returns: Returns:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册