Skip to content
Snippets Groups Projects

Train with synthetic documents

Merged Solene Tarride requested to merge synthetic-documents into main
All threads resolved!
1 file
+ 39
39
Compare changes
  • Side-by-side
  • Inline
+ 39
39
@@ -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(
Loading