From dde2691e2dbcfb712b54da602970a576ed39a4cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sol=C3=A8ne=20Tarride?= <starride@teklia.com> Date: Tue, 6 Dec 2022 13:23:00 +0000 Subject: [PATCH] Use helper function for padding --- dan/manager/ocr.py | 78 +++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/dan/manager/ocr.py b/dan/manager/ocr.py index eb458167..a2681cab 100644 --- a/dan/manager/ocr.py +++ b/dan/manager/ocr.py @@ -485,32 +485,25 @@ class OCRDataset(GenericDataset): ] fnt = ImageFont.truetype(font_path, font_size) text_width, text_height = fnt.getsize(text) - padding_top = int( - rand_uniform( - config["padding_top_ratio_min"], config["padding_top_ratio_max"] - ) - * text_height + padding_top = get_random_padding( + config["padding_top_ratio_min"], + config["padding_top_ratio_max"], + text_height, ) - padding_bottom = int( - rand_uniform( - config["padding_bottom_ratio_min"], - config["padding_bottom_ratio_max"], - ) - * text_height + padding_bottom = get_random_padding( + config["padding_bottom_ratio_min"], + config["padding_bottom_ratio_max"], + text_height, ) - padding_left = int( - rand_uniform( - config["padding_left_ratio_min"], - config["padding_left_ratio_max"], - ) - * text_width + padding_left = get_random_padding( + config["padding_left_ratio_min"], + config["padding_left_ratio_max"], + text_width, ) - padding_right = int( - rand_uniform( - config["padding_right_ratio_min"], - config["padding_right_ratio_max"], - ) - * text_width + padding_right = get_random_padding( + config["padding_right_ratio_min"], + config["padding_right_ratio_max"], + text_width, ) padding = [padding_top, padding_bottom, padding_left, padding_right] images.append( @@ -671,6 +664,13 @@ class OCRCollateFunction: return formatted_batch_data +def get_random_padding(min_ratio, max_ratio, text_size): + """ + Compute random padding value as a ratio of text width or height + """ + return int(rand_uniform(min_ratio, max_ratio) * text_size) + + def generate_typed_text_line_image( text, config, bg_color=(255, 255, 255), txt_color=(0, 0, 0) ): @@ -686,25 +686,25 @@ def generate_typed_text_line_image( fnt = ImageFont.truetype(font_path, font_size) text_width, text_height = fnt.getsize(text) - padding_top = int( - rand_uniform(config["padding_top_ratio_min"], config["padding_top_ratio_max"]) - * text_height + padding_top = get_random_padding( + config["padding_top_ratio_min"], + config["padding_top_ratio_max"], + text_height, ) - padding_bottom = int( - rand_uniform( - config["padding_bottom_ratio_min"], config["padding_bottom_ratio_max"] - ) - * text_height + padding_bottom = get_random_padding( + config["padding_bottom_ratio_min"], + config["padding_bottom_ratio_max"], + text_height, ) - padding_left = int( - rand_uniform(config["padding_left_ratio_min"], config["padding_left_ratio_max"]) - * text_width + padding_left = get_random_padding( + config["padding_left_ratio_min"], + config["padding_left_ratio_max"], + text_width, ) - padding_right = int( - rand_uniform( - config["padding_right_ratio_min"], config["padding_right_ratio_max"] - ) - * text_width + padding_right = get_random_padding( + config["padding_right_ratio_min"], + config["padding_right_ratio_max"], + text_width, ) padding = [padding_top, padding_bottom, padding_left, padding_right] return generate_typed_text_line_image_from_params( -- GitLab