当我将image和mask传递给albumentations.Normalize(mean, std)时。
我该如何合并它呢?我应该在数据集中手动添加它吗?
感谢你的任何建议!
发布于 2021-11-24 11:06:38
编辑:
归一化适用于三通道图像。如果你的蒙版图像是灰度图像,那么你可能需要stack(image= np.stack((img,)*3, axis=-1))它并制作三个通道的图像,然后应用albumentations的归一化函数。A.Normalize()的官方函数如下所示,用于处理RGB图像:
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的docs,您可以生成转换的组合并在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)

但我真的不确定规范化蒙版图像是正确的还是错误的。
https://stackoverflow.com/questions/70094632
复制相似问题