准备用于图像分割的二进制掩码

青葱年少 pytorch 436

原文标题Prepare for Binary Masks used for the image segmentation

我正在尝试使用 Pytorch 准备用于图像分割的掩码。我有三个关于数据准备的问题。

  1. 一般来说,保存二进制掩码的适当数据格式是什么? PNG? JPEG?
  2. 是否需要将掩码大小设置为正方形,例如 (224×224),而不是矩形,例如 (224×448)?
  3. 当大小从矩形转换为正方形时,掩码值是否固定?

例如,原始掩码图像大小为(600×900),即二进制[0,1]。然而,当我申请

import torchvision.transforms as transforms
transforms.Compose([
                        transforms.Resize((300, 300)),
                        transforms.ToTensor(),
                        ])

对于掩码,输出有其他值:0.01、0.0156、0.22..。除了 0 和 1,因为掩码大小已转换。

我应用下面的代码将掩码再次转换为二进制,如果值小于 0.3,则值为 0,否则为 1。

def __getitem__(self, idx):
    img, mask = self.load_data(idx)
    if self.img_transforms is not None:
        img = self.img_transforms(img)
    if self.mask_transforms is not None:
        mask = self.mask_transforms(mask)
        mask = torch.where(mask<=0.3,0,1)
    return img, mask

但我想知道这个过程是一种通用的方法和高效的方法。

原文链接:https://stackoverflow.com//questions/71669952/prepare-for-binary-masks-used-for-the-image-segmentation

回复

我来回复
  • Alexey Birukov的头像
    Alexey Birukov 评论
    1. PNG,因为它在设计上是无损的。
    2. 这取决于。更方便的是使用标准分辨率(224×224),我会从那个开始。
    3. 使用调整大小而不使用插值 transforms.Resize((300, 300), interpolation=InterpolationMode.NEAREST)
    2年前 0条评论