Commit 307f1f77 authored by Zhichao Lu's avatar Zhichao Lu Committed by lzc5123016
Browse files

Modify the preprocessor proto and preprocessor_builder to match the arguments...

Modify the preprocessor proto and preprocessor_builder to match the arguments of the ssd_random_crop_pad_fixed_aspect_ratio preprocessor method.

PiperOrigin-RevId: 187877915
parent 07ae5c96
...@@ -256,12 +256,10 @@ def build(preprocessor_step_config): ...@@ -256,12 +256,10 @@ def build(preprocessor_step_config):
area_range = [(op.min_area, op.max_area) for op in config.operations] area_range = [(op.min_area, op.max_area) for op in config.operations]
overlap_thresh = [op.overlap_thresh for op in config.operations] overlap_thresh = [op.overlap_thresh for op in config.operations]
random_coef = [op.random_coef for op in config.operations] random_coef = [op.random_coef for op in config.operations]
min_padded_size_ratio = [ min_padded_size_ratio = [tuple(op.min_padded_size_ratio)
(op.min_padded_size_ratio[0], op.min_padded_size_ratio[1]) for op in config.operations]
for op in config.operations] max_padded_size_ratio = [tuple(op.max_padded_size_ratio)
max_padded_size_ratio = [ for op in config.operations]
(op.max_padded_size_ratio[0], op.max_padded_size_ratio[1])
for op in config.operations]
pad_color = [(op.pad_color_r, op.pad_color_g, op.pad_color_b) pad_color = [(op.pad_color_r, op.pad_color_g, op.pad_color_b)
for op in config.operations] for op in config.operations]
return (preprocessor.ssd_random_crop_pad, return (preprocessor.ssd_random_crop_pad,
...@@ -296,30 +294,29 @@ def build(preprocessor_step_config): ...@@ -296,30 +294,29 @@ def build(preprocessor_step_config):
if step_type == 'ssd_random_crop_pad_fixed_aspect_ratio': if step_type == 'ssd_random_crop_pad_fixed_aspect_ratio':
config = preprocessor_step_config.ssd_random_crop_pad_fixed_aspect_ratio config = preprocessor_step_config.ssd_random_crop_pad_fixed_aspect_ratio
kwargs = {}
aspect_ratio = config.aspect_ratio
if aspect_ratio:
kwargs['aspect_ratio'] = aspect_ratio
min_padded_size_ratio = config.min_padded_size_ratio
if min_padded_size_ratio:
if len(min_padded_size_ratio) != 2:
raise ValueError('min_padded_size_ratio should have 2 elements if set!')
kwargs['min_padded_size_ratio'] = tuple(min_padded_size_ratio)
max_padded_size_ratio = config.max_padded_size_ratio
if max_padded_size_ratio:
if len(max_padded_size_ratio) != 2:
raise ValueError('max_padded_size_ratio should have 2 elements if set!')
kwargs['max_padded_size_ratio'] = tuple(max_padded_size_ratio)
if config.operations: if config.operations:
min_object_covered = [op.min_object_covered for op in config.operations] kwargs['min_object_covered'] = [op.min_object_covered
aspect_ratio_range = [(op.min_aspect_ratio, op.max_aspect_ratio) for op in config.operations]
for op in config.operations] kwargs['aspect_ratio_range'] = [(op.min_aspect_ratio, op.max_aspect_ratio)
area_range = [(op.min_area, op.max_area) for op in config.operations] for op in config.operations]
overlap_thresh = [op.overlap_thresh for op in config.operations] kwargs['area_range'] = [(op.min_area, op.max_area)
random_coef = [op.random_coef for op in config.operations] for op in config.operations]
min_padded_size_ratio = [ kwargs['overlap_thresh'] = [op.overlap_thresh for op in config.operations]
(op.min_padded_size_ratio[0], op.min_padded_size_ratio[1]) kwargs['random_coef'] = [op.random_coef for op in config.operations]
for op in config.operations] return (preprocessor.ssd_random_crop_pad_fixed_aspect_ratio, kwargs)
max_padded_size_ratio = [
(op.max_padded_size_ratio[0], op.max_padded_size_ratio[1])
for op in config.operations]
return (preprocessor.ssd_random_crop_pad_fixed_aspect_ratio,
{
'min_object_covered': min_object_covered,
'aspect_ratio': config.aspect_ratio,
'aspect_ratio_range': aspect_ratio_range,
'area_range': area_range,
'overlap_thresh': overlap_thresh,
'random_coef': random_coef,
'min_padded_size_ratio': min_padded_size_ratio,
'max_padded_size_ratio': max_padded_size_ratio,
})
return (preprocessor.ssd_random_crop_pad_fixed_aspect_ratio, {})
raise ValueError('Unknown preprocessing step.') raise ValueError('Unknown preprocessing step.')
...@@ -532,8 +532,6 @@ class PreprocessorBuilderTest(tf.test.TestCase): ...@@ -532,8 +532,6 @@ class PreprocessorBuilderTest(tf.test.TestCase):
max_area: 1.0 max_area: 1.0
overlap_thresh: 0.0 overlap_thresh: 0.0
random_coef: 0.375 random_coef: 0.375
min_padded_size_ratio: [1.0, 1.0]
max_padded_size_ratio: [2.0, 2.0]
} }
operations { operations {
min_object_covered: 0.25 min_object_covered: 0.25
...@@ -543,10 +541,10 @@ class PreprocessorBuilderTest(tf.test.TestCase): ...@@ -543,10 +541,10 @@ class PreprocessorBuilderTest(tf.test.TestCase):
max_area: 1.0 max_area: 1.0
overlap_thresh: 0.25 overlap_thresh: 0.25
random_coef: 0.375 random_coef: 0.375
min_padded_size_ratio: [1.0, 1.0]
max_padded_size_ratio: [2.0, 2.0]
} }
aspect_ratio: 0.875 aspect_ratio: 0.875
min_padded_size_ratio: [1.0, 1.0]
max_padded_size_ratio: [2.0, 2.0]
} }
""" """
preprocessor_proto = preprocessor_pb2.PreprocessingStep() preprocessor_proto = preprocessor_pb2.PreprocessingStep()
...@@ -560,8 +558,8 @@ class PreprocessorBuilderTest(tf.test.TestCase): ...@@ -560,8 +558,8 @@ class PreprocessorBuilderTest(tf.test.TestCase):
'area_range': [(0.5, 1.0), (0.5, 1.0)], 'area_range': [(0.5, 1.0), (0.5, 1.0)],
'overlap_thresh': [0.0, 0.25], 'overlap_thresh': [0.0, 0.25],
'random_coef': [0.375, 0.375], 'random_coef': [0.375, 0.375],
'min_padded_size_ratio': [(1.0, 1.0), (1.0, 1.0)], 'min_padded_size_ratio': (1.0, 1.0),
'max_padded_size_ratio': [(2.0, 2.0), (2.0, 2.0)]}) 'max_padded_size_ratio': (2.0, 2.0)})
if __name__ == '__main__': if __name__ == '__main__':
......
...@@ -388,14 +388,6 @@ message SSDRandomCropPadFixedAspectRatioOperation { ...@@ -388,14 +388,6 @@ message SSDRandomCropPadFixedAspectRatioOperation {
// Probability a crop operation is skipped. // Probability a crop operation is skipped.
optional float random_coef = 7; optional float random_coef = 7;
// Min ratio of padded image height and width to the input image's height and
// width. Two entries per operation.
repeated float min_padded_size_ratio = 8;
// Max ratio of padded image height and width to the input image's height and
// width. Two entries per operation.
repeated float max_padded_size_ratio = 9;
} }
// Randomly crops and pads an image to a fixed aspect ratio according to: // Randomly crops and pads an image to a fixed aspect ratio according to:
...@@ -408,4 +400,12 @@ message SSDRandomCropPadFixedAspectRatio { ...@@ -408,4 +400,12 @@ message SSDRandomCropPadFixedAspectRatio {
// Aspect ratio to pad to. This value is used for all crop and pad operations. // Aspect ratio to pad to. This value is used for all crop and pad operations.
optional float aspect_ratio = 2 [default=1.0]; optional float aspect_ratio = 2 [default=1.0];
// Min ratio of padded image height and width to the input image's height and
// width. Two entries per operation.
repeated float min_padded_size_ratio = 3;
// Max ratio of padded image height and width to the input image's height and
// width. Two entries per operation.
repeated float max_padded_size_ratio = 4;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment