我正在使用Pytorch,并希望使用Albumentations对我的图像进行数据增强。我的dataset对象有两个不同的目标:“模糊”和“锐化”。两个目标的每个实例都需要具有相同的更改。当我尝试使用Dataset对象执行数据扩充时,如下所示:
class ApplyTransform(Dataset):
def __init__(self, dataset, transformation):
self.dataset = dataset
self.aug = transformation
def __len__(self):
return (len(self.dataset))
def __getitem__(self, idx):
sample, target = self.dataset[idx]['blurry'], self.dataset[idx]['sharp']
transformedImgs = self.aug(image=sample, target_image=target)
sample_aug, target_aug = transformedImgs["image"], transformedImgs["target_image"]
return {'blurry': sample_aug, 'sharp': target_aug} 不幸的是,我收到了两张带有两种不同增强效果的图像:

当我在没有Dataset对象的情况下尝试相同的方法时,我收到了两个具有相同应用程序的图像。有人知道如何使用dataset对象吗?
这是我的增强管道:
augmentation_transform = A.Compose(
[
A.Resize(1024,1024, p=1),
A.HorizontalFlip(p=0.25),
A.Rotate(limit=(-45, 65)),
A.VerticalFlip(p=0.24),
A.RandomContrast(limit=0.3, p=0.15),
A.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
A.pytorch.transforms.ToTensorV2(always_apply=True, p=1.0)
],
additional_targets={"target_image": "image"}
)发布于 2021-06-22 05:45:25
你可以堆叠你的模糊和锐利的图像,应用你的增强,然后拆分它们
https://stackoverflow.com/questions/68040933
复制相似问题