データAugmentationについて教えてください。
pytorchで、torchvision.transformsを利用して画像データの水増しの勉強をしています。
いくつかのサンプルのコードを見ましたが、Datesetクラスを継承したクラスの中で、以下のような感じにしているものがほとんどです。
Python
1 def __init__(self, df, transform=None): 2 self.df = df 3 self.labels = df['labels'] 4 self.transform = transform 5 6 def __len__(self): 7 return len(self.df) 8 9 def __getitem__(self, idx): 10 image = cv2.imread(FILE_PATH) 11 image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 12 13 if self.transform: 14 augmented = self.transform(image=image) 15 image = augmented['image'] 16 17 label = self.labels.values[idx] 18 target = torch.zeros(N_CLASSES) 19 target[int(label)] = 1 20 return image, target
この処理で、transformに定義された様々な特徴が加味される事になるとは思いますが、画像の枚数自体は変わりません。データAugmentationとは枚数自体を増やすことにも意味があり、そうしないと学習に大きく寄与しないと考えていたのですが、そうではないのでしょうか。
参考にした書籍などのサンプルコードが、この形が多いため、一枚の写真に多数の特徴を加えることで、枚数を増やさなくても良いのではないかと考えるようになりましたが、それで正しいのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/23 01:01