What is the difference between min_scale and ratio in RandomResizedCrop? I did not understand the documentation Data augmentation in computer vision | fastai. As I understand, min_scale=0.8 means a random area of 80% of the image is cropped. What is the purpose of ratio then?

I’ve checked the source code (link is also in the docs) and found this part

…

area = random.uniform(self.min_scale, self.max_scale) * w * h

ratio = math.exp(random.uniform(math.log(self.ratio[0]), math.log(self.ratio[1])))

nw = int(round(math.sqrt(area * ratio)))

nh = int(round(math.sqrt(area / ratio)))

…

So I guess the ratio is to add some more randomeness

Thank you for the reply. But why is it done like that?

Hey @s_j

Like how `min_scale`

and `max_scale`

define how much of the image should be cropped from the original, the ratio defines in what aspect ratio should this image be cropped.

For example, let `min_scale = 0.6`

and `max_scale = 0.8`

. The augmentation picks a number between 0.6 and 0.8. Lets say 0.7. Now, 70% of the image needs to be selected. This could happen in an equal 1:1 width to height ratio `(height = width)`

, or this ratio could be 3 : 4 width to height. `(width = (3/4) * height)`

. The ratio parameter defines this. It gives us more augmentations.