Pytorch 中的标注:多目标数据集的不一致增强

Posted

技术标签:

【中文标题】Pytorch 中的标注:多目标数据集的不一致增强【英文标题】:Albumentations in Pytorch: Inconsistent Augmentation for multi-target datasets 【发布时间】:2021-09-03 12:46:06 【问题描述】:

我正在使用 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   

不幸的是,我收到了两张带有两种不同增强效果的图片:

当我在没有 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"
        )

【问题讨论】:

我也有同样的问题! 【参考方案1】:

您可以堆叠模糊和清晰的图像,应用您的增强功能然后取消堆叠它们

【讨论】:

以上是关于Pytorch 中的标注:多目标数据集的不一致增强的主要内容,如果未能解决你的问题,请参考以下文章

如何在pytorch中计算BCEWithLogitsLoss的不平衡权重

Pytorch:YOLO-v5目标检测(下)

Pytorch数据加载

增强几何返回相交和相交的不一致结果

pytorch土堆pytorch教程学习torchvision 中的数据集的使用

[Pytorch系列-59]:循环神经网络 - 中文新闻文本分类详解-1-业务目标分析与总体架构