Дополнения в Pytorch: несогласованное расширение для многоцелевых наборов данных

Я использую Pytorch и хочу выполнить увеличение данных моих изображений с помощью Albumentations. У моего объекта набора данных есть две разные цели: «размытый» и «резкий». В каждом экземпляре обеих целей должны быть одинаковые изменения. Когда я пытаюсь выполнить увеличение данных с помощью объекта 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}   

К сожалению, я получаю два изображения с двумя разными дополнениями:

Когда я пробую то же самое без объекта набора данных, я получаю два изображения с одинаковым применением дополнений. Кто-нибудь знает, как заставить его работать с объектом набора данных?

Вот мой конвейер аугментации:

      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"}
        )

1 ответ

Вы можете складывать свои размытые и резкие изображения, применять аугментацию, а затем разделять их.

Другие вопросы по тегам