Esempio n. 1
0
    def transform(self, img, lbl):
        # img = Resize(self.img_size, Image.BILINEAR)(img)
        # lbl = Resize(self.img_size, Image.NEAREST)(lbl)
        if (self.augment):
            hflip = random.random()
            if (hflip < 0.5):
                img = img.transpose(Image.FLIP_LEFT_RIGHT)
                lbl = lbl.transpose(Image.FLIP_LEFT_RIGHT)
            transX = random.randint(-2, 2)
            transY = random.randint(-2, 2)
            img = ImageOps.expand(img, border=(transX, transY, 0, 0), fill=0)
            lbl = ImageOps.expand(lbl, border=(transX, transY, 0, 0), fill=0)
            img = img.crop((0, 0, img.size[0] - transX, img.size[1] - transY))
            lbl = lbl.crop((0, 0, lbl.size[0] - transX, lbl.size[1] - transY))

        if (self.label_scale):
            lbl = Resize([self.img_size[0] // 8, self.img_size[1] // 8],
                         Image.NEAREST)(lbl)
        img = ToTensor()(img)
        lbl = np.array(lbl)[:, :, 2]
        lbl_copy = lbl.copy()
        for i in range(0, 31):
            lbl[lbl_copy == i] = (i - 1 + 31) % 31
        lbl = torch.from_numpy(lbl).long()
        return img, lbl
Esempio n. 2
0
    def transform(self, img, lbl):
        img = Resize(self.img_size, Image.BILINEAR)(img)
        lbl = Resize(self.img_size, Image.NEAREST)(lbl)
        if (self.augment):
            hflip = random.random()
            if (hflip < 0.5):
                img = img.transpose(Image.FLIP_LEFT_RIGHT)
                lbl = lbl.transpose(Image.FLIP_LEFT_RIGHT)
            transX = random.randint(-2, 2)
            transY = random.randint(-2, 2)
            img = ImageOps.expand(img, border=(transX, transY, 0, 0), fill=0)
            lbl = ImageOps.expand(lbl, border=(transX, transY, 0, 0), fill=0)
            img = img.crop((0, 0, img.size[0] - transX, img.size[1] - transY))
            lbl = lbl.crop((0, 0, lbl.size[0] - transX, lbl.size[1] - transY))

        if (self.label_scale):
            lbl = Resize([self.img_size[0] // 8, self.img_size[1] // 8],
                         Image.NEAREST)(lbl)
        img = ToTensor()(img)
        # img = Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])(img)

        lbl = np.array(lbl)
        lbl_copy = lbl.copy()
        for k, v in self.id_to_trainid.items():
            lbl[lbl_copy == k] = v
        lbl = torch.from_numpy(lbl).long()
        return img, lbl