From 3da3c09af54e90fd02548e26351c4b5a5d0eb3aa Mon Sep 17 00:00:00 2001 From: yumjunstar Date: Wed, 9 Aug 2023 10:23:34 +0000 Subject: [PATCH 1/8] Add debug mode to prevent annoying log message while generating images --- trdg/data_generator.py | 11 +++-- trdg/generators/from_strings.py | 79 +++++++++++++++++++-------------- 2 files changed, 52 insertions(+), 38 deletions(-) diff --git a/trdg/data_generator.py b/trdg/data_generator.py index 75a79467f..e32958d79 100644 --- a/trdg/data_generator.py +++ b/trdg/data_generator.py @@ -54,6 +54,7 @@ def generate( stroke_fill: str = "#282828", image_mode: str = "RGB", output_bboxes: int = 0, + debug = False ) -> Image: image = None @@ -189,10 +190,11 @@ def generate( background_img_px_mean = sum(background_img_st.mean) / 3 if abs(resized_img_px_mean - background_img_px_mean) < 15: - print("value of mean pixel is too similar. Ignore this image") + if debug: + print("value of mean pixel is too similar. Ignore this image") - print("resized_img_st \n {}".format(resized_img_st.mean)) - print("background_img_st \n {}".format(background_img_st.mean)) + print("resized_img_st \n {}".format(resized_img_st.mean)) + print("background_img_st \n {}".format(background_img_st.mean)) return except Exception as err: @@ -258,7 +260,8 @@ def generate( elif name_format == 2: name = str(index) else: - print("{} is not a valid name format. Using default.".format(name_format)) + if debug: + print("{} is not a valid name format. Using default.".format(name_format)) name = "{}_{}".format(text, str(index)) name = make_filename_valid(name, allow_unicode=True) diff --git a/trdg/generators/from_strings.py b/trdg/generators/from_strings.py index ef7d22efa..36c4b6033 100644 --- a/trdg/generators/from_strings.py +++ b/trdg/generators/from_strings.py @@ -45,6 +45,8 @@ def __init__( image_mode: str = "RGB", output_bboxes: int = 0, rtl: bool = False, + fail_retry_count: int = 10, + debug = False, ): self.count = count self.strings = strings @@ -89,7 +91,8 @@ def __init__( self.stroke_width = stroke_width self.stroke_fill = stroke_fill self.image_mode = image_mode - + self.fail_retry_count = fail_retry_count + self.debug = debug def __iter__(self): return self @@ -100,39 +103,47 @@ def next(self): if self.generated_count == self.count: raise StopIteration self.generated_count += 1 - return ( - FakeTextDataGenerator.generate( - self.generated_count, - self.strings[(self.generated_count - 1) % len(self.strings)], - self.fonts[(self.generated_count - 1) % len(self.fonts)], - None, - self.size, - None, - self.skewing_angle, - self.random_skew, - self.blur, - self.random_blur, - self.background_type, - self.distorsion_type, - self.distorsion_orientation, - self.is_handwritten, - 0, - self.width, - self.alignment, - self.text_color, - self.orientation, - self.space_width, - self.character_spacing, - self.margins, - self.fit, - self.output_mask, - self.word_split, - self.image_dir, - self.stroke_width, - self.stroke_fill, - self.image_mode, - self.output_bboxes, - ), + generated_image = None + for tries in range(self.fail_retry_count): + generated_image = FakeTextDataGenerator.generate( + self.generated_count, + self.strings[(self.generated_count - 1) % len(self.strings)], + self.fonts[(self.generated_count - 1) % len(self.fonts)], + None, + self.size, + None, + self.skewing_angle, + self.random_skew, + self.blur, + self.random_blur, + self.background_type, + self.distorsion_type, + self.distorsion_orientation, + self.is_handwritten, + 0, + self.width, + self.alignment, + self.text_color, + self.orientation, + self.space_width, + self.character_spacing, + self.margins, + self.fit, + self.output_mask, + self.word_split, + self.image_dir, + self.stroke_width, + self.stroke_fill, + self.image_mode, + self.output_bboxes, + self.debug + ) + if generated_image is not None: + break + elif self.debug: + print (f"Try {tries + 1} to generate image") + + return (generated_image, self.orig_strings[(self.generated_count - 1) % len(self.orig_strings)] if self.rtl else self.strings[(self.generated_count - 1) % len(self.strings)], From b2a233507db5e5a421e85f545098a48499fd46de Mon Sep 17 00:00:00 2001 From: AOJUCBJD Date: Wed, 9 Aug 2023 22:56:24 +0900 Subject: [PATCH 2/8] Add Fail message --- trdg/generators/from_strings.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/trdg/generators/from_strings.py b/trdg/generators/from_strings.py index 36c4b6033..d98fcfccc 100644 --- a/trdg/generators/from_strings.py +++ b/trdg/generators/from_strings.py @@ -104,11 +104,13 @@ def next(self): raise StopIteration self.generated_count += 1 generated_image = None + current_string = self.strings[(self.generated_count - 1) % len(self.strings)] + current_font = self.fonts[(self.generated_count - 1) % len(self.fonts)] for tries in range(self.fail_retry_count): generated_image = FakeTextDataGenerator.generate( self.generated_count, - self.strings[(self.generated_count - 1) % len(self.strings)], - self.fonts[(self.generated_count - 1) % len(self.fonts)], + current_string, + current_font, None, self.size, None, @@ -143,6 +145,9 @@ def next(self): elif self.debug: print (f"Try {tries + 1} to generate image") + if generated_image is None: + print (f"Tried {self.fail_retry_count} times to generate image of {current_string}") + print ("But failed") return (generated_image, self.orig_strings[(self.generated_count - 1) % len(self.orig_strings)] if self.rtl From 24f9db2747ece7c6ddd55a3defa3f1ba939559d4 Mon Sep 17 00:00:00 2001 From: yumjunstar Date: Wed, 9 Aug 2023 14:50:31 +0000 Subject: [PATCH 3/8] modified --- trdg/generators/from_strings.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/trdg/generators/from_strings.py b/trdg/generators/from_strings.py index d98fcfccc..07703152e 100644 --- a/trdg/generators/from_strings.py +++ b/trdg/generators/from_strings.py @@ -45,7 +45,7 @@ def __init__( image_mode: str = "RGB", output_bboxes: int = 0, rtl: bool = False, - fail_retry_count: int = 10, + fail_retry_count: int = 5, debug = False, ): self.count = count @@ -106,7 +106,8 @@ def next(self): generated_image = None current_string = self.strings[(self.generated_count - 1) % len(self.strings)] current_font = self.fonts[(self.generated_count - 1) % len(self.fonts)] - for tries in range(self.fail_retry_count): + tries = 0 + while tries < self.fail_retry_count: generated_image = FakeTextDataGenerator.generate( self.generated_count, current_string, @@ -144,14 +145,17 @@ def next(self): break elif self.debug: print (f"Try {tries + 1} to generate image") + tries += 1 if generated_image is None: print (f"Tried {self.fail_retry_count} times to generate image of {current_string}") - print ("But failed") + print (f"{current_font} But failed") + elif generated_image is not None and tries > 1: + print (f"Tries {tries} times Succeed of {current_string}, {current_font}") return (generated_image, self.orig_strings[(self.generated_count - 1) % len(self.orig_strings)] if self.rtl - else self.strings[(self.generated_count - 1) % len(self.strings)], + else self.strings[current_string], ) def reshape_rtl(self, strings: list, rtl_shaper: ArabicReshaper): From 754b5327f1b1e0bd86b2a17940e2a8650063c521 Mon Sep 17 00:00:00 2001 From: yumjunstar Date: Wed, 9 Aug 2023 14:51:28 +0000 Subject: [PATCH 4/8] modified --- trdg/generators/from_strings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trdg/generators/from_strings.py b/trdg/generators/from_strings.py index 07703152e..fea81ebb5 100644 --- a/trdg/generators/from_strings.py +++ b/trdg/generators/from_strings.py @@ -113,7 +113,7 @@ def next(self): current_string, current_font, None, - self.size, + c self.size, None, self.skewing_angle, self.random_skew, From 0ce7c05477ac2a1768e09ae68811fce2d69aea47 Mon Sep 17 00:00:00 2001 From: yumjunstar Date: Wed, 9 Aug 2023 14:52:04 +0000 Subject: [PATCH 5/8] fix error --- trdg/generators/from_strings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trdg/generators/from_strings.py b/trdg/generators/from_strings.py index fea81ebb5..07703152e 100644 --- a/trdg/generators/from_strings.py +++ b/trdg/generators/from_strings.py @@ -113,7 +113,7 @@ def next(self): current_string, current_font, None, - c self.size, + self.size, None, self.skewing_angle, self.random_skew, From 2e541055324a1e1f1bc9d7530831898a1d666c69 Mon Sep 17 00:00:00 2001 From: yumjunstar Date: Wed, 9 Aug 2023 14:54:38 +0000 Subject: [PATCH 6/8] error fix --- trdg/generators/from_strings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trdg/generators/from_strings.py b/trdg/generators/from_strings.py index 07703152e..04e156d85 100644 --- a/trdg/generators/from_strings.py +++ b/trdg/generators/from_strings.py @@ -155,7 +155,7 @@ def next(self): return (generated_image, self.orig_strings[(self.generated_count - 1) % len(self.orig_strings)] if self.rtl - else self.strings[current_string], + else current_string, ) def reshape_rtl(self, strings: list, rtl_shaper: ArabicReshaper): From c9feffe4fd1a4dfc46cd301ef6b021d4ddade3f4 Mon Sep 17 00:00:00 2001 From: yumjunstar Date: Wed, 9 Aug 2023 15:17:12 +0000 Subject: [PATCH 7/8] Test --- trdg/generators/from_strings.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/trdg/generators/from_strings.py b/trdg/generators/from_strings.py index 04e156d85..b2ff12cfa 100644 --- a/trdg/generators/from_strings.py +++ b/trdg/generators/from_strings.py @@ -45,7 +45,7 @@ def __init__( image_mode: str = "RGB", output_bboxes: int = 0, rtl: bool = False, - fail_retry_count: int = 5, + fail_retry_count: int = 100, debug = False, ): self.count = count @@ -150,8 +150,10 @@ def next(self): if generated_image is None: print (f"Tried {self.fail_retry_count} times to generate image of {current_string}") print (f"{current_font} But failed") + elif generated_image is not None and tries > 1: print (f"Tries {tries} times Succeed of {current_string}, {current_font}") + return (generated_image, self.orig_strings[(self.generated_count - 1) % len(self.orig_strings)] if self.rtl From 3f01d54d66585153d0025d978bfaa9272ad1f2d9 Mon Sep 17 00:00:00 2001 From: yumjunstar Date: Thu, 10 Aug 2023 16:41:08 +0000 Subject: [PATCH 8/8] Fix error --- trdg/computer_text_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trdg/computer_text_generator.py b/trdg/computer_text_generator.py index eb016e2ef..e35a1a680 100644 --- a/trdg/computer_text_generator.py +++ b/trdg/computer_text_generator.py @@ -15,7 +15,7 @@ "0xe4d", "0xe4e", ] -TH_UNDER_VOWELS = ["0xe38", "0xe39", "\0xe3A"] +TH_UNDER_VOWELS = ["0xe38", "0xe39", "0xe3A"] TH_UPPER_VOWELS = ["0xe31", "0xe34", "0xe35", "0xe36", "0xe37"]