From c030fc891395d11249046e36b9e0219685b33399 Mon Sep 17 00:00:00 2001 From: Pedro Cuenca Date: Fri, 20 Oct 2023 13:46:06 +0200 Subject: [PATCH] Fix Fuyu image scaling bug (#26918) * Fix Fuyu image scaling bug It could produce negative padding and hence inference errors for certain image sizes. * Fix aspect ratio scaling test --- src/transformers/models/fuyu/image_processing_fuyu.py | 2 +- tests/models/fuyu/test_image_processing_fuyu.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/transformers/models/fuyu/image_processing_fuyu.py b/src/transformers/models/fuyu/image_processing_fuyu.py index 3f145ae5cd..2d83e18af4 100644 --- a/src/transformers/models/fuyu/image_processing_fuyu.py +++ b/src/transformers/models/fuyu/image_processing_fuyu.py @@ -226,7 +226,7 @@ class FuyuImageProcessor(BaseImageProcessor): new_height = int(image_height * optimal_scale_factor) new_width = int(image_width * optimal_scale_factor) - scaled_image = resize(image=image, size=(new_width, new_height)) + scaled_image = resize(image=image, size=(new_height, new_width)) return np.array(scaled_image) def _pad_to_target_size(self, image: np.ndarray) -> np.ndarray: diff --git a/tests/models/fuyu/test_image_processing_fuyu.py b/tests/models/fuyu/test_image_processing_fuyu.py index ee02052c7c..73f0936aac 100644 --- a/tests/models/fuyu/test_image_processing_fuyu.py +++ b/tests/models/fuyu/test_image_processing_fuyu.py @@ -50,9 +50,10 @@ class TestFuyuImageProcessor(unittest.TestCase): ), f"Expected {expected_num_patches} patches, got {patches_final.shape[1]}." def test_scale_to_target_aspect_ratio(self): + # (h:450, w:210) fitting (160, 320) -> (160, 210*160/450) scaled_image = self.processor._scale_to_target_aspect_ratio(self.sample_image) - self.assertEqual(scaled_image.shape[0], 74) - self.assertEqual(scaled_image.shape[1], 160) + self.assertEqual(scaled_image.shape[0], 160) + self.assertEqual(scaled_image.shape[1], 74) def test_apply_transformation_numpy(self): transformed_image = self.processor.apply_transformation(self.sample_image)