当我将 animage
和 a传递mask
给albumentations.Normalize(mean, std)
.
我将如何整合这个?我应该在数据集中手动添加它吗?
感谢您提供的任何提示!
当我将 animage
和 a传递mask
给albumentations.Normalize(mean, std)
.
我将如何整合这个?我应该在数据集中手动添加它吗?
感谢您提供的任何提示!
编辑:
归一化适用于三通道图像。如果您的蒙版图像是灰度图像,那么您可能需要将其堆叠(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)
但我不确定规范化蒙版图像是否正确。