Skip to content

Commit 88756a1

Browse files
committed
fix preprocessor builder to pass correct kwargs to random_crop_pad op.
1 parent 08c0b30 commit 88756a1

File tree

2 files changed

+51
-19
lines changed

2 files changed

+51
-19
lines changed

research/object_detection/builders/preprocessor_builder.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -187,27 +187,28 @@ def build(preprocessor_step_config):
187187
config = preprocessor_step_config.random_crop_pad_image
188188
min_padded_size_ratio = config.min_padded_size_ratio
189189
if min_padded_size_ratio and len(min_padded_size_ratio) != 2:
190-
raise ValueError('min_padded_size_ratio should have 3 elements if set!')
190+
raise ValueError('min_padded_size_ratio should have 2 elements if set!')
191191
max_padded_size_ratio = config.max_padded_size_ratio
192192
if max_padded_size_ratio and len(max_padded_size_ratio) != 2:
193-
raise ValueError('max_padded_size_ratio should have 3 elements if set!')
193+
raise ValueError('max_padded_size_ratio should have 2 elements if set!')
194194
pad_color = config.pad_color
195195
if pad_color and len(pad_color) != 3:
196196
raise ValueError('pad_color should have 3 elements if set!')
197-
return (preprocessor.random_crop_pad_image,
198-
{
199-
'min_object_covered': config.min_object_covered,
200-
'aspect_ratio_range': (config.min_aspect_ratio,
201-
config.max_aspect_ratio),
202-
'area_range': (config.min_area, config.max_area),
203-
'overlap_thresh': config.overlap_thresh,
204-
'random_coef': config.random_coef,
205-
'min_padded_size_ratio': (min_padded_size_ratio if
206-
min_padded_size_ratio else None),
207-
'max_padded_size_ratio': (max_padded_size_ratio if
208-
max_padded_size_ratio else None),
209-
'pad_color': (pad_color if pad_color else None),
210-
})
197+
kwargs = {
198+
'min_object_covered': config.min_object_covered,
199+
'aspect_ratio_range': (config.min_aspect_ratio,
200+
config.max_aspect_ratio),
201+
'area_range': (config.min_area, config.max_area),
202+
'overlap_thresh': config.overlap_thresh,
203+
'random_coef': config.random_coef,
204+
}
205+
if min_padded_size_ratio:
206+
kwargs['min_padded_size_ratio'] = tuple(min_padded_size_ratio)
207+
if max_padded_size_ratio:
208+
kwargs['max_padded_size_ratio'] = tuple(max_padded_size_ratio)
209+
if pad_color:
210+
kwargs['pad_color'] = tuple(pad_color)
211+
return (preprocessor.random_crop_pad_image, kwargs)
211212

212213
if step_type == 'random_resize_method':
213214
config = preprocessor_step_config.random_resize_method

research/object_detection/builders/preprocessor_builder_test.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,40 @@ def test_build_random_crop_pad_image(self):
274274
'area_range': (0.25, 0.875),
275275
'overlap_thresh': 0.5,
276276
'random_coef': 0.125,
277-
'min_padded_size_ratio': None,
278-
'max_padded_size_ratio': None,
279-
'pad_color': None,
277+
})
278+
279+
def test_build_random_crop_pad_image_with_optional_parameters(self):
280+
preprocessor_text_proto = """
281+
random_crop_pad_image {
282+
min_object_covered: 0.75
283+
min_aspect_ratio: 0.75
284+
max_aspect_ratio: 1.5
285+
min_area: 0.25
286+
max_area: 0.875
287+
overlap_thresh: 0.5
288+
random_coef: 0.125
289+
min_padded_size_ratio: 0.5
290+
min_padded_size_ratio: 0.75
291+
max_padded_size_ratio: 0.5
292+
max_padded_size_ratio: 0.75
293+
pad_color: 0.5
294+
pad_color: 0.5
295+
pad_color: 1.0
296+
}
297+
"""
298+
preprocessor_proto = preprocessor_pb2.PreprocessingStep()
299+
text_format.Merge(preprocessor_text_proto, preprocessor_proto)
300+
function, args = preprocessor_builder.build(preprocessor_proto)
301+
self.assertEqual(function, preprocessor.random_crop_pad_image)
302+
self.assertEqual(args, {
303+
'min_object_covered': 0.75,
304+
'aspect_ratio_range': (0.75, 1.5),
305+
'area_range': (0.25, 0.875),
306+
'overlap_thresh': 0.5,
307+
'random_coef': 0.125,
308+
'min_padded_size_ratio': (0.5, 0.75),
309+
'max_padded_size_ratio': (0.5, 0.75),
310+
'pad_color': (0.5, 0.5, 1.0)
280311
})
281312

282313
def test_build_random_crop_to_aspect_ratio(self):

0 commit comments

Comments
 (0)