|
import torch |
|
import transforms as T |
|
|
|
|
|
class SegmentationPresetTrain: |
|
def __init__(self, *, base_size, crop_size, hflip_prob=0.5, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)): |
|
min_size = int(0.5 * base_size) |
|
max_size = int(2.0 * base_size) |
|
|
|
trans = [T.RandomResize(min_size, max_size)] |
|
if hflip_prob > 0: |
|
trans.append(T.RandomHorizontalFlip(hflip_prob)) |
|
trans.extend( |
|
[ |
|
T.RandomCrop(crop_size), |
|
T.PILToTensor(), |
|
T.ConvertImageDtype(torch.float), |
|
T.Normalize(mean=mean, std=std), |
|
] |
|
) |
|
self.transforms = T.Compose(trans) |
|
|
|
def __call__(self, img, target): |
|
return self.transforms(img, target) |
|
|
|
|
|
class SegmentationPresetEval: |
|
def __init__(self, *, base_size, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)): |
|
self.transforms = T.Compose( |
|
[ |
|
T.RandomResize(base_size, base_size), |
|
T.PILToTensor(), |
|
T.ConvertImageDtype(torch.float), |
|
T.Normalize(mean=mean, std=std), |
|
] |
|
) |
|
|
|
def __call__(self, img, target): |
|
return self.transforms(img, target) |
|
|