From 223c8025b47d40225674619aafd3ec7d4d052f9b Mon Sep 17 00:00:00 2001 From: Felix Date: Thu, 12 Oct 2023 16:36:21 +0200 Subject: [PATCH 1/4] change antialias to true --- doctr/models/preprocessor/tensorflow.py | 2 +- doctr/transforms/modules/tensorflow.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doctr/models/preprocessor/tensorflow.py b/doctr/models/preprocessor/tensorflow.py index b2321654ce..31482cfcc2 100644 --- a/doctr/models/preprocessor/tensorflow.py +++ b/doctr/models/preprocessor/tensorflow.py @@ -106,7 +106,7 @@ def __call__(self, x: Union[tf.Tensor, np.ndarray, List[Union[tf.Tensor, np.ndar x = tf.image.convert_image_dtype(x, dtype=tf.float32) # Resizing if (x.shape[1], x.shape[2]) != self.resize.output_size: - x = tf.image.resize(x, self.resize.output_size, method=self.resize.method) + x = tf.image.resize(x, self.resize.output_size, method=self.resize.method, antialias=True) batches = [x] diff --git a/doctr/transforms/modules/tensorflow.py b/doctr/transforms/modules/tensorflow.py index 7d4a4c7731..75b9cbe3ae 100644 --- a/doctr/transforms/modules/tensorflow.py +++ b/doctr/transforms/modules/tensorflow.py @@ -106,7 +106,7 @@ def __call__( ) -> Union[tf.Tensor, Tuple[tf.Tensor, np.ndarray]]: input_dtype = img.dtype - img = tf.image.resize(img, self.wanted_size, self.method, self.preserve_aspect_ratio) + img = tf.image.resize(img, self.wanted_size, self.method, self.preserve_aspect_ratio, antialias=True) # It will produce an un-padded resized image, with a side shorter than wanted if we preserve aspect ratio raw_shape = img.shape[:2] if self.preserve_aspect_ratio: From 498dbec4c52dcd87fd67cdb2df7390321eb028af Mon Sep 17 00:00:00 2001 From: Felix Date: Fri, 13 Oct 2023 13:53:36 +0200 Subject: [PATCH 2/4] update --- tests/tensorflow/test_models_preprocessor_tf.py | 2 +- tests/tensorflow/test_transforms_tf.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/tensorflow/test_models_preprocessor_tf.py b/tests/tensorflow/test_models_preprocessor_tf.py index 96362a5427..941c803229 100644 --- a/tests/tensorflow/test_models_preprocessor_tf.py +++ b/tests/tensorflow/test_models_preprocessor_tf.py @@ -40,5 +40,5 @@ def test_preprocessor(batch_size, output_size, input_tensor, expected_batches, e assert all(isinstance(b, tf.Tensor) for b in out) assert all(b.dtype == tf.float32 for b in out) assert all(b.shape[1:3] == output_size for b in out) - assert all(tf.math.reduce_all(b == expected_value) for b in out) + assert all(tf.math.reduce_all(tf.math.abs(b - expected_value) < 1e-6) for b in out) assert len(repr(processor).split("\n")) == 4 diff --git a/tests/tensorflow/test_transforms_tf.py b/tests/tensorflow/test_transforms_tf.py index bc801f3ddc..6b7e3affbd 100644 --- a/tests/tensorflow/test_transforms_tf.py +++ b/tests/tensorflow/test_transforms_tf.py @@ -14,7 +14,7 @@ def test_resize(): input_t = tf.cast(tf.fill([64, 64, 3], 1), dtype=tf.float32) out = transfo(input_t) - assert tf.reduce_all(out == 1) + assert tf.math.reduce_all(tf.math.abs(out - 1) < 1e-6) assert out.shape[:2] == output_size assert repr(transfo) == f"Resize(output_size={output_size}, method='bilinear')" @@ -24,7 +24,7 @@ def test_resize(): assert not tf.reduce_all(out == 1) # Asymetric padding - assert tf.reduce_all(out[-1] == 0) and tf.reduce_all(out[0] == 1) + assert tf.reduce_all(out[-1] == 0) and tf.math.reduce_all(tf.math.abs(out[0] - 1) < 1e-6) assert out.shape[:2] == output_size # Symetric padding From 537e93cdf403cecad48b565628348afd42439e5a Mon Sep 17 00:00:00 2001 From: Felix Date: Fri, 13 Oct 2023 15:31:33 +0200 Subject: [PATCH 3/4] update --- doctr/models/preprocessor/tensorflow.py | 4 +++- doctr/transforms/modules/tensorflow.py | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/doctr/models/preprocessor/tensorflow.py b/doctr/models/preprocessor/tensorflow.py index 31482cfcc2..9d777d623a 100644 --- a/doctr/models/preprocessor/tensorflow.py +++ b/doctr/models/preprocessor/tensorflow.py @@ -106,7 +106,9 @@ def __call__(self, x: Union[tf.Tensor, np.ndarray, List[Union[tf.Tensor, np.ndar x = tf.image.convert_image_dtype(x, dtype=tf.float32) # Resizing if (x.shape[1], x.shape[2]) != self.resize.output_size: - x = tf.image.resize(x, self.resize.output_size, method=self.resize.method, antialias=True) + x = tf.image.resize( + x, self.resize.output_size, method=self.resize.method, antialias=self.resize.antialias + ) batches = [x] diff --git a/doctr/transforms/modules/tensorflow.py b/doctr/transforms/modules/tensorflow.py index 75b9cbe3ae..1cf50480e9 100644 --- a/doctr/transforms/modules/tensorflow.py +++ b/doctr/transforms/modules/tensorflow.py @@ -85,6 +85,7 @@ def __init__( self.method = method self.preserve_aspect_ratio = preserve_aspect_ratio self.symmetric_pad = symmetric_pad + self.antialias = True if isinstance(self.output_size, int): self.wanted_size = (self.output_size, self.output_size) @@ -106,7 +107,7 @@ def __call__( ) -> Union[tf.Tensor, Tuple[tf.Tensor, np.ndarray]]: input_dtype = img.dtype - img = tf.image.resize(img, self.wanted_size, self.method, self.preserve_aspect_ratio, antialias=True) + img = tf.image.resize(img, self.wanted_size, self.method, self.preserve_aspect_ratio, self.antialias) # It will produce an un-padded resized image, with a side shorter than wanted if we preserve aspect ratio raw_shape = img.shape[:2] if self.preserve_aspect_ratio: From d02c4fbbeef882a8ed912f149db97bfb2d52ad58 Mon Sep 17 00:00:00 2001 From: Felix Date: Fri, 17 Nov 2023 11:59:12 +0100 Subject: [PATCH 4/4] rebase