Safemotion Lib
Loading...
Searching...
No Matches
build.py
Go to the documentation of this file.
1# encoding: utf-8
2"""
3@author: liaoxingyu
4@contact: sherlockliao01@gmail.com
5"""
6
7import torchvision.transforms as T
8
9from .transforms import *
10from .autoaugment import AutoAugment
11
12
13def build_transforms(cfg, is_train=True):
14 res = []
15
16 if is_train:
17 size_train = cfg.INPUT.SIZE_TRAIN
18
19 # augmix augmentation
20 do_augmix = cfg.INPUT.DO_AUGMIX
21
22 # auto augmentation
23 do_autoaug = cfg.INPUT.DO_AUTOAUG
24 total_iter = cfg.SOLVER.MAX_ITER
25
26 # horizontal filp
27 do_flip = cfg.INPUT.DO_FLIP
28 flip_prob = cfg.INPUT.FLIP_PROB
29
30 # padding
31 do_pad = cfg.INPUT.DO_PAD
32 padding = cfg.INPUT.PADDING
33 padding_mode = cfg.INPUT.PADDING_MODE
34
35 # color jitter
36 do_cj = cfg.INPUT.CJ.ENABLED
37 cj_prob = cfg.INPUT.CJ.PROB
38 cj_brightness = cfg.INPUT.CJ.BRIGHTNESS
39 cj_contrast = cfg.INPUT.CJ.CONTRAST
40 cj_saturation = cfg.INPUT.CJ.SATURATION
41 cj_hue = cfg.INPUT.CJ.HUE
42
43 # random erasing
44 do_rea = cfg.INPUT.REA.ENABLED
45 rea_prob = cfg.INPUT.REA.PROB
46 rea_mean = cfg.INPUT.REA.MEAN
47 # random patch
48 do_rpt = cfg.INPUT.RPT.ENABLED
49 rpt_prob = cfg.INPUT.RPT.PROB
50
51 if do_autoaug:
52 res.append(AutoAugment(total_iter))
53 res.append(T.Resize(size_train, interpolation=3))
54 if do_flip:
55 res.append(T.RandomHorizontalFlip(p=flip_prob))
56 if do_pad:
57 res.extend([T.Pad(padding, padding_mode=padding_mode),
58 T.RandomCrop(size_train)])
59 if do_cj:
60 res.append(T.RandomApply([T.ColorJitter(cj_brightness, cj_contrast, cj_saturation, cj_hue)], p=cj_prob))
61 if do_augmix:
62 res.append(AugMix())
63 if do_rea:
64 res.append(RandomErasing(probability=rea_prob, mean=rea_mean))
65 if do_rpt:
66 res.append(RandomPatch(prob_happen=rpt_prob))
67 else:
68 size_test = cfg.INPUT.SIZE_TEST
69 res.append(T.Resize(size_test, interpolation=3))
70 res.append(ToTensor())
71 return T.Compose(res)
build_transforms(cfg, is_train=True)
Definition build.py:13