※編集中
Pytorchのデータオーグメンテーションについてよく忘れるのでメモしておく。
今回は以下の画像を用いる。
from PIL import Image
import matplotlib.pyplot as plt
from torchvision import transforms as T
img_path = "cat.jpg"
img = Image.open(img_path).convert("RGB")
plt.imshow(img)
Resize:リサイズする
画像をリサイズする。今回は224×224にリサイズしている。補間方法なども引数で指定できる。
result_img = T.Resize(224)(img)
plt.imshow(result_img)
RandomRotation:ランダムで回転
画像をランダムで回転させる。今回は-90度~90度の間で回転させる
result_img = T.RandomRotation(degrees=90)(img)
plt.imshow(result_img)
RandomAffine:ランダムでアフィン変換
ランダムでアフィン変換を行う
result_img = T.RandomAffine(degrees=[-10, 10], translate=(0.2, 0.3), scale=(0.5, 1.5))(img)
plt.imshow(result_img)
RandomGrayscale:ランダムでグレースケール
ランダムでグレースケールにする
result_img = T.RandomGrayscale(p=0.9)(img)
plt.imshow(result_img)
RandomResizedCrop:ランダムでクロップ&リサイズ
ランダムでクロップしてリサイズする
result_img = T.RandomResizedCrop(512)(img)
plt.imshow(result_img)
ColorJitter:ランダムで明るさ・コントラスト・彩度・色相を変更
画像の明るさ、コントラスト、彩度、色相をランダムに変更する
result_img = T.ColorJitter(brightness=0.3, contrast=0.4, saturation=0.4, hue=0.4)(img)
plt.imshow(result_img)
RandomHorizontalFlip:ランダムで水平方向に反転
ランダムで水辺方向に反転させる
result_img = T.RandomHorizontalFlip(0.5)(img)
plt.imshow(result_img)
RandomErasing:ランダムで切り抜き
ランダムで切り抜く。これは一度Tensorにしなければいけないので、一度TensorにしてRandomErasingをして戻している。
import torchvision
tensor_img = T.ToTensor()(img)
result_img = T.RandomErasing()(tensor_img)
result_img = torchvision.transforms.functional.to_pil_image(result_img)
plt.imshow(result_img)
コメント