Pytorchのデータオーグメンテーションのメモ

※編集中

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)

コメント

タイトルとURLをコピーしました