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
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