Buy Me a Coffee

*Memos:

RandAugment() can randomly augment an image as shown below. *It's about no arguments and fill argument:

*Memos:

  • The 1st argument for initialization is num_ops(Optional-Default:2-Type:int). *It must be 0 <= x.
  • The 2nd argument for initialization is magnitude(Optional-Default:9-Type:int or tuple/list(int or float)): *Memos:
    • It must be 0 <= x and 0 < num_magnitude_bins.
  • The 3rd argument for initialization is num_magnitude_bins(Optional-Default:31-Type:int). *It must be 1 <= x.
  • The 4th argument for initialization is interpolation(Optional-Default:InterpolationMode.NEAREST-Type:InterpolationMode). *If the input is a tensor, only InterpolationMode.NEAREST, InterpolationMode.BILINEAR can be set to it.
  • The 5th argument for initialization is fill(Optional-Default:None-Type:int, float or tuple/list(int or float)): *Memos:
    • It can change the background of an image. *The background can be seen when augmenting an image.
    • A tuple/list must be the 1D with 1 or 3 elements.
    • If all values are x <= 0, it's black.
    • If all values are 255 <= x, it's white.
  • The 1st argument is img(Required-Type:PIL Image or tensor(int/float/bool)): *Memos:
    • A tensor must be 3D or more D.
    • Don't use img=.
  • v2 is recommended to use according to V1 or V2? Which one should I use?.
from torchvision.datasets import OxfordIIITPet
from torchvision.transforms.v2 import RandAugment
from torchvision.transforms.functional import InterpolationMode

ra = RandAugment()
ra = RandAugment(num_ops=2, magnitude=9, num_magnitude_bins=31,
                 interpolation=InterpolationMode.NEAREST, fill=None)
ra
# RandAugment(interpolation=InterpolationMode.NEAREST,
#             num_ops=2, magnitude=9, num_magnitude_bins=31)

ra.num_ops
# 2

ra.magnitude
# 9

ra.num_magnitude_bins
# 31

ra.interpolation
# 

print(ra.fill)
# None

origin_data = OxfordIIITPet(
    root="data",
    transform=None
)

noargs_data = OxfordIIITPet( # `noargs` is no arguments.
    root="data",
    transform=RandAugment()
)

fgray_data = OxfordIIITPet( # `f` is fill.
    root="data",
    transform=RandAugment(fill=150)
    # transform=RandAugment(fill=[150])
)

fpurple_data = OxfordIIITPet(
    root="data",
    transform=RandAugment(fill=[160, 32, 240])
)

import matplotlib.pyplot as plt

def show_images1(data, main_title=None):
    plt.figure(figsize=[10, 5])
    plt.suptitle(t=main_title, y=0.8, fontsize=14)
    for i, (im, _) in zip(range(1, 6), data):
        plt.subplot(1, 5, i)
        plt.imshow(X=im)
        plt.xticks(ticks=[])
        plt.yticks(ticks=[])
    plt.tight_layout()
    plt.show()

show_images1(data=origin_data, main_title="origin_data")
print()
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
show_images1(data=noargs_data, main_title="noargs_data")
print()
show_images1(data=fgray_data, main_title="fgray_data")
show_images1(data=fpurple_data, main_title="fpurple_data")

# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓
def show_images2(data, main_title=None, no=2, m=9, nmb=31,
                 ip=InterpolationMode.NEAREST, f=None):
    plt.figure(figsize=[10, 5])
    plt.suptitle(t=main_title, y=0.8, fontsize=14)
    if main_title != "origin_data":
        for i, (im, _) in zip(range(1, 6), data):
            plt.subplot(1, 5, i)
            ra = RandAugment(num_ops=no, magnitude=m,
                             num_magnitude_bins=nmb,
                             interpolation=ip, fill=f)
            plt.imshow(X=ra(im))
            plt.xticks(ticks=[])
            plt.yticks(ticks=[])
    else:
        for i, (im, _) in zip(range(1, 6), data):
            plt.subplot(1, 5, i)
            plt.imshow(X=im)
            plt.xticks(ticks=[])
            plt.yticks(ticks=[])
    plt.tight_layout()
    plt.show()

show_images2(data=origin_data, main_title="origin_data")
print()
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
show_images2(data=origin_data, main_title="noargs_data")
print()
show_images2(data=origin_data, main_title="fgray_data", f=150)
show_images2(data=origin_data, main_title="fpurple_data", f=[160, 32, 240])

Image description


Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description


Image description

Image description