1

当我将 animage和 a传递maskalbumentations.Normalize(mean, std).

我将如何整合这个?我应该在数据集中手动添加它吗?

感谢您提供的任何提示!

4

1 回答 1

2

编辑:

归一化适用于三通道图像。如果您的蒙版图像是灰度图像,那么您可能需要将其堆叠image= np.stack((img,)*3, axis=-1))并制作三通道图像,然后应用albumentations的标准化功能。处理RGB图像的官方函数A.Normalize()如下:

def normalize(img, mean, std, max_pixel_value=255.0):
    mean = np.array(mean, dtype=np.float32)
    mean *= max_pixel_value

    std = np.array(std, dtype=np.float32)
    std *= max_pixel_value

    denominator = np.reciprocal(std, dtype=np.float32)

    img = img.astype(np.float32)
    img -= mean
    img *= denominator
    return img

根据 Albumentations 的文档,您可以组合转换并在 PyTorch 数据集中使用它。

import albumentations as A
from albumentations.pytorch import ToTensorV2

train_transform = A.Compose(
    [
        A.SmallestMaxSize(max_size=160),
        A.ShiftScaleRotate(shift_limit=0.05, scale_limit=0.05, rotate_limit=15, p=0.5),
        A.RandomCrop(height=128, width=128),
        A.RGBShift(r_shift_limit=15, g_shift_limit=15, b_shift_limit=15, p=0.5),
        A.RandomBrightnessContrast(p=0.5),
        A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
        ToTensorV2(),
    ]
)
train_dataset = CatsVsDogsDataset(images_filepaths=train_images_filepaths, transform=train_transform)

在此处输入图像描述

但我不确定规范化蒙版图像是否正确。

于 2021-11-24T11:06:37.623 回答